(57)【特許請求の範囲】
【請求項１】
第１実行環境および第２実行環境を含む複数の実行環境を実現するための命令群を記憶した環境記憶手段と、
前記複数の実行環境のうち一の実行環境の実行状態をフォアグラウンド状態とし、他の実行状態をバックグラウンド状態として、前記環境記憶手段に記憶されている命令群を実行する実行手段と、
前記第１実行環境から前記第２実行環境に送信される状態情報を記憶する状態保持手段と、
前記第１実行環境および前記第２実行環境のうち対象となる対象実行環境の実行状態に関する条件を記憶したタイミング記憶手段と、
前記タイミング記憶手段に記憶されている条件が満たされた場合、前記状態保持手段に記憶されている前記状態情報を前記第２実行環境に送信をする送信手段と
を有する情報処理装置。
【請求項２】
前記対象実行環境が前記第１実行環境であり、
前記条件は、前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったという条件を含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１実行環境から前記状態情報を受信する受信手段と、
前記受信手段により受信された状態情報を出力する出力手段と
を有する請求項１または２に記載の情報処理装置。
【請求項４】
前記出力手段により出力された状態情報を利用する状態利用手段
を有する請求項３に記載の情報処理装置。
【請求項５】
前記状態情報は複数の種別に区分されており、
前記対象実行環境が前記第１実行環境であり、
前記タイミング記憶手段は、前記複数の種別の各々についての優先度を示す情報を記憶し、
前記条件は、優先度が高い種別については前記対象実行環境の実行状態によらずに前記状態情報を送信し、優先度が低い種別については前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信するという条件を含む
ことを特徴とする請求項１−４のいずれかの項に記載の情報処理装置。
【請求項６】
前記状態保持手段は、複数のデータセットを記憶し、
前記複数のデータセットの各々は、状態情報と、前記状態情報に対応するフラグを含み、
前記状態保持手段は、新たな状態情報が入力されると、前記新たな状態情報を前記データセットに書き込み、
前記状態保持手段は、前記新たな状態情報を前記データセットに書き込むと、前記書き込まれた状態情報に対応するフラグを未送信を示すものに書き替え、
前記送信手段は、前記送信の際、前記状態保持手段に記憶されている状態情報の中から前記フラグが未送信を示すものを抽出して送信し、
前記状態保持手段は、前記送信手段により送信された状態情報に対応するフラグを送信済みを示すものに書き替える
ことを特徴とする請求項１−５のいずれかの項に記載の情報処理装置。
【請求項７】
前記状態情報は、情報提示に関する情報提示状態を含む複数の状態に区分されており、
前記対象実行環境が前記第１実行環境であり、
前記条件は、前記状態情報が前記情報提示状態に関するものである場合には、前記対象実行環境の実行状態がフォアグラウンド状態であるときには送信せず、前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信するという条件を含む
ことを特徴とする請求項１−６のいずれかの項に記載の情報処理装置。
【請求項８】
前記複数の状態は、前記情報処理装置の設定に関する設定状態を含み、
前記条件は、前記状態情報が前記設定状態に関するものである場合には、前記対象実行環境の実行状態によらずに送信するという条件を含む
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記複数のデータセットの各々は、前記状態情報の種別を示す状態種別をさらに含み、
前記状態保持手段は、新たな状態情報が入力されると、前記新たな状態情報と、前記複数のデータセットに含まれる状態情報のうち前記新たな状態情報と同一の状態種別に対応する状態情報とを比較し、両者が異なる場合には前記データセットに含まれる状態情報を前記新たな状態情報に書き替え、前記書き替えられた状態情報に対応するフラグを未送信を示すものに書き替える
ことを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記対象実行環境が前記第１実行環境であり、
前記条件は、前記対象実行環境の実行状態がフォアグラウンド状態からバックグラウンド状態に切り替わった後で送信するという条件を含む
ことを特徴とする請求項１−９のいずれかの項に記載の情報処理装置。
【請求項１１】
前記条件は、前記状態保持手段が記憶している状態情報の量がしきい値を超えた場合に送信するという条件を含む
ことを特徴とする請求項１−１０のいずれかの項に記載の情報処理装置。
【請求項１２】
前記条件は、一の状態情報を送信するときに他の状態情報を送信するという条件を含む
ことを特徴とする請求項１−１１のいずれかの項に記載の情報処理装置。
【請求項１３】
前記送信手段は、前記第２実行環境または他の装置からの要求に応じて前記状態情報を送信する
ことを特徴とする請求項１−１２のいずれかの項に記載の情報処理装置。
【請求項１４】
前記状態保持手段は、複数のデータセットを記憶し、
前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、
前記状態種別の各々について、対応する状態情報の受信を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、
前記受信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項１５】
前記状態保持手段は、複数のデータセットを記憶し、
前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、
前記状態種別の各々について、対応する状態情報の利用を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、
前記状態利用手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項１６】
前記状態保持手段は、複数のデータセットを記憶し、
前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、
前記状態種別の各々について、対応する状態情報の送信を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、
前記送信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理する
ことを特徴とする請求項１−１３のいずれかの項に記載の情報処理装置。
【請求項１７】
前記第１実行環境以外の前記複数の実行環境の各々について、前記第１実行環境よりもセキュアであるか非セキュアであるかを示す第１の情報と、前記第１の情報により非セキュアであることが示される実行環境への前記第１実行環境からの状態情報の送信を禁止することを示す第２の情報とを含むポリシーを記憶したアクセス制限管理手段を有し、
前記送信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理する
ことを特徴とする請求項１−１３のいずれかの項に記載の情報処理装置。
【請求項１８】
前記アクセス制限管理手段は、前記第１実行環境以外の実行環境または他の装置からの要求に応じて前記ポリシーを書き替える
ことを特徴とする請求項１４−１６のいずれかの項に記載の情報処理装置。
【請求項１９】
前記ポリシーは、前記第１実行環境以外の前記複数の実行環境の各々について、前記第１実行環境よりもセキュアであるか非セキュアであるかを示す情報を含み、
前記アクセス制限管理手段は、前記要求の送信元がセキュアな実行環境であった場合のみ、前記ポリシーの書き替えを行う
ことを特徴とする請求項１８に記載の情報処理装置。
【請求項２０】
前記第１実行環境は前記第２実行環境よりも非セキュアであり、
前記状態保持手段、前記タイミング記憶手段および前記送信手段を含む第１状態通信装置が前記第１実行環境で動作し、
前記送信手段により送信される状態情報は、前記情報処理装置の設定に関するものであり、
前記第２実行環境上において、第２状態通信装置が動作し、
前記第２状態通信装置は、前記第１実行環境から送信された状態情報を受信する第２受信手段と、前記第２受信手段により受信された状態情報を、前記第２実行環境上で前記設定を行うプログラムに出力する第２出力手段とを有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項２１】
前記第２状態通信装置は、前記第２受信手段により受信された状態情報を検査する検査手段を有し、
前記第２出力手段は、前記検査手段による検査に合格した状態情報を出力する
ことを特徴とする請求項２０に記載の情報処理装置。
【請求項２２】
第１実行環境および第２実行環境を含む複数の実行環境を実現するための命令群と前記第１実行環境および前記第２実行環境のうち対象となる対象実行環境の実行状態に関する条件とを記憶した記憶手段と、前記複数の実行環境のうち一の実行環境の実行状態をフォアグラウンド状態とし、他の実行状態をバックグラウンド状態として、前記記憶手段に記憶されている命令群を実行する実行手段とを有する情報処理装置において、
前記実行手段が、前記第１実行環境から前記第２実行環境に送信される状態情報を前記記憶手段に記憶させるステップと、
前記記憶手段に記憶されている条件が満たされた場合、前記実行手段が、前記記憶手段に記憶されている前記状態情報を前記第２実行環境に送信するステップと
を有する情報処理方法。
【請求項２３】
前記第１実行環境は前記第２実行環境よりも非セキュアであり、
前記記憶させるステップおよび前記送信するステップは、前記第１実行環境上で行われ、
前記送信される状態情報は、前記情報処理装置の設定に関するものであり、
前記第２実行環境を実行している前記実行手段が、前記第１実行環境から送信された状態情報を受信するステップと、
前記第２実行環境を実行している前記実行手段が、前記受信された状態情報を、前記第２実行環境上で前記設定を行うプログラムに出力するステップと
を有することを特徴とする請求項２２に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つの実行環境間における通信に関する。
【背景技術】
【０００２】
単一の情報処理装置上において仮想化された２つの実行環境間におけるデータ転送技術が知られている。例えば、特許文献１は、マルチコアＣＰＵまたはマルチプロセッサを有する情報処理装置において、仮想装置間でのデータの送受信を行うことを開示している。特許文献２は、ＤＰＲＡＭを介してホストシステムとサブシステム（仮想装置）との間でデータを送受信することを開示している。特許文献３は２つの仮想装置間でメッセージを送受信する技術を開示している。特許文献４は、ＶＭ間でのデータのコピー等の処理を行うことを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１１６５６１号公報
【特許文献２】特開２００２−３５１８５４号公報
【特許文献３】特開平３−６５７３４号公報
【特許文献４】特開２００８−２９９７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
実行環境間でメールの着信状態やマナーモード等の設定の状態を通信しようとするとき、頻繁に通信を行うと処理の負荷が増え、応答性の悪化や電力消費の増大を招くという問題があった。一方で、単に実行環境を切り替えるときに通信を行うと、切り替え時の処理量が増え、切り替えの応答性の悪化を招くという問題があった。
これに対し本発明は、実行環境間でより効率的に状態情報の通信を行う技術を提供する。
【課題を解決するための手段】
【０００５】
本発明は、第１実行環境および第２実行環境を含む複数の実行環境を実現するための命令群を記憶した環境記憶手段と、前記複数の実行環境のうち一の実行環境の実行状態をフォアグラウンド状態とし、他の実行状態をバックグラウンド状態として、前記環境記憶手段に記憶されている命令群を実行する実行手段と、前記第１実行環境から前記第２実行環境に送信される状態情報を記憶する状態保持手段と、前記第１実行環境および前記第２実行環境のうち対象となる対象実行環境の実行状態に関する条件を記憶したタイミング記憶手段と、前記タイミング記憶手段に記憶された条件が満たされた場合、前記状態保持手段に記憶されている前記状態情報を前記第２実行環境に送信をする送信手段とを有する情報処理装置を提供する。
この情報処理装置によれば、対象実行環境の実行状態に関する条件によらずに状態情報を送信する構成と比較して、より効率的に状態情報の通信をすることができる。
【０００６】
好ましい態様において、前記対象実行環境が前記第１実行環境であり、前記条件は、前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったという条件を含んでもよい。
この情報処理装置によれば、対象実行環境の実行状態に関する条件によらずに状態情報を送信する構成と比較して、状態情報の通信をする頻度を減らすことができる。
【０００７】
別の好ましい態様において、この情報処理装置は、前記第１実行環境から前記状態情報を受信する受信手段と、前記受信手段により受信された状態情報を出力する出力手段とを有してもよい。
【０００８】
さらに別の好ましい態様において、この情報処理装置は、前記出力手段により出力された状態情報を利用する状態利用手段を有してもよい。
【０００９】
さらに別の好ましい態様において、前記状態情報は複数の種別に区分されており、前記対象実行環境が前記第１実行環境であり、前記タイミング記憶手段は、前記複数の種別の各々についての優先度を示す情報を記憶し、前記条件は、優先度が高い種別については前記対象実行環境の実行状態によらずに前記状態情報を送信し、優先度が低い種別については前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信するという条件を含んでもよい。
【００１０】
さらに別の好ましい態様において、前記状態保持手段は、複数のデータセットを記憶し、前記複数のデータセットの各々は、状態情報と、前記状態情報に対応するフラグを含み、前記状態保持手段は、新たな状態情報が入力されると、前記新たな状態情報を前記データセットに書き込み、前記状態保持手段は、前記新たな状態情報を前記データセットに書き込むと、前記書き込まれた状態情報に対応するフラグを未送信を示すものに書き替え、前記送信手段は、前記送信の際、前記状態保持手段に記憶されている状態情報の中から前記フラグが未送信を示すものを抽出して送信し、前記状態保持手段は、前記送信手段により送信された状態情報に対応するフラグを送信済みを示すものに書き替えてもよい。
【００１１】
さらに別の好ましい態様において、前記状態情報は、情報提示に関する情報提示状態を含む複数の状態に区分されており、前記対象実行環境が前記第１実行環境であり、前記条件は、前記状態情報が前記情報提示状態に関するものである場合には、前記対象実行環境の実行状態がフォアグラウンド状態であるときには送信せず、前記対象実行環境の実行状態がバックグラウンド状態であるか、またはフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信するという条件を含んでもよい。
【００１２】
さらに別の好ましい態様において、前記複数の状態は、前記情報処理装置の設定に関する設定状態を含み、前記条件は、前記状態情報が前記設定状態に関するものである場合には、前記対象実行環境の実行状態によらずに送信するという条件を含んでもよい。
【００１３】
さらに別の好ましい態様において、前記複数のデータセットの各々は、前記状態情報の種別を示す状態種別をさらに含み、前記状態保持手段は、新たな状態情報が入力されると、前記新たな状態情報と、前記複数のデータセットに含まれる状態情報のうち前記新たな状態情報と同一の状態種別に対応する状態情報とを比較し、両者が異なる場合には前記データセットに含まれる状態情報を前記新たな状態情報に書き替え、前記書き替えられた状態情報に対応するフラグを未送信を示すものに書き替えてもよい。
この情報処理装置によれば、新たな状態情報と既に記憶している状態情報とを比較しない構成と比較して、通信の頻度を減らすことができる。
【００１４】
さらに別の好ましい態様において、前記対象実行環境が前記第１実行環境であり、前記条件は、前記対象実行環境の実行状態がフォアグラウンド状態からバックグラウンド状態に切り替わった後で送信するという条件を含んでもよい。
この情報処理装置によれば、バックグラウンド状態への切り替えが完了する前に状態情報を送信する構成と比較して、新たにフォアグラウンド状態になる実行環境が動作可能となるまでの時間を短くすることができる。
【００１５】
さらに別の好ましい態様において、前記条件は、前記状態保持手段が記憶している状態情報の量がしきい値を超えた場合に送信するという条件を含んでもよい。
【００１６】
さらに別の好ましい態様において、前記条件は、一の状態情報を送信するときに他の状態情報を送信するという条件を含んでもよい。
【００１７】
さらに別の好ましい態様において、前記送信手段は、前記第２実行環境または他の装置からの要求に応じて前記状態情報を送信してもよい。
【００１８】
さらに別の好ましい態様において、前記状態保持手段は、複数のデータセットを記憶し、前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、前記状態種別の各々について、対応する状態情報の受信を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、前記受信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理してもよい。
この情報処理装置によれば、アクセス制限管理手段を有しない構成と比較して、安全性を高めることができる。
【００１９】
さらに別の好ましい態様において、前記状態保持手段は、複数のデータセットを記憶し、前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、前記状態種別の各々について、対応する状態情報の利用を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、前記状態利用手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理してもよい。
【００２０】
さらに別の好ましい態様において、前記状態保持手段は、複数のデータセットを記憶し、前記複数のデータセットの各々は、状態情報と、前記状態情報の種別を示す状態種別を含み、前記状態種別の各々について、対応する状態情報の送信を許容するか否かを示すポリシーを記憶したアクセス制限管理手段を有し、前記送信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理してもよい。
【００２１】
さらに別の好ましい態様において、前記第１実行環境以外の前記複数の実行環境の各々について、前記第１実行環境よりもセキュアであるか非セキュアであるかを示す第１の情報と、前記第１の情報により非セキュアであることが示される実行環境への前記第１実行環境からの状態情報の送信を禁止することを示す第２の情報とを含むポリシーを記憶したアクセス制限管理手段を有し、前記送信手段は、前記アクセス制限管理手段に記憶されているポリシーに従って前記状態情報を処理してもよい。
【００２２】
さらに別の好ましい態様において、前記アクセス制限管理手段は、前記第１実行環境以外の実行環境または他の装置からの要求に応じて前記ポリシーを書き替えてもよい。
【００２３】
さらに別の好ましい態様において、前記ポリシーは、前記第１実行環境以外の前記複数の実行環境の各々について、前記第１実行環境よりもセキュアであるか非セキュアであるかを示す情報を含み、前記アクセス制限管理手段は、前記要求の送信元がセキュアな実行環境であった場合のみ、前記ポリシーの書き替えを行ってもよい。
【００２４】
さらに別の好ましい態様において、前記第１実行環境は前記第２実行環境よりも非セキュアであり、前記状態保持手段、前記タイミング記憶手段および前記送信手段を含む第１状態通信装置が前記第１実行環境で動作し、前記送信手段により送信される状態情報は、前記情報処理装置の設定に関するものであり、前記第２実行環境上において、第２状態通信装置が動作し、前記第２状態通信装置は、前記第１実行環境から送信された状態情報を受信する第２受信手段と、前記第２受信手段により受信された状態情報を、前記第２実行環境上で前記設定を行うプログラムに出力する第２出力手段とを有してもよい。
【００２５】
さらに別の好ましい態様において、前記第２状態通信装置は、前記第２受信手段により受信された状態情報を検査する検査手段を有し、前記第２出力手段は、前記検査手段による検査に合格した状態情報を出力してもよい。
【００２６】
また、本発明は、第１実行環境および第２実行環境を含む複数の実行環境を実現するための命令群と前記第１実行環境および前記第２実行環境のうち対象となる対象実行環境の実行状態に関する条件とを記憶した記憶手段と、前記複数の実行環境のうち一の実行環境の実行状態をフォアグラウンド状態とし、他の実行状態をバックグラウンド状態として、前記記憶手段に記憶されている命令群を実行する実行手段とを有する情報処理装置において、前記実行手段が、前記第１実行環境から前記第２実行環境に送信される状態情報を前記記憶手段に記憶させるステップと、前記記憶手段に記憶された条件が満たされた場合、前記実行手段が、前記記憶手段に記憶されている前記状態情報を前記第２実行環境に送信するステップとを有する情報処理方法を提供する。
【００２７】
好ましい態様において、前記第１実行環境は前記第２実行環境よりも非セキュアであり、前記記憶させるステップおよび前記送信するステップは、前記第１実行環境上で行われ、前記送信される状態情報は、前記情報処理装置の設定に関するものであり、前記第２実行環境を実行している前記実行手段が、前記第１実行環境から送信された状態情報を受信するステップと、前記第２実行環境を実行している前記実行手段が、前記受信された状態情報を、前記第２実行環境上で前記設定を行うプログラムに出力するステップとを有してもよい。
【図面の簡単な説明】
【００２８】
【図１】一実施形態に係る情報処理装置１の機能構成を示す図である。
【図２】状態保持部１２１に記憶される情報を例示する図である。
【図３】タイミング記憶部１２２に記憶される情報を例示する図である。
【図４】状態出力部１２５が記憶している情報を例示する図である。
【図５】アクセス制限に関するポリシーを例示する図である。
【図６】情報処理装置１のハードウェア構成を示す図である。
【図７】新たな状態情報が入力されたときの処理を示すフローチャートである。
【図８】実行状態が切り替えられたときの処理を示すフローチャートである。
【図９】状態情報を要求されたときの処理を示すフローチャートである。
【図１０】アクセス制限の処理を示すフローチャートである。
【図１１】状態情報の利用制限を示すフローチャートである。
【図１２】セキュアな実行環境からの設定変更の処理を示すフローチャートである。
【図１３】動作例２における画面の遷移を示す図である。
【図１４】変形例１に係る情報処理装置１の機能構成を示す図である。
【図１５】変形例２に係る情報処理装置１の機能構成を示す図である。
【発明を実施するための形態】
【００２９】
１．構成
図１は、本発明の一実施形態に係る情報処理装置１の機能構成を示す図である。この例で、情報処理装置１はいわゆるスマートフォンである。情報処理装置１は、実行環境１０（第１実行環境の一例）、実行環境２０（第２実行環境の一例）、ＶＭ（Virtual Machine）間通信機能３０、およびＶＭＭ（Virtual Machine Monitor）４０を有する。実行環境１０および実行環境２０は仮想装置（ヴァーチャルマシン、Virtual Machine）上に構築されている。実行環境１０および実行環境２０上では、それぞれＯＳ（Operating System）１１およびＯＳ２１が動作している。ここで、「実行環境」とは、ある種のプログラムを実行するための基盤となるプログラム、またはこのプログラムにより実現される機能をいう。
【００３０】
ＶＭＭ４０は、複数の実行環境を動作させる機能（またはこの機能を実現させるためのプログラム）である。ＶＭＭ４０の制御下で、実行環境１０および実行環境２０は、それぞれ独立したＯＳやドライバを有する。ＶＭ間通信機能３０は、実行環境間で通信を行うための機能（またはこの機能を実現させるためのプログラム）である。
【００３１】
この例で、実行環境１０および実行環境２０は、一方がフォアグラウンド状態、他方がバックグラウンド状態として実行される。「フォアグラウンド状態」とは、ユーザからの情報の入力を受け付ける状態をいい、「バックグラウンド状態」とはフォアグラウンド状態と異なる状態、すなわちユーザからの情報の入力を受け付けない状態をいう。実行環境の実行状態（フォアグランド状態かバックグラウンド状態か）は、あるイベントを契機として切り替えられる。このイベントは、例えば、ユーザによるボタン操作や、着信などのシステムイベントである。
【００３２】
実行環境１０は、状態通信装置１２を有する。状態通信装置１２は、実行環境１０および実行環境２０の間で状態に関する情報（以下「状態情報」という）を通信するための機能である。状態情報により示される「状態」については後述する。状態通信装置１２は、ＯＳ１１上で動作するプログラムにより実現される。状態通信装置１２は、状態保持部１２１、タイミング記憶部１２２、状態送信部１２３、状態受信部１２４、状態出力部１２５、状態利用部１２６およびアクセス制限管理部１２７を有する。
【００３３】
状態保持部１２１（状態保持手段の一例）は、状態情報を記憶する。この例で、状態情報は、ユーザへの情報提示に関する状態（以下「情報提示状態」という）に関する情報および情報処理装置１の設定に関する状態（以下「設定状態」という）に関する情報を含む。情報提示状態は、例えば、メール、ＳＭＳ、電話等の受信（着信）があったという状態、プッシュ型情報配信サービスの新着情報を受信したという状態、ファイルのダウンロード等の処理が完了したという状態である。設定状態は、例えば、情報処理装置１の状態がマナーモードにあるという状態、ロック（ローカルロックや遠隔ロック等）されている状態、ネットワークサービス（留守番電話やキャッチホン等）の設定に関する状態である。
【００３４】
図２は、状態保持部１２１に記憶される情報を例示する図である。状態保持部１２１は、複数のデータセットを記憶している。各データセットは、状態種別、状態情報およびフラグを含む。状態種別は、状態の種別を示す情報である。この例では、状態種別として、「メール着信」、「電話着信」、「新着情報」、「処理完了」、「マナーモード」、および「ロック状態」が記憶されている。フラグは、状態情報が送信済みであるか否かを示す。図２の例では、状態種別「メール着信」に対して、状態情報が「２通未読」であり、この状態情報が「送信済み」であることが示されている。
【００３５】
再び図１を参照する。タイミング記憶部１２２（タイミング記憶手段の一例）は、状態情報を送信するタイミングを指定する条件を示す情報を記憶する。この条件は、例えば、状態情報の区分に応じて設定されている。
【００３６】
図３は、タイミング記憶部１２２に記憶される情報を例示する図である。タイミング記憶部１２２は、複数のデータセットを記憶している。各データセットは、状態種別および区分を含む。図３の例では、状態種別「メール着信」、「電話着信」、「新着情報」および「処理完了」が区分「情報提示状態」に属し、状態種別「マナーモード」および「ロック状態」が区分「設定状態」に属することが示されている。設定状態に関する状態情報は、送信元の実行環境（この例では実行環境１０）の実行状態によらずに送信される。すなわち、送信元の実行環境の実行状態がフォアグラウンド状態であってもバックグラウンド状態であっても、設定状態に関する状態情報は即座に送信される。情報提示状態に関する状態情報は、送信元の実行環境の実行状態がバックグラウンド状態であるときか、またはフォアグラウンド状態からバックグラウンド状態に切り替わるタイミングで送信される。すなわち、送信元の実行環境の実行状態がフォアグラウンド状態であるときは、情報提示状態の状態情報は送信されない。
【００３７】
再び図１を参照する。状態送信部１２３（送信手段の一例）は、実行環境１０および実行環境２０の少なくとも一方の実行状態、およびタイミング記憶部１２２に記憶されている条件に応じて、状態情報を実行環境２０に送信する。実行環境１０と実行環境２０との間の情報における情報の通信には、ＶＭ間通信機能３０が用いられる。また、状態送信部１２３は、実行環境１０および実行環境２０の少なくとも一方の実行状態を取得する。この例で、状態送信部１２３は、ＶＭＭ４０から実行環境１０の実行状態を取得する。ＶＭＭ４０は実行環境１０および実行環境２０の実行状態を管理しており、フォアグラウンド状態にある実行環境とバックグラウンド状態にある実行環境を特定する情報を有している。さらに、状態送信部１２３は、タイミング記憶部１２２に設定されている条件が満たされると、状態情報および状態種別を送信先の実行環境に送信する。
【００３８】
状態受信部１２４（受信手段の一例）は、実行環境２０等の他の実行環境からＶＭ間通信機能３０を介して状態情報を受信する。また、状態受信部１２４は、受信した状態情報が正当なものであるか認証を行う。認証は、例えば、ＣＲＣ（Cyclic Redundancy Check、巡回冗長検査）やＭＡＣ（Message Authentication Code、メッセージ認証コード）、電子署名を用いて行われる。さらに、状態受信部１２４は、アクセス制限管理部１２７（後述）が有しているポリシーを参照して、ポリシーに応じて状態情報の受信を制限する。
【００３９】
状態出力部１２５（出力手段の一例）は、受信した状態情報を、状態情報を利用する機能に対して出力する。「状態情報を利用する機能」とは、例えば、実行環境１０上で動作するアプリケーションプログラム、ミドルウェア、ＯＳ、デバイスドライバ等のプログラムである。この例で、状態出力部１２５は、状態情報と出力先の機能とを対応させる情報を記憶している。
【００４０】
図４は、状態出力部１２５が記憶している情報を例示する図である。状態出力部１２５は、複数のデータセットを記憶している。各データセットは、状態種別および出力先の機能を含む。この例では、例えば、状態種別「メール着信」は「ステータスバー」に対応している。状態出力部１２５は、受信した状態情報の状態種別が「メール着信」であった場合には、受信した状態情報を「ステータスバー」というプログラムに出力する。
【００４１】
再び図１を参照して説明する。状態利用部１２６（利用手段の一例）は、状態情報を利用する。状態利用部１２６は、情報提示状態に関する状態情報を表示したり、設定状態に関する状態情報に従って情報処理装置１の設定を行ったりする。状態利用部１２６は、状態出力部１２５により状態情報の出力先であってもよい。
アクセス制限管理部１２７（アクセス制限管理手段）は、状態情報のアクセス制限に関するポリシーを記憶している。
【００４２】
図５は、アクセス制限に関するポリシーを例示する図である。ポリシーは、複数のデータセットを含む。各データセットは、状態種別と、アクセス制限の内容を含む。図５の例では、アクセス制限は、受信時のアクセス制限と、送信時のアクセス制限とをさらに含む。アクセス制限の内容は、「受信する」、「受信しない」、「送信する」、「送信しない」および「ユーザに問い合わせ」を含んでいる。例えば、状態種別「新着情報」については、受信時は「受信しない」および送信時は「送信する」というアクセス制限が設定されている。状態種別「ロック状態」については、受信時は「ユーザに問い合わせ」、送信時は「送信する」というアクセス制限が設定されている。「ユーザに問い合わせ」とは、受信または送信の可否をユーザに問い合わせることをいう。
【００４３】
アクセス制限のポリシーは、他のプログラムや装置からの要求に応じて変更される。ポリシー変更の要求は、例えば、実行環境１０上で動作するアプリケーションプログラムやミドルウェア、実行環境２０等の他の実行環境、ＶＭＭ４０等のシステムを管理するモジュール、または移動通信網やインターネットに接続されたサーバ等の情報処理装置１以外の他の装置から送信される。アクセス制限管理部１２７は、これらのプログラムや装置からの要求に応じて、ポリシーを変更する。
【００４４】
再び図１を参照して説明する。実行環境２０は、状態通信装置２２を有する。状態通信装置２２は、実行環境１０および実行環境２０の間で状態情報を通信するための機能である。状態通信装置２２は、ＯＳ２１上で動作するプログラムにより実現される。状態通信装置２２は、状態保持部２２１、タイミング記憶部２２２、状態送信部２２３、状態受信部２２４、状態出力部２２５、状態利用部２２６およびアクセス制限管理部２２７を有する。これらの機能は、状態通信装置１２と同様である。
【００４５】
図６は、情報処理装置１のハードウェア構成を示す図である。情報処理装置１は、制御部１１０、記憶部１２０、入力部１３０、表示部１４０、通信部１５０を有する。制御部１１０は、情報処理装置１の構成要素を制御する。制御部１１０は、ＣＰＵ（Central Processing Unit）１１１、ＲＡＭ（Random Access Memory）１１２およびＲＯＭ（Read Only Memory）１１３を有する。ＣＰＵ１１１は、種々の演算を行う装置である。ＲＡＭ１１２は、ＣＰＵ１１１がプログラムを実行する際の作業エリアとして機能する記憶装置である。ＲＯＭ１１３は、プログラムやデータを記憶する記憶装置である。記憶部１２０は、内蔵フラッシュメモリや、ＨＤＤ（Hard Disk Drive）、着脱式のメモリカード等の不揮発性の記憶装置を含む。記憶部１２０は、ＯＳ１１およびＯＳ２１等の基本プログラムや、ＯＳ上で動作するアプリケーションプログラム、ＶＭ間通信機能３０およびＶＭＭ４０を実現するためのプログラム等、種々のプログラムおよびデータを記憶する。制御部１１０が記憶部１２０に記憶されているプログラムを実行することにより、図１の機能が実現される。状態保持部１２１、タイミング記憶部１２２、状態出力部１２５、アクセス制限部１２７等、情報を記憶する機能は、ＲＡＭ１１１や記憶部１２０に記憶領域を確保し、この記憶領域に情報を記憶する。
【００４６】
入力部１３０は、制御部１１０に情報を入力する。入力部１３０は、テンキーや、キーパッド、ボタン、タッチパッド、タッチパネル等の入力装置を含む。表示部１４０は、情報を表示する。ＬＣＤ（Liquid Crystal Display）や、ＥＬディスプレイ等の表示装置を含む。通信部１５０は、移動通信網を介した通信を行う。通信部１５０は、アンテナや、増幅器等の送受信装置を含む。
【００４７】
この例で、ＲＡＭ１１２、ＲＯＭ１１３または記憶部１２０は、複数の実行環境を実現するための命令群を記憶した環境記憶手段または記憶手段の一例である。ＣＰＵ１１１は、これらの命令群を実行する実行手段の一例である。
【００４８】
２．動作
２−１．状態情報の送信
次に、状態通信装置１２の動作を説明する。ここでは、実行環境１０が送信元の実行環境であり、実行環境２０が送信先の実行環境である場合を例に説明する。状態通信装置１２は、あるイベントを契機として、状態保持部１２１に記憶されている状態情報を実行環境２０に送信する。契機となるイベントには、（１）新たな状態情報が入力されたとき、（２）実行環境１０の実行状態がフォアグラウンド状態からバックグラウンド状態に切り替えられたとき、（３）状態情報を要求されたときがある。以下、（１）〜（３）の各イベントを契機とした状態情報の送信処理を説明する。
【００４９】
２−１−１．新たな状態情報が入力されたときの処理
図７は、新たな状態情報が入力されたときの処理を示すフローチャートである。以下、状態通信装置の構成要素を処理の主体として説明するが、これは、ＣＰＵ１１１が、これらの機能構成を実現するための命令群（プログラムモジュール）を実行して他のハードウェア要素を制御することにより処理が行われることを意味する。
【００５０】
まず送信元の実行環境である実行環境１０において、状態保持部１２１に状態情報が入力される（ステップＳ１０１）。状態情報は、実行環境１０上で動作するアプリケーションプログラムや、ミドルウェア、ＯＳ、デバイスドライバ等から入力される。ステップＳ１０２において、状態保持部１２１は、入力された状態情報と記憶している状態情報とが異なるか判定する。入力された状態情報と記憶している状態情報とが異なると判定された場合（Ｓ１０２：ＹＥＳ）、状態保持部１２１は、処理をステップＳ１０３に移行する。入力された状態情報と記憶している状態情報とが同じであると判定された場合（Ｓ１０２：ＮＯ）、状態保持部１２１は、処理をステップＳ１０５に移行する。
【００５１】
ステップＳ１０３において、状態保持部１２１は、記憶している状態情報を更新する。すなわち、状態保持部１２１は、記憶している状態情報を、入力された状態情報に書き替える。状態情報を更新すると、状態保持部１２１は、更新した状態情報に対応するフラグを「未送信」に書き替える。
【００５２】
ステップＳ１０４において、状態送信部１２３は、送信元の実行環境（この例では実行環境１０）の実行状態を取得する。
ステップＳ１０５およびステップＳ１０６において、状態送信部１２３は、入力された状態情報を直ちに送信するか判断する。この例では、状態送信部１２３は、状態情報が情報提示状態ではないか、または、送信元の実行環境がフォアグラウンド状態ではない場合に、状態情報を送信する。具体的には次のとおりである。状態送信部１２３は、ステップＳ１０１で入力された状態情報について、タイミング記憶部１２２に記憶されている条件が満たされたか判断する。具体的には、ステップＳ１０５において、状態送信部１２３は、入力された状態情報が情報提示状態に属するものであるか判断する。入力された状態情報が情報提示状態に属するものであると判断された場合（Ｓ１０５：ＹＥＳ）、状態送信部１２３は、処理をステップＳ１０６に移行する。入力された状態情報が情報提示状態に属するものでない（すなわち、入力された状態情報が設定状態に属するものである）と判断された場合（Ｓ１０５：ＮＯ）、状態送信部１２３は、処理をステップＳ１０７に移行する。また、ステップＳ１０６において、状態送信部１２３は、送信元の実行環境の実行状態がフォアグラウンド状態であるか判断する。送信元の実行環境の実行状態がフォアグラウンド状態であると判断された場合（Ｓ１０６：ＹＥＳ）、状態送信部１２３は、図７の処理を終了する。送信元の実行環境の実行状態がフォアグラウンド状態でない（すなわち、送信元の実行環境の実行状態がバックグラウンド状態である）と判断された場合（Ｓ１０６：ＮＯ）、状態送信部１２３は、処理をステップＳ１０７に移行する。
【００５３】
ステップＳ１０７において、状態送信部１２３は、状態保持部１２１に記憶されている状態情報の中から、フラグが「未送信」の状態情報を抽出する。ステップＳ１０８において、状態送信部１２３は、抽出した状態情報を送信先の実行環境（この例では実行環境２０）に送信する。ステップＳ１０９において、状態送信部１２３は、状態保持部１２１にアクセスし、送信した状態情報に対応するフラグを「送信済み」に書き替える。この場合において、送信エラーを示す応答を状態通信装置１２が受信したときは、状態送信部１２３は状態保持部１２１にアクセスし、エラーが発生した状態情報に対応するフラグを「未送信」に書き替える。フラグの書き替えが完了すると、状態通信装置１２は、図７の処理を終了する。
【００５４】
次に送信先の実行環境である実行環境２０において、状態受信部２２４は、実行環境１０から状態情報を受信する（ステップＳ１１０）。ステップＳ１１１において、状態出力部２２５は、受信した状態情報を、これを利用する機能に対して出力する。ここでは、状態情報は状態利用部２２６に出力される。ステップＳ１１２において、状態利用部２２６は、受信した状態情報を利用する。状態情報を利用すると、状態通信装置２２は、図７の処理を終了する。
【００５５】
２−１−２．実行状態が切り替えられたとき
図８は、実行状態が切り替えられたときの処理を示すフローチャートである。この例では、図８のフローの開始前において、実行環境１０がフォアグラウンド状態であり、実行環境２０がバックグラウンド状態である。図８の処理は、実行状態の切り替えの契機（ユーザによるボタン操作やシステムイベント）が発生したときに実行される。
【００５６】
ステップＳ２０１において、状態送信部１２３は、送信元の実行環境の実行状態のフォアグラウンド状態からバックグランド状態への切り替えが完了したことを検知する。この例では、ＶＭＭ４０が、実行環境１０および実行環境２０の実行状態を管理している。ＶＭＭ４０は、実行環境１０の実行状態をフォアグラウンド状態からバックグラウンド状態に切り替える。切り替えが完了すると、ＶＭＭ４０は、切り替えが完了した旨を管理下にある実行環境（実行環境１０および実行環境２０）に通知する。状態送信部１２３は、ＶＭＭ４０からの通知により、実行環境１０の実行状態がフォアグラウンド状態からバックグラウンド状態に切り替えられたことを検知する。
【００５７】
ステップＳ２０２において、状態送信部１２３は、状態保持部１２１が記憶している状態情報の中から、フラグが「未送信」の状態情報を抽出する。ステップＳ２０３において、状態送信部１２３は、抽出した状態情報を送信する。ステップＳ２０４において、状態送信部１２３は、状態保持部１２１にアクセスし、送信した状態情報に対応するフラグを「送信済み」に書き替える。フラグを書き替えると、状態通信装置１２は、図８の処理を終了する。
【００５８】
２−１−３．状態情報を要求されたとき
図９は、状態情報を要求されたときの処理を示すフローチャートである。ステップＳ３０１において、状態送信部１２３は、状態情報の要求を受信する。この要求は、状態情報の送信を要求するものであり、状態情報を特定する識別子（例えば状態種別）を含んでいる。
【００５９】
ステップＳ３０２において、状態送信部１２３は、状態保持部１２１に記憶されている状態情報の中から、要求に含まれる状態種別と同一の状態種別に対応するものを抽出する。ステップＳ３０３において、状態送信部１２３は、抽出した状態情報を、要求の送信元の実行環境に送信する。ステップＳ３０４において、状態送信部１２３は、状態保持部１２１にアクセスし、送信した状態情報に対応するフラグを「送信済み」に書き替える。フラグを書き替えると、状態通信装置１２は、図９の処理を終了する。
【００６０】
２−２．アクセス制限
２−１−１〜３節では、状態情報のアクセス制限についての説明を割愛したので、ここでアクセス制限について説明する。ここでは、２−１−２節の実行状態が切り替えられたときの処理におけるアクセス制限を例に説明するが、２−１−１節や２−１−３節の処理においても同様にアクセス制限が行われる。
【００６１】
図１０は、アクセス制限の処理を示すフローチャートである。図１０において、図８と重複する部分には同一の符号が割り当てられている。ステップＳ２０２の処理を終了すると、状態送信部１２３は、抽出した状態情報の中から、送信が制限されているものを除外する（ステップＳ４０１）。詳細には以下のとおりである。状態送信部１２３は、アクセス制限管理部１２７に対し、抽出した状態情報の送信可否の問い合わせを送信する。この問い合わせは、状態種別を含んでいる。問い合わせを受信すると、アクセス制限管理部１２７は、問い合わせに含まれる状態種別を抽出する。アクセス制限管理部１２７は、記憶しているポリシーを参照して、抽出された状態種別に対応する状態情報のアクセス制限の内容を抽出する。アクセス制限管理部１２７は、抽出されたアクセス制限の内容（図５の例では、「送信する」、「送信しない」および「ユーザに問い合わせ」のいずれか）を、問い合わせに対する応答として状態送信部１２３に送信する。状態送信部１２３は、受信した応答に含まれるアクセス制限の内容が「送信しない」となっている状態情報については、送信の対象から除外する。
【００６２】
ステップＳ４０２において、状態送信部１２３は、ユーザへの問い合わせが必要であるか、すなわち、アクセス制限の内容が「ユーザに問い合わせ」となっている状態情報があるか判断する。ユーザへの問い合わせが必要であると判断された場合（Ｓ４０２：ＹＥＳ）、状態送信部１２３は、処理をステップＳ４０３に移行する。ユーザへの問い合わせが必要でないと判断された場合（Ｓ４０２：ＮＯ）、状態送信部１２３は、処理をステップＳ２０３に移行する。
【００６３】
ステップＳ４０３において、状態送信部１２３は、ユーザに送信可否を問い合わせる。具体的には以下のとおりである。状態送信部１２３は、アクセス制限の内容が「ユーザに問い合わせ」となっているすべての状態情報について、送信の可否を入力させる画面を表示する。ユーザは、画面を見て入力部１３０を操作し、送信の可否を入力する。ステップＳ４０４において、状態送信部１２３は、ユーザが「送信しない」と入力した状態情報については送信の対象から除外する。
ステップＳ２０３以降の処理については既に説明したとおりである。ここでは、ステップＳ４０１〜Ｓ４０４で送信の対象から除外された状態情報は送信されない。
【００６４】
次に、送信先の実行環境上で動作する状態通信装置である状態通信装置２２における処理を説明する。ステップＳ４１０において、状態受信部２２４は、状態通信装置１２（実行環境１０）から状態情報を受信する。
【００６５】
ステップＳ４１１において、状態受信部２２４は、受信した状態情報の中から、受信が制限されているものを除外する。詳細には以下のとおりである。状態受信部２２４は、アクセス制限管理部２２７に対し、受信した状態情報の受信可否の問い合わせを送信する。この問い合わせは、状態種別を含んでいる。問い合わせを受信すると、アクセス制限管理部２２７は、問い合わせに含まれる状態種別を抽出する。アクセス制限管理部２２７は、記憶しているポリシーを参照して、抽出された状態種別に対応する状態情報のアクセス制限の内容を抽出する。アクセス制限管理部２２７は、抽出されたアクセス制限の内容（図５の例では、「受信する」、「受信しない」および「ユーザに問い合わせ」のいずれか）を、問い合わせに対する応答として状態受信部２２４に送信する。状態受信部２２４は、受信した応答に含まれるアクセス制限の内容が「受信しない」となっている状態情報については、受信の対象から除外、すなわち削除する。なお、受信の対象から除外された状態情報について、状態受信部２２４は、送信元にエラーメッセージを返す。あるいは、状態受信部２２４は、送信元にエラーメッセージを返さなくてもよい。
【００６６】
ステップＳ４１２において、状態受信部２２４は、ユーザへの問い合わせが必要であるか、すなわち、アクセス制限の内容が「ユーザに問い合わせ」となっている状態情報があるか判断する。ユーザへの問い合わせが必要であると判断された場合（Ｓ４１２：ＹＥＳ）、状態受信部２２４は、処理をステップＳ４１３に移行する。ユーザへの問い合わせが必要でないと判断された場合（Ｓ４１２：ＮＯ）、状態受信部２２４は、処理をステップＳ４１５に移行する。
【００６７】
ステップＳ４１３において、状態受信部２２４は、ユーザに受信可否を問い合わせる。具体的には以下のとおりである。状態受信部２２４は、アクセス制限の内容が「ユーザに問い合わせ」となっているすべての状態情報について、受信の可否を入力させる画面を表示する。ユーザは、画面を見て入力部１３０を操作し、受信の可否を入力する。ステップＳ４１４において、状態受信部２２４は、ユーザが「受信しない」と入力した状態情報については受信の対象から除外、すなわち削除する。
【００６８】
ステップＳ４１５において、状態出力部２２５は、受信した状態情報を、それを利用する機能に対して出力する。状態情報が入力された機能は、状態情報を利用する。状態情報を利用すると、状態通信装置２２は、図１０の処理を終了する。受信されて状態出力部２２５により出力された状態情報について、状態受信部２２４は、送信元の実行環境に対して確認応答（ＡＣＫ）を送信する。
【００６９】
２−３．利用制限
図１１は、送信先（この例では実行環境２０）における状態情報の利用制限を示すフローチャートである。ステップＳ５０１において、状態受信部２２４は、実行環境１０から状態情報を受信する。ステップＳ５０２において、状態出力部２２５は、受信した状態情報を状態利用部２２６に出力する。
【００７０】
ステップＳ５０３において、入力された状態情報の中から、利用が制限されているものを除外する。具体的には以下のとおりである。状態利用部２２６は、アクセス制限管理部２２７に対し、入力された状態情報の利用可否の問い合わせを送信する。この問い合わせは、状態種別を含んでいる。問い合わせを受信すると、アクセス制限管理部２２７は、問い合わせに含まれる状態種別を抽出する。アクセス制限管理部２２７は、記憶しているポリシーを参照して、抽出された状態種別に対応する状態情報のアクセス制限の内容を抽出する。アクセス制限管理部２２７は、抽出されたアクセス制限の内容（図５の例では、「利用する」、「利用しない」および「ユーザに問い合わせ」のいずれか）を、問い合わせに対する応答として状態利用部２２６に送信する。状態利用部２２６は、受信した応答に含まれるアクセス制限の内容が「利用しない」となっている状態情報については、利用の対象から除外、すなわち削除する。
【００７１】
ステップＳ５０４において、状態利用部２２６は、ユーザへの問い合わせが必要であるか、すなわち、アクセス制限の内容が「ユーザに問い合わせ」となっている状態情報があるか判断する。ユーザへの問い合わせが必要であると判断された場合（Ｓ５０４：ＹＥＳ）、状態利用部２２６は、処理をステップＳ５０５に移行する。ユーザへの問い合わせが必要でないと判断された場合（Ｓ５０４：ＮＯ）、状態利用部２２６は、処理をステップＳ５０７に移行する。
【００７２】
ステップＳ５０５において、状態利用部２２６は、ユーザに利用可否を問い合わせる。具体的には以下のとおりである。状態利用部２２６は、アクセス制限の内容が「ユーザに問い合わせ」となっているすべての状態情報について、利用の可否を入力させる画面を表示する。ユーザは、画面を見て入力部１３０を操作し、利用の可否を入力する。ステップＳ５０６において、状態利用部２２６は、ユーザが「利用しない」と入力した状態情報については利用の対象から除外、すなわち削除する。
【００７３】
ステップＳ５０７において、状態利用部２２６は、状態情報を利用する。状態情報を利用すると、状態通信装置２２は、図１１の処理を終了する。
【００７４】
２−４．具体的動作例
以下、具体的動作例を説明する。ここでは、（１）セキュアな実行環境からの情報処理装置１の設定変更、（２）バックグラウンド状態の実行環境におけるメール受信の表示、の２つの具体例を説明する。
【００７５】
２−４−１．動作例１：セキュアな実行環境からの設定変更
この例で、実行環境１０および実行環境２０はセキュリティレベルが異なっている。実行環境１０は非セキュアな実行環境であり、実行環境２０はセキュアな実行環境である。ここで、「セキュアな実行環境」とは、信頼されたプログラムのみが動作するクローズドな実行環境をいう。「非セキュアな実行環境」とは、信頼できないサードパーティのプログラムをインストールまたは実行できるオープンな実行環境をいう。ここでは、設定状態に関する状態情報を非セキュアな実行環境からセキュアな実行環境に送信し、セキュアな実行環境において情報処理装置１の設定変更を行う例を説明する。ここで、「セキュア」および「非セキュア」とは、相対的に一方がよりセキュアで他方がよりセキュアでない状態を意味する。
【００７６】
この例において、対象となる状態種別は「ロック状態」である。情報処理装置１は、実行環境１０上において、セキュリティ上、直接、情報処理装置１のロック状態の設定は変更できないように設計されている。すなわち、実行環境１０上で動作するプログラムがロック状態の設定を行うには、実行環境２０に依頼する必要がある。いま、実行環境１０がフォアグラウンド状態であり、実行環境２０がバックグラウンド状態である。ロック状態はオフ、すなわち、入力部１３０からの入力を受け付ける状態に設定されている。実行環境１０においては、ロック状態の設定を変更するためのアプリケーションプログラム（以下「ロック変更アプリ」という）が実行されている。
【００７７】
図１２は、セキュアな実行環境からの設定変更の処理を示すフローチャートである。ここでは簡単のため、アクセス制限などの処理は省略している。ステップＳ６０１において、ロック変更アプリは、状態通信装置１２を呼び出し、ロック状態をオンにする状態情報を入力する。実行環境１０においては情報処理装置１の設定を変更することができないので、ロック変更アプリは、設定の変更をするのではなく、状態通信装置１２を呼び出し、ロック状態をオンにする状態情報を入力するように構成されている。
【００７８】
ステップＳ６０２において、状態保持部１２１は、ロック変更アプリにより入力された状態情報を記憶する。ステップＳ６０３において、状態送信部１２３は、入力された状態情報を実行環境２０に送信する。状態情報を送信すると状態通信装置１２は図１２の処理を終了する。この間、実行環境１０はフォアグラウンド状態のままである。
【００７９】
実行環境２０において、状態通信装置２２の状態受信部２２４は、実行環境１０から状態情報を受信する（ステップＳ６０４）。ステップＳ６０５において、状態出力部２２５は、受信した状態情報を状態利用部２２６に出力する。ステップＳ６０６において、状態利用部２２６は、状態出力部２２５から出力された状態情報を利用する。具体的には以下のとおりである。この状態情報は情報処理装置１のロック状態をオンに変更するためのものである。実行環境２０上では、情報処理装置１のロック状態を変更するプログラムが動作する。状態出力部２２５は、このプログラムを呼び出してロック状態をオンに変更させる。この間、実行環境２０はバックグラウンド状態のままである。状態情報を利用すると、状態通信装置２２は図１２の処理を終了する。
【００８０】
２−４−２．動作例２：バックグラウンド状態の実行環境におけるメール受信の表示
この例で、実行環境１０はバックグラウンド状態であり、実行環境２０はフォアグラウンド状態である。対象となる状態種別は「メール着信」である。実行環境１０においては、メールを受信するためのアプリケーションプログラム（以下「メーラ」という）が実行されている。
【００８１】
新たなメールを受信すると、メーラは、状態通信装置１２を呼び出し、新着メールがあったことを示す状態情報（例えば「３通未読」）を入力する。状態保持部１２１は、メーラにより入力された状態情報を記憶する。状態送信部１２３は、入力された状態情報を実行環境２０に送信する。この間、実行環境１０はバックグラウンド状態のままである。
【００８２】
実行環境２０において、状態通信装置２２の状態受信部２２４は、実行環境１０から状態情報を受信する。状態出力部２２５は、受信した状態情報をプログラム「ステータスバー」に出力する。ステータスバーは、メール着信があったこと等を画面上に表示するためのプログラムである。
【００８３】
図１３は、動作例２における画面の遷移を示す図である。図１３（ａ）は状態情報が通信される前の状態を、図１３（ｂ）は状態情報が通信された後の状態を示している。画面は、ステータスバーＳＢと、自由領域ＦＡとに分かれている。自由領域ＦＡは、アプリケーションプログラムが自由に使用することができる表示領域である。ステータスバーＳＢは、電池残量、電波強度、現在時刻など、所定のパラメータに関する情報を表示するための表示領域である。この例では、自由領域ＦＡにはフォアグラウンド状態にある実行環境の画面のみが表示される。この例ではフォアグラウンド状態にあるのは実行環境２０なので、自由領域ＦＡには実行環境２０上で動作するアプリケーションプログラムの画面が表示される。しかし、ステータスバーＳＢには、バックグラウンド状態にある実行環境における状態（この例では未読メールの数）が表示される。アイコンＩ１は、未読メールが２通あることを示す画像である。アイコンＩ２は、未読メールが３通あることを示す画像である。自由領域ＦＡには実行環境２０の画面が表示されているが、実行環境１０における状態の変化に応じて、ステータスバーＳＢの画面が更新される。
【００８４】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００８５】
３−１．変形例１
状態通信装置と実行環境との関係は、実施形態で説明したものに限定されない。状態通信装置１２の機能の一部または全部が、送信元の実行環境（実行環境１０）および送信先の実行環境（実行環境２０）以外の実行環境上で動作してもよい。
【００８６】
図１４は、変形例１に係る情報処理装置１の機能構成を示す図である（状態通信装置２２の詳細は省略している）。この例で、情報処理装置１は、実行環境１０および実行環境２０に加え、実行環境５０を有する。実行環境１０および実行環境２０は一方がフォアグラウンド状態となり他方がバックグラウンド状態となるが、実行環境５０は常にバックグラウンド状態である。この例で、実行環境５０上で、ＯＳ５１が動作する。ＯＳ５１上では、状態通信装置５２が動作する。状態通信装置５２は、状態保持部１２１を有する。実行環境１０上の状態通信装置１２は、状態保持部１２１を有していない。状態通信装置１２の機能要素が状態保持部１２１にアクセスしたいときは、ＶＭ間通信機能３０を介して実行環境５０にアクセスする。なお、実行環境１０と実行環境５０との間の機能の分配は図１４に例示したものに限定されない。状態通信装置１２の機能は、実行環境１０と実行環境５０との間でどのように分配されてもよい。また、実行環境５０は、フォアグラウンド状態に切り替わる実行環境であってもよい。
【００８７】
３−２．変形例２
実行環境１０と実行環境２０との関係は実施形態で説明したものに限定されない。実行環境２０は実行環境１０上で動作してもよい。
【００８８】
図１５は、変形例２に係る情報処理装置１の機能構成を示す図である。この例で、実行環境１０と実行環境２０とは、ＯＳ１１がホストＯＳでありＯＳ２１がゲストＯＳとなる関係を有している。ＯＳ２１は、仮想マシンを生成するアプリケーションプログラムにより、ＯＳ１１上で動作する。このアプリケーションプログラムにより、実行環境１０と実行環境２０とは情報の通信をすることができる。状態情報の通信の方法は実施形態で説明したものと同様である。なお、ホストＯＳとゲストＯＳの関係は図１５に例示されたものに限定されない。ＯＳ２１がホストＯＳでありＯＳ１１がゲストＯＳとなる関係を有していてもよい。
【００８９】
３−３.変形例３
状態情報を送信する条件は、実施形態で説明したものに限定されない。実行環境１０および実行環境２０のうち、条件の対象となる対象実行環境の実行状態に関する条件を含むものであれば、どのような条件が用いられてもよい。対象実行環境の実行状態に関する条件としては、実施形態で既に説明したものも含め、例えば以下の条件が用いられる。これらの条件のうち１つのものが単独で用いられてもよいし、他の条件と組み合わせて用いられてもよい。以下の例では、対象実行環境は送信元の実行環境である。
（１）送信元の実行環境がバックグラウンド状態であるときに状態情報を送信する。
（２）送信元の実行環境がフォアグラウンド状態からバックグラウンド状態に切り替わったときに状態情報を送信する。
（３）優先度が高い状態種別については送信元の実行環境の実行状態によらずに状態情報を送信する。
（４）優先度が低い状態種別については送信元の実行環境がバックグラウンド状態であるときに状態情報を送信する。
（５）優先度が低い状態種別については送信元の実行環境がフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信する。（３）〜（５）の場合、タイミング記憶部１２２が記憶しているデータセットは、各状態種別についての優先度を含む。
（６）情報提示状態に関する状態情報については、送信元の実行環境がフォアグラウンド状態であるときには送信しない。
（７）情報提示状態に関する状態情報については、送信元の実行環境がバックグラウンド状態であるときに送信する。
（８）情報提示状態に関する状態情報については、送信元の実行環境がフォアグラウンド状態からバックグラウンド状態に切り替わったときに送信するという条件を含む
（９）送信元の実行環境がフォアグラウンド状態からバックグラウンド状態に切り替わった後で状態情報を送信する。
【００９０】
上記の条件（１）〜（９）は、対象実行環境が送信元の実行環境である場合の例であったが、対象実行環境は送信先の実行環境であってもよい。この場合、例えば条件（１）は、「送信先の実行環境がフォアグラウンド状態であるときに状態情報を送信する」と読み替えられる。条件（２）〜（９）についても同様である。
【００９１】
対象実行環境の実行状態に関する条件に加えて、実行状態とは関係ない他の条件があわせて用いられてもよい。このような条件の例として、例えば以下の条件がある。
（１０）設定状態に関する状態情報については、対象実行環境の実行状態によらず、入力されるとすぐに送信する。情報提示状態に関する状態情報については、対象実行環境の実行状態に応じて送信する。このように、状態情報の区分や種別に応じて、対象実行環境の実行状態に応じて送信するか対象実行環境の実行状態によらずに送信するかを切り替える。
（１１）状態保持部１２１が記憶している状態情報の量（データセットの数またはデータサイズ）がしきい値を超えた場合に、状態情報を送信する。この場合、状態保持部１２１は、状態情報の量に関するしきい値（例、データセットの上限値＝３、データサイズの上限値＝１ｋＢ）を記憶している。
（１２）一のデータセットに含まれる状態情報を送信するときに、他のデータセットに属する状態情報も併せて送信する。
（１３）他のプログラムや他の装置から要求を受けたときに、要求に応じて状態情報を送信する。
（１４）前回状態情報を送信してから所定の時間が経過したときに、状態情報を送信する。この場合、状態保持部１２１は、前回状態情報を送信した時刻と、状態情報を送信する時間間隔を記憶している。
（１５）送信先の実行環境に障害が発生した場合や、送信先の実行環境が初期化された場合。この場合、状態保持部１２１は、送信先の実行環境に障害が発生したことや、送信先の実行環境が初期化されたことを示す情報を取得する。
（１６）マスターとなる実行環境が起動した場合。例えば、セキュアな実行環境２０がマスターである場合、実行環境２０が起動したときに、指定された状態情報を実行環境１０に送信する。この場合において、タイミング記憶部１２２は、マスターとなる実行環境および送信すべき状態情報を特定するための情報を記憶しており、状態送信部１２３は、タイミング記憶部１２２に記憶されている情報に基づいて、マスターとなる実行環境および送信すべき状態情報を特定する。あるいは、状態送信部１２３は、ＶＭＭ４０等、実行環境１０の外部から、マスターとなる実行環境および送信すべき状態情報を特定する情報を取得してもよい。
（１７）送信先の実行環境にて設定情報などがリセットされた場合。例えば、実行環境２０において設定情報が初期値に変更された場合に、状態送信部２２３は、指定された状態情報を実行環境１０に送信する。
【００９２】
また、図７のステップＳ１０５および１０６で説明した、新たな状態情報が入力されたときにその状態情報を直ちに送信するか否かを判断する条件も、実施形態で説明したものに限定されない。この条件は、例えば、状態種別が「メール着信」であればすぐに送信し、それ以外のものであればすぐには送信しないといったように、状態情報の区分や種別に関するものであってもよい。
【００９３】
３−４．変形例４
状態通信装置１２の機能要素間の機能の分担は、実施形態で説明したものに限定されない。例えば、実施形態では、状態送信部１２３が、送信元の実行環境の実行状態を取得したり、タイミング記憶部１２２に記憶されている条件が満たされたかの判断をする機能を有する例を説明した。しかし、別の機能要素がこれらの機能の一部を有していてもよい。要は、状態通信装置１２が全体として実施形態で説明した機能を有していれば、要素ごとの機能の分担はどのようなものであってもよい。
また、状態通信装置１２の機能の一部は、省略されてもよい。例えば、状態通信装置１２は、アクセス制限に関する機能や、状態情報を利用する機能を有していなくてもよい。状態通信装置２２についても同様である。
これに関連して、図７〜１２のフローの一部の処理が省略されてもよい。
【００９４】
３−５．変形例５
フォアグラウンド状態とバックグラウンド状態における画面の使用方法は、図１３で例示したものに限定されない。全画面がフォアグラウンドの実行環境の画面になるのではなく、マルチウインドウシステムにおいて、フォアグラウンド状態の実行環境によるウインドウが最前面に表示されてもよい。
【００９５】
３−６．変形例６
実行状態が切り替わったことを検知する処理（ステップＳ２０１）は、実施形態で説明したものに限定されない。状態送信部１２３は、実行環境１０の実行状態についての情報を有している機能（プログラムや装置）から、実行環境１０の実行状態を取得してもよい。この場合、状態送信部１２３は、実行状態の問い合わせ先となる機能の識別子（プログラム名やＩＰアドレス等）を記憶している。状態送信部１２３は、記憶している問い合わせ先に、実行環境１０の実行状態を問い合わせる。問い合わせを受けたプログラムや装置は、実行環境の実行状態を含む応答を状態送信部１２３に返す。状態送信部１２３は、この応答から実行状態を取得する。例えば、情報処理装置１が実行環境間での表示部１４０（ディスプレイ）の切り替え制御機能を有しており、この制御機能が、フォアグラウンド状態にある実行環境の識別子を記憶している場合、状態送信部１２３は、この切り替え制御機能から実行状態を取得してもよい。
【００９６】
３−７．変形例７
アクセス制限のポリシーは実施形態で説明したものに限定されない。図５の例では、ポリシーが、受信時、送信時、利用時のそれぞれの利用制限を含んでいた。しかし、これらの一部がポリシーから省略されてもよい。例えば、ポリシーは、送信時の利用制限に関するものだけでもよい。
【００９７】
３−８．変形例８
状態情報は、実施形態で説明したものに限定されない。例えば、状態情報は、フォアグラウンド状態にある実行環境が切り替えられたときに、その切り替えがユーザ操作によるものなのか、システムイベントによるものなのかを示す情報を含んでもよい。状態情報は、ユーザが特定の操作をしたこと、メニューの特定の項目が選択されたこと、通信が発生したこと、特定の情報が表示されていることなどを示す情報を含んでもよい。これらの状態情報は、例えば、これらの処理の実行をフックすることにより取得することができる。
【００９８】
３−９．変形例９
状態通信装置１２および状態通信装置２２は、受信した状態情報の検査を行う検査手段を有していてもよい。ここでいう検査とは、例えば、状態情報の値が正常範囲内であるか、状態情報のフォーマットが正しいか、状態情報の中に不正な文字列がないか、についての検査である。この場合、状態出力部１２５および状態出力部２２５は、検査に合格した状態情報を出力する。
【００９９】
３−１０．変形例１０
図１に示される機能を実現するためのハードウェア構成は、図６で説明されたものに限定されない。例えば、汎用のＣＰＵに代わり、特定の処理を行うプロセッサが用いられてもよい。
上述の実施形態においてＣＰＵ１１１によって実行されるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピュータ読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【０１００】
３−１１．変形例１１
実施形態に関連して２−２節において説明したアクセス制限は、実行環境のセキュリティレベルに基づく制限を含んでもよい。例えば、アクセス制限管理部１２７は、実行環境１０よりも実行環境２０が非セキュアな場合、実行環境１０から実行環境２０への状態情報の送信を禁止するというポリシーを設定してもよい。また、実行環境２０に加えて１以上の更なる実行環境がある場合、アクセス制限管理部１２７は、実行環境１０よりも非セキュアな実行環境への実行環境１０からの状態情報の送信を禁止するというポリシーを設定することができる。
【０１０１】
３−１２．変形例１２
実施形態では、他のプログラムや装置からの要求に応じて、アクセス制限のポリシーを、実行環境１０で動作する状態通信装置１２のアクセス制限管理部１２７によって変更した。しかしながら、アクセス制限のポリシーの変更は、実行環境１０よりセキュアな実行環境によって要求がなされた場合にのみ実行可能としてもよい。
【符号の説明】
【０１０２】
１…情報処理装置、１０…実行環境、１１…ＯＳ、１２…状態通信装置、２０…実行環境、２１…ＯＳ、２２…状態通信装置、３０…ＶＭ間通信機能、４０…ＶＭＭ、１１０…制御部、１１１…ＣＰＵ、１１２…ＲＡＭ、１１３…ＲＯＭ、１２０…記憶部、１２１…状態保持部、１２２…タイミング記憶部、１２３…状態送信部、１２４…状態受信部、１２５…状態出力部、１２６…状態利用部、１２７…アクセス制限管理部、１３０…入力部、１４０…表示部、１５０…通信部、２２１…状態保持部、２２２…タイミング記憶部、２２３…状態送信部、２２４…状態受信部、２２５…状態出力部、２２６…状態利用部、２２７…アクセス制限管理部
【図１】
0005566309.tif 000002
【図２】
0005566309.tif 000003
【図３】
0005566309.tif 000004
【図４】
0005566309.tif 000005
【図５】
0005566309.tif 000006
【図６】
0005566309.tif 000007
【図７】
0005566309.tif 000008
【図８】
0005566309.tif 000009
【図９】
0005566309.tif 000010
【図１０】
0005566309.tif 000011
【図１１】
0005566309.tif 000012
【図１２】
0005566309.tif 000013
【図１３】
0005566309.tif 000014
【図１４】
0005566309.tif 000015
【図１５】
0005566309.tif 000016