(57)【要約】【課題】データの不適切な利用を防止すると共に当該データを適切に利用する。【解決手段】データ処理装置１の第１仮想マシン４１は、実行することが許容される処理内容が予め特定され、実データＤ０１に対応付けられた仮想データＤ１１を第１記憶部１０１に格納し、処理内容が特定された処理命令を受信部２０１において受信し、この処理命令の処理内容が、仮想データＤ１１に対して処理を実行することが許容されるか否かを判定部２０２において判定し、許容されると判定された場合に、実データＤ０１の処理を第２仮想マシン４２へ要求する。第１仮想マシン４１とは異なるオペレーションシステムにより動作する第２仮想マシン４２は、実データＤ０１を第２記憶部１０２に格納し、実行処理部２１１において実データＤ０１を用いて実行されるプログラムを格納し、第１仮想マシン４１からの要求に基づいて、当該プログラムを実行する。【選択図】図１
2010191681.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置であって、
前記第１仮想マシンは、
実行することが許容される処理内容があらかじめ特定され、前記第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第１記憶手段と、
前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信手段と、
前記受信手段により受信された前記処理命令に含まれる前記処理内容を特定する情報に基づいて、前記仮想データに対して処理を実行することが許容されるか否かを判定する判定手段と、
前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第２仮想マシンへ要求する処理要求手段と、
を備え、
前記第２仮想マシンは、
前記データを格納する第２記憶手段と、
前記データを用いて実行されるプログラムを格納し、前記１仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記第２仮想マシンは、前記第２記憶手段に格納される前記データが更新された場合に、前記第２記憶手段に格納される前記データの更新に係る情報が含まれる更新情報を前記第１仮想マシンに通知する通知手段を更に備え、
前記第１仮想マシンは、前記通知手段より通知される前記更新情報を取得し、当該更新情報に基づいて第１記憶手段に格納される前記仮想データを更新する更新手段を更に備える
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第１仮想マシンは、前記第２仮想マシンに対して前記データの実行処理の終了を要求する処理終了要求手段を更に備え、
前記実行処理手段は、前記処理終了要求手段からの要求に基づいて、前記データを用いた前記プログラムの実行を中止する
ことを特徴とする請求項１または２記載のデータ処理装置。
【請求項４】
前記実行処理手段は、前記第２記憶手段に格納される前記データをあらかじめ実行可能な状態にすることを特徴とする請求項１〜３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記第２仮想マシンは、
前記受信手段において前記処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段を更に備え、
前記実行処理手段は、前記イベント情報受信手段が前記イベント情報を受信した後の一定時間のみ、前記処理要求手段からの要求に基づいて、前記データを用いて前記プログラムを実行する
ことを特徴とする請求項１〜４のいずれか一項に記載のデータ処理装置。
【請求項６】
前記第２仮想マシンは、
前記イベント情報受信手段により受信された前記イベント情報と、前記イベント情報を受信した後に前記実行処理手段により用いられた前記データと、を対応付けて格納する第３記憶手段とを更に備え、
前記実行処理手段は、前記イベント情報受信手段が前記イベント情報を受信した際に、前記第３記憶手段を参照し、前記イベント情報受信手段が受信した前記イベント情報に対応付けて格納される前記データをあらかじめ実行可能な状態にする
ことを特徴とする請求項５記載のデータ処理装置。
【請求項７】
前記実行処理手段により前記データを用いて前記プログラムを実行した結果を出力する出力手段を更に備えることを特徴とする請求項１〜６のいずれか一項に記載のデータ処理装置。
【請求項８】
前記出力手段は、前記第１仮想マシンにより制御されるディスプレイであって、
前記データは画像データであって、
前記第１仮想マシンは、前記ディスプレイの画面表示を制御する画面制御手段を更に備え、
前記第２仮想マシンは、前記実行処理手段により前記データを用いて前記プログラムを実行した結果を前記ディスプレイに対して表示させる表示手段を更に備え、
前記画面制御手段は、前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記ディスプレイのうち前記データを用いて前記プログラムを実行した結果を表示するための画像表示領域を透過色に設定し、
前記表示手段は、前記データを用いて前記プログラムを実行した結果を前記画像表示領域に表示させる
ことを特徴とする請求項７記載のデータ処理装置。
【請求項９】
前記画面制御手段は、前記画像表示領域の変更に係る情報である変更情報を前記表示手段に通知し、
前記表示手段は、前記変更情報に基づいて、前記画像表示領域に前記データを用いて前記プログラムを実行した結果を表示させる
ことを特徴とする請求項８記載のデータ処理装置。
【請求項１０】
前記変更情報は、前記画像表示領域の位置とサイズの変更に係る情報であることを特徴とする請求項９記載のデータ処理装置。
【請求項１１】
前記処理要求手段は、前記出力手段への出力が制限されている場合には、前記第２仮想マシンに対する前記データの処理の要求を中止することを特徴とする請求項７〜９のいずれか一項に記載のデータ処理装置。
【請求項１２】
前記データ処理装置は前記出力手段を複数備え、
前記処理要求手段は、前記データを用いて前記プログラムを実行した結果が複数の前記出力手段へ出力される場合に、前記複数の出力手段のうちの一部の出力手段に対してのみ前記プログラムを実行した結果の出力を前記第２仮想マシンに対して要求することを特徴とする請求項７〜１０のいずれか一項に記載のデータ処理装置。
【請求項１３】
互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置によるデータ処理方法であって、
前記第１仮想マシンの第１記憶手段が、実行することが許容される処理内容があらかじめ特定され、前記第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第１記憶ステップと、
前記第１仮想マシンの受信手段が、前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信ステップと、
前記第１仮想マシンの判定手段が、前記受信ステップにおいて受信された前記処理命令に含まれる前記処理内容を特定する情報に基づいて、前記仮想データに対して処理を実行することが許容されるか否かを判定する判定ステップと、
前記第１仮想マシンの処理要求手段が、前記判定ステップにおいて前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第２仮想マシンへ要求する処理要求ステップと、
前記第２仮想マシンの第２記憶手段が前記データを格納する第２記憶ステップと、
前記第２仮想マシンの実行処理手段が、前記データを用いて実行されるプログラムを格納し、前記１仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理ステップと、
を備えることを特徴とするデータ処理方法。
【請求項１４】
互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置におけるデータ処理プログラムであって、
前記第１仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定され、前記第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第１記憶手段と、
前記第１仮想マシンにおいて、前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信手段と、
前記第１仮想マシンにおいて、前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第２仮想マシンへ要求する処理要求手段と、
前記第２仮想マシンにおいて、前記データを格納する第２記憶手段と、
前記第２仮想マシンにおいて、前記データを用いて実行されるプログラムを格納し、前記１仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理手段と、
をコンピュータに機能させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、データ処理プログラムに関する。
【背景技術】
【０００２】
携帯電話等の通信端末の性能の向上に伴い、種々の高機能ＯＳ（Operating System）が通信端末に搭載されるようになり、このＯＳを用いて電子メールやウェブサイトの閲覧等の多くの機能が通信端末の所有者（ユーザ）によって利用されている。特に、ウェブサイトの閲覧機能を用いて、着信メロディや待ち受け画像等のコンテンツを通信端末にダウンロードして用いることは特に一般的となっている。ここで、通信端末のユーザによってダウンロードされるコンテンツの扱いは、コンテンツ提供会社により決められていることが多い。具体的には、例えば、ダウンロードしたコンテンツを通信端末の外へ持ち出すことや、改変して利用することは、コンテンツ提供会社により制限される場合がある。近年では、通信端末内部に保持される個人情報や電子メール等の情報についても、ダウンロードしたコンテンツと同様に持ち出しの制限等を行うことができるような情報の保護を重視した端末設計が検討されつつある。
【０００３】
また、最近では、ＰＣ（Personal Computer）との親和性が高く、カスタマイズ性に強みを持つ通信端末であるスマートフォンの開発が進められている。このスマートフォンは、ＰＣと同様にＣＰＵ（Central Processing Unit）が直接実行可能であるネイティブコードのアプリケーションを追加することができ、当該アプリケーションの高速実行等を行うことができるという特徴を有する。ところが、ＰＣと同様にウイルス等の悪意のあるアプリケーションが実行されてしまうと、通信端末の内部に保持される個人情報やデータ等の消去、改ざん、漏洩等が起きる可能性があるため、上記のような情報の保護を達成することができなくなる恐れがある。そこで、上記のスマートフォンのようにネイティブコードのアプリケーションを使用する通信端末において、アプリケーションの使用と、保護すべき情報の管理との双方を達成するための種々の方法が検討されている。
【０００４】
例えば、特許文献１では、プログラムによって仮想的なＣＰＵ、メモリ、周辺デバイス等を備える仮想マシンを作り出すことにより、１台の物理的な通信端末の中に、ネイティブコードのアプリケーションを実行する仮想マシンと、この仮想マシンで保存されたファイルを検査する上記の仮想マシンとは異なる仮想マシンとを含む複数の仮想マシンを備える構成が示されている。そして、これらの仮想マシンを動作させることにより、脅威あるアプリケーションを仮想マシンにおいて実行する前に、異なる仮想マシンにより検査をすることによって、悪意のあるアプリケーションによる通信端末の攻撃が回避される。
【０００５】
また、特許文献２では、通信端末内部の仮想マシン内には、あらかじめリモートサーバに保管されるコンテンツファイルに対するスケルトンファイルが保持されており、仮想マシン内で実行されるプログラムがこのスケルトンファイルにアクセスした場合には、スケルトンファイルに対応するコンテンツファイルの内容がリモートサーバから取得される構成が示されている。
【０００６】
また、特許文献３では、複数の仮想マシンにおいて利用可能なデータと、各仮想マシンにおいて占有して利用されるデータと、を区別する構成が示されている。
【０００７】
また、特許文献４では、アプリケーションによるデータ表示要求に基づいて、仮想マシンにおいて対応するプログラムを動的に生成して実行する構成が示されている。そして構成によれば、仮想マシンにおいて生成されるプログラムの詳細はアプリケーションに対して秘匿されることから、データ表示に対して行われる処理の詳細が外部に漏洩するという問題が低減される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開第２００８／０１７８２９０号明細書
【特許文献２】米国特許第６７３５６０１号明細書
【特許文献３】米国特許第６７３８９７７号明細書
【特許文献４】米国特許第６６０４１１１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
現在の通信端末では、個人情報やコンテンツ等の重要なデータを保護する目的から、ネットワークからダウンロードしたアプリケーションは重要データを利用できないように制限されている。ネイティブコードのアプリケーションを使用する通信端末において同様の制限を実現するためには、通信端末により用いられるアプリケーションを通信端末内に設けられた二つの仮想マシンに分けて動作させる機構が利用できる。より具体的には、上述の重要なデータを特定の仮想マシンの管轄下に配置し、これらのデータの利用は、この仮想マシンにおいて動作するアプリケーションによってのみ利用される態様とする一方、ネットワークからダウンロードしたアプリケーションは上記の仮想マシンとは異なる仮想マシンにおいて動作させる態様とされる。上記のように、ネットワークからダウンロードしたアプリケーションが悪意のあるものである場合であっても、アプリケーションが動作する仮想マシンとは異なる仮想マシンの管轄下の重要なデータを利用することができない態様とすることにより、重要なデータの改ざんや漏洩等を防止する構成が用いられている。
【００１０】
しかしながら、上記の構成では、重要なデータの改ざんや漏洩等の防止は図られているものの、アプリケーションがデータを十分に利用することができないという問題がある。具体的には、例えば、アプリケーションを動作させる仮想マシンにおいて動作する電話アプリケーションは、この仮想マシンの管轄下にあるデータを着信音として使用することはできても、異なる仮想マシンの管轄下にあるデータを着信音として使用することはできない。このように、動作するアプリケーションが信頼性の高いアプリケーションであっても、通信端末において保持されるデータを十分に利用することができないため、通信端末のユーザはそのアプリケーションを十分に活用することができないという問題があって、これは、上述の特許文献１〜４に記載の技術を用いても解決することができない。
【００１１】
例えば、特許文献１に記載の技術によれば、特定の仮想マシンにおいてアプリケーションを実行する前に異なる仮想マシンにより検査がなされるために、悪意のあるアプリケーションの実行は回避されるが、意図しないアプリケーションが重要なデータにアクセスしてしまうことによる改ざんや漏洩等が発生するという問題がある。
【００１２】
また、特許文献２に記載の技術によれば、仮想マシン内のプログラムが、スケルトンファイルにアクセスした場合には、スケルトンファイルに対応付けてリモートサーバに保管されるコンテンツファイルの内容が取得されるため、悪意のあるプログラムが実行された場合には、コンテンツファイルの内容が当該プログラムにより漏洩する可能性がある。
【００１３】
また、特許文献３に記載の技術によれば、各仮想マシンにおいてのみ占有して利用されるデータは、異なる仮想マシンのアプリケーションが利用することができないため、例えこのアプリケーションが信頼性のあるアプリケーションであってもデータを十分利用できないという問題がある。
【００１４】
また、特許文献４に記載の技術によれば、仮想マシンにおいて生成されたプログラムを実行することにより、データ表示が行われるものの、表示対象となるデータが重要なデータである場合のデータの管理については開示がないため、アプリケーションからの要求に基づいて、秘匿される必要がある重要なデータについても表示されてしまう可能性がある。
【００１５】
このように、特許文献１〜４に記載の技術を用いて、通信端末に保持されるデータを適切に利用することと、保護されるべきデータの管理を適切に行うことと、を両立することは困難である。
【００１６】
本発明は上記を鑑みてなされたものであり、データの不適切な利用を防止すると共に当該データを適切に利用することができるデータ処理装置、データ処理方法、及びデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、本発明に係るデータ処理装置は、互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置であって、第１仮想マシンは、実行することが許容される処理内容があらかじめ特定され、前記第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第１記憶手段と、処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段と、受信手段により受信された処理命令に含まれる処理内容を特定する情報に基づいて、仮想データに対して処理を実行することが許容されるか否かを判定する判定手段と、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第２仮想マシンへ要求する処理要求手段と、を備え、第２仮想マシンは、データを格納する第２記憶手段と、データを用いて実行されるプログラムを格納し、１仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理手段と、を備えることを特徴とする。
【００１８】
上記のデータ処理装置によれば、第１仮想マシンの受信手段において受信され、第１記憶手段に格納される仮想データを用いた処理命令が、あらかじめ仮想データに対応付けて格納され、実行することが許容される処理内容であるかが判定される。そして、実行することが許容されると判定された場合には、仮想データに対応付けられて第２記憶手段に格納されるデータの処理が第２仮想マシンに対して要求され、データを用いたプログラムの実行が第２仮想マシンにおいて行われる。このように、第２仮想マシンの第２記憶手段に格納されるデータに対応付けられた仮想データが第１仮想マシンの第１記憶手段に格納され、この仮想データに対する処理要求に応じて第２記憶手段に格納されるデータの処理を実行することができるため、結果として、第１仮想マシンから第２仮想マシンに格納されるデータを間接的に利用することができる。また、上記のデータ処理装置によれば、第１仮想マシンの第１記憶手段に格納される仮想データには、あらかじめデータに対して実行することが許容される処理内容を特定する情報が対応付けられ、この情報に含まれる処理内容の処理命令を受信した場合に限って、第２仮想マシンに対して処理の要求が送信されることから、例えば第２仮想マシンに格納されるデータを利用しようとする悪意のある処理命令が第１仮想マシンにおいて受信された場合には、この処理命令に基づいて第２仮想マシンに対して指示をすることを回避することができるため、不適切な利用を防止することができる。
【００１９】
ここで、第２仮想マシンは、第２記憶手段に格納されるデータが更新された場合に、第２記憶手段に格納されるデータの更新に係る情報が含まれる更新情報を第１仮想マシンに通知する通知手段を更に備え、第１仮想マシンは、通知手段より通知される更新情報を取得し、当該更新情報に基づいて第１記憶手段に格納される仮想データを更新する更新手段を更に備える態様とすることができる。
【００２０】
このように、第２記憶手段に格納されるデータの更新内容を第１仮想マシンに通知し、データの更新内容に基づいて第１記憶手段に格納される仮想データを更新することにより、例えば第２記憶手段におけるデータの追加や削除に応じて、第１記憶手段における仮想データを適切に追加や削除することができる。また、第２記憶手段に格納されるデータに対して許容される処理内容が変更された場合等にも、この情報を第１仮想マシンに対して適切に通知し、第１記憶手段に格納される仮想データに対応付けられる処理内容を特定する情報を更新することにより、例えば、上記の変更により許容されなくなった内容の処理を第１仮想マシンから第２仮想マシンに対して要求することを減らすことができるため、第１仮想マシンと第２仮想マシンとの間に発生する不要な情報のやり取りを減らすことができる。
【００２１】
また、第１仮想マシンは、第２仮想マシンに対してデータの実行処理の終了を要求する処理終了要求手段を更に備え、実行処理手段は、処理終了要求手段からの要求に基づいて、データを用いたプログラムの実行を中止する態様としてもよい。
【００２２】
上記の構成によれば、第２仮想マシンにおいて実行されるプログラムが、例えば実行処理を続けるプログラムである場合には、第１仮想マシンから第２仮想マシンに対して実行処理を終了させる要求を送信し、この要求に基づいてプログラムの実行を中止させる構成を備えることで、プログラムの実行を停止させ、第２記憶手段に格納されるデータの利用を中止させることができる。
【００２３】
また、実行処理手段は、第２記憶手段に格納されるデータをあらかじめ実行可能な状態にする態様とすることができる。
【００２４】
上記のように、あらかじめデータを実行可能な状態にすることで、第１仮想マシンからの処理要求に基づいてより早くデータを実行処理することができる。
【００２５】
また、第２仮想マシンは、受信手段において処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段を更に備え、実行処理手段は、イベント情報受信手段がイベント情報を受信した後の一定時間のみ、処理要求手段からの要求に基づいて、データを用いてプログラムを実行する態様としてもよい。
【００２６】
このように、イベント情報受信手段がイベント情報を受信した後の一定時間のみデータの実行処理を行う態様とすることで、イベント情報に基づいて第１仮想マシンから要求される処理は適切に実行することができると共に、例えば第２仮想マシンにおいて不正な処理要求を受けてプログラムを実行することを回避することができる。
【００２７】
ここで、第２仮想マシンは、イベント情報受信手段により受信されたイベント情報と、イベント情報を受信した後に実行処理手段によりプログラムを実行する際に用いられたデータと、を対応付けて格納する第３記憶手段とを更に備え、実行処理手段は、イベント情報受信手段がイベント情報を受信した際に、第３記憶手段を参照し、イベント情報受信手段が受信したイベント情報に対応付けて格納されるデータをあらかじめ実行可能な状態にする態様とすることができる。
【００２８】
上記のように、イベント情報を受信した際に第３記憶手段に格納される情報に基づいて当該イベント情報に対応付けて格納されるデータをあらかじめ実行可能な状態にすることで、第１仮想マシンからの要求に基づいて当該データを用いたプログラムを実行する処理を開始するのを早めることができる。また、第２仮想マシンに格納されるデータが複数ある場合に、どのデータをあらかじめ実行可能にするかが明確となり、不要なデータをあらかじめ実行可能な状態にする等の不要な処理を減らすことができる。
【００２９】
また、実行処理手段によりデータを用いてプログラムを実行した結果を出力する出力手段を更に備える態様とすることができる。
【００３０】
上記のように、本発明のデータ処理装置が出力手段を更に備える場合、第２仮想マシンによりデータを用いてプログラムを実行した結果を他の装置に対して送信して出力する場合と比較して、実行した結果がより早く出力され、データ処理装置の所有者がより早く確認することができる。
【００３１】
ここで、出力手段は、第１仮想マシンにより制御されるディスプレイであって、データは画像データであって、第１仮想マシンは、ディスプレイの画面表示を制御する画面制御手段を更に備え、第２仮想マシンは、実行処理手段によりデータを用いてプログラムを実行した結果をディスプレイに対して表示させる表示手段を更に備え、画面制御手段は、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、ディスプレイのうちデータを用いてプログラムを実行した結果を表示するための画像表示領域を透過色に設定し、表示手段は、データを用いてプログラムを実行した結果を画像表示領域に表示させる態様とすることができる。
【００３２】
上記のように、第１仮想マシンにより制御されるディスプレイである出力手段に対して第２仮想マシンにおいてデータを用いてプログラムを実行した結果を出力する場合、第１仮想マシンの画面制御手段が判定手段による判定結果に基づいて画像表示領域を透過色にし、出力結果が第２仮想マシンの表示手段によって当該領域に対して表示される。このように、出力手段が第１仮想マシンにより制御されるディスプレイであっても、第２仮想マシンによる処理の結果を好適に表示させることができる。なお、ここでいう画像データとは、ディスプレイに表示させることができるデータを指し、例えばアニメーション等の動画も含まれる。
【００３３】
また、画面制御手段は、画像表示領域の変更に係る情報である変更情報を表示手段に通知し、表示手段は、変更情報に基づいて、画像表示領域にデータを用いてプログラムを実行した結果を表示させる態様としてもよい。
【００３４】
上記のように、画面制御手段から通知される変更情報に基づいて表示手段がプログラムを実行した結果を表示させることにより、画像表示領域の変更に応じて実行した結果を好適に表示させることができる。
【００３５】
ここで、変更情報は、画像表示領域の位置とサイズの変更に係る情報である場合、表示手段は画像表示領域の位置やサイズの変更に応じた対応を行うことができ、よりプログラムを実行した結果を好適に表示させることができる。
【００３６】
また、処理要求手段は、出力手段への出力が制限されている場合には、第２仮想マシンに対するデータの処理の要求を中止する態様とすることもできる。
【００３７】
上記の構成によれば、例えば音声出力をすると周囲に迷惑となるような場合に、音楽データを再生して出力手段から出力させてしまうということを減少させることができるように、状況に応じて適切に出力を制限させることができるため、データ処理装置によりデータを利用する際の利便性を高めることができる。
【００３８】
さらに、データ処理装置は出力手段を複数備え、処理要求手段は、データを用いてプログラムを実行した結果が複数の出力手段へ出力される場合に、複数の出力手段のうちの一部の出力手段に対してのみプログラムを実行した結果の出力を第２仮想マシンに対して要求する態様としてもよい。
【００３９】
上記の構成によれば、例えば第２仮想マシンによる処理の結果が音声と画像によって出力されるデータを処理した場合に、その結果のうち一方のみ（例えば画像のみ）が出力される態様とすることができ、データ処理装置によりデータを利用する際の利便性をさらに高めることができる。
【００４０】
なお、本発明は、上記のようにデータ処理装置の発明として記述できる他に、以下のようにデータ処理方法の発明及びデータ処理プログラムの発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００４１】
すなわち、本発明に係るデータ処理方法は、互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置によるデータ処理方法であって、第１仮想マシンの第１記憶手段が、実行することが許容される処理内容があらかじめ特定され、第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第１記憶ステップと、第１仮想マシンの受信手段が、データに対して実行してもよい処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信ステップと、第１仮想マシンの判定手段が、受信ステップにおいて受信された処理命令に含まれる処理内容を特定する情報に基づいて、仮想データに対して処理を実行することが許容されるか否かを判定する判定ステップと、第１仮想マシンの処理要求手段が、判定ステップにおいて処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第２仮想マシンへ要求する処理要求ステップと、第２仮想マシンの第２記憶手段がデータを格納する第２記憶ステップと、第２仮想マシンの実行処理手段が、データを用いて実行されるプログラムを格納し、１仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理ステップと、を備えることを特徴とする。
【００４２】
また、本発明に係るデータ処理プログラムは、互いに異なるオペレーションシステムにより動作する第１仮想マシンと第２仮想マシンとを備えるデータ処理装置におけるデータ処理プログラムであって、第１仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定され、第２仮想マシンにおいて格納されるデータに対応付けられた仮想データを第２仮想マシンにおいて格納されるデータに対応付けて格納する第１記憶手段と、第１仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定された仮想データを第２仮想マシンにおいて格納されるデータに対応付けて格納する第１記憶手段と、第１仮想マシンにおいて、データに対して実行してもよい処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段と、第１仮想マシンにおいて、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第２仮想マシンへ要求する処理要求手段と、第２仮想マシンにおいて、データを格納する第２記憶手段と、第２仮想マシンにおいて、データを用いて実行されるプログラムを格納し、１仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理手段と、をコンピュータに機能させることを特徴とする。
【発明の効果】
【００４３】
本発明によれば、データの不適切な利用を防止すると共に当該データを適切に利用することができるデータ処理装置、データ処理方法、及びデータ処理プログラムが提供される。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図２】データ処理装置のハードウェア構成を説明する図である。
【図３】データ処理装置のソフトウェア構成を説明する図である。
【図４】第２記憶部に格納される実データと、第１記憶部に格納される仮想データと、の対応付けの例を説明する図である。
【図５】第２記憶部に格納される実データと、第１記憶部に格納される仮想データと、の対応付けの例を説明する図である。
【図６】第２記憶部に格納される実データと、第１記憶部に格納される仮想データと、の対応付けの例を説明する図である。
【図７】データ処理方法（仮想データの利用処理）を説明するフローチャートである。
【図８】データ処理方法（処理要求処理）を説明するフローチャートである。
【図９】データ処理方法（実行処理）を説明するフローチャートである。
【図１０】データ処理方法（通知処理及び更新処理）を説明するフローチャートである。
【図１１】本発明の第２実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図１２】データ処理方法（終了要求処理及び終了処理）を説明するフローチャートである。
【図１３】データ処理方法（デコード処理）を説明するフローチャートである。
【図１４】本発明の第３実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図１５】データ処理方法（有効時間制御処理）を説明するフローチャートである。
【図１６】本発明の第４実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図１７】データ処理方法（履歴記録処理）を説明するフローチャートである。
【図１８】データ処理方法（デコード処理）を説明するフローチャートである。
【図１９】本発明の第５実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図２０】第５実施形態に係るデータ処理装置によりディスプレイに出力される画像の例を示す図である。
【図２１】データ処理方法（処理要求処理及び実行処理）を説明するフローチャートである。
【図２２】データ処理方法（画像表示領域通知処理及び画像表示領域変更処理）を説明するフローチャートである。
【図２３】本発明の第６実施形態に係るデータ処理装置の構成を説明するブロック図である。
【図２４】データ処理方法（処理要求処理）を説明するフローチャートである。
【図２５】本発明の好適な実施形態に係るデータ処理プログラムの構成を説明するブロック図である。
【発明を実施するための形態】
【００４５】
以下、添付図面を参照して、本発明を実施するための形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００４６】
（第１実施形態）
＜データ処理装置１の構成＞
図１は、本発明の第１実施形態に係るデータ処理装置１の構成を説明するブロック図である。図１に示すように、データ処理装置１は、第１仮想マシン４１と、第２仮想マシン４２と、第１記憶部１０１と、第２記憶部１０２と、出力部１０５を含んで構成される。データ処理装置１は、例えば、携帯電話、ＰＤＡ（Personal Digital Assistant）、パーソナルコンピュータ（Personal Computer：ＰＣ）等の通信機能を有する装置として実現される。データ処理装置１に含まれる第１仮想マシン４１と第２仮想マシン４２とは、互いに異なるオペレーションシステムにより動作する仮想マシンである。ここでいう「異なるオペレーションシステム」とは同じ種類のオペレーションシステムが第１仮想マシン４１と第２仮想マシン４２のそれぞれにおいて個別に動作する態様も含まれる。なお、第１記憶部１０１及び第２記憶部１０２は、それぞれ第１仮想マシン４１及び第２仮想マシン４２に含まれるが、本実施形態では、第１記憶部１０１及び第２記憶部１０２を第１仮想マシン４１及び第２仮想マシン４２とは区別して記載する。
【００４７】
データ処理装置１の構成の詳細を説明する前に、まず、データ処理装置１に含まれる第１仮想マシン４１及び第２仮想マシン４２について説明する。本実施形態において、仮想化とは、１台分のハードウェア構成からなる装置（コンピュータ）を仮想化ソフトウェア（Virtual Machine Monitor：ＶＭＭ）を実行することにより仮想的に複数の装置のように動作させることである。データ処理装置１に含まれる第１仮想マシン４１及び第２仮想マシン４２は、仮想化ソフトウェアにより作り出された仮想的な装置のことをいい、これらの仮想マシンでは、それぞれオペレーションシステム（Operating System：ＯＳ）及びアプリケーションプログラム（プログラム）が実行される。アプリケーションプログラムとは、例えば、データ処理装置１が携帯電話である場合、他の携帯電話からの着信があった場合に、発信者に応じて異なる着信メロディを鳴らすためのプログラム等である。
【００４８】
以下、図２及び図３を用いながら上記の仮想マシンについて具体的に説明する。図２は、データ処理装置１のハードウェア構成を説明する図である。また、図３は、データ処理装置１のソフトウェア構成を説明する図である。
【００４９】
図２に示すように、データ処理装置１は、ＣＰＵ（Central Processing Unit）２０、メモリ２１、記憶装置３０、キーパッド３１、ディスプレイ３２、スピーカー３３、及び通信部３４を含んで構成される。
【００５０】
ＣＰＵ２０は、メモリ２１上のプログラムを実行する機能を備える。本実施形態におけるデータ処理装置１では、１つのＣＰＵ２０上で動作する複数の仮想的な装置（仮想マシン）を作り出すプログラムであるＶＭＭを動作させることにより、第１仮想マシン４１及び第２仮想マシン４２が作り出される。
【００５１】
メモリ２１は、記憶装置３０からロード（読み込み）されたプログラムやデータを格納する機能を備える。データ処理装置１では、上述のＶＭＭ、ＯＳ、アプリケーションプログラム等が記憶装置３０からロードされ、ＣＰＵ２０により実行される。
【００５２】
記憶装置３０は、メモリ２１にロードされＣＰＵ２０により実行されるプログラムやデータを保存する機能を有する。データ処理装置１が例えばＰＣである場合にはハードディスクドライブが記憶装置３０として用いられる。また、データ処理装置１が例えば携帯電話である場合にはフラッシュメモリが記憶装置３０として用いられる。
【００５３】
キーパッド３１は、ＣＰＵ２０において実行されるプログラムに対して入力を行うための入力デバイスである。
【００５４】
ディスプレイ３２は、ＣＰＵ２０において実行されたプログラムの処理結果を表示するデバイスである。また、スピーカー３３は、ＣＰＵ２０において実行されたプログラムの処理結果を音により出力するデバイスである。ＣＰＵ２０において実行されたプログラムが例えば音声データや音楽データを用いる場合、プログラムの処理結果として音声や音楽がスピーカー３３から出力される。また、ＣＰＵ２０において実行されたプログラムが例えば画像と音声を含むデータを用いる場合、プログラムの処理結果として画像がディスプレイ３２に表示されると共に、音声がスピーカー３３から出力される。
【００５５】
通信部３４は、ＣＰＵ２０で実行されたプログラムが他の装置と通信するための入出力デバイスである。データ処理装置１がＰＣである場合にはイーサネットアダプタが通信部３４として用いられ、携帯電話である場合には携帯電話網の通信プロセッサが通信部３４として用いられる。
【００５６】
続いて、図３を参照して、上記のハードウェア構成を備えるデータ処理装置１のメモリ２１の内部に格納される仮想化マシンを実現するための情報について説明する。
【００５７】
仮想化ソフトウェア（ＶＭＭ）４０は、１つのＣＰＵ２０上で複数の仮想的な装置（仮想マシン）を作り出すプログラムであり、仮想化ソフトウェア４０が実効されることにより、本実施形態に係るデータ処理装置１において、メモリ２１の内部に第１仮想マシン４１を実現するための情報及び第２仮想マシン４２を実現するための情報が新たに格納される。仮想化ソフトウェア４０の代表例としては、VMWare、Xen、Virtualbox（いずれも商品名）が挙げられる。この第１仮想マシン４１及び第２仮想マシン４２の内部では、ＯＳやアプリケーションプログラムがそれぞれ独立して実行される。ただし、プログラムの処理結果を出力するディスプレイ３２やスピーカー３３は、図２に示すようにデータ処理装置１において１つしか備えられておらず、これを第１仮想マシン４１や第２仮想マシン４２から利用する場合、タイミングによっては各仮想マシンからのアクセスが衝突する可能性がある。また、第１仮想マシン４１及び第２仮想マシン４２において実行されるプログラムに対してデータの入力等を行うキーパッド３１や、通信部３４等のデバイスについても、同様である。したがって、データ処理装置１のように内部に仮想マシンを作り出す装置においては、上述のデバイスを複数のＯＳが共有して使えるような仕組みが構築される。
【００５８】
デバイスを複数のＯＳが共有して使えるような仕組みとしては、例えば、デバイスの動作を仮想マシンが個別に制御できるように、図３に示すように第１仮想マシン（を制御するための情報）４１の内部において、スピーカー３３を制御するための情報（例えば、デバイスドライバ）４１Ａと、ディスプレイ３２を制御するための情報４１Ｂを格納する。そして、第２仮想マシン（を制御するための情報）４２の内部において、スピーカー３３を制御するための情報４２Ａと、ディスプレイ３２を制御するための情報４２Ｂを格納する。そして、どの仮想マシンがどのデバイスに対してアクセスしているのかの対応付けを、仮想化ソフトウェア４０において管理する。このようにすることで、例えば第１仮想マシン４１において処理を行った結果は、スピーカー３３を制御するための情報４１Ａと、ディスプレイ３２を制御するための情報４１Ｂを用いることで、スピーカー３３及びディスプレイ３２に対して出力される。なお、上記の仕組みのほか、デバイスの動作をデータ処理装置１に含まれる特定の仮想マシンが集中管理する態様とすることができる。
【００５９】
なお、本実施形態では、第１仮想マシン４１及び第２仮想マシン４２がそれぞれ異なる目的で動作する場合について説明する。具体的には、第１仮想マシン４１は、アプリケーションプログラムの実行を主たる目的として機能する。第１仮想マシン４１におけるアプリケーションプログラムの実行に際しては、後述の第２仮想マシン４２のように実行内容等の制限はされない。このアプリケーションプログラムは、データ処理装置１にあらかじめ格納されているもののほか、データ処理装置１の利用者により追加される場合がある。データ処理装置１に対してアプリケーションプログラムが追加される場合は、第１仮想マシン４１に格納され、このアプリケーションプログラムは第１仮想マシン４１において実行される。したがって、第１仮想マシン４１では、例えばウイルスやスパイウェア等の悪意のあるアプリケーションプログラムが追加されて実行される可能性があり、その結果、情報漏洩や誤動作等が発生するリスクがある。
【００６０】
一方、第２仮想マシン４２は、ウイルスやスパイウェア等による脅威に晒してはならない重要なデータの保持や、この情報を用いてアプリケーションプログラムを実行することを主たる目的として機能する。第２仮想マシン４２に保持されるデータとは、例えば、個人情報に係るデータなどのほか、ネットワークを介して購入した再配布等が禁止されているコンテンツデータ等が挙げられる。これらの情報は、第２仮想マシンの内部（本実施形態では、第２記憶部１０２）に格納されると共に、第２仮想マシン４２においてのみ当該データを用いた処理が行われる。また、第２仮想マシン４２において用いられるアプリケーションプログラムは、第２仮想マシン４２において保持されるデータを用いた処理のみに対して用いられるものであり、あらかじめデータ処理装置１に格納されているものである。このような態様とすることで、第２仮想マシン４２に格納されるデータが外部に流出することや、悪意のあるアプリケーションプログラムによって消去や改ざん等がなされることを防止することができる。
【００６１】
なお、本実施形態では、データ処理装置１が上記の構成を備える携帯電話である場合について説明する。具体的には、インターネット等を介してダウンロードした音楽データを第２仮想マシン４２に含まれる第２記憶部１０２に格納し、第１仮想マシン４１に格納される電話アプリケーションプログラムによって、第２仮想マシン４２に格納された音楽データを着信音として用いる場合について説明する。
【００６２】
データ処理装置１において、例えばインターネット等を介して音楽データを購入した場合、悪意のあるアプリケーションプログラムにより例えば購入した音楽データ（購入音楽データ）のコピーが作成されることや、削除されること等はビジネス上の問題となるため、購入音楽データは、第２記憶部１０２に格納される。一方、本実施形態のデータ処理装置１では、例えばデータ処理装置１が携帯電話であって、データ処理装置１に対して着信があった場合に着信音を鳴らして所有者に通知を行う機能は、第１仮想マシン４１に格納されるアプリケーションプログラム（電話アプリ）によって行われる。このとき、第１仮想マシン４１に格納されるアプリケーションプログラムが第２記憶部１０２に格納されるデータを使用することができないため、電話アプリは第２記憶部１０２に格納される購入音楽データを用いることができないという問題がある。本実施形態の以下の説明では、上記のように、第２記憶部１０２に購入音楽データが格納され、第１仮想マシン４１に格納される電話アプリが当該購入音楽データを着信音として利用する場合を例に説明する。
【００６３】
図１に戻り、第１仮想マシン４１及び第２仮想マシン４２を備えるデータ処理装置１の具体的な構成について説明する。上述のように、データ処理装置１は、第１仮想マシン４１と、第２仮想マシン４２と、第１記憶部１０１と、第２記憶部１０２と、出力部１０５と、を含んで構成される。第１記憶部１０１は、第１仮想マシン４１において用いられるデータを格納するための第１仮想マシン４１専用の記憶領域であり、第２記憶部１０２は、第２仮想マシン４２において用いられるデータを格納するための第２仮想マシン４２専用の記憶領域である。
【００６４】
ここで、第１記憶部１０１及び第２記憶部１０２において格納されるデータについて説明する。本実施形態のデータ処理装置１では、第１仮想マシン４１に対するデータを用いた処理命令を受信し、この処理命令に基づいて第２仮想マシン（本実施形態では第２記憶部１０２）に格納されるデータを用いてプログラムが実行される。このため、第２記憶部１０２には、本実施形態において用いられる実データＤ０１が格納される。一方、第１記憶部１０１には、この実データＤ０１に対応付けられた仮想データＤ１１が格納される。仮想データＤ１１と実データＤ０１との対応付けは、例えば、第２記憶部１０２に格納される実データＤ０１のファイル名と同じファイル名を有する仮想データＤ１１を作成すること等により行われる。また、仮想データＤ１１に対して行うことができる処理の内容として、実データＤ０１を用いて行うことができる処理の内容が対応付けられている。なお、実データＤ０１を用いて行うことができる処理の内容とは、実データＤ０１の拡張子により特定されるファイルの種類等に基づくものであり、例えば、実データＤ０１の拡張子が「.mp3」である場合には、「再生処理」が実データＤ０１を用いて実行することが許容される処理として挙げられる。したがって、実データＤ０１に対応付けられた仮想データＤ１１を用いて実行が許容される処理内容を特定する情報として、「再生処理」を特定する情報が仮想データＤ１１に対応付けられる。なお、仮想データＤ１１を用いて実行すること処理内容を特定する情報として、第１仮想マシン４１において使用され、実データＤ０１の利用を要求することが想定されるアプリケーションプログラムを仮想データＤ１１と対応付けてもよい。本実施形態のデータ処理装置１では、購入音楽データである実データＤ０１の出力要求を第１仮想マシン４１において動作する電話アプリが行うことを想定し、電話アプリが仮想データＤ１１と対応付けられている。
【００６５】
仮想データＤ１１と実データＤ０１との対応関係については、例えば表等にまとめられて第２記憶部１０２に格納される。すなわち、仮想データＤ１１が電話アプリにより使用されるデータであるということを示す情報は、仮想データＤ１１に対応付けられて保持されるが、仮想データＤ１１と対応付けられた実データＤ０１を特定する情報は第１記憶部１０１においては格納されない。これにより、第１仮想マシン４１において悪意のあるアプリケーションプログラムが動作した場合であっても、第２仮想マシン４２に格納される実データを特定する情報がアプリケーションプログラムにより取得されることを避けることができる。
【００６６】
そして、第１仮想マシン４１において受信された仮想データＤ１１を用いた処理の命令に基づいて、第１仮想マシン４１から第２仮想マシン４２に対して、この仮想データＤ１１に対応付けられた実データＤ０１を用いた処理が要求され、第２仮想マシン４２において実データＤ０１を用いた処理が実行される。なお、上述のように第１仮想マシン４１では仮想データＤ１１に対応付けられた実データＤ０１を特定する情報は保持されていない。したがって、第１仮想マシン４１から第２仮想マシン４２に対して行われる処理要求は、実データＤ０１を特定した情報を含む処理要求ではない。すなわち、仮想データＤ１１を特定した情報を用いることにより、当該仮想データＤ１１に対応する実データの処理の要求が第１仮想マシン４１から第２仮想マシン４２に対して行われる。
【００６７】
第２記憶部１０２に格納される実データＤ０１と、第１記憶部１０１に格納される仮想データＤ１１と、の対応付けの例を図４〜図６を用いて説明する。図４に示す例では、データ処理装置１において実データと仮想データにつけるファイル名についてあらかじめルールを決めておき、この情報を記憶しておく。具体的には、第２記憶部１０２に格納される実データについてはそのファイル名を「real***」とし、第１記憶部１０１に格納される仮想データについてはそのファイル名を「virtual***」とするというルールをあらかじめ決め、第２記憶部１０２に格納する。そして、新たに仮想データを作成する際には、このルールに基づいてファイル名をつける。図４では、第２記憶部１０２に格納される実データＤ０１のファイル名は「real.mp3」であり、その中身は購入音楽データであり、実データＤ０１に対応付けて第１記憶部１０１に格納される仮想データＤ１１のファイル名は「virtual.mp3」である。このため、実データＤ０１と仮想データＤ１１とが対応付けられて作成されたものであることということを、第２記憶部１０２に格納された上記の対応付けを参照することにより第２仮想マシン４２において判断することができる。なお、仮想データＤ１１は、例えば、ファイル名のみのデータのように、このデータを用いてプログラムを実行しても何も処理結果が発生しないデータである。なお、第１記憶部１０１に格納される他のデータＤ２１及びＤ２２は、購入音楽データとは異なるデータ（例えば自作のデータ等）であるため、第１記憶部１０１に格納され、第１仮想マシン４１に格納されるアプリケーションプログラム（電話アプリ）はこれらのデータＤ２１及びＤ２２を用いてプログラムを実行することができる。
【００６８】
図５は、実データと、仮想データとを対応付ける他の例について説明する図である。図５に示す例では、第２記憶部１０２に格納される実データＤ０２と、第１記憶部１０１に格納される仮想データＤ１２と、のファイル名は共通の「music.mp3」とされており、さらに仮想データＤ１２のヘッダには、このデータが仮想データであることを示すフラグが記載される。このフラグとして用いられるのは、例えば通常のデータには用いられない特殊な値や文字列等である。このように、ファイル名を共通とし、仮想データのヘッダにそのデータが仮想データであるフラグを付与することで、第２記憶部１０２に格納される実データと第１記憶部１０１に格納される仮想データとを対応付ける方法もある。
【００６９】
図６は、実データと、仮想データとを対応付ける他の例について説明する図である。図６に示す例では、第２記憶部１０２に格納される実データＤ０３と、第１記憶部１０１に格納される仮想データＤ１３と、は共通のファイル名「enka.mp3」とされている。また、実データＤ０４と仮想データＤ１４と、は共通のファイル名「jazz.mp3」を付与して第２記憶部１０２と第１記憶部１０１とにそれぞれ格納される。さらに、図６に示す例では、第１記憶部１０１に格納される仮想データを表にまとめた仮想データリストＤ２５が格納される。この場合には、仮想データリストＤ２５を参照することにより、第１記憶部１０１に格納されるデータが仮想データであることを確認することができる。このように、種々の方法により、第２記憶部１０２に格納される実データと第１記憶部１０１に格納される仮想データとを対応付けることができる。
【００７０】
また、実データと、仮想データとを対応付ける他の方法として、図６において記憶部１０１に格納される仮想データリストＤ２５に含まれる各仮想データに対して、第２記憶部１０２に格納される実データを更に対応付けたリストを第２記憶部１０２に格納する態様とすることもできる。この場合、第１記憶部１０１に格納される仮想データのファイル名と、第２記憶部１０２に格納される実データのファイル名とを第１仮想マシンにおいて特に対応付ける必要はなく、第１記憶部１０１に格納される仮想データが第２記憶部１０２に格納されるどの実データに対応するかは、第２仮想マシンにおいて第２記憶部１０２に格納されるリストを参照することにより確認することができる。
【００７１】
図１に戻り、データ処理装置１に含まれる第１仮想マシン４１の構成について説明する。第１仮想マシン４１は、受信部２０１と、判定部２０２と、処理要求部２０３と、更新部２０５と、を含んで構成される。
【００７２】
受信部２０１は、処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段として機能する。受信部２０１により受信される処理命令とは、例えば第１仮想マシン４１において実行することが可能なアプリケーションプログラムが実行されることにより発せられる命令である。より具体的には、例えば、データ処理装置１に対して着信があった場合に、電話アプリが実行されることにより、発信元の情報に基づいて特定の音楽データを着信音として再生するために、特定の音楽データを指定して、当該音楽データを再生しスピーカー３３から出力するために第１仮想マシン４１において行う命令を処理命令といい、具体的には、当該音楽データの利用を要求する命令（利用命令）と、利用命令により特定された音楽データのスピーカー３３への出力を要求する命令（出力命令）とが含まれる。ここで、電話アプリからなされる処理命令は、対象が実データ（例えば、図４のデータＤ２１）であるか仮想データであるかに関係なく、特定のデータを指定し、そのデータの利用を要求するものである。本実施形態の場合、仮想データＤ１１に対するアクセス及び仮想データＤ１１の利用要求が電話アプリから送信され、受信部２０１において受信される。そして、受信部２０１では、この処理命令が仮想データＤ１１に対する処理命令であるか確認され、仮想データＤ１１に対する処理命令である場合には、判定部２０２へ送られる。なお、上記の利用命令と出力命令とは、電話アプリから利用命令、出力命令の順序で異なるタイミングで送信され、受信部２０１において個別に受信される。
【００７３】
判定部２０２は、受信部２０１により受信された処理命令（利用命令）に含まれる処理内容を特定する情報に基づいて、仮想データＤ１１に対して処理を実行することが許容されるか否かを判定する判定手段として機能する。具体的には、仮想データＤ１１に電話アプリが対応付けられているかどうかに基づいて、処理を実行することが許容されるか判定される。本実施形態では、仮想データＤ１１にあらかじめ電話アプリが対応付けられていることから仮想データＤ１１を用いて電話アプリによる処理を実行することができると判定される。この場合には、例えば、判定部２０２において、電話アプリが仮想データＤ１１を利用中である旨のフラグが保持される。
【００７４】
ここで、判定部２０２により、処理命令に含まれる処理内容を特定する情報（本実施形態では、電話アプリ）が仮想データＤ１１に対応付けられないと判定された場合は、処理命令に基づいて処理を行うことなく、以降の処理を中止する。また、判定部２０２において、以降の処理を中止した旨が判定部２０２からアクセス要求を行った電話アプリに対して通知される。上記の受信部２０１及び判定部２０２は、例えば着信音判定モジュールとして実現される。
【００７５】
処理要求部２０３は、判定部２０２における判定結果に基づいて、仮想データＤ１１に対応付けられた実データＤ０１の処理を第２仮想マシン４２に対して要求する処理要求手段として機能する。本実施形態では、電話アプリからの処理命令を受信した後に、電話アプリから送信される仮想データＤ１１のスピーカー３３への出力を要求する出力命令に基づいて、仮想データＤ１１を特定する情報を用いて、当該仮想データＤ１１に対応付けられた実データを出力するよう第２仮想マシン４２に対して要求する。この際、処理要求部２０３では、電話アプリからの処理命令（利用命令）が、実データＤ０１を用いた処理が許容される処理内容であると判定部２０２において判断されたかどうかを確認するために、上述のように判定部２０２において保持されたフラグの有無が確認される。そして、処理要求部２０３により、フラグを確認できた場合には、上述の処理が行われる。ただし、処理要求部２０３を含む第１仮想マシン４１においては、仮想データＤ１１に対応する実データを把握していないため、対応する実データの特定は後述の第２仮想マシン４２において行われる。処理要求部２０３は、自身も出力部１０５に対して出力指示を行うオーディオドライバとして実現される。
【００７６】
更新部２０５は、後述の第２仮想マシン４２に含まれる通知部２１２から通知される変更情報に基づいて、第１記憶部１０１に格納される仮想データを更新する更新手段として機能する。更新部２０５による更新内容は、例えば、新たな仮想データの作成及び削除のほか、例えば仮想データに対応付けられる実データに対して許容される処理の情報の変更等も含まれる。更新部２０５が更新を行う場合は、上述の例のようにあらかじめ定められた実データと仮想データとの対応付けのルールに基づいて、新たなファイル名を持つ仮想データの作成や、仮想データの削除等が行われる。
【００７７】
次に、データ処理装置１に含まれる第２仮想マシン４２の構成について説明する。第２仮想マシン４２は、実行処理部２１１と、通知部２１２と、を含んで構成される。
【００７８】
実行処理部２１１は、実データＤ０１を用いて実行されるプログラムを格納し、第１仮想マシン４１からの要求に基づいて、仮想データＤ１１に対応する実データＤ０１を用いて上記プログラムを実行する実行処理手段として機能する。実行処理部２１１は、実データＤ０１を用いて実行することが許容される処理に対応するプログラム（本実施形態では、音楽データを再生しその結果をスピーカー３３に出力するプログラム）をあらかじめ格納し、第１仮想マシン４１の処理要求部２０３から送信される仮想データＤ１１を特定する情報に対応付けられた実データに対する処理要求に基づいて、まず仮想データＤ１１に対応付けられた実データＤ０１を特定し、続いてこの実データＤ０１をスピーカー３３に出力するプログラムを実行する。具体的には、実データＤ０１を読み込み、必要に応じてデコードし、さらにデバイス（再生装置等）に対して出力する。上記の処理を行った結果をデータ処理装置１において出力する場合には、この結果を後述の出力部１０５に送信する。また、処理を行った結果を他の装置等で出力する場合には、処理結果を他の装置に対して送信する。なお、上記の処理を行う際には、実データＤ０１のデータの種類（例えば、画像データ、音楽データ、等）を実行処理部２１１において判断する必要がある。この判断方法としては、具体的には、例えば、実データＤ０１のファイル名に付加される拡張子を参照する方法のほか、実データＤ０１のデータ種類を特定する情報が記載されるヘッダを実行処理部２１１が直接参照する方法を用いることができる。この実行処理部２１１は、例えば着信音再生モジュールとして実現される。
【００７９】
通知部２１２は、第２記憶部１０２に格納される実データに変更があった場合に、第２記憶部１０２の実データの更新に係る情報が含まれる更新情報を第１仮想マシン４１に通知する通知手段として機能する。通知部２１２は、第２記憶部１０２に格納される実データに変更があった場合には、変更があった実データに対応する仮想データを特定する情報（例えばファイル名等）とその変更内容とを第１仮想マシン４１に対して通知する。第２記憶部１０２の実データの変更に係る情報は、例えば、第２仮想マシン４２の各部が実データに対して操作を行った場合には通知部２１２に通知をする等のルールをあらかじめ定めておくことによって、通知部２１２において情報を入手することができる。なお、第２記憶部１０２には、他の仮想マシンからの要求に応じて出力されることが制限される情報も格納される。このような情報に対しては仮想データを作成する必要がないため、変更情報を第１仮想マシン４１に対して通知する必要もない。第１仮想マシン４１に対して通知が必要であるかどうかは、例えば、第２記憶部１０２に新たにデータが格納される際に第１仮想マシン４１での利用が想定されるかどうかを明らかにするフラグをつけておき、このフラグの有無を通知部２１２が確認することにより判断される。
【００８０】
さらに、データ処理装置１は、出力部１０５を含んで構成される。出力部１０５は、第２仮想マシン４２において実データＤ０１を用いてプログラムを実行した結果を出力する出力手段として機能する。出力部１０５にはディスプレイ３２やスピーカー３３が含まれる。上述の実行処理部２１１において第１仮想マシン４１からの要求に基づいて実データＤ０１（購入音楽データ）を再生した場合には、この結果が、出力部１０５（スピーカー３３）から出力される。この結果、出力結果をデータ処理装置１の所有者が確認することができる。
【００８１】
以上のように、データ処理装置１に含まれる各部がそれぞれ上記のように機能することにより、本実施形態に係るデータ処理が行われる。
【００８２】
＜データ処理装置１によるデータ処理方法＞
次に、データ処理装置１によるデータ処理方法について図７〜図１０を用いて説明する。図７〜図１０は、データ処理装置１によって行われるデータ処理を説明するフローチャートである。
【００８３】
（１）仮想データの利用処理
図７は、第１仮想マシン４１が処理命令を受信した際に行われる仮想データの利用処理に係るフローチャートである。まず、この仮想データＤ１１の利用処理は、第１仮想マシン４１の受信部２０１において仮想データＤ１１を対象とした処理命令が受信されたときに開始される（Ｓ１００、受信ステップ）。受信部２０１により受信された処理命令は、受信部２０１において、まず処理命令が対象としているデータが仮想データＤ１１であるかが判断される（Ｓ１０１）。ここで処理命令の対象が仮想データＤ１１とは異なり第１記憶部１０１に中身を含んで格納されるデータ（例えば図４のデータＤ２１又はＤ２２）である場合には、以降の仮想データの利用に係る処理が終了され、このデータを用いたプログラムの実行がデータ処理装置１の第１仮想マシン４１において行われる。一方、仮想データＤ１１を指定した処理命令である場合には、次に、受信部２０１により要求元プログラムの特定が行われる（Ｓ１０２）。本実施形態において受信部２０１により受信される処理命令は、電話アプリによる仮想データＤ１１を利用することを処理内容とする命令であり、要求元プログラムが電話アプリであることが受信部２０１において確認される。この要求元プログラムを特定する情報は仮想データＤ１１を特定する情報と共に判定部２０２へ送られる。
【００８４】
判定部２０２では、受信部２０１から送られる情報に基づいて第１記憶部１０１に格納される仮想データＤ１１を参照することで、要求元プログラムが行う処理内容が仮想データＤ１１に関連付けられているかによって、実データＤ０１を用いて実行することが許容される処理であるかが判定される（Ｓ１０３、判定ステップ）。本実施形態における仮想データＤ１１に対する電話アプリからの処理命令は、あらかじめ電話アプリが仮想データＤ１１に対して対応付けられて第１記憶部１０１に格納されているため、実データＤ０１を用いて実行することが許容される処理であると判定される。そして、判定部２０２により、この判定結果に基づいて、当該プログラム（電話アプリ）が仮想データＤ１１を利用中である旨のフラグが保持され（Ｓ１０４）、仮想データＤ１１に対する処理が開始された後、仮想データＤ１１の出力に係る出力命令が行われるまでのタイムラグを考慮して、このフラグを保持した状態で本処理が終了する。なお、処理内容が仮想データＤ１１に対応付けられていないと判定された（Ｓ１０３）場合には、処理中にエラーが発生した旨が処理命令を行ったプログラム（本実施形態では電話アプリ）に対して通知され（Ｓ１０５）、以降の処理は中止される。また、この場合には、当該プログラムからの仮想データＤ１１に対するアクセス要求を次回以降受け付けない処理を更に付け加えることもできる。
【００８５】
（２）第２仮想マシンに対する処理要求処理
図８は、第２仮想マシン４２に対して処理を要求する際のフローチャートである。この処理は、図７に示す仮想データの利用処理（Ｓ１００〜Ｓ１０４）が行われた後であり、仮想データＤ１１を出力する旨の出力命令を受信した際に開始される（Ｓ２００）。
【００８６】
処理要求部２０３は、仮想データＤ１１を出力する出力命令を受けて、判定部２０２から送信された情報のうち、処理命令（出力命令）を送信したプログラム（本実施形態では電話アプリ）を特定し（Ｓ２０１）、このプログラムを参照し、当該プログラムが仮想データＤ１１を利用中であるという状態を示すフラグが保持されているかを確認する（Ｓ２０２）。具体的には、判定部２０２において保持された（Ｓ１０４）フラグを確認することにより、電話アプリから送信された出力命令が、仮想データＤ１１に対するものであることを確認する。この確認は、第２仮想マシン４２に対して以降の処理に係る要求を送信してよいかを確認するために行われる。より具体的には、電話アプリが第１記憶部１０１に格納される実データ（通常データ）を利用しようとしている場合であっても、電話アプリからは当該実データを指定した利用命令及び出力命令が送信されるため、電話アプリが送信した出力命令が仮想データＤ１１を対象としたものであることをこの段階で確認するものである。したがって、仮想データＤ１１を利用中であるという状態のフラグが保持されていない場合には、電話アプリは第１記憶部１０１に格納される他のデータ（実データ）に対して処理命令を行っていると判断され、以降の処理は終了される。本実施形態の電話アプリが仮想データＤ１１に対する利用命令を送信し、仮想データＤ１１を利用中であるという状態で保持されている場合には、仮想データＤ１１を特定する情報を用いて、処理要求部２０３から第２仮想マシン４２に対して処理の要求が行われる（Ｓ２０３、処理要求ステップ）。以上により、第２仮想マシン４２に対して処理要求を行う処理が終了する。
【００８７】
（３）第２仮想マシンにおける実行処理
図９は、第１仮想マシン４１からの処理の要求に基づいて第２仮想マシン４２において実行処理を行う際のフローチャートである。この処理は、図８に示すように、第１仮想マシン４１の処理要求部２０３から第２仮想マシン４２に対して仮想データＤ１１に対応付けられた実データ用いた処理の要求（Ｓ２０３）が行われ、第２仮想マシン４２の実行処理部２１１により受信された後に開始される（Ｓ３００）。そして、図９に示される一連の処理は、例えば一つのプログラムによって記述されており、このプログラムを実行処理部２１１において実行することにより行われる。
【００８８】
実行処理部２１１は、仮想データＤ１１に対応する実データを用いた処理の要求を受信すると、当該要求に含まれる仮想データＤ１１を特定する情報に基づいて、当該仮想データＤ１１に対応付けられた実データＤ０１が第２記憶部１０２に格納されているかを確認する（Ｓ３０１）。このとき、仮想データＤ１１と実データＤ０１との対応付けに係る情報は、上述のように第２記憶部１０２に格納されているためこの情報に基づいて実データＤ０１の特定が行われる。ここで、例えば第１仮想マシン４１からの処理の要求が不正なものである等の理由によって、処理の要求で指定された実データが第２記憶部１０２に格納されていない場合は、処理を中止する。一方、実データＤ０１が第２記憶部１０２に格納されていることが確認できた場合には、実行処理部２１１は、当該実データＤ０１のファイル形式を確認する等によって、出力先のデバイスを確認した後、当該第２記憶部１０２から実データＤ０１を読み込み（Ｓ３０２、実行処理ステップ）、さらにこの実データＤ０１をデコードする（Ｓ３０３、実行処理ステップ）。ここで行われるデコードとは、実データＤ０１があらかじめエンコードされている場合に行われる処理であり、例えば、実データの拡張子が「.mp3」である場合には、出力部１０５に含まれるスピーカー３３に対して出力するための処理である。したがって、実データＤ０１が直接出力することができる形式のデータである場合には、デコードを行う必要はなく、次の処理に進む。そして、第１仮想マシン４１からの要求に従ってデコード済みの実データＤ０１を出力部１０５に含まれるデバイスであるスピーカー３３に対して出力する（Ｓ３０４、実行処理ステップ）。これにより、第２仮想マシン４２に格納される実データＤ０１がスピーカー３３から着信音として出力される。以上の処理によって、第１仮想マシン４１の受信部２０１において受信された処理命令に対する処理の結果が出力部１０５から出力される。なお、この実データＤ０１の読み込み（Ｓ３０２）、デコード（Ｓ３０３）及びデバイスへの出力（Ｓ３０３）は、実データＤ０１を出力し終えるまで、一定の周期で繰返し実行される。以上により、一連の処理が終了される。
【００８９】
（４）仮想データの更新処理
図１０は、第２記憶部１０２に格納される実データＤ０１が変更された場合に、実データＤ０１に対応付けられて第１記憶部１０１に格納される仮想データＤ１１の更新を行う処理を説明するフローチャートである。より具体的には図１０（Ａ）は第１仮想マシン４１で行われる処理であり、図１０（Ｂ）は第２仮想マシン４２で行われる処理である。これらの処理は、第２記憶部１０２に格納されるデータに対して、追加・削除・書き換え等の何らかの変更が行われると、その情報を通知部２１２が検出して、第２仮想マシン４２において開始される（Ｓ４００）。
【００９０】
まず、第２仮想マシン４２の通知部２１２は、第２記憶部１０２に格納されるデータに対して変更があった場合に、当該変更が仮想データの更新が必要な変更であるか判断する（Ｓ４０１）。これは、例えば、第１仮想マシン４１での利用が想定されるかどうかを示すフラグが、今回変更があったデータに対して付与されているかどうかにより判断される。ここで第１仮想マシン４１での利用が想定されていないことが確認された場合、通知部２１２がその変更を第１仮想マシン４１に対して通知する必要はないので、以降の処理は中止される。一方、第１仮想マシン４１での利用が想定されていることが確認された場合、仮想データＤ１１の更新が必要であると判断され、変更内容を更新情報として第１仮想マシン４１に対して通知する（Ｓ４０２、通知ステップ）。以上により、第２仮想マシン４２における変更を通知する処理が終了する。
【００９１】
一方、第１仮想マシン４１における処理は、第２仮想マシン４２から送信される更新情報を更新部２０５が受信した際に開始される（Ｓ５００）。受信部２０１が更新情報を受信すると、更新情報に含まれる情報にしたがって、第１記憶部１０１に格納される仮想データを更新する（Ｓ５０１、更新ステップ）。例えば、第２記憶部１０２において新たな実データＤ０１が格納された場合には、当該実データＤ０１に対応付けた仮想データＤ１１を作成し、この仮想データＤ１１に対しての実行が許容される処理内容の情報（すなわち実データＤ０１に対しての実行が許容される処理内容の情報）を対応付けて、第１記憶部１０１に格納する。また、実データＤ０１が削除された場合にはこの実データＤ０１に対応付けられた仮想データＤ１１を削除する。さらに、実データＤ０１に対しての実行が許容される処理内容の情報が変更された場合には、この情報に基づいて仮想データＤ１１に対応付けられた情報の更新を行う。以上の処理によって、仮想データＤ１１が更新され、第１記憶部１０１に格納される仮想データＤ１１が実データＤ０１に対応付けられた情報となり、仮想データＤ１１の更新に係る処理が終了される。
【００９２】
＜本実施形態に係る効果＞
以上のように、本実施形態に係るデータ処理装置１及びこのデータ処理装置１によるデータ処理方法によれば、第１仮想マシン４１の受信部２０１において受信され、第１記憶部１０１に格納される仮想データＤ１１を用いた処理命令（本実施形態では利用命令及び出力命令）が、あらかじめ仮想データＤ１１に対応付けて格納され、実行することが許容される処理内容であるかが判定部２０２において判定される。そして、実行することが許容されると判定された場合には、第２仮想マシン４２の第２記憶部１０２に格納され、仮想データＤ１１と対応付けられる実データＤ０１の処理が処理要求部２０３によって第２仮想マシン４２に対して要求される。そして、実データＤ０１を用いたプログラムの実行が第２仮想マシン４２の実行処理部２１１において行われる。このように、第２仮想マシン４２の第２記憶部１０２に格納される実データＤ０１に対応付けられた仮想データＤ１１が第１仮想マシン４１の第１記憶部１０１に格納され、この仮想データＤ１１に対する処理要求に応じて第２記憶部１０２に格納される実データＤ０１の処理を実行することができる。このため、結果として、第１仮想マシン４１は第２仮想マシン４２に格納される実データＤ０１を間接的に利用することができる。また、本実施形態に係るデータ処理装置１によれば、第１仮想マシン４１の第１記憶部１０１に格納される仮想データＤ１１には、あらかじめ実データＤ０１を用いて実行することが許容される処理内容を特定する情報が対応付けられ、この情報に対応した処理命令（利用命令及び出力命令）を受信した場合に限って、第２仮想マシン４２に対して処理の要求が送信されることから、例えば、第１仮想マシン４１において、悪意のあるアプリケーションプログラムが第２仮想マシン４２に格納される実データＤ０１を利用しようとした場合には、これを回避することができる。したがって、悪意のあるアプリケーションプログラム等による不適切な利用を防止することができる。
【００９３】
また、本実施形態におけるデータ処理装置１では、第２記憶部１０２に格納される実データＤ０１に係る変更情報が通知部２１２から第１仮想マシン４１に対して通知され、更新部２０５により、変更情報に含まれる情報に基づいて第１記憶部１０１に格納される仮想データＤ１１が更新される。このため、例えば第２記憶部１０２における実データＤ０１の追加や削除に応じて、第１記憶部１０１における仮想データＤ１１を適切に追加や削除することができる。また、第２記憶部１０２に格納される実データＤ０１に対する実行が許容される処理内容が変更された場合（例えば、有効期限が切れることによって、データの利用範囲が変更された場合）等にも、この情報を第１仮想マシン４１に対して適切に通知し、第１記憶部１０１に格納される仮想データＤ１１に対応付けられる処理内容を特定する情報を更新することにより、例えば、上記の変更により許容されなくなった内容の処理を第１仮想マシン４１から第２仮想マシン４２に対して要求することを減らすことができるため、第１仮想マシン４１と第２仮想マシン４２との間に発生する不要な情報のやり取りを減らすことができ、第２記憶部１０２に格納される実データＤ０１の不適切な利用をさらに抑制することができる。
【００９４】
（第２実施形態）
＜データ処理装置２の構成及びデータ処理方法＞
（１）実行処理の終了処理
図１１は、本発明の第２実施形態に係るデータ処理装置２の構成を説明するブロック図である。データ処理装置２に含まれる各構成のうちデータ処理装置１と異なる点は、以下の２点である。すなわち、第１点目は、第１仮想マシン４１に処理終了要求部２０４を備え、処理終了要求部２０４による要求に基づいて、実行処理部２１１が処理を行う点である。また、第２点目は、第２仮想マシン４２の実行処理部２１１が、実データＤ０１をあらかじめ実行可能な状態にしておく点である。
【００９５】
上記のデータ処理装置２における新たな構成及び新たなデータ処理方法のうち、まず第１点目について、図１１及び図１２を用いて説明する。
【００９６】
処理終了要求部２０４は、第２仮想マシン４２に対して仮想データＤ１１に対応する実データ（本実施形態では、実データＤ０１）を用いた実行処理の終了を要求する処理終了要求手段として機能する。実データＤ０１に対する実行処理は、例えば従来の音楽データの再生等の場合には、実データＤ０１の終端まで一通り処理が行われると、この処理は終了されるか、または、エンドレス再生のように再生処理が繰り返される。しかしながら、本実施形態のように、実データＤ０１に対する処理が着信音としての再生処理である場合、実データＤ０１の終端まで一通り処理が行われる前にデータ処理装置２の所有者が応答した場合には、当該処理（すなわち着信音の再生）が中止される必要がある。したがって、処理を終了させるようなイベント（例えば所有者による応答）が発生し、処理終了要求部２０４がその情報を検出した場合には、当該情報に基づいて、第２仮想マシン４２に対して実データＤ０１を用いた実行処理の終了を要求する。なお、この処理終了要求部２０４による実行処理の終了要求のタイミングは、上述のように何らかのイベントが発生した場合に限られず、例えばタイマーの時刻が満了した時刻であってもよい。
【００９７】
一方、実行処理部２１１は、処理終了要求部２０４からの実行処理の終了に係る要求を受信した場合には、当該要求に基づいて実データＤ０１を用いた処理（すなわちスピーカー３３からの出力に係る処理）を終了させる機能を新たに備える。実行処理部２１１が処理終了要求部２０４からの要求に基づいて処理を終了させることにより、実データＤ０１の出力部１０５（スピーカー３３）からの出力が停止される。
【００９８】
上記の構成を備えるデータ処理装置２によるデータ処理方法について、図１２のフローチャートを用いて説明する。図１２は、実データＤ０１を用いた実行処理を終了させる処理を説明するフローチャートである。より具体的には、図１２（Ａ）は第１仮想マシン４１において行われる処理を示し、図１２（Ｂ）は第２仮想マシン４２において行われる処理を示す。これらの処理は、第１仮想マシン４１、例えば、実データＤ０１を用いたプログラムの実行を終了させるイベント（例えば、データ処理装置２の所有者が応答した等）が発生した際に開始される（Ｓ８００）。
【００９９】
処理終了要求部２０４は、実データＤ０１を用いたプログラムの実行を終了させるイベントが発生すると、実データＤ０１に係る処理を第２仮想マシン４２に対して要求したかを確認する（Ｓ８０１）。これは、例えば、処理要求部２０３に対して既に第２仮想マシン４２に対して仮想データＤ１１を指定した処理を要求が送信されたかどうかを問い合わせることにより確認することができる。この結果、まだ第２仮想マシン４２に対して仮想データＤ１１に対応する実データＤ０１を用いた処理の要求がなされていないことが確認された場合には、以降の処理を中止する。一方、仮想データＤ１１に対応する実データＤ０１を用いた処理の要求が既になされたことが確認された場合は、実データＤ０１を用いた処理が第２仮想マシン４２において開始されているため、第２仮想マシン４２に対して処理の終了を要求する（Ｓ８０２、終了要求ステップ）。以上により、第１仮想マシン４１における終了要求に係る処理が終了する。
【０１００】
一方、第２仮想マシン４２における処理は、実行処理部２１１が第１仮想マシン４１から送信される実データＤ０１を用いた処理の終了要求を受信することを契機に開始される（Ｓ９００）。実行処理部２１１は、終了要求を受信すると、この要求に基づいて、実データＤ０１のデバイス（スピーカー３３）への出力を停止させる（Ｓ９０１、実行処理ステップ）。そして、この実データＤ０１のデコードを終了し（Ｓ９０２、実行処理ステップ）、読み込み中だった実データＤ０１をクローズする（Ｓ９０３、実行処理ステップ）。以上の処理により、第２仮想マシン４２における実データＤ０１を用いた処理の終了に係る処理が終了する。なお、図１２に示すフローチャートは、実データＤ０１が購入音楽データであり、データ処理装置２に設けられた出力部１０５（スピーカー３３）に対して出力する場合について説明しているものである。したがって、例えば実データＤ０１を用いた処理の結果を他の装置から出力させる場合には、処理の結果を出力させる装置に対して、出力停止を通知するメッセージを送信すること等により、当該処理を終了させる。
【０１０１】
（２）実データに対するデコード処理
次に、上記のデータ処理装置２における新たな構成及び新たなデータ処理方法のうち、第２点目について、図１１及び図１３を用いて説明する。
【０１０２】
本実施形態では、実行処理部２１１は、実データＤ０１をあらかじめ実行可能な状態としておく機能をさらに備える。ここでいう「実行可能な状態とする」とは、実データＤ０１を出力部１０５から出力するために行う必要がある処理を先行して行うことをいう。具体的には、第１仮想マシン４１の処理要求部２０３からの処理の要求を受けた時点から、実データＤ０１の読み込みを開始するのではなく、あらかじめ実データＤ０１の読み込み及びデコードを行っておくことで、直ちに出力可能な状態としておくことで、実データＤ０１を出力するまでに必要な実データＤ０１の読み込み及びデコードに係る時間を短縮して実データＤ０１の実行処理を開始することを目的としたものである。
【０１０３】
図１３は上記の処理を説明するフローチャートである。この処理は、任意のタイミングで開始することができる（Ｓ１０００）が、例えば、データ処理装置２の電源を入れた際毎に行うこととしてもよいし、データ処理装置２において最初に実データＤ０１を読み込み及びデコードした後はそれを再利用することとしてもよい。図１３に示すように、まず、実行処理部２１１は、まず第２記憶部１０２に実データＤ０１が格納されているかを確認する（Ｓ１００１）。ここで、例えば第２記憶部１０２に実データＤ０１が格納されていない場合にはこの処理が終了されるが、第２記憶部１０２に実データＤ０１が格納されていることが確認されると、実行処理部２１１は、この実データＤ０１を読み込み（Ｓ１００２）、さらにデコード（Ｓ１００３）を行うことにより、実データＤ０１を出力可能な状態とされる。以上により、あらかじめ実データＤ０１を出力可能な状態としておく処理（デコード処理）が終了される。なお、この事前のデコード処理は、実データＤ０１全体が完全にデコードされる前に途中で中止してもよい。すなわち、実データＤ０１に対してデコード処理を行っている途中にこの実データＤ０１に対する処理の要求を受信した場合は、その時点で上述の事前のデコード処理が中止される。そして、デコード処理が完了した部分のデータについては読み込み及びデコードを行うことなく直ちにデータの出力が行われる。ただし、デコード処理が行われていない部分のデータについては、第１実施形態と同様に読み込み、デコード及び出力を周期的に繰返し行うことにより、データが出力部１０５に対して出力される。
【０１０４】
＜本実施形態に係る効果＞
このように第２実施形態に係るデータ処理装置２によれば、まず、第１仮想マシン４１において処理終了要求部２０４を備えることにより、第２仮想マシン４２おいて実行されるプログラムが、例えば実行処理を続けるプログラムである場合には、第１仮想マシン４１から第２仮想マシン４２に対して実行処理を終了させる要求を送信し、この要求に基づいて実行処理部２１１においてプログラムの実行が中止されるため、第２記憶部１０２に格納される実データＤ０１の利用を中止させることができる。
【０１０５】
また、第２仮想マシン４２においてあらかじめ実データＤ０１を実行可能な状態にする（デコードする）ことで、第１仮想マシン４１からの処理要求に基づいて処理を開始する場合と比較してより早くデータを出力部１０５（スピーカー３３）に対して出力することができるという効果が奏される。
【０１０６】
（第３実施形態）
＜データ処理装置３の構成及びデータ処理方法＞
図１４は、本発明の第３実施形態に係るデータ処理装置３の構成を説明するブロック図である。データ処理装置３に含まれる各構成のうちデータ処理装置１及び２と異なる点は、以下の点である。すなわち、第２仮想マシン４２においてイベント情報を受信するイベント情報受信部２１３を備える点である。
【０１０７】
イベント情報受信部２１３は、第１仮想マシン４１の受信部２０１において処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段として機能する。ここでいうイベント情報とは、第１仮想マシン４１に格納されるプログラムが処理命令を送信する契機となる情報である。例えば本実施形態の場合では、仮想データＤ１１を着信音として再生させるための処理命令が受信部２０１において受信されるが、この命令は、仮想データＤ１１を着信音としてあらかじめ設定している人からの着信情報をデータ処理装置１の着信制御部（図示せず）が受信し、この情報が第１仮想マシン４１に対して送られた場合に、第１仮想マシン４１の電話アプリによって行われる。したがって、第２仮想マシン４２のイベント情報受信部２１３は、イベント情報として、特定の人からの着信があったことを示す情報を着信制御部から受信する。なお、例えばデータ処理装置２のキーパッドによるキー入力や、タッチパネルにおいて特定部分が押されたこと等をイベント情報とすることもできる。このようにイベント情報受信部２１３によりイベント情報が受信されたことは実行処理部２１１に対して通知される。
【０１０８】
そして、実行処理部２１１は、イベント情報受信部２１３によりイベント情報が受信された時点から一定の時間のみ、第１仮想マシン４１からの処理の要求を受け付ける機能を更に備える。第１仮想マシン４１では、第２仮想マシン４２のイベント情報受信部２１３によりイベント情報が受信された時点とほぼ同時に同様のイベント情報が受信され、第１仮想マシン４１においてイベントに係る処理がなされた後、第２仮想マシン４２に対して処理を要求する場合には処理要求部２０３から第２仮想マシン４２に対して要求がなされるはずである。したがって、イベント情報を受信してから一定の時間のみ実行処理部２１１が第１仮想マシン４１からの処理要求を受信する態様とすることで、第１仮想マシン４１からの処理要求を確実に受信することができる。なお、この一定の時間とは、第１仮想マシン４１においてイベント情報を受信した時点から、当該イベント情報に基づいて実データＤ０１を用いた処理を処理要求部２０３が第２仮想マシン４２に対して要求する時点までの所要時間を考慮して適宜定めることができる。
【０１０９】
図１５は上記の処理を説明するフローチャートである。まず、例えばイベント情報受信部２１３においてイベント情報が受信されることを契機として、有効時間制御処理が開始される（Ｓ１１００、イベント情報受信ステップ）。そして、この情報がイベント情報受信部２１３から実行処理部２１１に通知され、実行処理部２１１において処理要求の受付が開始される。この処理要求に受付の有効時間は、あらかじめ例えばイベント情報の種類毎に定めること等により設定される。次に、第１仮想マシン４１においてイベント情報の受信を契機として行われた処理の結果、第２仮想マシン４２に対して、仮想データＤ１１に対応する実データに係る処理の要求が送信され、実行処理部２１１ではこの要求を受信する（Ｓ１１０１、実行処理ステップ）。ここで、実行処理部２１１は、当該処理要求が有効時間内になされたものであるかを判断する（Ｓ１１０２、実行処理ステップ）。処理要求が有効時間内になされたものであるかどうかの確認は、例えば、実行処理部２１１において受付を開始すると同時に、有効時間に基づいて受付の終了時刻を予め設定しておく。そして、処理要求を第２仮想マシン４２の実行処理部２１１において受信した時刻と受付の終了時刻とを比較し、受信した時刻が終了時刻よりも前である場合には、処理要求が有効時間内になされたものであると判断する方法等種々の方法が用いられる。ここで、第１仮想マシン４１からの処理要求が有効時間外である場合には、正規の処理により作成された処理要求ではない可能性が考えられるため、第２仮想マシン４２における処理は終了し以降の処理を行わない。一方、第１仮想マシン４１からの処理要求が有効時間内である場合には、イベント情報の受信を契機とした要求であると考えられるため、この要求で指定される実データＤ０１を用いた実行処理を開始する（Ｓ１１０３、実行処理ステップ）。実行処理自体は、第１実施形態と同様である。以上により、有効時間を用いた制御処理が終了する。
【０１１０】
＜本実施形態に係る効果＞
このように、上記の実施形態によれば、イベント情報受信部２１３がイベント情報を受信した後の一定時間のみデータの実行処理部２１１が第１仮想マシン４１からの処理要求を受け付ける態様とすることで、例えば、第１仮想マシン４１で悪意のあるアプリケーションプログラムが動作することにより多数の処理要求を第２仮想マシン４２に対して送信した場合に、第１仮想マシン４１からの正式な要求（例えば電話着信等に基づく要求）が処理できないという問題を減らすことができる。したがって、イベント情報に基づいて第１仮想マシン４１から要求される実行処理は適切に実行することができると共に、例えば第２仮想マシン４２において悪意のあるアプリケーションプログラム等による不正な処理要求を受けてプログラムを実行することを回避することができる。
【０１１１】
（第４実施形態）
＜データ処理装置４の構成及びデータ処理方法＞
図１６は、本発明の第４実施形態に係るデータ処理装置４の構成を説明するブロック図である。データ処理装置４に含まれる各構成のうちデータ処理装置３と異なる点は、以下の点である。すなわち、第１記憶部１０１及び第２記憶部１０２とは異なる記憶部である第３記憶部１０３を備える点である。
【０１１２】
第３記憶部１０３は、第２仮想マシン４２に専有される記憶領域である。そして、第３記憶部１０３は、イベント情報受信部２１３により受信されたイベント情報と、データ処理装置３と同様にイベント情報を受信した後の一定時間内に実行処理部２１１により実行処理が行われた実データＤ０１を特定する情報と、を対応付けて履歴情報Ｄ３０として格納する第３記憶手段として機能する。第３記憶部１０３において格納される履歴情報Ｄ３０としては、例えば、他の通信端末からの着信を示す情報がイベント情報であって、当該イベント情報に基づいて電話アプリから発信される処理命令に基づいた実データの出力に関する場合、イベント情報を送信する発信元の通信端末の電話番号がＡである場合には、実データＡを再生し、電話番号がＢである場合には、実データＢを再生するというように、電話番号と実データとを対応付けた表等が用いられる。
【０１１３】
そして、イベント情報受信部２１３が新たにイベント情報を受信した場合、イベント情報受信部２１３からイベント情報の受信を通知された実行処理部２１１は、当該イベント情報の内容に基づいて第３記憶部１０３に格納される履歴情報Ｄ３０を参照し、イベント情報に対応付けて格納される実データＤ０１に係る情報を取得する。そして、この結果に基づいて、第２記憶部１０２に格納される実データＤ０１をあらかじめ実行可能な状態とする。このように、本実施形態に係るデータ処理装置４は、第３記憶部１０３に格納される履歴情報Ｄ３０に基づいてあらかじめ実行可能な状態とする実データを特定し、実データをあらかじめ実行可能な状態にするという特徴を備える。なお、ここでいう「実行可能な状態」とは、上述の通り、実データＤ０１を出力部１０５から出力するために行う必要がある処理を先行して行うことをいう。
【０１１４】
上記のような構成を備えるデータ処理装置４によるデータ処理方法のうち、これまでの実施形態で説明した処理とは異なる点を図１７及び図１８を用いて説明する。
【０１１５】
図１７は、第３記憶部１０３の履歴情報Ｄ３０に履歴を記録する処理について説明するフローチャートである。この処理は、イベント情報受信部２１３においてイベント情報が受信され、実行処理部２１１に通知された際に処理が開始される（Ｓ１２００、実行処理ステップ）。実行処理部２１１は、まずイベント情報に含まれる情報からイベント内容を特定する（Ｓ１２０１、実行処理ステップ）。具体的には、例えばイベントが他の携帯電話からの着信である場合には、発信者の電話番号がイベント内容として用いられる。また、例えばキー入力がイベント情報として取り扱われる場合は、キーコードがイベント内容として用いられる。続いて、第１仮想マシン４１から当該イベント情報の受信に基づいた処理要求があった際に、処理要求がなされた仮想データＤ１１に対応する実データＤ０１を特定する（Ｓ１２０２）。そして、このステップで特定された実データＤ０１と、イベント内容との対応関係が第３記憶部１０３に既に履歴情報Ｄ３０として格納されているかを確認する（Ｓ１２０３）。ここで、既に履歴情報Ｄ３０に上記の対応関係が格納されている場合には、重複格納を避けるため履歴記録に係る処理を終了する。しかしながら、履歴情報Ｄ３０に上記の対応関係が格納されていない場合は、このイベント内容と実データＤ０１との対応関係を新たな履歴データとして履歴情報Ｄ３０に追加する（Ｓ１２０４）。以上により、履歴の記録に係る処理が終了する。
【０１１６】
図１８は、図１７に示す処理により履歴が記載された履歴情報Ｄ３０を用いたデコード処理について説明するフローチャートである。このフローチャートで示すデコード処理は、図１３に示す第２実施形態に係るデータ処理装置２によるデコード処理と比較して、デコード処理の開始（Ｓ１０００）が、イベント情報受信部２１３においてイベント情報を受信した時点とする点が異なる。また、イベント内容の特定（Ｓ１００４）及びイベント内容と履歴から実データを特定する処理（Ｓ１００５）が追加されている。
【０１１７】
すなわち、図１８に示すフローチャートでは、イベント情報受信部２１３がまずイベント情報を受信したときには、イベント情報受信部２１３から実行処理部２１１に対してこの情報が送られた後、まず、イベント情報に含まれるイベント内容を特定する（Ｓ１００４、実行処理ステップ）。そして、第３記憶部１０３を参照し、このイベント内容に対応付けられた実データＤ０１を特定する情報が履歴情報Ｄ３０に記載されているかどうかを確認する（Ｓ１００５、実行処理ステップ）。そして、履歴情報Ｄ３０を参照することにより特定されたイベント情報に対応付けられた実データＤ０１が、第２記憶部１０２に格納されているかを確認し（Ｓ１００１）、ある場合には、実データＤ０１を読み込み（Ｓ１００２、実行処理ステップ）、さらにデコードする（Ｓ１００３、実行処理ステップ）ことにより、対象となる実データＤ０１をあらかじめ実行可能な状態（出力部１０５から出力することができる状態）とすることができ、デコードに係る処理は終了する。ここで、実データＤ０１が第２記憶部１０２に格納されていない場合には、あらかじめデコード処理を行う対象となる実データを特定することができないため、以降の処理は中止される。なお、実行処理部２１１において第１仮想マシン４１から実データを用いた処理の要求を受信した際に、この処理の要求において特定される実データが、上記の処理によって実行可能な状態とされた実データである場合には、当該実データを用いて出力処理を行う。また、処理の要求において特定される実データが、あらかじめ実行可能な状態とされたもの（デコード処理が行われたもの）と異なる場合は、第１仮想マシン４１からの要求において指定された実データを新たに読み込まれ、当該実データの出力に係る一連の処理が行われる。
【０１１８】
＜本実施形態に係る効果＞
このように、上記の実施形態によれば、第２仮想マシン４２においてイベント情報を受信した際に、第１仮想マシン４１からの処理要求を正式に受け付ける前に、第３記憶部１０３に格納される情報に基づいて、当該イベント情報に対応付けて格納される実データＤ０１をあらかじめ実行可能な状態にすることができる。したがって、第１仮想マシン４１からの要求に基づいて当該実データを用いたプログラムを実行する処理を開始するのを早めることができる。また、第２仮想マシン４２に格納される実データが複数ある場合に、第１仮想マシン４１から送信される処理要求を参照する前に、どの実データＤ０１をあらかじめ実行可能な状態にするかが明確となり、不要なデータをあらかじめ実行可能な状態にする等の不要な処理を減らすことができる。
【０１１９】
（第５実施形態）
＜データ処理装置５の構成＞
図１９は、本発明の第５実施形態に係るデータ処理装置５の構成を説明するブロック図である。データ処理装置５に含まれる各構成のうちデータ処理装置２と異なる点は、以下の２点である。すなわち、第１点目は、出力部１０５がディスプレイ３２という特定のデバイスである点である。また、第２点目は、このディスプレイ３２は、第１仮想マシン４１に新たに設けられた画面制御部２０６により制御されると共に、第２仮想マシン４２により実行された処理の結果をディスプレイ３２に対して出力する場合には、表示部２１４によって行われる点である。データ処理装置に含まれる出力手段は、スピーカー、ストレージ、ＩｒＤＡ（Infrared Data Association）、ネットワーク等の多岐に渡り、そのほとんどは主に第２仮想マシン４２から直接制御することができる。しかしながら、データ処理装置の内部構成によっては、本実施形態のディスプレイ３２のように第１仮想マシン４１からでも一部事象については制御可能な出力手段もある。本実施形態では、データ処理装置５が第１仮想マシン４１により画面のＧＵＩ（Graphical User Interface）出力に係る制御がなされているディスプレイ３２を備え、このディスプレイ３２に対して第２仮想マシン４２により処理された結果を出力する場合について説明する。
【０１２０】
画面制御部２０６は、判定部２０２により処理内容を特定する情報に基づいた処理を実データＤ０１を用いて実行することが許容されると判定された場合に、ディスプレイ３２のうち実データＤ０１を用いてプログラムを実行した結果を表示するための画像表示領域を透過色に設定する機能を備える。
【０１２１】
第１仮想マシン４１が出力制御を統括管理する場合、通常は第１仮想マシン４１がデータを出力することによって、ディスプレイ３２の全体の画像が形成される。この場合、第２仮想マシン４２からディスプレイ３２に対して画像を表示させる処理を行っても、ディスプレイ３２では第１仮想マシン４１により形成された画像が優先して表示されるため、第２仮想マシン４２から送られる画像は表示されない。したがって、第２仮想マシン４２からの画像をディスプレイ３２に表示させるためには、画面制御部２０６によって第２仮想マシン４２からの画像を表示させる領域を形成する処理が行われる必要がある。本実施形態では、この処理の手法の一つとして、第２仮想マシン４２からの画像を表示させる領域を画面制御部２０６によって透過色とすることで、第２仮想マシン４２からの画像をその領域に表示させる態様としている。以下、その具体的な処理について説明する。
【０１２２】
まず、実データＤ０１を出力する先がディスプレイ３２であるかどうかは、第１仮想マシン４２において、仮想データＤ１１に対応付けられた実データＤ０１が画像データであるかどうかによって判断される。この判断方法としては、例えば実データＤ０１に対応付けられた仮想データＤ１１が画像データであることを示す拡張子を有するかどうかという方法がある。また、仮想データＤ１１の中身を参照し、当該ファイルのファイルフォーマットを直接確認することにより判断してもよい。そして、仮想データＤ１１に対応する実データＤ０１が画像データであり、且つ実データＤ０１を用いることを要求する処理内容を実行することが許容されると判断された場合には、画面制御部２０６により、実データＤ０１を開いて表示するための画像表示領域が設けられ、この領域に透過色が設定される。この画像表示領域は、ディスプレイ３２の全面またはその一部に設けられる。画像表示領域が透過色に設定されない場合は、第１仮想マシン４１で描画された画面に第２仮想マシン４２において表示された画像を出力することはできないが、透過色が設定されることにより、当該エリアに限り第２仮想マシン４２の表示部２１４により制御を行うことができる。
【０１２３】
一方、第２仮想マシン４２の表示部２１４は、第２仮想マシン４２において実データＤ０１を用いて出力した結果を画像表示領域内で表示させる表示手段としての機能を備える。
【０１２４】
ここで、画面制御部２０６及び表示部２１４によりディスプレイ３２に表示させる画面の例について図２０を用いて説明する。図２０（Ａ）は、第１仮想マシン４１からディスプレイ３２に表示される画像の例を示す。具体的には、画面の中央近傍に透過色に設定された画像表示領域Ａ１が形成される。図２０（Ｂ）は、第２仮想マシン４２からディスプレイ３２に表示される画像の例であり、表示部２１４により表示される画像データが画面中央に含まれている。さらに図２０（Ｃ）は図２０（Ａ）と図２０（Ｂ）に示す第１仮想マシン４１及び第２仮想マシン４２による表示画像を重ねあわせることにより、図２０（Ａ）の透過色に設定された画像表示領域Ａ１において図２０（Ｂ）に示す画像が透過されたことで、画面制御部２０６により構成された画面の画像表示領域Ａ１内部に表示部２１４により表示される画像データが表示される例である。このように、画面制御部２０６により背景が透過色に設定された画像表示領域Ａ１に対して、表示部２１４により実データＤ０１を用いて実行処理を行った結果を表示させることで、第２仮想マシン４２による処理の結果を第１仮想マシン４１が統括管理するディスプレイ３２に表示させることができる。
【０１２５】
本実施形態に係る画面制御部２０６は、更なる機能として、画像表示領域の変更に係る情報である変更情報を表示部２１４に通知する機能を有する。そして、表示部２１４は、更なる機能として、この変更情報に基づいて変更情報に基づいて、画像表示領域に実データＤ０１を出力させる機能を有する。以下これらの機能について具体的に説明する。
【０１２６】
画面制御部２０６は、上述の画像表示領域に変更がある場合には、ディスプレイ３２の透過色の領域を変更するとともに、この変更に係る情報である変更情報として表示部２１４に対して通知する機能を有する。画像表示領域は、例えばアプリケーションプログラム毎に、表示位置やその大きさが変わるため、常に一定ではない。より具体的には、例えばディスプレイ３２の表示方式が縦表示から横表示に変更となった場合等に、画像表示領域を変更する必要が生じる。その場合には、例えばディスプレイ３２の表示方式を変更する機能部から画面制御部２０６に対して表示方式の変更が依頼され、画面制御部２０６がこの依頼に基づいて処理を行う。画像表示領域を変更する必要が生じた場合には、画像表示領域は画面制御部２０６により変更され、この変更情報が表示部２１４に対して通知される。ここで、画面制御部２０６から表示部２１４に対して通知される情報は、変更後の画像表示領域の位置とサイズの情報である。一方、表示部２１４は、上述のように画面制御部２０６から通知される画像表示領域の変更に係る情報を受信し、この情報に基づいて、実行処理部２１１によって実データＤ０１を用いたプログラムを実行された結果を、ディスプレイ３２の画像表示領域に対して表示させる。これにより、変更後の画像表示領域に対しても、実データＤ０１を用いたプログラムの実行結果が適切に表示される。
【０１２７】
＜データ処理装置５によるデータ処理方法＞
次に、図２１及び図２２を用いて、本実施形態に係るデータ処理装置５によるデータ処理方法を説明する。図２１（Ａ）は、第１仮想マシン４１から第２仮想マシン４２に対して処理要求を行うための処理について説明するフローチャートである。また、図２１（Ｂ）は、第１仮想マシン４１から送信される処理の要求に応じて第２仮想マシン４２において行われる処理を説明するフローチャートである。また、図２２は、画像表示領域の変更がなされる場合の処理について説明するフローチャートである。
【０１２８】
図２１（Ａ）に示すフローチャートは、図８に示す第１実施形態のデータ処理装置１による処理要求処理に係るフローチャートと比較して、処理命令（出力命令）を送信したプログラム（本実施形態では電話アプリ）が仮想データＤ１１を利用中であるという状態を示すフラグが保持されているかを確認した（Ｓ２０２）後、その結果に基づいて第２仮想マシン４２に対して処理要求を送信する（Ｓ２０３）前に、処理要求部２０３から画面制御部２０６に対して画像表示領域に透過色を設定する旨の指示が出される処理が追加される。そして、画面制御部２０６では、処理要求部２０３からの指示に基づいて画像表示領域に透過色が設定される（Ｓ２０４、画面制御ステップ）。その後、第２仮想マシン４２に対して実データＤ０１を用いた処理の要求がなされる（Ｓ２０３）。
【０１２９】
図２１（Ｂ）に示すフローチャートは、図９に示す第１実施形態のデータ処理装置１による実行処理に係るフローチャートと比較して、実データＤ０１のデコード後の処理が追加されている。具体的には、第１仮想マシン４１から送信された処理要求により特定される実データＤ０１が実行処理部２１１により確認された後（Ｓ３０１）、実データＤ０１の読み込み（Ｓ３０２）及びデコード（Ｓ３０３）が行われる。さらに、本実施形態に係るデータ処理方法では、出力先がディスプレイ３２内の画像表示領域であるので、表示部２１４によりこの出力処理の結果を画像表示領域に対して出力した上で（Ｓ３０５）、ディスプレイ３２への出力処理（Ｓ３０６）を行う。以上の処理により、第２仮想マシン４２において実行された処理の結果が第１仮想マシン４１の管轄するディスプレイ３２に出力される。
【０１３０】
図２２に示すフローチャートは、画像表示領域の変更に係る処理を説明するフローチャートであり、図２２（Ａ）は第１仮想マシン４１において行われる画像表示領域の変更を通知する処理を説明するものである。この処理は、上述のように、画面制御部２０６がディスプレイ３２の表示方式を変更する機能部からの画像表示領域の変更に係る依頼を受けた際に開始される（Ｓ１３００）。画面制御部２０６は、まず、画像表示領域の変更を含む画面表示の変更の依頼を受けると、新しい画像表示領域の位置とサイズを決定する（Ｓ１３０１）。そして、この位置とサイズの情報を含む画像表示領域の変更情報を第２仮想マシン４２に対して通知し、変更を指示する（Ｓ１３０２）。以上の処理により、第１仮想マシン４１から第２仮想マシン４２に対して画像表示領域の変更が通知される。
【０１３１】
図２２（Ｂ）は、第１仮想マシン４１からの画像表示領域の変更情報を第２仮想マシン４２において受信することにより開始され（Ｓ１４００）、画像表示領域の変更に係る処理を説明するものである。第２仮想マシン４２の表示部２１４は、第１仮想マシン４１からの画像表示領域の変更情報を受け取ると、変更後の画像表示領域の位置とサイズを把握する（Ｓ１４０１）。そして、実行処理部２１１において行われる実データＤ０１を用いたプログラムの実行結果を表示する際に、上記の画像表示領域の変更情報を反影して表示させる（Ｓ１４０２）。以上の処理により、第１仮想マシン４１から通知された画像表示領域の変更を反影することができる。
【０１３２】
＜本実施形態による効果＞
以上のように、本実施形態によれば、第１仮想マシン４１により制御されるディスプレイ３２である出力手段に対して第２仮想マシン４２においてデータを用いて処理を行った結果を出力する場合、第１仮想マシン４１の画面制御部２０６が判定部２０２による判定結果に基づいて画像表示領域を透過色にし、データの処理結果が第２仮想マシン４２の表示部２１４によって当該領域に対して表示される。このように、出力部１０５が第１仮想マシン４１により画面のＧＵＩ制御がなされてディスプレイ３２に出力する形態であっても、第２仮想マシン４２による処理の結果を好適に表示させることができる。
【０１３３】
画面制御部２０６から表示部２１４に対して通知される画像表示領域を指定する情報としては、例えば、「１：ＱＣＩＦ横、２：ＱＣＩＦ縦、３：ＱＶＧＡ横、４：ＱＶＧＡ縦」というように、特定の画像表示領域毎に対して画面制御部２０６と表示部２１４との間で用いられる番号をあらかじめ決めておき、この番号を用いて画像表示領域を通知する方法もある。しかし、上記のように、画面制御部２０６が画像表示領域の位置や大きさの情報を含む変更情報を第２仮想マシン４２の表示部２１４に対して通知し、表示部２１４はこの変更情報に基づいて実データＤ０１を用いて処理を行った結果をディスプレイ３２に表示させる場合は、画像表示領域の変更をより柔軟に行うことができ、画像表示領域の変更に応じて実行した結果をディスプレイ３２に対して好適に表示させることができる。
【０１３４】
（第６実施形態）
＜データ処理装置６の構成及びデータ処理方法＞
図２３は、本発明の第６実施形態に係るデータ処理装置６の構成を説明するブロック図である。データ処理装置６に含まれる各構成のうちデータ処理装置５と異なる点は、データ処理装置６がディスプレイ３２とスピーカー３３とを出力手段として備え、実データＤ０１が例えば動画データのようにディスプレイ３２へ出力する画像データとスピーカー３３へ出力される音声データとを含むデータであり、実行処理部２１１による処理結果が、ディスプレイ３２とスピーカー３３とに出力される点である。なお、ディスプレイ３２は、データ処理装置５と同様に第１仮想マシン４１により画面のＧＵＩ制御がなされている。また、実行処理部２１１による処理の結果は表示部２１４を介してディスプレイ３２に送られる。
【０１３５】
本実施形態に係るデータ処理装置６では、上記のように実データＤ０１が動画データであるため、実データＤ０１を用いて処理を行った場合には、その処理結果が従来はディスプレイ３２とスピーカー３３とに出力される。しかしながら、例えば、所有者がデータ処理装置６をマナーモード等に設定することによって、複数の出力手段の一つであるスピーカー３３からの音声出力が禁止されるような状態にある場合の、実データＤ０１の処理について説明する。
【０１３６】
上記のように音声出力が禁止される設定は、所有者がデータ処理装置６を操作することによって行われる。そして、この設定がなされたという情報は、データ処理装置６において第１仮想マシン４１の処理要求部２０３において格納される。そして、処理要求部２０３が判定部２０２による判定結果に基づいて、第２仮想マシン４２に対して実データＤ０１を用いた処理を要求する際に、特定の出力手段（例えばスピーカー３３）への出力が制限されている場合には、当該出力手段への出力を第２仮想マシン４２に対して要求せず、出力が制限されていない出力手段（例えばディスプレイ３２）への出力に係る処理のみを要求する。そして、第２仮想マシン４２の実行処理部２１１では、第１仮想マシン４１からの要求に基づいて特定の出力手段に対してのみの出力を想定して実データＤ０１を用いたプログラムの実行処理が行われる。
【０１３７】
上記の処理を図２４を用いてより具体的に説明する。図２４は、データ処理装置６によるデータ処理方法のうち、処理要求部２０３において行われる第２仮想マシン４２に対する処理要求に係る処理を説明するフローチャートである。図２４における処理では、図２１（Ａ）に示す第５実施形態のデータ処理装置５による処理要求処理に係るフローチャートと比較して、処理命令を行ったアプリケーションプログラムが判定部２０２において仮想データＤ１１を利用中である旨のフラグが保持されたプログラムか否かを処理要求部２０３において判断した（Ｓ２０２）後、画像表示領域に透過色の設定を行う（Ｓ２０４）の前に、出力手段に対して出力の制限があるかの確認が行われる（Ｓ２０５）。ここで行われる出力の制限の確認とは、上述のようにディスプレイ３２やスピーカー３３からの出力が、例えばマナーモード等の設定により制限されているかどうかの確認であり、複数の出力手段がある場合には個別に行われる。例えば、マナーモードの設定であり、スピーカー３３のみ出力が制限されている場合には、スピーカー３３への出力に関しての処理は、ここで中止される。一方、ディスプレイ３２への出力は特に制限されてないため、処理が継続され、図２１（Ａ）に示す処理と同様に、画像データを表示するための画像表示領域の設定を行い（Ｓ２０４）、実データＤ０１に対する処理の結果のうちの画像データだけを対象として、第２仮想マシン４２に対して、処理の要求が行われる（Ｓ２０５）。以上の処理により、第２仮想マシン４２に対しては実データＤ０１に含まれるデータのうち画像データのみの処理が要求され、第２仮想マシン４２ではこの要求に基づいて処理が行われ、その処理結果が、表示部２１４を介してディスプレイ３２に出力される。
【０１３８】
＜本実施形態による効果＞
以上のように、本実施形態によれば、例えば複数の出力手段のうち一部の出力手段（上記の例ではスピーカー３３）への出力が制限されている場合に、第１仮想マシン４１の処理要求部２０３において各出力手段への出力可否が判断され、その結果に基づいて第２仮想マシン４２に対して実データＤ０１の処理が要求される。この結果、第２仮想マシン４２において実データＤ０１を用いて行われた処理の結果を一部の出力手段のみ（上記の例ではディスプレイ３２）に対して出力される態様とすることができ、データ処理装置６により実データＤ０１を利用する際の利便性をさらに高めることができる。
【０１３９】
なお、上記の実施形態では、複数の出力手段に対して実データＤ０１の処理結果を出力する場合について説明したが、実データＤ０１を用いた処理の結果が出力される出力手段が一つであり、その出力手段による出力が制限されている場合には、第２仮想マシン４２に対して実データＤ０１を用いた処理の要求は行われない。より具体的には、例えば実データＤ０１が音楽データである場合、実データＤ０１を用いた再生処理の結果は、スピーカー３３に対してのみ出力される。ここで、マナーモード等の設定により、スピーカー３３からの音声出力が制限されている場合には、処理要求部２０３によって図２４に示すフローチャートに従って出力の制限を確認する（Ｓ２０５）と、スピーカー３３に対する音声出力が制限されていることが確認されるため、音声出力に係る処理はここで終了される。そして、第２仮想マシン４２による実データＤ０１を用いた処理の結果は他の出力手段に対しては出力されない。そのため、第２仮想マシン４２に対して実データＤ０１を用いた処理の要求を送信する必要がなく、以降の処理は中止される。このように、出力が制限されている出力手段に対しての出力が行われる処理の要求は、第１仮想マシン４１から第２仮想マシン４２に対して送信されないことから、第２仮想マシン４２において出力要否を判断することがなく出力が中止され、データ処理装置６によりデータを利用する際の利便性を高めることができる。また、第２仮想マシン４２では不要な処理を行うことがなく、よりデータ処理装置６において上記の処理を効率よく行うことができる。
【０１４０】
なお、マナーモードのほかに、例えばデータ処理装置６に対して外部との通信を遮断するセルフモードの設定がなされており、実データＤ０１を用いた処理の結果を外部に送信する必要がある場合にも適用することができる。この場合、上記とマナーモードの設定がなされている場合と同様の処理によって第１仮想マシン４１において第２仮想マシン４２に対する処理の要求が中止されるため、第２仮想マシン４２における実データＤ０１を用いた処理の実行及びその結果の送信に係る処理が行われない。
【０１４１】
（データ処理プログラム）
引き続いて、上述した一連のデータ処理を、上述したようなデータ処理装置１〜５として構成されるコンピュータに実行させるためのデータ処理プログラムを説明する。図２５に示すように、データ処理プログラム６１は、コンピュータが備える記録媒体６０に形成されたプログラム格納領域６０ａ内に格納されている。
【０１４２】
データ処理プログラム６１は、処理を統括するメインモジュール６１ａと、受信モジュール６１ｂと、判定モジュール６１ｃと、処理要求モジュール６１ｄと、実行処理モジュール６１ｅと、を備えて構成される。受信モジュール６１ｂと、判定モジュール６１ｃと、処理要求モジュール６１ｄと、実行処理モジュール６１ｅと、を実行させることにより実現される機能は、上述した受信部２０１と、判定部２０２と、処理要求部２０３と、実行処理部２０４の機能とそれぞれ同様である。
【０１４３】
（変形例）
以上本発明の好適な実施形態について説明したが、本発明に係るデータ処理装置、データ処理方法及びデータ処理プログラムは種々の変更を行うことが可能である。
【０１４４】
上記の実施形態では、データ処理装置１〜６が出力手段（出力部）を備え、当該出力手段に対して実データＤ０１を用いたプログラムの実行結果を出力する場合について説明したが、出力手段は外部の装置である態様としてもよい。この場合には、通信部３４を介して外部と通信をすることにより、外部の装置に対して第２仮想マシン４２における実データＤ０１を用いたプログラムの実行の処理結果を送信することにより、第２仮想マシン４２に格納される実データＤ０１を用いた処理の結果をデータ処理装置の所有者等が確認することができる。
【符号の説明】
【０１４５】
１，２，３，４，５…データ処理装置、４１…第１仮想マシン、４２…第２仮想マシン、１０１…第１記憶部、１０２…第２記憶部、２０１…受信部、２０２…判定部、２０３…処理要求部、２０５…更新部、２１１…実行処理部、２１２…通知部、Ｄ０１…実データ、Ｄ１１…仮想データ。
【図１】
2010191681.tif 000003
【図２】
2010191681.tif 000004
【図３】
2010191681.tif 000005
【図４】
2010191681.tif 000006
【図５】
2010191681.tif 000007
【図６】
2010191681.tif 000008
【図７】
2010191681.tif 000009
【図８】
2010191681.tif 000010
【図９】
2010191681.tif 000011
【図１０】
2010191681.tif 000012
【図１１】
2010191681.tif 000013
【図１２】
2010191681.tif 000014
【図１３】
2010191681.tif 000015
【図１４】
2010191681.tif 000016
【図１５】
2010191681.tif 000017
【図１６】
2010191681.tif 000018
【図１７】
2010191681.tif 000019
【図１８】
2010191681.tif 000020
【図１９】
2010191681.tif 000021
【図２０】
2010191681.tif 000022
【図２１】
2010191681.tif 000023
【図２２】
2010191681.tif 000024
【図２３】
2010191681.tif 000025
【図２４】
2010191681.tif 000026
【図２５】
2010191681.tif 000027