JP2010191681A - データ処理装置、データ処理方法、データ処理プログラム - Google Patents

データ処理装置、データ処理方法、データ処理プログラム Download PDF

Info

Publication number
JP2010191681A
JP2010191681A JP2009035326A JP2009035326A JP2010191681A JP 2010191681 A JP2010191681 A JP 2010191681A JP 2009035326 A JP2009035326 A JP 2009035326A JP 2009035326 A JP2009035326 A JP 2009035326A JP 2010191681 A JP2010191681 A JP 2010191681A
Authority
JP
Japan
Prior art keywords
data
virtual machine
processing
virtual
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009035326A
Other languages
English (en)
Other versions
JP4787341B2 (ja
Inventor
Hisatoshi Eguchi
悠利 江口
Masaru Ota
賢 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2009035326A priority Critical patent/JP4787341B2/ja
Publication of JP2010191681A publication Critical patent/JP2010191681A/ja
Application granted granted Critical
Publication of JP4787341B2 publication Critical patent/JP4787341B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データの不適切な利用を防止すると共に当該データを適切に利用する。
【解決手段】データ処理装置1の第1仮想マシン41は、実行することが許容される処理内容が予め特定され、実データD01に対応付けられた仮想データD11を第1記憶部101に格納し、処理内容が特定された処理命令を受信部201において受信し、この処理命令の処理内容が、仮想データD11に対して処理を実行することが許容されるか否かを判定部202において判定し、許容されると判定された場合に、実データD01の処理を第2仮想マシン42へ要求する。第1仮想マシン41とは異なるオペレーションシステムにより動作する第2仮想マシン42は、実データD01を第2記憶部102に格納し、実行処理部211において実データD01を用いて実行されるプログラムを格納し、第1仮想マシン41からの要求に基づいて、当該プログラムを実行する。
【選択図】図1

Description

本発明は、データ処理装置、データ処理方法、データ処理プログラムに関する。
携帯電話等の通信端末の性能の向上に伴い、種々の高機能OS(Operating System)が通信端末に搭載されるようになり、このOSを用いて電子メールやウェブサイトの閲覧等の多くの機能が通信端末の所有者(ユーザ)によって利用されている。特に、ウェブサイトの閲覧機能を用いて、着信メロディや待ち受け画像等のコンテンツを通信端末にダウンロードして用いることは特に一般的となっている。ここで、通信端末のユーザによってダウンロードされるコンテンツの扱いは、コンテンツ提供会社により決められていることが多い。具体的には、例えば、ダウンロードしたコンテンツを通信端末の外へ持ち出すことや、改変して利用することは、コンテンツ提供会社により制限される場合がある。近年では、通信端末内部に保持される個人情報や電子メール等の情報についても、ダウンロードしたコンテンツと同様に持ち出しの制限等を行うことができるような情報の保護を重視した端末設計が検討されつつある。
また、最近では、PC(Personal Computer)との親和性が高く、カスタマイズ性に強みを持つ通信端末であるスマートフォンの開発が進められている。このスマートフォンは、PCと同様にCPU(Central Processing Unit)が直接実行可能であるネイティブコードのアプリケーションを追加することができ、当該アプリケーションの高速実行等を行うことができるという特徴を有する。ところが、PCと同様にウイルス等の悪意のあるアプリケーションが実行されてしまうと、通信端末の内部に保持される個人情報やデータ等の消去、改ざん、漏洩等が起きる可能性があるため、上記のような情報の保護を達成することができなくなる恐れがある。そこで、上記のスマートフォンのようにネイティブコードのアプリケーションを使用する通信端末において、アプリケーションの使用と、保護すべき情報の管理との双方を達成するための種々の方法が検討されている。
例えば、特許文献1では、プログラムによって仮想的なCPU、メモリ、周辺デバイス等を備える仮想マシンを作り出すことにより、1台の物理的な通信端末の中に、ネイティブコードのアプリケーションを実行する仮想マシンと、この仮想マシンで保存されたファイルを検査する上記の仮想マシンとは異なる仮想マシンとを含む複数の仮想マシンを備える構成が示されている。そして、これらの仮想マシンを動作させることにより、脅威あるアプリケーションを仮想マシンにおいて実行する前に、異なる仮想マシンにより検査をすることによって、悪意のあるアプリケーションによる通信端末の攻撃が回避される。
また、特許文献2では、通信端末内部の仮想マシン内には、あらかじめリモートサーバに保管されるコンテンツファイルに対するスケルトンファイルが保持されており、仮想マシン内で実行されるプログラムがこのスケルトンファイルにアクセスした場合には、スケルトンファイルに対応するコンテンツファイルの内容がリモートサーバから取得される構成が示されている。
また、特許文献3では、複数の仮想マシンにおいて利用可能なデータと、各仮想マシンにおいて占有して利用されるデータと、を区別する構成が示されている。
また、特許文献4では、アプリケーションによるデータ表示要求に基づいて、仮想マシンにおいて対応するプログラムを動的に生成して実行する構成が示されている。そして構成によれば、仮想マシンにおいて生成されるプログラムの詳細はアプリケーションに対して秘匿されることから、データ表示に対して行われる処理の詳細が外部に漏洩するという問題が低減される。
米国特許出願公開第2008/0178290号明細書 米国特許第6735601号明細書 米国特許第6738977号明細書 米国特許第6604111号明細書
現在の通信端末では、個人情報やコンテンツ等の重要なデータを保護する目的から、ネットワークからダウンロードしたアプリケーションは重要データを利用できないように制限されている。ネイティブコードのアプリケーションを使用する通信端末において同様の制限を実現するためには、通信端末により用いられるアプリケーションを通信端末内に設けられた二つの仮想マシンに分けて動作させる機構が利用できる。より具体的には、上述の重要なデータを特定の仮想マシンの管轄下に配置し、これらのデータの利用は、この仮想マシンにおいて動作するアプリケーションによってのみ利用される態様とする一方、ネットワークからダウンロードしたアプリケーションは上記の仮想マシンとは異なる仮想マシンにおいて動作させる態様とされる。上記のように、ネットワークからダウンロードしたアプリケーションが悪意のあるものである場合であっても、アプリケーションが動作する仮想マシンとは異なる仮想マシンの管轄下の重要なデータを利用することができない態様とすることにより、重要なデータの改ざんや漏洩等を防止する構成が用いられている。
しかしながら、上記の構成では、重要なデータの改ざんや漏洩等の防止は図られているものの、アプリケーションがデータを十分に利用することができないという問題がある。具体的には、例えば、アプリケーションを動作させる仮想マシンにおいて動作する電話アプリケーションは、この仮想マシンの管轄下にあるデータを着信音として使用することはできても、異なる仮想マシンの管轄下にあるデータを着信音として使用することはできない。このように、動作するアプリケーションが信頼性の高いアプリケーションであっても、通信端末において保持されるデータを十分に利用することができないため、通信端末のユーザはそのアプリケーションを十分に活用することができないという問題があって、これは、上述の特許文献1〜4に記載の技術を用いても解決することができない。
例えば、特許文献1に記載の技術によれば、特定の仮想マシンにおいてアプリケーションを実行する前に異なる仮想マシンにより検査がなされるために、悪意のあるアプリケーションの実行は回避されるが、意図しないアプリケーションが重要なデータにアクセスしてしまうことによる改ざんや漏洩等が発生するという問題がある。
また、特許文献2に記載の技術によれば、仮想マシン内のプログラムが、スケルトンファイルにアクセスした場合には、スケルトンファイルに対応付けてリモートサーバに保管されるコンテンツファイルの内容が取得されるため、悪意のあるプログラムが実行された場合には、コンテンツファイルの内容が当該プログラムにより漏洩する可能性がある。
また、特許文献3に記載の技術によれば、各仮想マシンにおいてのみ占有して利用されるデータは、異なる仮想マシンのアプリケーションが利用することができないため、例えこのアプリケーションが信頼性のあるアプリケーションであってもデータを十分利用できないという問題がある。
また、特許文献4に記載の技術によれば、仮想マシンにおいて生成されたプログラムを実行することにより、データ表示が行われるものの、表示対象となるデータが重要なデータである場合のデータの管理については開示がないため、アプリケーションからの要求に基づいて、秘匿される必要がある重要なデータについても表示されてしまう可能性がある。
このように、特許文献1〜4に記載の技術を用いて、通信端末に保持されるデータを適切に利用することと、保護されるべきデータの管理を適切に行うことと、を両立することは困難である。
本発明は上記を鑑みてなされたものであり、データの不適切な利用を防止すると共に当該データを適切に利用することができるデータ処理装置、データ処理方法、及びデータ処理プログラムを提供することを目的とする。
上記目的を達成するため、本発明に係るデータ処理装置は、互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置であって、第1仮想マシンは、実行することが許容される処理内容があらかじめ特定され、前記第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第1記憶手段と、処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段と、受信手段により受信された処理命令に含まれる処理内容を特定する情報に基づいて、仮想データに対して処理を実行することが許容されるか否かを判定する判定手段と、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第2仮想マシンへ要求する処理要求手段と、を備え、第2仮想マシンは、データを格納する第2記憶手段と、データを用いて実行されるプログラムを格納し、1仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理手段と、を備えることを特徴とする。
上記のデータ処理装置によれば、第1仮想マシンの受信手段において受信され、第1記憶手段に格納される仮想データを用いた処理命令が、あらかじめ仮想データに対応付けて格納され、実行することが許容される処理内容であるかが判定される。そして、実行することが許容されると判定された場合には、仮想データに対応付けられて第2記憶手段に格納されるデータの処理が第2仮想マシンに対して要求され、データを用いたプログラムの実行が第2仮想マシンにおいて行われる。このように、第2仮想マシンの第2記憶手段に格納されるデータに対応付けられた仮想データが第1仮想マシンの第1記憶手段に格納され、この仮想データに対する処理要求に応じて第2記憶手段に格納されるデータの処理を実行することができるため、結果として、第1仮想マシンから第2仮想マシンに格納されるデータを間接的に利用することができる。また、上記のデータ処理装置によれば、第1仮想マシンの第1記憶手段に格納される仮想データには、あらかじめデータに対して実行することが許容される処理内容を特定する情報が対応付けられ、この情報に含まれる処理内容の処理命令を受信した場合に限って、第2仮想マシンに対して処理の要求が送信されることから、例えば第2仮想マシンに格納されるデータを利用しようとする悪意のある処理命令が第1仮想マシンにおいて受信された場合には、この処理命令に基づいて第2仮想マシンに対して指示をすることを回避することができるため、不適切な利用を防止することができる。
ここで、第2仮想マシンは、第2記憶手段に格納されるデータが更新された場合に、第2記憶手段に格納されるデータの更新に係る情報が含まれる更新情報を第1仮想マシンに通知する通知手段を更に備え、第1仮想マシンは、通知手段より通知される更新情報を取得し、当該更新情報に基づいて第1記憶手段に格納される仮想データを更新する更新手段を更に備える態様とすることができる。
このように、第2記憶手段に格納されるデータの更新内容を第1仮想マシンに通知し、データの更新内容に基づいて第1記憶手段に格納される仮想データを更新することにより、例えば第2記憶手段におけるデータの追加や削除に応じて、第1記憶手段における仮想データを適切に追加や削除することができる。また、第2記憶手段に格納されるデータに対して許容される処理内容が変更された場合等にも、この情報を第1仮想マシンに対して適切に通知し、第1記憶手段に格納される仮想データに対応付けられる処理内容を特定する情報を更新することにより、例えば、上記の変更により許容されなくなった内容の処理を第1仮想マシンから第2仮想マシンに対して要求することを減らすことができるため、第1仮想マシンと第2仮想マシンとの間に発生する不要な情報のやり取りを減らすことができる。
また、第1仮想マシンは、第2仮想マシンに対してデータの実行処理の終了を要求する処理終了要求手段を更に備え、実行処理手段は、処理終了要求手段からの要求に基づいて、データを用いたプログラムの実行を中止する態様としてもよい。
上記の構成によれば、第2仮想マシンにおいて実行されるプログラムが、例えば実行処理を続けるプログラムである場合には、第1仮想マシンから第2仮想マシンに対して実行処理を終了させる要求を送信し、この要求に基づいてプログラムの実行を中止させる構成を備えることで、プログラムの実行を停止させ、第2記憶手段に格納されるデータの利用を中止させることができる。
また、実行処理手段は、第2記憶手段に格納されるデータをあらかじめ実行可能な状態にする態様とすることができる。
上記のように、あらかじめデータを実行可能な状態にすることで、第1仮想マシンからの処理要求に基づいてより早くデータを実行処理することができる。
また、第2仮想マシンは、受信手段において処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段を更に備え、実行処理手段は、イベント情報受信手段がイベント情報を受信した後の一定時間のみ、処理要求手段からの要求に基づいて、データを用いてプログラムを実行する態様としてもよい。
このように、イベント情報受信手段がイベント情報を受信した後の一定時間のみデータの実行処理を行う態様とすることで、イベント情報に基づいて第1仮想マシンから要求される処理は適切に実行することができると共に、例えば第2仮想マシンにおいて不正な処理要求を受けてプログラムを実行することを回避することができる。
ここで、第2仮想マシンは、イベント情報受信手段により受信されたイベント情報と、イベント情報を受信した後に実行処理手段によりプログラムを実行する際に用いられたデータと、を対応付けて格納する第3記憶手段とを更に備え、実行処理手段は、イベント情報受信手段がイベント情報を受信した際に、第3記憶手段を参照し、イベント情報受信手段が受信したイベント情報に対応付けて格納されるデータをあらかじめ実行可能な状態にする態様とすることができる。
上記のように、イベント情報を受信した際に第3記憶手段に格納される情報に基づいて当該イベント情報に対応付けて格納されるデータをあらかじめ実行可能な状態にすることで、第1仮想マシンからの要求に基づいて当該データを用いたプログラムを実行する処理を開始するのを早めることができる。また、第2仮想マシンに格納されるデータが複数ある場合に、どのデータをあらかじめ実行可能にするかが明確となり、不要なデータをあらかじめ実行可能な状態にする等の不要な処理を減らすことができる。
また、実行処理手段によりデータを用いてプログラムを実行した結果を出力する出力手段を更に備える態様とすることができる。
上記のように、本発明のデータ処理装置が出力手段を更に備える場合、第2仮想マシンによりデータを用いてプログラムを実行した結果を他の装置に対して送信して出力する場合と比較して、実行した結果がより早く出力され、データ処理装置の所有者がより早く確認することができる。
ここで、出力手段は、第1仮想マシンにより制御されるディスプレイであって、データは画像データであって、第1仮想マシンは、ディスプレイの画面表示を制御する画面制御手段を更に備え、第2仮想マシンは、実行処理手段によりデータを用いてプログラムを実行した結果をディスプレイに対して表示させる表示手段を更に備え、画面制御手段は、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、ディスプレイのうちデータを用いてプログラムを実行した結果を表示するための画像表示領域を透過色に設定し、表示手段は、データを用いてプログラムを実行した結果を画像表示領域に表示させる態様とすることができる。
上記のように、第1仮想マシンにより制御されるディスプレイである出力手段に対して第2仮想マシンにおいてデータを用いてプログラムを実行した結果を出力する場合、第1仮想マシンの画面制御手段が判定手段による判定結果に基づいて画像表示領域を透過色にし、出力結果が第2仮想マシンの表示手段によって当該領域に対して表示される。このように、出力手段が第1仮想マシンにより制御されるディスプレイであっても、第2仮想マシンによる処理の結果を好適に表示させることができる。なお、ここでいう画像データとは、ディスプレイに表示させることができるデータを指し、例えばアニメーション等の動画も含まれる。
また、画面制御手段は、画像表示領域の変更に係る情報である変更情報を表示手段に通知し、表示手段は、変更情報に基づいて、画像表示領域にデータを用いてプログラムを実行した結果を表示させる態様としてもよい。
上記のように、画面制御手段から通知される変更情報に基づいて表示手段がプログラムを実行した結果を表示させることにより、画像表示領域の変更に応じて実行した結果を好適に表示させることができる。
ここで、変更情報は、画像表示領域の位置とサイズの変更に係る情報である場合、表示手段は画像表示領域の位置やサイズの変更に応じた対応を行うことができ、よりプログラムを実行した結果を好適に表示させることができる。
また、処理要求手段は、出力手段への出力が制限されている場合には、第2仮想マシンに対するデータの処理の要求を中止する態様とすることもできる。
上記の構成によれば、例えば音声出力をすると周囲に迷惑となるような場合に、音楽データを再生して出力手段から出力させてしまうということを減少させることができるように、状況に応じて適切に出力を制限させることができるため、データ処理装置によりデータを利用する際の利便性を高めることができる。
さらに、データ処理装置は出力手段を複数備え、処理要求手段は、データを用いてプログラムを実行した結果が複数の出力手段へ出力される場合に、複数の出力手段のうちの一部の出力手段に対してのみプログラムを実行した結果の出力を第2仮想マシンに対して要求する態様としてもよい。
上記の構成によれば、例えば第2仮想マシンによる処理の結果が音声と画像によって出力されるデータを処理した場合に、その結果のうち一方のみ(例えば画像のみ)が出力される態様とすることができ、データ処理装置によりデータを利用する際の利便性をさらに高めることができる。
なお、本発明は、上記のようにデータ処理装置の発明として記述できる他に、以下のようにデータ処理方法の発明及びデータ処理プログラムの発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
すなわち、本発明に係るデータ処理方法は、互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置によるデータ処理方法であって、第1仮想マシンの第1記憶手段が、実行することが許容される処理内容があらかじめ特定され、第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第1記憶ステップと、第1仮想マシンの受信手段が、データに対して実行してもよい処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信ステップと、第1仮想マシンの判定手段が、受信ステップにおいて受信された処理命令に含まれる処理内容を特定する情報に基づいて、仮想データに対して処理を実行することが許容されるか否かを判定する判定ステップと、第1仮想マシンの処理要求手段が、判定ステップにおいて処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第2仮想マシンへ要求する処理要求ステップと、第2仮想マシンの第2記憶手段がデータを格納する第2記憶ステップと、第2仮想マシンの実行処理手段が、データを用いて実行されるプログラムを格納し、1仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理ステップと、を備えることを特徴とする。
また、本発明に係るデータ処理プログラムは、互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置におけるデータ処理プログラムであって、第1仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定され、第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを第2仮想マシンにおいて格納されるデータに対応付けて格納する第1記憶手段と、第1仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定された仮想データを第2仮想マシンにおいて格納されるデータに対応付けて格納する第1記憶手段と、第1仮想マシンにおいて、データに対して実行してもよい処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段と、第1仮想マシンにおいて、判定手段により処理内容を特定する情報に基づいた処理を仮想データに対して実行することが許容されると判定された場合に、仮想データに対応付けられたデータの処理を第2仮想マシンへ要求する処理要求手段と、第2仮想マシンにおいて、データを格納する第2記憶手段と、第2仮想マシンにおいて、データを用いて実行されるプログラムを格納し、1仮想マシンからの要求に基づいて、データを用いてプログラムを実行する実行処理手段と、をコンピュータに機能させることを特徴とする。
本発明によれば、データの不適切な利用を防止すると共に当該データを適切に利用することができるデータ処理装置、データ処理方法、及びデータ処理プログラムが提供される。
本発明の第1実施形態に係るデータ処理装置の構成を説明するブロック図である。 データ処理装置のハードウェア構成を説明する図である。 データ処理装置のソフトウェア構成を説明する図である。 第2記憶部に格納される実データと、第1記憶部に格納される仮想データと、の対応付けの例を説明する図である。 第2記憶部に格納される実データと、第1記憶部に格納される仮想データと、の対応付けの例を説明する図である。 第2記憶部に格納される実データと、第1記憶部に格納される仮想データと、の対応付けの例を説明する図である。 データ処理方法(仮想データの利用処理)を説明するフローチャートである。 データ処理方法(処理要求処理)を説明するフローチャートである。 データ処理方法(実行処理)を説明するフローチャートである。 データ処理方法(通知処理及び更新処理)を説明するフローチャートである。 本発明の第2実施形態に係るデータ処理装置の構成を説明するブロック図である。 データ処理方法(終了要求処理及び終了処理)を説明するフローチャートである。 データ処理方法(デコード処理)を説明するフローチャートである。 本発明の第3実施形態に係るデータ処理装置の構成を説明するブロック図である。 データ処理方法(有効時間制御処理)を説明するフローチャートである。 本発明の第4実施形態に係るデータ処理装置の構成を説明するブロック図である。 データ処理方法(履歴記録処理)を説明するフローチャートである。 データ処理方法(デコード処理)を説明するフローチャートである。 本発明の第5実施形態に係るデータ処理装置の構成を説明するブロック図である。 第5実施形態に係るデータ処理装置によりディスプレイに出力される画像の例を示す図である。 データ処理方法(処理要求処理及び実行処理)を説明するフローチャートである。 データ処理方法(画像表示領域通知処理及び画像表示領域変更処理)を説明するフローチャートである。 本発明の第6実施形態に係るデータ処理装置の構成を説明するブロック図である。 データ処理方法(処理要求処理)を説明するフローチャートである。 本発明の好適な実施形態に係るデータ処理プログラムの構成を説明するブロック図である。
以下、添付図面を参照して、本発明を実施するための形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
(第1実施形態)
<データ処理装置1の構成>
図1は、本発明の第1実施形態に係るデータ処理装置1の構成を説明するブロック図である。図1に示すように、データ処理装置1は、第1仮想マシン41と、第2仮想マシン42と、第1記憶部101と、第2記憶部102と、出力部105を含んで構成される。データ処理装置1は、例えば、携帯電話、PDA(Personal Digital Assistant)、パーソナルコンピュータ(Personal Computer:PC)等の通信機能を有する装置として実現される。データ処理装置1に含まれる第1仮想マシン41と第2仮想マシン42とは、互いに異なるオペレーションシステムにより動作する仮想マシンである。ここでいう「異なるオペレーションシステム」とは同じ種類のオペレーションシステムが第1仮想マシン41と第2仮想マシン42のそれぞれにおいて個別に動作する態様も含まれる。なお、第1記憶部101及び第2記憶部102は、それぞれ第1仮想マシン41及び第2仮想マシン42に含まれるが、本実施形態では、第1記憶部101及び第2記憶部102を第1仮想マシン41及び第2仮想マシン42とは区別して記載する。
データ処理装置1の構成の詳細を説明する前に、まず、データ処理装置1に含まれる第1仮想マシン41及び第2仮想マシン42について説明する。本実施形態において、仮想化とは、1台分のハードウェア構成からなる装置(コンピュータ)を仮想化ソフトウェア(Virtual Machine Monitor:VMM)を実行することにより仮想的に複数の装置のように動作させることである。データ処理装置1に含まれる第1仮想マシン41及び第2仮想マシン42は、仮想化ソフトウェアにより作り出された仮想的な装置のことをいい、これらの仮想マシンでは、それぞれオペレーションシステム(Operating System:OS)及びアプリケーションプログラム(プログラム)が実行される。アプリケーションプログラムとは、例えば、データ処理装置1が携帯電話である場合、他の携帯電話からの着信があった場合に、発信者に応じて異なる着信メロディを鳴らすためのプログラム等である。
以下、図2及び図3を用いながら上記の仮想マシンについて具体的に説明する。図2は、データ処理装置1のハードウェア構成を説明する図である。また、図3は、データ処理装置1のソフトウェア構成を説明する図である。
図2に示すように、データ処理装置1は、CPU(Central Processing Unit)20、メモリ21、記憶装置30、キーパッド31、ディスプレイ32、スピーカー33、及び通信部34を含んで構成される。
CPU20は、メモリ21上のプログラムを実行する機能を備える。本実施形態におけるデータ処理装置1では、1つのCPU20上で動作する複数の仮想的な装置(仮想マシン)を作り出すプログラムであるVMMを動作させることにより、第1仮想マシン41及び第2仮想マシン42が作り出される。
メモリ21は、記憶装置30からロード(読み込み)されたプログラムやデータを格納する機能を備える。データ処理装置1では、上述のVMM、OS、アプリケーションプログラム等が記憶装置30からロードされ、CPU20により実行される。
記憶装置30は、メモリ21にロードされCPU20により実行されるプログラムやデータを保存する機能を有する。データ処理装置1が例えばPCである場合にはハードディスクドライブが記憶装置30として用いられる。また、データ処理装置1が例えば携帯電話である場合にはフラッシュメモリが記憶装置30として用いられる。
キーパッド31は、CPU20において実行されるプログラムに対して入力を行うための入力デバイスである。
ディスプレイ32は、CPU20において実行されたプログラムの処理結果を表示するデバイスである。また、スピーカー33は、CPU20において実行されたプログラムの処理結果を音により出力するデバイスである。CPU20において実行されたプログラムが例えば音声データや音楽データを用いる場合、プログラムの処理結果として音声や音楽がスピーカー33から出力される。また、CPU20において実行されたプログラムが例えば画像と音声を含むデータを用いる場合、プログラムの処理結果として画像がディスプレイ32に表示されると共に、音声がスピーカー33から出力される。
通信部34は、CPU20で実行されたプログラムが他の装置と通信するための入出力デバイスである。データ処理装置1がPCである場合にはイーサネットアダプタが通信部34として用いられ、携帯電話である場合には携帯電話網の通信プロセッサが通信部34として用いられる。
続いて、図3を参照して、上記のハードウェア構成を備えるデータ処理装置1のメモリ21の内部に格納される仮想化マシンを実現するための情報について説明する。
仮想化ソフトウェア(VMM)40は、1つのCPU20上で複数の仮想的な装置(仮想マシン)を作り出すプログラムであり、仮想化ソフトウェア40が実効されることにより、本実施形態に係るデータ処理装置1において、メモリ21の内部に第1仮想マシン41を実現するための情報及び第2仮想マシン42を実現するための情報が新たに格納される。仮想化ソフトウェア40の代表例としては、VMWare、Xen、Virtualbox(いずれも商品名)が挙げられる。この第1仮想マシン41及び第2仮想マシン42の内部では、OSやアプリケーションプログラムがそれぞれ独立して実行される。ただし、プログラムの処理結果を出力するディスプレイ32やスピーカー33は、図2に示すようにデータ処理装置1において1つしか備えられておらず、これを第1仮想マシン41や第2仮想マシン42から利用する場合、タイミングによっては各仮想マシンからのアクセスが衝突する可能性がある。また、第1仮想マシン41及び第2仮想マシン42において実行されるプログラムに対してデータの入力等を行うキーパッド31や、通信部34等のデバイスについても、同様である。したがって、データ処理装置1のように内部に仮想マシンを作り出す装置においては、上述のデバイスを複数のOSが共有して使えるような仕組みが構築される。
デバイスを複数のOSが共有して使えるような仕組みとしては、例えば、デバイスの動作を仮想マシンが個別に制御できるように、図3に示すように第1仮想マシン(を制御するための情報)41の内部において、スピーカー33を制御するための情報(例えば、デバイスドライバ)41Aと、ディスプレイ32を制御するための情報41Bを格納する。そして、第2仮想マシン(を制御するための情報)42の内部において、スピーカー33を制御するための情報42Aと、ディスプレイ32を制御するための情報42Bを格納する。そして、どの仮想マシンがどのデバイスに対してアクセスしているのかの対応付けを、仮想化ソフトウェア40において管理する。このようにすることで、例えば第1仮想マシン41において処理を行った結果は、スピーカー33を制御するための情報41Aと、ディスプレイ32を制御するための情報41Bを用いることで、スピーカー33及びディスプレイ32に対して出力される。なお、上記の仕組みのほか、デバイスの動作をデータ処理装置1に含まれる特定の仮想マシンが集中管理する態様とすることができる。
なお、本実施形態では、第1仮想マシン41及び第2仮想マシン42がそれぞれ異なる目的で動作する場合について説明する。具体的には、第1仮想マシン41は、アプリケーションプログラムの実行を主たる目的として機能する。第1仮想マシン41におけるアプリケーションプログラムの実行に際しては、後述の第2仮想マシン42のように実行内容等の制限はされない。このアプリケーションプログラムは、データ処理装置1にあらかじめ格納されているもののほか、データ処理装置1の利用者により追加される場合がある。データ処理装置1に対してアプリケーションプログラムが追加される場合は、第1仮想マシン41に格納され、このアプリケーションプログラムは第1仮想マシン41において実行される。したがって、第1仮想マシン41では、例えばウイルスやスパイウェア等の悪意のあるアプリケーションプログラムが追加されて実行される可能性があり、その結果、情報漏洩や誤動作等が発生するリスクがある。
一方、第2仮想マシン42は、ウイルスやスパイウェア等による脅威に晒してはならない重要なデータの保持や、この情報を用いてアプリケーションプログラムを実行することを主たる目的として機能する。第2仮想マシン42に保持されるデータとは、例えば、個人情報に係るデータなどのほか、ネットワークを介して購入した再配布等が禁止されているコンテンツデータ等が挙げられる。これらの情報は、第2仮想マシンの内部(本実施形態では、第2記憶部102)に格納されると共に、第2仮想マシン42においてのみ当該データを用いた処理が行われる。また、第2仮想マシン42において用いられるアプリケーションプログラムは、第2仮想マシン42において保持されるデータを用いた処理のみに対して用いられるものであり、あらかじめデータ処理装置1に格納されているものである。このような態様とすることで、第2仮想マシン42に格納されるデータが外部に流出することや、悪意のあるアプリケーションプログラムによって消去や改ざん等がなされることを防止することができる。
なお、本実施形態では、データ処理装置1が上記の構成を備える携帯電話である場合について説明する。具体的には、インターネット等を介してダウンロードした音楽データを第2仮想マシン42に含まれる第2記憶部102に格納し、第1仮想マシン41に格納される電話アプリケーションプログラムによって、第2仮想マシン42に格納された音楽データを着信音として用いる場合について説明する。
データ処理装置1において、例えばインターネット等を介して音楽データを購入した場合、悪意のあるアプリケーションプログラムにより例えば購入した音楽データ(購入音楽データ)のコピーが作成されることや、削除されること等はビジネス上の問題となるため、購入音楽データは、第2記憶部102に格納される。一方、本実施形態のデータ処理装置1では、例えばデータ処理装置1が携帯電話であって、データ処理装置1に対して着信があった場合に着信音を鳴らして所有者に通知を行う機能は、第1仮想マシン41に格納されるアプリケーションプログラム(電話アプリ)によって行われる。このとき、第1仮想マシン41に格納されるアプリケーションプログラムが第2記憶部102に格納されるデータを使用することができないため、電話アプリは第2記憶部102に格納される購入音楽データを用いることができないという問題がある。本実施形態の以下の説明では、上記のように、第2記憶部102に購入音楽データが格納され、第1仮想マシン41に格納される電話アプリが当該購入音楽データを着信音として利用する場合を例に説明する。
図1に戻り、第1仮想マシン41及び第2仮想マシン42を備えるデータ処理装置1の具体的な構成について説明する。上述のように、データ処理装置1は、第1仮想マシン41と、第2仮想マシン42と、第1記憶部101と、第2記憶部102と、出力部105と、を含んで構成される。第1記憶部101は、第1仮想マシン41において用いられるデータを格納するための第1仮想マシン41専用の記憶領域であり、第2記憶部102は、第2仮想マシン42において用いられるデータを格納するための第2仮想マシン42専用の記憶領域である。
ここで、第1記憶部101及び第2記憶部102において格納されるデータについて説明する。本実施形態のデータ処理装置1では、第1仮想マシン41に対するデータを用いた処理命令を受信し、この処理命令に基づいて第2仮想マシン(本実施形態では第2記憶部102)に格納されるデータを用いてプログラムが実行される。このため、第2記憶部102には、本実施形態において用いられる実データD01が格納される。一方、第1記憶部101には、この実データD01に対応付けられた仮想データD11が格納される。仮想データD11と実データD01との対応付けは、例えば、第2記憶部102に格納される実データD01のファイル名と同じファイル名を有する仮想データD11を作成すること等により行われる。また、仮想データD11に対して行うことができる処理の内容として、実データD01を用いて行うことができる処理の内容が対応付けられている。なお、実データD01を用いて行うことができる処理の内容とは、実データD01の拡張子により特定されるファイルの種類等に基づくものであり、例えば、実データD01の拡張子が「.mp3」である場合には、「再生処理」が実データD01を用いて実行することが許容される処理として挙げられる。したがって、実データD01に対応付けられた仮想データD11を用いて実行が許容される処理内容を特定する情報として、「再生処理」を特定する情報が仮想データD11に対応付けられる。なお、仮想データD11を用いて実行すること処理内容を特定する情報として、第1仮想マシン41において使用され、実データD01の利用を要求することが想定されるアプリケーションプログラムを仮想データD11と対応付けてもよい。本実施形態のデータ処理装置1では、購入音楽データである実データD01の出力要求を第1仮想マシン41において動作する電話アプリが行うことを想定し、電話アプリが仮想データD11と対応付けられている。
仮想データD11と実データD01との対応関係については、例えば表等にまとめられて第2記憶部102に格納される。すなわち、仮想データD11が電話アプリにより使用されるデータであるということを示す情報は、仮想データD11に対応付けられて保持されるが、仮想データD11と対応付けられた実データD01を特定する情報は第1記憶部101においては格納されない。これにより、第1仮想マシン41において悪意のあるアプリケーションプログラムが動作した場合であっても、第2仮想マシン42に格納される実データを特定する情報がアプリケーションプログラムにより取得されることを避けることができる。
そして、第1仮想マシン41において受信された仮想データD11を用いた処理の命令に基づいて、第1仮想マシン41から第2仮想マシン42に対して、この仮想データD11に対応付けられた実データD01を用いた処理が要求され、第2仮想マシン42において実データD01を用いた処理が実行される。なお、上述のように第1仮想マシン41では仮想データD11に対応付けられた実データD01を特定する情報は保持されていない。したがって、第1仮想マシン41から第2仮想マシン42に対して行われる処理要求は、実データD01を特定した情報を含む処理要求ではない。すなわち、仮想データD11を特定した情報を用いることにより、当該仮想データD11に対応する実データの処理の要求が第1仮想マシン41から第2仮想マシン42に対して行われる。
第2記憶部102に格納される実データD01と、第1記憶部101に格納される仮想データD11と、の対応付けの例を図4〜図6を用いて説明する。図4に示す例では、データ処理装置1において実データと仮想データにつけるファイル名についてあらかじめルールを決めておき、この情報を記憶しておく。具体的には、第2記憶部102に格納される実データについてはそのファイル名を「real***」とし、第1記憶部101に格納される仮想データについてはそのファイル名を「virtual***」とするというルールをあらかじめ決め、第2記憶部102に格納する。そして、新たに仮想データを作成する際には、このルールに基づいてファイル名をつける。図4では、第2記憶部102に格納される実データD01のファイル名は「real.mp3」であり、その中身は購入音楽データであり、実データD01に対応付けて第1記憶部101に格納される仮想データD11のファイル名は「virtual.mp3」である。このため、実データD01と仮想データD11とが対応付けられて作成されたものであることということを、第2記憶部102に格納された上記の対応付けを参照することにより第2仮想マシン42において判断することができる。なお、仮想データD11は、例えば、ファイル名のみのデータのように、このデータを用いてプログラムを実行しても何も処理結果が発生しないデータである。なお、第1記憶部101に格納される他のデータD21及びD22は、購入音楽データとは異なるデータ(例えば自作のデータ等)であるため、第1記憶部101に格納され、第1仮想マシン41に格納されるアプリケーションプログラム(電話アプリ)はこれらのデータD21及びD22を用いてプログラムを実行することができる。
図5は、実データと、仮想データとを対応付ける他の例について説明する図である。図5に示す例では、第2記憶部102に格納される実データD02と、第1記憶部101に格納される仮想データD12と、のファイル名は共通の「music.mp3」とされており、さらに仮想データD12のヘッダには、このデータが仮想データであることを示すフラグが記載される。このフラグとして用いられるのは、例えば通常のデータには用いられない特殊な値や文字列等である。このように、ファイル名を共通とし、仮想データのヘッダにそのデータが仮想データであるフラグを付与することで、第2記憶部102に格納される実データと第1記憶部101に格納される仮想データとを対応付ける方法もある。
図6は、実データと、仮想データとを対応付ける他の例について説明する図である。図6に示す例では、第2記憶部102に格納される実データD03と、第1記憶部101に格納される仮想データD13と、は共通のファイル名「enka.mp3」とされている。また、実データD04と仮想データD14と、は共通のファイル名「jazz.mp3」を付与して第2記憶部102と第1記憶部101とにそれぞれ格納される。さらに、図6に示す例では、第1記憶部101に格納される仮想データを表にまとめた仮想データリストD25が格納される。この場合には、仮想データリストD25を参照することにより、第1記憶部101に格納されるデータが仮想データであることを確認することができる。このように、種々の方法により、第2記憶部102に格納される実データと第1記憶部101に格納される仮想データとを対応付けることができる。
また、実データと、仮想データとを対応付ける他の方法として、図6において記憶部101に格納される仮想データリストD25に含まれる各仮想データに対して、第2記憶部102に格納される実データを更に対応付けたリストを第2記憶部102に格納する態様とすることもできる。この場合、第1記憶部101に格納される仮想データのファイル名と、第2記憶部102に格納される実データのファイル名とを第1仮想マシンにおいて特に対応付ける必要はなく、第1記憶部101に格納される仮想データが第2記憶部102に格納されるどの実データに対応するかは、第2仮想マシンにおいて第2記憶部102に格納されるリストを参照することにより確認することができる。
図1に戻り、データ処理装置1に含まれる第1仮想マシン41の構成について説明する。第1仮想マシン41は、受信部201と、判定部202と、処理要求部203と、更新部205と、を含んで構成される。
受信部201は、処理内容を特定する情報が含まれ、仮想データを用いた処理命令を受信する受信手段として機能する。受信部201により受信される処理命令とは、例えば第1仮想マシン41において実行することが可能なアプリケーションプログラムが実行されることにより発せられる命令である。より具体的には、例えば、データ処理装置1に対して着信があった場合に、電話アプリが実行されることにより、発信元の情報に基づいて特定の音楽データを着信音として再生するために、特定の音楽データを指定して、当該音楽データを再生しスピーカー33から出力するために第1仮想マシン41において行う命令を処理命令といい、具体的には、当該音楽データの利用を要求する命令(利用命令)と、利用命令により特定された音楽データのスピーカー33への出力を要求する命令(出力命令)とが含まれる。ここで、電話アプリからなされる処理命令は、対象が実データ(例えば、図4のデータD21)であるか仮想データであるかに関係なく、特定のデータを指定し、そのデータの利用を要求するものである。本実施形態の場合、仮想データD11に対するアクセス及び仮想データD11の利用要求が電話アプリから送信され、受信部201において受信される。そして、受信部201では、この処理命令が仮想データD11に対する処理命令であるか確認され、仮想データD11に対する処理命令である場合には、判定部202へ送られる。なお、上記の利用命令と出力命令とは、電話アプリから利用命令、出力命令の順序で異なるタイミングで送信され、受信部201において個別に受信される。
判定部202は、受信部201により受信された処理命令(利用命令)に含まれる処理内容を特定する情報に基づいて、仮想データD11に対して処理を実行することが許容されるか否かを判定する判定手段として機能する。具体的には、仮想データD11に電話アプリが対応付けられているかどうかに基づいて、処理を実行することが許容されるか判定される。本実施形態では、仮想データD11にあらかじめ電話アプリが対応付けられていることから仮想データD11を用いて電話アプリによる処理を実行することができると判定される。この場合には、例えば、判定部202において、電話アプリが仮想データD11を利用中である旨のフラグが保持される。
ここで、判定部202により、処理命令に含まれる処理内容を特定する情報(本実施形態では、電話アプリ)が仮想データD11に対応付けられないと判定された場合は、処理命令に基づいて処理を行うことなく、以降の処理を中止する。また、判定部202において、以降の処理を中止した旨が判定部202からアクセス要求を行った電話アプリに対して通知される。上記の受信部201及び判定部202は、例えば着信音判定モジュールとして実現される。
処理要求部203は、判定部202における判定結果に基づいて、仮想データD11に対応付けられた実データD01の処理を第2仮想マシン42に対して要求する処理要求手段として機能する。本実施形態では、電話アプリからの処理命令を受信した後に、電話アプリから送信される仮想データD11のスピーカー33への出力を要求する出力命令に基づいて、仮想データD11を特定する情報を用いて、当該仮想データD11に対応付けられた実データを出力するよう第2仮想マシン42に対して要求する。この際、処理要求部203では、電話アプリからの処理命令(利用命令)が、実データD01を用いた処理が許容される処理内容であると判定部202において判断されたかどうかを確認するために、上述のように判定部202において保持されたフラグの有無が確認される。そして、処理要求部203により、フラグを確認できた場合には、上述の処理が行われる。ただし、処理要求部203を含む第1仮想マシン41においては、仮想データD11に対応する実データを把握していないため、対応する実データの特定は後述の第2仮想マシン42において行われる。処理要求部203は、自身も出力部105に対して出力指示を行うオーディオドライバとして実現される。
更新部205は、後述の第2仮想マシン42に含まれる通知部212から通知される変更情報に基づいて、第1記憶部101に格納される仮想データを更新する更新手段として機能する。更新部205による更新内容は、例えば、新たな仮想データの作成及び削除のほか、例えば仮想データに対応付けられる実データに対して許容される処理の情報の変更等も含まれる。更新部205が更新を行う場合は、上述の例のようにあらかじめ定められた実データと仮想データとの対応付けのルールに基づいて、新たなファイル名を持つ仮想データの作成や、仮想データの削除等が行われる。
次に、データ処理装置1に含まれる第2仮想マシン42の構成について説明する。第2仮想マシン42は、実行処理部211と、通知部212と、を含んで構成される。
実行処理部211は、実データD01を用いて実行されるプログラムを格納し、第1仮想マシン41からの要求に基づいて、仮想データD11に対応する実データD01を用いて上記プログラムを実行する実行処理手段として機能する。実行処理部211は、実データD01を用いて実行することが許容される処理に対応するプログラム(本実施形態では、音楽データを再生しその結果をスピーカー33に出力するプログラム)をあらかじめ格納し、第1仮想マシン41の処理要求部203から送信される仮想データD11を特定する情報に対応付けられた実データに対する処理要求に基づいて、まず仮想データD11に対応付けられた実データD01を特定し、続いてこの実データD01をスピーカー33に出力するプログラムを実行する。具体的には、実データD01を読み込み、必要に応じてデコードし、さらにデバイス(再生装置等)に対して出力する。上記の処理を行った結果をデータ処理装置1において出力する場合には、この結果を後述の出力部105に送信する。また、処理を行った結果を他の装置等で出力する場合には、処理結果を他の装置に対して送信する。なお、上記の処理を行う際には、実データD01のデータの種類(例えば、画像データ、音楽データ、等)を実行処理部211において判断する必要がある。この判断方法としては、具体的には、例えば、実データD01のファイル名に付加される拡張子を参照する方法のほか、実データD01のデータ種類を特定する情報が記載されるヘッダを実行処理部211が直接参照する方法を用いることができる。この実行処理部211は、例えば着信音再生モジュールとして実現される。
通知部212は、第2記憶部102に格納される実データに変更があった場合に、第2記憶部102の実データの更新に係る情報が含まれる更新情報を第1仮想マシン41に通知する通知手段として機能する。通知部212は、第2記憶部102に格納される実データに変更があった場合には、変更があった実データに対応する仮想データを特定する情報(例えばファイル名等)とその変更内容とを第1仮想マシン41に対して通知する。第2記憶部102の実データの変更に係る情報は、例えば、第2仮想マシン42の各部が実データに対して操作を行った場合には通知部212に通知をする等のルールをあらかじめ定めておくことによって、通知部212において情報を入手することができる。なお、第2記憶部102には、他の仮想マシンからの要求に応じて出力されることが制限される情報も格納される。このような情報に対しては仮想データを作成する必要がないため、変更情報を第1仮想マシン41に対して通知する必要もない。第1仮想マシン41に対して通知が必要であるかどうかは、例えば、第2記憶部102に新たにデータが格納される際に第1仮想マシン41での利用が想定されるかどうかを明らかにするフラグをつけておき、このフラグの有無を通知部212が確認することにより判断される。
さらに、データ処理装置1は、出力部105を含んで構成される。出力部105は、第2仮想マシン42において実データD01を用いてプログラムを実行した結果を出力する出力手段として機能する。出力部105にはディスプレイ32やスピーカー33が含まれる。上述の実行処理部211において第1仮想マシン41からの要求に基づいて実データD01(購入音楽データ)を再生した場合には、この結果が、出力部105(スピーカー33)から出力される。この結果、出力結果をデータ処理装置1の所有者が確認することができる。
以上のように、データ処理装置1に含まれる各部がそれぞれ上記のように機能することにより、本実施形態に係るデータ処理が行われる。
<データ処理装置1によるデータ処理方法>
次に、データ処理装置1によるデータ処理方法について図7〜図10を用いて説明する。図7〜図10は、データ処理装置1によって行われるデータ処理を説明するフローチャートである。
(1)仮想データの利用処理
図7は、第1仮想マシン41が処理命令を受信した際に行われる仮想データの利用処理に係るフローチャートである。まず、この仮想データD11の利用処理は、第1仮想マシン41の受信部201において仮想データD11を対象とした処理命令が受信されたときに開始される(S100、受信ステップ)。受信部201により受信された処理命令は、受信部201において、まず処理命令が対象としているデータが仮想データD11であるかが判断される(S101)。ここで処理命令の対象が仮想データD11とは異なり第1記憶部101に中身を含んで格納されるデータ(例えば図4のデータD21又はD22)である場合には、以降の仮想データの利用に係る処理が終了され、このデータを用いたプログラムの実行がデータ処理装置1の第1仮想マシン41において行われる。一方、仮想データD11を指定した処理命令である場合には、次に、受信部201により要求元プログラムの特定が行われる(S102)。本実施形態において受信部201により受信される処理命令は、電話アプリによる仮想データD11を利用することを処理内容とする命令であり、要求元プログラムが電話アプリであることが受信部201において確認される。この要求元プログラムを特定する情報は仮想データD11を特定する情報と共に判定部202へ送られる。
判定部202では、受信部201から送られる情報に基づいて第1記憶部101に格納される仮想データD11を参照することで、要求元プログラムが行う処理内容が仮想データD11に関連付けられているかによって、実データD01を用いて実行することが許容される処理であるかが判定される(S103、判定ステップ)。本実施形態における仮想データD11に対する電話アプリからの処理命令は、あらかじめ電話アプリが仮想データD11に対して対応付けられて第1記憶部101に格納されているため、実データD01を用いて実行することが許容される処理であると判定される。そして、判定部202により、この判定結果に基づいて、当該プログラム(電話アプリ)が仮想データD11を利用中である旨のフラグが保持され(S104)、仮想データD11に対する処理が開始された後、仮想データD11の出力に係る出力命令が行われるまでのタイムラグを考慮して、このフラグを保持した状態で本処理が終了する。なお、処理内容が仮想データD11に対応付けられていないと判定された(S103)場合には、処理中にエラーが発生した旨が処理命令を行ったプログラム(本実施形態では電話アプリ)に対して通知され(S105)、以降の処理は中止される。また、この場合には、当該プログラムからの仮想データD11に対するアクセス要求を次回以降受け付けない処理を更に付け加えることもできる。
(2)第2仮想マシンに対する処理要求処理
図8は、第2仮想マシン42に対して処理を要求する際のフローチャートである。この処理は、図7に示す仮想データの利用処理(S100〜S104)が行われた後であり、仮想データD11を出力する旨の出力命令を受信した際に開始される(S200)。
処理要求部203は、仮想データD11を出力する出力命令を受けて、判定部202から送信された情報のうち、処理命令(出力命令)を送信したプログラム(本実施形態では電話アプリ)を特定し(S201)、このプログラムを参照し、当該プログラムが仮想データD11を利用中であるという状態を示すフラグが保持されているかを確認する(S202)。具体的には、判定部202において保持された(S104)フラグを確認することにより、電話アプリから送信された出力命令が、仮想データD11に対するものであることを確認する。この確認は、第2仮想マシン42に対して以降の処理に係る要求を送信してよいかを確認するために行われる。より具体的には、電話アプリが第1記憶部101に格納される実データ(通常データ)を利用しようとしている場合であっても、電話アプリからは当該実データを指定した利用命令及び出力命令が送信されるため、電話アプリが送信した出力命令が仮想データD11を対象としたものであることをこの段階で確認するものである。したがって、仮想データD11を利用中であるという状態のフラグが保持されていない場合には、電話アプリは第1記憶部101に格納される他のデータ(実データ)に対して処理命令を行っていると判断され、以降の処理は終了される。本実施形態の電話アプリが仮想データD11に対する利用命令を送信し、仮想データD11を利用中であるという状態で保持されている場合には、仮想データD11を特定する情報を用いて、処理要求部203から第2仮想マシン42に対して処理の要求が行われる(S203、処理要求ステップ)。以上により、第2仮想マシン42に対して処理要求を行う処理が終了する。
(3)第2仮想マシンにおける実行処理
図9は、第1仮想マシン41からの処理の要求に基づいて第2仮想マシン42において実行処理を行う際のフローチャートである。この処理は、図8に示すように、第1仮想マシン41の処理要求部203から第2仮想マシン42に対して仮想データD11に対応付けられた実データ用いた処理の要求(S203)が行われ、第2仮想マシン42の実行処理部211により受信された後に開始される(S300)。そして、図9に示される一連の処理は、例えば一つのプログラムによって記述されており、このプログラムを実行処理部211において実行することにより行われる。
実行処理部211は、仮想データD11に対応する実データを用いた処理の要求を受信すると、当該要求に含まれる仮想データD11を特定する情報に基づいて、当該仮想データD11に対応付けられた実データD01が第2記憶部102に格納されているかを確認する(S301)。このとき、仮想データD11と実データD01との対応付けに係る情報は、上述のように第2記憶部102に格納されているためこの情報に基づいて実データD01の特定が行われる。ここで、例えば第1仮想マシン41からの処理の要求が不正なものである等の理由によって、処理の要求で指定された実データが第2記憶部102に格納されていない場合は、処理を中止する。一方、実データD01が第2記憶部102に格納されていることが確認できた場合には、実行処理部211は、当該実データD01のファイル形式を確認する等によって、出力先のデバイスを確認した後、当該第2記憶部102から実データD01を読み込み(S302、実行処理ステップ)、さらにこの実データD01をデコードする(S303、実行処理ステップ)。ここで行われるデコードとは、実データD01があらかじめエンコードされている場合に行われる処理であり、例えば、実データの拡張子が「.mp3」である場合には、出力部105に含まれるスピーカー33に対して出力するための処理である。したがって、実データD01が直接出力することができる形式のデータである場合には、デコードを行う必要はなく、次の処理に進む。そして、第1仮想マシン41からの要求に従ってデコード済みの実データD01を出力部105に含まれるデバイスであるスピーカー33に対して出力する(S304、実行処理ステップ)。これにより、第2仮想マシン42に格納される実データD01がスピーカー33から着信音として出力される。以上の処理によって、第1仮想マシン41の受信部201において受信された処理命令に対する処理の結果が出力部105から出力される。なお、この実データD01の読み込み(S302)、デコード(S303)及びデバイスへの出力(S303)は、実データD01を出力し終えるまで、一定の周期で繰返し実行される。以上により、一連の処理が終了される。
(4)仮想データの更新処理
図10は、第2記憶部102に格納される実データD01が変更された場合に、実データD01に対応付けられて第1記憶部101に格納される仮想データD11の更新を行う処理を説明するフローチャートである。より具体的には図10(A)は第1仮想マシン41で行われる処理であり、図10(B)は第2仮想マシン42で行われる処理である。これらの処理は、第2記憶部102に格納されるデータに対して、追加・削除・書き換え等の何らかの変更が行われると、その情報を通知部212が検出して、第2仮想マシン42において開始される(S400)。
まず、第2仮想マシン42の通知部212は、第2記憶部102に格納されるデータに対して変更があった場合に、当該変更が仮想データの更新が必要な変更であるか判断する(S401)。これは、例えば、第1仮想マシン41での利用が想定されるかどうかを示すフラグが、今回変更があったデータに対して付与されているかどうかにより判断される。ここで第1仮想マシン41での利用が想定されていないことが確認された場合、通知部212がその変更を第1仮想マシン41に対して通知する必要はないので、以降の処理は中止される。一方、第1仮想マシン41での利用が想定されていることが確認された場合、仮想データD11の更新が必要であると判断され、変更内容を更新情報として第1仮想マシン41に対して通知する(S402、通知ステップ)。以上により、第2仮想マシン42における変更を通知する処理が終了する。
一方、第1仮想マシン41における処理は、第2仮想マシン42から送信される更新情報を更新部205が受信した際に開始される(S500)。受信部201が更新情報を受信すると、更新情報に含まれる情報にしたがって、第1記憶部101に格納される仮想データを更新する(S501、更新ステップ)。例えば、第2記憶部102において新たな実データD01が格納された場合には、当該実データD01に対応付けた仮想データD11を作成し、この仮想データD11に対しての実行が許容される処理内容の情報(すなわち実データD01に対しての実行が許容される処理内容の情報)を対応付けて、第1記憶部101に格納する。また、実データD01が削除された場合にはこの実データD01に対応付けられた仮想データD11を削除する。さらに、実データD01に対しての実行が許容される処理内容の情報が変更された場合には、この情報に基づいて仮想データD11に対応付けられた情報の更新を行う。以上の処理によって、仮想データD11が更新され、第1記憶部101に格納される仮想データD11が実データD01に対応付けられた情報となり、仮想データD11の更新に係る処理が終了される。
<本実施形態に係る効果>
以上のように、本実施形態に係るデータ処理装置1及びこのデータ処理装置1によるデータ処理方法によれば、第1仮想マシン41の受信部201において受信され、第1記憶部101に格納される仮想データD11を用いた処理命令(本実施形態では利用命令及び出力命令)が、あらかじめ仮想データD11に対応付けて格納され、実行することが許容される処理内容であるかが判定部202において判定される。そして、実行することが許容されると判定された場合には、第2仮想マシン42の第2記憶部102に格納され、仮想データD11と対応付けられる実データD01の処理が処理要求部203によって第2仮想マシン42に対して要求される。そして、実データD01を用いたプログラムの実行が第2仮想マシン42の実行処理部211において行われる。このように、第2仮想マシン42の第2記憶部102に格納される実データD01に対応付けられた仮想データD11が第1仮想マシン41の第1記憶部101に格納され、この仮想データD11に対する処理要求に応じて第2記憶部102に格納される実データD01の処理を実行することができる。このため、結果として、第1仮想マシン41は第2仮想マシン42に格納される実データD01を間接的に利用することができる。また、本実施形態に係るデータ処理装置1によれば、第1仮想マシン41の第1記憶部101に格納される仮想データD11には、あらかじめ実データD01を用いて実行することが許容される処理内容を特定する情報が対応付けられ、この情報に対応した処理命令(利用命令及び出力命令)を受信した場合に限って、第2仮想マシン42に対して処理の要求が送信されることから、例えば、第1仮想マシン41において、悪意のあるアプリケーションプログラムが第2仮想マシン42に格納される実データD01を利用しようとした場合には、これを回避することができる。したがって、悪意のあるアプリケーションプログラム等による不適切な利用を防止することができる。
また、本実施形態におけるデータ処理装置1では、第2記憶部102に格納される実データD01に係る変更情報が通知部212から第1仮想マシン41に対して通知され、更新部205により、変更情報に含まれる情報に基づいて第1記憶部101に格納される仮想データD11が更新される。このため、例えば第2記憶部102における実データD01の追加や削除に応じて、第1記憶部101における仮想データD11を適切に追加や削除することができる。また、第2記憶部102に格納される実データD01に対する実行が許容される処理内容が変更された場合(例えば、有効期限が切れることによって、データの利用範囲が変更された場合)等にも、この情報を第1仮想マシン41に対して適切に通知し、第1記憶部101に格納される仮想データD11に対応付けられる処理内容を特定する情報を更新することにより、例えば、上記の変更により許容されなくなった内容の処理を第1仮想マシン41から第2仮想マシン42に対して要求することを減らすことができるため、第1仮想マシン41と第2仮想マシン42との間に発生する不要な情報のやり取りを減らすことができ、第2記憶部102に格納される実データD01の不適切な利用をさらに抑制することができる。
(第2実施形態)
<データ処理装置2の構成及びデータ処理方法>
(1)実行処理の終了処理
図11は、本発明の第2実施形態に係るデータ処理装置2の構成を説明するブロック図である。データ処理装置2に含まれる各構成のうちデータ処理装置1と異なる点は、以下の2点である。すなわち、第1点目は、第1仮想マシン41に処理終了要求部204を備え、処理終了要求部204による要求に基づいて、実行処理部211が処理を行う点である。また、第2点目は、第2仮想マシン42の実行処理部211が、実データD01をあらかじめ実行可能な状態にしておく点である。
上記のデータ処理装置2における新たな構成及び新たなデータ処理方法のうち、まず第1点目について、図11及び図12を用いて説明する。
処理終了要求部204は、第2仮想マシン42に対して仮想データD11に対応する実データ(本実施形態では、実データD01)を用いた実行処理の終了を要求する処理終了要求手段として機能する。実データD01に対する実行処理は、例えば従来の音楽データの再生等の場合には、実データD01の終端まで一通り処理が行われると、この処理は終了されるか、または、エンドレス再生のように再生処理が繰り返される。しかしながら、本実施形態のように、実データD01に対する処理が着信音としての再生処理である場合、実データD01の終端まで一通り処理が行われる前にデータ処理装置2の所有者が応答した場合には、当該処理(すなわち着信音の再生)が中止される必要がある。したがって、処理を終了させるようなイベント(例えば所有者による応答)が発生し、処理終了要求部204がその情報を検出した場合には、当該情報に基づいて、第2仮想マシン42に対して実データD01を用いた実行処理の終了を要求する。なお、この処理終了要求部204による実行処理の終了要求のタイミングは、上述のように何らかのイベントが発生した場合に限られず、例えばタイマーの時刻が満了した時刻であってもよい。
一方、実行処理部211は、処理終了要求部204からの実行処理の終了に係る要求を受信した場合には、当該要求に基づいて実データD01を用いた処理(すなわちスピーカー33からの出力に係る処理)を終了させる機能を新たに備える。実行処理部211が処理終了要求部204からの要求に基づいて処理を終了させることにより、実データD01の出力部105(スピーカー33)からの出力が停止される。
上記の構成を備えるデータ処理装置2によるデータ処理方法について、図12のフローチャートを用いて説明する。図12は、実データD01を用いた実行処理を終了させる処理を説明するフローチャートである。より具体的には、図12(A)は第1仮想マシン41において行われる処理を示し、図12(B)は第2仮想マシン42において行われる処理を示す。これらの処理は、第1仮想マシン41、例えば、実データD01を用いたプログラムの実行を終了させるイベント(例えば、データ処理装置2の所有者が応答した等)が発生した際に開始される(S800)。
処理終了要求部204は、実データD01を用いたプログラムの実行を終了させるイベントが発生すると、実データD01に係る処理を第2仮想マシン42に対して要求したかを確認する(S801)。これは、例えば、処理要求部203に対して既に第2仮想マシン42に対して仮想データD11を指定した処理を要求が送信されたかどうかを問い合わせることにより確認することができる。この結果、まだ第2仮想マシン42に対して仮想データD11に対応する実データD01を用いた処理の要求がなされていないことが確認された場合には、以降の処理を中止する。一方、仮想データD11に対応する実データD01を用いた処理の要求が既になされたことが確認された場合は、実データD01を用いた処理が第2仮想マシン42において開始されているため、第2仮想マシン42に対して処理の終了を要求する(S802、終了要求ステップ)。以上により、第1仮想マシン41における終了要求に係る処理が終了する。
一方、第2仮想マシン42における処理は、実行処理部211が第1仮想マシン41から送信される実データD01を用いた処理の終了要求を受信することを契機に開始される(S900)。実行処理部211は、終了要求を受信すると、この要求に基づいて、実データD01のデバイス(スピーカー33)への出力を停止させる(S901、実行処理ステップ)。そして、この実データD01のデコードを終了し(S902、実行処理ステップ)、読み込み中だった実データD01をクローズする(S903、実行処理ステップ)。以上の処理により、第2仮想マシン42における実データD01を用いた処理の終了に係る処理が終了する。なお、図12に示すフローチャートは、実データD01が購入音楽データであり、データ処理装置2に設けられた出力部105(スピーカー33)に対して出力する場合について説明しているものである。したがって、例えば実データD01を用いた処理の結果を他の装置から出力させる場合には、処理の結果を出力させる装置に対して、出力停止を通知するメッセージを送信すること等により、当該処理を終了させる。
(2)実データに対するデコード処理
次に、上記のデータ処理装置2における新たな構成及び新たなデータ処理方法のうち、第2点目について、図11及び図13を用いて説明する。
本実施形態では、実行処理部211は、実データD01をあらかじめ実行可能な状態としておく機能をさらに備える。ここでいう「実行可能な状態とする」とは、実データD01を出力部105から出力するために行う必要がある処理を先行して行うことをいう。具体的には、第1仮想マシン41の処理要求部203からの処理の要求を受けた時点から、実データD01の読み込みを開始するのではなく、あらかじめ実データD01の読み込み及びデコードを行っておくことで、直ちに出力可能な状態としておくことで、実データD01を出力するまでに必要な実データD01の読み込み及びデコードに係る時間を短縮して実データD01の実行処理を開始することを目的としたものである。
図13は上記の処理を説明するフローチャートである。この処理は、任意のタイミングで開始することができる(S1000)が、例えば、データ処理装置2の電源を入れた際毎に行うこととしてもよいし、データ処理装置2において最初に実データD01を読み込み及びデコードした後はそれを再利用することとしてもよい。図13に示すように、まず、実行処理部211は、まず第2記憶部102に実データD01が格納されているかを確認する(S1001)。ここで、例えば第2記憶部102に実データD01が格納されていない場合にはこの処理が終了されるが、第2記憶部102に実データD01が格納されていることが確認されると、実行処理部211は、この実データD01を読み込み(S1002)、さらにデコード(S1003)を行うことにより、実データD01を出力可能な状態とされる。以上により、あらかじめ実データD01を出力可能な状態としておく処理(デコード処理)が終了される。なお、この事前のデコード処理は、実データD01全体が完全にデコードされる前に途中で中止してもよい。すなわち、実データD01に対してデコード処理を行っている途中にこの実データD01に対する処理の要求を受信した場合は、その時点で上述の事前のデコード処理が中止される。そして、デコード処理が完了した部分のデータについては読み込み及びデコードを行うことなく直ちにデータの出力が行われる。ただし、デコード処理が行われていない部分のデータについては、第1実施形態と同様に読み込み、デコード及び出力を周期的に繰返し行うことにより、データが出力部105に対して出力される。
<本実施形態に係る効果>
このように第2実施形態に係るデータ処理装置2によれば、まず、第1仮想マシン41において処理終了要求部204を備えることにより、第2仮想マシン42おいて実行されるプログラムが、例えば実行処理を続けるプログラムである場合には、第1仮想マシン41から第2仮想マシン42に対して実行処理を終了させる要求を送信し、この要求に基づいて実行処理部211においてプログラムの実行が中止されるため、第2記憶部102に格納される実データD01の利用を中止させることができる。
また、第2仮想マシン42においてあらかじめ実データD01を実行可能な状態にする(デコードする)ことで、第1仮想マシン41からの処理要求に基づいて処理を開始する場合と比較してより早くデータを出力部105(スピーカー33)に対して出力することができるという効果が奏される。
(第3実施形態)
<データ処理装置3の構成及びデータ処理方法>
図14は、本発明の第3実施形態に係るデータ処理装置3の構成を説明するブロック図である。データ処理装置3に含まれる各構成のうちデータ処理装置1及び2と異なる点は、以下の点である。すなわち、第2仮想マシン42においてイベント情報を受信するイベント情報受信部213を備える点である。
イベント情報受信部213は、第1仮想マシン41の受信部201において処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段として機能する。ここでいうイベント情報とは、第1仮想マシン41に格納されるプログラムが処理命令を送信する契機となる情報である。例えば本実施形態の場合では、仮想データD11を着信音として再生させるための処理命令が受信部201において受信されるが、この命令は、仮想データD11を着信音としてあらかじめ設定している人からの着信情報をデータ処理装置1の着信制御部(図示せず)が受信し、この情報が第1仮想マシン41に対して送られた場合に、第1仮想マシン41の電話アプリによって行われる。したがって、第2仮想マシン42のイベント情報受信部213は、イベント情報として、特定の人からの着信があったことを示す情報を着信制御部から受信する。なお、例えばデータ処理装置2のキーパッドによるキー入力や、タッチパネルにおいて特定部分が押されたこと等をイベント情報とすることもできる。このようにイベント情報受信部213によりイベント情報が受信されたことは実行処理部211に対して通知される。
そして、実行処理部211は、イベント情報受信部213によりイベント情報が受信された時点から一定の時間のみ、第1仮想マシン41からの処理の要求を受け付ける機能を更に備える。第1仮想マシン41では、第2仮想マシン42のイベント情報受信部213によりイベント情報が受信された時点とほぼ同時に同様のイベント情報が受信され、第1仮想マシン41においてイベントに係る処理がなされた後、第2仮想マシン42に対して処理を要求する場合には処理要求部203から第2仮想マシン42に対して要求がなされるはずである。したがって、イベント情報を受信してから一定の時間のみ実行処理部211が第1仮想マシン41からの処理要求を受信する態様とすることで、第1仮想マシン41からの処理要求を確実に受信することができる。なお、この一定の時間とは、第1仮想マシン41においてイベント情報を受信した時点から、当該イベント情報に基づいて実データD01を用いた処理を処理要求部203が第2仮想マシン42に対して要求する時点までの所要時間を考慮して適宜定めることができる。
図15は上記の処理を説明するフローチャートである。まず、例えばイベント情報受信部213においてイベント情報が受信されることを契機として、有効時間制御処理が開始される(S1100、イベント情報受信ステップ)。そして、この情報がイベント情報受信部213から実行処理部211に通知され、実行処理部211において処理要求の受付が開始される。この処理要求に受付の有効時間は、あらかじめ例えばイベント情報の種類毎に定めること等により設定される。次に、第1仮想マシン41においてイベント情報の受信を契機として行われた処理の結果、第2仮想マシン42に対して、仮想データD11に対応する実データに係る処理の要求が送信され、実行処理部211ではこの要求を受信する(S1101、実行処理ステップ)。ここで、実行処理部211は、当該処理要求が有効時間内になされたものであるかを判断する(S1102、実行処理ステップ)。処理要求が有効時間内になされたものであるかどうかの確認は、例えば、実行処理部211において受付を開始すると同時に、有効時間に基づいて受付の終了時刻を予め設定しておく。そして、処理要求を第2仮想マシン42の実行処理部211において受信した時刻と受付の終了時刻とを比較し、受信した時刻が終了時刻よりも前である場合には、処理要求が有効時間内になされたものであると判断する方法等種々の方法が用いられる。ここで、第1仮想マシン41からの処理要求が有効時間外である場合には、正規の処理により作成された処理要求ではない可能性が考えられるため、第2仮想マシン42における処理は終了し以降の処理を行わない。一方、第1仮想マシン41からの処理要求が有効時間内である場合には、イベント情報の受信を契機とした要求であると考えられるため、この要求で指定される実データD01を用いた実行処理を開始する(S1103、実行処理ステップ)。実行処理自体は、第1実施形態と同様である。以上により、有効時間を用いた制御処理が終了する。
<本実施形態に係る効果>
このように、上記の実施形態によれば、イベント情報受信部213がイベント情報を受信した後の一定時間のみデータの実行処理部211が第1仮想マシン41からの処理要求を受け付ける態様とすることで、例えば、第1仮想マシン41で悪意のあるアプリケーションプログラムが動作することにより多数の処理要求を第2仮想マシン42に対して送信した場合に、第1仮想マシン41からの正式な要求(例えば電話着信等に基づく要求)が処理できないという問題を減らすことができる。したがって、イベント情報に基づいて第1仮想マシン41から要求される実行処理は適切に実行することができると共に、例えば第2仮想マシン42において悪意のあるアプリケーションプログラム等による不正な処理要求を受けてプログラムを実行することを回避することができる。
(第4実施形態)
<データ処理装置4の構成及びデータ処理方法>
図16は、本発明の第4実施形態に係るデータ処理装置4の構成を説明するブロック図である。データ処理装置4に含まれる各構成のうちデータ処理装置3と異なる点は、以下の点である。すなわち、第1記憶部101及び第2記憶部102とは異なる記憶部である第3記憶部103を備える点である。
第3記憶部103は、第2仮想マシン42に専有される記憶領域である。そして、第3記憶部103は、イベント情報受信部213により受信されたイベント情報と、データ処理装置3と同様にイベント情報を受信した後の一定時間内に実行処理部211により実行処理が行われた実データD01を特定する情報と、を対応付けて履歴情報D30として格納する第3記憶手段として機能する。第3記憶部103において格納される履歴情報D30としては、例えば、他の通信端末からの着信を示す情報がイベント情報であって、当該イベント情報に基づいて電話アプリから発信される処理命令に基づいた実データの出力に関する場合、イベント情報を送信する発信元の通信端末の電話番号がAである場合には、実データAを再生し、電話番号がBである場合には、実データBを再生するというように、電話番号と実データとを対応付けた表等が用いられる。
そして、イベント情報受信部213が新たにイベント情報を受信した場合、イベント情報受信部213からイベント情報の受信を通知された実行処理部211は、当該イベント情報の内容に基づいて第3記憶部103に格納される履歴情報D30を参照し、イベント情報に対応付けて格納される実データD01に係る情報を取得する。そして、この結果に基づいて、第2記憶部102に格納される実データD01をあらかじめ実行可能な状態とする。このように、本実施形態に係るデータ処理装置4は、第3記憶部103に格納される履歴情報D30に基づいてあらかじめ実行可能な状態とする実データを特定し、実データをあらかじめ実行可能な状態にするという特徴を備える。なお、ここでいう「実行可能な状態」とは、上述の通り、実データD01を出力部105から出力するために行う必要がある処理を先行して行うことをいう。
上記のような構成を備えるデータ処理装置4によるデータ処理方法のうち、これまでの実施形態で説明した処理とは異なる点を図17及び図18を用いて説明する。
図17は、第3記憶部103の履歴情報D30に履歴を記録する処理について説明するフローチャートである。この処理は、イベント情報受信部213においてイベント情報が受信され、実行処理部211に通知された際に処理が開始される(S1200、実行処理ステップ)。実行処理部211は、まずイベント情報に含まれる情報からイベント内容を特定する(S1201、実行処理ステップ)。具体的には、例えばイベントが他の携帯電話からの着信である場合には、発信者の電話番号がイベント内容として用いられる。また、例えばキー入力がイベント情報として取り扱われる場合は、キーコードがイベント内容として用いられる。続いて、第1仮想マシン41から当該イベント情報の受信に基づいた処理要求があった際に、処理要求がなされた仮想データD11に対応する実データD01を特定する(S1202)。そして、このステップで特定された実データD01と、イベント内容との対応関係が第3記憶部103に既に履歴情報D30として格納されているかを確認する(S1203)。ここで、既に履歴情報D30に上記の対応関係が格納されている場合には、重複格納を避けるため履歴記録に係る処理を終了する。しかしながら、履歴情報D30に上記の対応関係が格納されていない場合は、このイベント内容と実データD01との対応関係を新たな履歴データとして履歴情報D30に追加する(S1204)。以上により、履歴の記録に係る処理が終了する。
図18は、図17に示す処理により履歴が記載された履歴情報D30を用いたデコード処理について説明するフローチャートである。このフローチャートで示すデコード処理は、図13に示す第2実施形態に係るデータ処理装置2によるデコード処理と比較して、デコード処理の開始(S1000)が、イベント情報受信部213においてイベント情報を受信した時点とする点が異なる。また、イベント内容の特定(S1004)及びイベント内容と履歴から実データを特定する処理(S1005)が追加されている。
すなわち、図18に示すフローチャートでは、イベント情報受信部213がまずイベント情報を受信したときには、イベント情報受信部213から実行処理部211に対してこの情報が送られた後、まず、イベント情報に含まれるイベント内容を特定する(S1004、実行処理ステップ)。そして、第3記憶部103を参照し、このイベント内容に対応付けられた実データD01を特定する情報が履歴情報D30に記載されているかどうかを確認する(S1005、実行処理ステップ)。そして、履歴情報D30を参照することにより特定されたイベント情報に対応付けられた実データD01が、第2記憶部102に格納されているかを確認し(S1001)、ある場合には、実データD01を読み込み(S1002、実行処理ステップ)、さらにデコードする(S1003、実行処理ステップ)ことにより、対象となる実データD01をあらかじめ実行可能な状態(出力部105から出力することができる状態)とすることができ、デコードに係る処理は終了する。ここで、実データD01が第2記憶部102に格納されていない場合には、あらかじめデコード処理を行う対象となる実データを特定することができないため、以降の処理は中止される。なお、実行処理部211において第1仮想マシン41から実データを用いた処理の要求を受信した際に、この処理の要求において特定される実データが、上記の処理によって実行可能な状態とされた実データである場合には、当該実データを用いて出力処理を行う。また、処理の要求において特定される実データが、あらかじめ実行可能な状態とされたもの(デコード処理が行われたもの)と異なる場合は、第1仮想マシン41からの要求において指定された実データを新たに読み込まれ、当該実データの出力に係る一連の処理が行われる。
<本実施形態に係る効果>
このように、上記の実施形態によれば、第2仮想マシン42においてイベント情報を受信した際に、第1仮想マシン41からの処理要求を正式に受け付ける前に、第3記憶部103に格納される情報に基づいて、当該イベント情報に対応付けて格納される実データD01をあらかじめ実行可能な状態にすることができる。したがって、第1仮想マシン41からの要求に基づいて当該実データを用いたプログラムを実行する処理を開始するのを早めることができる。また、第2仮想マシン42に格納される実データが複数ある場合に、第1仮想マシン41から送信される処理要求を参照する前に、どの実データD01をあらかじめ実行可能な状態にするかが明確となり、不要なデータをあらかじめ実行可能な状態にする等の不要な処理を減らすことができる。
(第5実施形態)
<データ処理装置5の構成>
図19は、本発明の第5実施形態に係るデータ処理装置5の構成を説明するブロック図である。データ処理装置5に含まれる各構成のうちデータ処理装置2と異なる点は、以下の2点である。すなわち、第1点目は、出力部105がディスプレイ32という特定のデバイスである点である。また、第2点目は、このディスプレイ32は、第1仮想マシン41に新たに設けられた画面制御部206により制御されると共に、第2仮想マシン42により実行された処理の結果をディスプレイ32に対して出力する場合には、表示部214によって行われる点である。データ処理装置に含まれる出力手段は、スピーカー、ストレージ、IrDA(Infrared Data Association)、ネットワーク等の多岐に渡り、そのほとんどは主に第2仮想マシン42から直接制御することができる。しかしながら、データ処理装置の内部構成によっては、本実施形態のディスプレイ32のように第1仮想マシン41からでも一部事象については制御可能な出力手段もある。本実施形態では、データ処理装置5が第1仮想マシン41により画面のGUI(Graphical User Interface)出力に係る制御がなされているディスプレイ32を備え、このディスプレイ32に対して第2仮想マシン42により処理された結果を出力する場合について説明する。
画面制御部206は、判定部202により処理内容を特定する情報に基づいた処理を実データD01を用いて実行することが許容されると判定された場合に、ディスプレイ32のうち実データD01を用いてプログラムを実行した結果を表示するための画像表示領域を透過色に設定する機能を備える。
第1仮想マシン41が出力制御を統括管理する場合、通常は第1仮想マシン41がデータを出力することによって、ディスプレイ32の全体の画像が形成される。この場合、第2仮想マシン42からディスプレイ32に対して画像を表示させる処理を行っても、ディスプレイ32では第1仮想マシン41により形成された画像が優先して表示されるため、第2仮想マシン42から送られる画像は表示されない。したがって、第2仮想マシン42からの画像をディスプレイ32に表示させるためには、画面制御部206によって第2仮想マシン42からの画像を表示させる領域を形成する処理が行われる必要がある。本実施形態では、この処理の手法の一つとして、第2仮想マシン42からの画像を表示させる領域を画面制御部206によって透過色とすることで、第2仮想マシン42からの画像をその領域に表示させる態様としている。以下、その具体的な処理について説明する。
まず、実データD01を出力する先がディスプレイ32であるかどうかは、第1仮想マシン42において、仮想データD11に対応付けられた実データD01が画像データであるかどうかによって判断される。この判断方法としては、例えば実データD01に対応付けられた仮想データD11が画像データであることを示す拡張子を有するかどうかという方法がある。また、仮想データD11の中身を参照し、当該ファイルのファイルフォーマットを直接確認することにより判断してもよい。そして、仮想データD11に対応する実データD01が画像データであり、且つ実データD01を用いることを要求する処理内容を実行することが許容されると判断された場合には、画面制御部206により、実データD01を開いて表示するための画像表示領域が設けられ、この領域に透過色が設定される。この画像表示領域は、ディスプレイ32の全面またはその一部に設けられる。画像表示領域が透過色に設定されない場合は、第1仮想マシン41で描画された画面に第2仮想マシン42において表示された画像を出力することはできないが、透過色が設定されることにより、当該エリアに限り第2仮想マシン42の表示部214により制御を行うことができる。
一方、第2仮想マシン42の表示部214は、第2仮想マシン42において実データD01を用いて出力した結果を画像表示領域内で表示させる表示手段としての機能を備える。
ここで、画面制御部206及び表示部214によりディスプレイ32に表示させる画面の例について図20を用いて説明する。図20(A)は、第1仮想マシン41からディスプレイ32に表示される画像の例を示す。具体的には、画面の中央近傍に透過色に設定された画像表示領域A1が形成される。図20(B)は、第2仮想マシン42からディスプレイ32に表示される画像の例であり、表示部214により表示される画像データが画面中央に含まれている。さらに図20(C)は図20(A)と図20(B)に示す第1仮想マシン41及び第2仮想マシン42による表示画像を重ねあわせることにより、図20(A)の透過色に設定された画像表示領域A1において図20(B)に示す画像が透過されたことで、画面制御部206により構成された画面の画像表示領域A1内部に表示部214により表示される画像データが表示される例である。このように、画面制御部206により背景が透過色に設定された画像表示領域A1に対して、表示部214により実データD01を用いて実行処理を行った結果を表示させることで、第2仮想マシン42による処理の結果を第1仮想マシン41が統括管理するディスプレイ32に表示させることができる。
本実施形態に係る画面制御部206は、更なる機能として、画像表示領域の変更に係る情報である変更情報を表示部214に通知する機能を有する。そして、表示部214は、更なる機能として、この変更情報に基づいて変更情報に基づいて、画像表示領域に実データD01を出力させる機能を有する。以下これらの機能について具体的に説明する。
画面制御部206は、上述の画像表示領域に変更がある場合には、ディスプレイ32の透過色の領域を変更するとともに、この変更に係る情報である変更情報として表示部214に対して通知する機能を有する。画像表示領域は、例えばアプリケーションプログラム毎に、表示位置やその大きさが変わるため、常に一定ではない。より具体的には、例えばディスプレイ32の表示方式が縦表示から横表示に変更となった場合等に、画像表示領域を変更する必要が生じる。その場合には、例えばディスプレイ32の表示方式を変更する機能部から画面制御部206に対して表示方式の変更が依頼され、画面制御部206がこの依頼に基づいて処理を行う。画像表示領域を変更する必要が生じた場合には、画像表示領域は画面制御部206により変更され、この変更情報が表示部214に対して通知される。ここで、画面制御部206から表示部214に対して通知される情報は、変更後の画像表示領域の位置とサイズの情報である。一方、表示部214は、上述のように画面制御部206から通知される画像表示領域の変更に係る情報を受信し、この情報に基づいて、実行処理部211によって実データD01を用いたプログラムを実行された結果を、ディスプレイ32の画像表示領域に対して表示させる。これにより、変更後の画像表示領域に対しても、実データD01を用いたプログラムの実行結果が適切に表示される。
<データ処理装置5によるデータ処理方法>
次に、図21及び図22を用いて、本実施形態に係るデータ処理装置5によるデータ処理方法を説明する。図21(A)は、第1仮想マシン41から第2仮想マシン42に対して処理要求を行うための処理について説明するフローチャートである。また、図21(B)は、第1仮想マシン41から送信される処理の要求に応じて第2仮想マシン42において行われる処理を説明するフローチャートである。また、図22は、画像表示領域の変更がなされる場合の処理について説明するフローチャートである。
図21(A)に示すフローチャートは、図8に示す第1実施形態のデータ処理装置1による処理要求処理に係るフローチャートと比較して、処理命令(出力命令)を送信したプログラム(本実施形態では電話アプリ)が仮想データD11を利用中であるという状態を示すフラグが保持されているかを確認した(S202)後、その結果に基づいて第2仮想マシン42に対して処理要求を送信する(S203)前に、処理要求部203から画面制御部206に対して画像表示領域に透過色を設定する旨の指示が出される処理が追加される。そして、画面制御部206では、処理要求部203からの指示に基づいて画像表示領域に透過色が設定される(S204、画面制御ステップ)。その後、第2仮想マシン42に対して実データD01を用いた処理の要求がなされる(S203)。
図21(B)に示すフローチャートは、図9に示す第1実施形態のデータ処理装置1による実行処理に係るフローチャートと比較して、実データD01のデコード後の処理が追加されている。具体的には、第1仮想マシン41から送信された処理要求により特定される実データD01が実行処理部211により確認された後(S301)、実データD01の読み込み(S302)及びデコード(S303)が行われる。さらに、本実施形態に係るデータ処理方法では、出力先がディスプレイ32内の画像表示領域であるので、表示部214によりこの出力処理の結果を画像表示領域に対して出力した上で(S305)、ディスプレイ32への出力処理(S306)を行う。以上の処理により、第2仮想マシン42において実行された処理の結果が第1仮想マシン41の管轄するディスプレイ32に出力される。
図22に示すフローチャートは、画像表示領域の変更に係る処理を説明するフローチャートであり、図22(A)は第1仮想マシン41において行われる画像表示領域の変更を通知する処理を説明するものである。この処理は、上述のように、画面制御部206がディスプレイ32の表示方式を変更する機能部からの画像表示領域の変更に係る依頼を受けた際に開始される(S1300)。画面制御部206は、まず、画像表示領域の変更を含む画面表示の変更の依頼を受けると、新しい画像表示領域の位置とサイズを決定する(S1301)。そして、この位置とサイズの情報を含む画像表示領域の変更情報を第2仮想マシン42に対して通知し、変更を指示する(S1302)。以上の処理により、第1仮想マシン41から第2仮想マシン42に対して画像表示領域の変更が通知される。
図22(B)は、第1仮想マシン41からの画像表示領域の変更情報を第2仮想マシン42において受信することにより開始され(S1400)、画像表示領域の変更に係る処理を説明するものである。第2仮想マシン42の表示部214は、第1仮想マシン41からの画像表示領域の変更情報を受け取ると、変更後の画像表示領域の位置とサイズを把握する(S1401)。そして、実行処理部211において行われる実データD01を用いたプログラムの実行結果を表示する際に、上記の画像表示領域の変更情報を反影して表示させる(S1402)。以上の処理により、第1仮想マシン41から通知された画像表示領域の変更を反影することができる。
<本実施形態による効果>
以上のように、本実施形態によれば、第1仮想マシン41により制御されるディスプレイ32である出力手段に対して第2仮想マシン42においてデータを用いて処理を行った結果を出力する場合、第1仮想マシン41の画面制御部206が判定部202による判定結果に基づいて画像表示領域を透過色にし、データの処理結果が第2仮想マシン42の表示部214によって当該領域に対して表示される。このように、出力部105が第1仮想マシン41により画面のGUI制御がなされてディスプレイ32に出力する形態であっても、第2仮想マシン42による処理の結果を好適に表示させることができる。
画面制御部206から表示部214に対して通知される画像表示領域を指定する情報としては、例えば、「1:QCIF横、2:QCIF縦、3:QVGA横、4:QVGA縦」というように、特定の画像表示領域毎に対して画面制御部206と表示部214との間で用いられる番号をあらかじめ決めておき、この番号を用いて画像表示領域を通知する方法もある。しかし、上記のように、画面制御部206が画像表示領域の位置や大きさの情報を含む変更情報を第2仮想マシン42の表示部214に対して通知し、表示部214はこの変更情報に基づいて実データD01を用いて処理を行った結果をディスプレイ32に表示させる場合は、画像表示領域の変更をより柔軟に行うことができ、画像表示領域の変更に応じて実行した結果をディスプレイ32に対して好適に表示させることができる。
(第6実施形態)
<データ処理装置6の構成及びデータ処理方法>
図23は、本発明の第6実施形態に係るデータ処理装置6の構成を説明するブロック図である。データ処理装置6に含まれる各構成のうちデータ処理装置5と異なる点は、データ処理装置6がディスプレイ32とスピーカー33とを出力手段として備え、実データD01が例えば動画データのようにディスプレイ32へ出力する画像データとスピーカー33へ出力される音声データとを含むデータであり、実行処理部211による処理結果が、ディスプレイ32とスピーカー33とに出力される点である。なお、ディスプレイ32は、データ処理装置5と同様に第1仮想マシン41により画面のGUI制御がなされている。また、実行処理部211による処理の結果は表示部214を介してディスプレイ32に送られる。
本実施形態に係るデータ処理装置6では、上記のように実データD01が動画データであるため、実データD01を用いて処理を行った場合には、その処理結果が従来はディスプレイ32とスピーカー33とに出力される。しかしながら、例えば、所有者がデータ処理装置6をマナーモード等に設定することによって、複数の出力手段の一つであるスピーカー33からの音声出力が禁止されるような状態にある場合の、実データD01の処理について説明する。
上記のように音声出力が禁止される設定は、所有者がデータ処理装置6を操作することによって行われる。そして、この設定がなされたという情報は、データ処理装置6において第1仮想マシン41の処理要求部203において格納される。そして、処理要求部203が判定部202による判定結果に基づいて、第2仮想マシン42に対して実データD01を用いた処理を要求する際に、特定の出力手段(例えばスピーカー33)への出力が制限されている場合には、当該出力手段への出力を第2仮想マシン42に対して要求せず、出力が制限されていない出力手段(例えばディスプレイ32)への出力に係る処理のみを要求する。そして、第2仮想マシン42の実行処理部211では、第1仮想マシン41からの要求に基づいて特定の出力手段に対してのみの出力を想定して実データD01を用いたプログラムの実行処理が行われる。
上記の処理を図24を用いてより具体的に説明する。図24は、データ処理装置6によるデータ処理方法のうち、処理要求部203において行われる第2仮想マシン42に対する処理要求に係る処理を説明するフローチャートである。図24における処理では、図21(A)に示す第5実施形態のデータ処理装置5による処理要求処理に係るフローチャートと比較して、処理命令を行ったアプリケーションプログラムが判定部202において仮想データD11を利用中である旨のフラグが保持されたプログラムか否かを処理要求部203において判断した(S202)後、画像表示領域に透過色の設定を行う(S204)の前に、出力手段に対して出力の制限があるかの確認が行われる(S205)。ここで行われる出力の制限の確認とは、上述のようにディスプレイ32やスピーカー33からの出力が、例えばマナーモード等の設定により制限されているかどうかの確認であり、複数の出力手段がある場合には個別に行われる。例えば、マナーモードの設定であり、スピーカー33のみ出力が制限されている場合には、スピーカー33への出力に関しての処理は、ここで中止される。一方、ディスプレイ32への出力は特に制限されてないため、処理が継続され、図21(A)に示す処理と同様に、画像データを表示するための画像表示領域の設定を行い(S204)、実データD01に対する処理の結果のうちの画像データだけを対象として、第2仮想マシン42に対して、処理の要求が行われる(S205)。以上の処理により、第2仮想マシン42に対しては実データD01に含まれるデータのうち画像データのみの処理が要求され、第2仮想マシン42ではこの要求に基づいて処理が行われ、その処理結果が、表示部214を介してディスプレイ32に出力される。
<本実施形態による効果>
以上のように、本実施形態によれば、例えば複数の出力手段のうち一部の出力手段(上記の例ではスピーカー33)への出力が制限されている場合に、第1仮想マシン41の処理要求部203において各出力手段への出力可否が判断され、その結果に基づいて第2仮想マシン42に対して実データD01の処理が要求される。この結果、第2仮想マシン42において実データD01を用いて行われた処理の結果を一部の出力手段のみ(上記の例ではディスプレイ32)に対して出力される態様とすることができ、データ処理装置6により実データD01を利用する際の利便性をさらに高めることができる。
なお、上記の実施形態では、複数の出力手段に対して実データD01の処理結果を出力する場合について説明したが、実データD01を用いた処理の結果が出力される出力手段が一つであり、その出力手段による出力が制限されている場合には、第2仮想マシン42に対して実データD01を用いた処理の要求は行われない。より具体的には、例えば実データD01が音楽データである場合、実データD01を用いた再生処理の結果は、スピーカー33に対してのみ出力される。ここで、マナーモード等の設定により、スピーカー33からの音声出力が制限されている場合には、処理要求部203によって図24に示すフローチャートに従って出力の制限を確認する(S205)と、スピーカー33に対する音声出力が制限されていることが確認されるため、音声出力に係る処理はここで終了される。そして、第2仮想マシン42による実データD01を用いた処理の結果は他の出力手段に対しては出力されない。そのため、第2仮想マシン42に対して実データD01を用いた処理の要求を送信する必要がなく、以降の処理は中止される。このように、出力が制限されている出力手段に対しての出力が行われる処理の要求は、第1仮想マシン41から第2仮想マシン42に対して送信されないことから、第2仮想マシン42において出力要否を判断することがなく出力が中止され、データ処理装置6によりデータを利用する際の利便性を高めることができる。また、第2仮想マシン42では不要な処理を行うことがなく、よりデータ処理装置6において上記の処理を効率よく行うことができる。
なお、マナーモードのほかに、例えばデータ処理装置6に対して外部との通信を遮断するセルフモードの設定がなされており、実データD01を用いた処理の結果を外部に送信する必要がある場合にも適用することができる。この場合、上記とマナーモードの設定がなされている場合と同様の処理によって第1仮想マシン41において第2仮想マシン42に対する処理の要求が中止されるため、第2仮想マシン42における実データD01を用いた処理の実行及びその結果の送信に係る処理が行われない。
(データ処理プログラム)
引き続いて、上述した一連のデータ処理を、上述したようなデータ処理装置1〜5として構成されるコンピュータに実行させるためのデータ処理プログラムを説明する。図25に示すように、データ処理プログラム61は、コンピュータが備える記録媒体60に形成されたプログラム格納領域60a内に格納されている。
データ処理プログラム61は、処理を統括するメインモジュール61aと、受信モジュール61bと、判定モジュール61cと、処理要求モジュール61dと、実行処理モジュール61eと、を備えて構成される。受信モジュール61bと、判定モジュール61cと、処理要求モジュール61dと、実行処理モジュール61eと、を実行させることにより実現される機能は、上述した受信部201と、判定部202と、処理要求部203と、実行処理部204の機能とそれぞれ同様である。
(変形例)
以上本発明の好適な実施形態について説明したが、本発明に係るデータ処理装置、データ処理方法及びデータ処理プログラムは種々の変更を行うことが可能である。
上記の実施形態では、データ処理装置1〜6が出力手段(出力部)を備え、当該出力手段に対して実データD01を用いたプログラムの実行結果を出力する場合について説明したが、出力手段は外部の装置である態様としてもよい。この場合には、通信部34を介して外部と通信をすることにより、外部の装置に対して第2仮想マシン42における実データD01を用いたプログラムの実行の処理結果を送信することにより、第2仮想マシン42に格納される実データD01を用いた処理の結果をデータ処理装置の所有者等が確認することができる。
1,2,3,4,5…データ処理装置、41…第1仮想マシン、42…第2仮想マシン、101…第1記憶部、102…第2記憶部、201…受信部、202…判定部、203…処理要求部、205…更新部、211…実行処理部、212…通知部、D01…実データ、D11…仮想データ。

Claims (14)

  1. 互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置であって、
    前記第1仮想マシンは、
    実行することが許容される処理内容があらかじめ特定され、前記第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第1記憶手段と、
    前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信手段と、
    前記受信手段により受信された前記処理命令に含まれる前記処理内容を特定する情報に基づいて、前記仮想データに対して処理を実行することが許容されるか否かを判定する判定手段と、
    前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第2仮想マシンへ要求する処理要求手段と、
    を備え、
    前記第2仮想マシンは、
    前記データを格納する第2記憶手段と、
    前記データを用いて実行されるプログラムを格納し、前記1仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理手段と、
    を備えることを特徴とするデータ処理装置。
  2. 前記第2仮想マシンは、前記第2記憶手段に格納される前記データが更新された場合に、前記第2記憶手段に格納される前記データの更新に係る情報が含まれる更新情報を前記第1仮想マシンに通知する通知手段を更に備え、
    前記第1仮想マシンは、前記通知手段より通知される前記更新情報を取得し、当該更新情報に基づいて第1記憶手段に格納される前記仮想データを更新する更新手段を更に備える
    ことを特徴とする請求項1記載のデータ処理装置。
  3. 前記第1仮想マシンは、前記第2仮想マシンに対して前記データの実行処理の終了を要求する処理終了要求手段を更に備え、
    前記実行処理手段は、前記処理終了要求手段からの要求に基づいて、前記データを用いた前記プログラムの実行を中止する
    ことを特徴とする請求項1または2記載のデータ処理装置。
  4. 前記実行処理手段は、前記第2記憶手段に格納される前記データをあらかじめ実行可能な状態にすることを特徴とする請求項1〜3のいずれか一項に記載のデータ処理装置。
  5. 前記第2仮想マシンは、
    前記受信手段において前記処理命令を受信する契機となるイベントに係る情報であるイベント情報を受信するイベント情報受信手段を更に備え、
    前記実行処理手段は、前記イベント情報受信手段が前記イベント情報を受信した後の一定時間のみ、前記処理要求手段からの要求に基づいて、前記データを用いて前記プログラムを実行する
    ことを特徴とする請求項1〜4のいずれか一項に記載のデータ処理装置。
  6. 前記第2仮想マシンは、
    前記イベント情報受信手段により受信された前記イベント情報と、前記イベント情報を受信した後に前記実行処理手段により用いられた前記データと、を対応付けて格納する第3記憶手段とを更に備え、
    前記実行処理手段は、前記イベント情報受信手段が前記イベント情報を受信した際に、前記第3記憶手段を参照し、前記イベント情報受信手段が受信した前記イベント情報に対応付けて格納される前記データをあらかじめ実行可能な状態にする
    ことを特徴とする請求項5記載のデータ処理装置。
  7. 前記実行処理手段により前記データを用いて前記プログラムを実行した結果を出力する出力手段を更に備えることを特徴とする請求項1〜6のいずれか一項に記載のデータ処理装置。
  8. 前記出力手段は、前記第1仮想マシンにより制御されるディスプレイであって、
    前記データは画像データであって、
    前記第1仮想マシンは、前記ディスプレイの画面表示を制御する画面制御手段を更に備え、
    前記第2仮想マシンは、前記実行処理手段により前記データを用いて前記プログラムを実行した結果を前記ディスプレイに対して表示させる表示手段を更に備え、
    前記画面制御手段は、前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記ディスプレイのうち前記データを用いて前記プログラムを実行した結果を表示するための画像表示領域を透過色に設定し、
    前記表示手段は、前記データを用いて前記プログラムを実行した結果を前記画像表示領域に表示させる
    ことを特徴とする請求項7記載のデータ処理装置。
  9. 前記画面制御手段は、前記画像表示領域の変更に係る情報である変更情報を前記表示手段に通知し、
    前記表示手段は、前記変更情報に基づいて、前記画像表示領域に前記データを用いて前記プログラムを実行した結果を表示させる
    ことを特徴とする請求項8記載のデータ処理装置。
  10. 前記変更情報は、前記画像表示領域の位置とサイズの変更に係る情報であることを特徴とする請求項9記載のデータ処理装置。
  11. 前記処理要求手段は、前記出力手段への出力が制限されている場合には、前記第2仮想マシンに対する前記データの処理の要求を中止することを特徴とする請求項7〜9のいずれか一項に記載のデータ処理装置。
  12. 前記データ処理装置は前記出力手段を複数備え、
    前記処理要求手段は、前記データを用いて前記プログラムを実行した結果が複数の前記出力手段へ出力される場合に、前記複数の出力手段のうちの一部の出力手段に対してのみ前記プログラムを実行した結果の出力を前記第2仮想マシンに対して要求することを特徴とする請求項7〜10のいずれか一項に記載のデータ処理装置。
  13. 互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置によるデータ処理方法であって、
    前記第1仮想マシンの第1記憶手段が、実行することが許容される処理内容があらかじめ特定され、前記第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第1記憶ステップと、
    前記第1仮想マシンの受信手段が、前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信ステップと、
    前記第1仮想マシンの判定手段が、前記受信ステップにおいて受信された前記処理命令に含まれる前記処理内容を特定する情報に基づいて、前記仮想データに対して処理を実行することが許容されるか否かを判定する判定ステップと、
    前記第1仮想マシンの処理要求手段が、前記判定ステップにおいて前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第2仮想マシンへ要求する処理要求ステップと、
    前記第2仮想マシンの第2記憶手段が前記データを格納する第2記憶ステップと、
    前記第2仮想マシンの実行処理手段が、前記データを用いて実行されるプログラムを格納し、前記1仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理ステップと、
    を備えることを特徴とするデータ処理方法。
  14. 互いに異なるオペレーションシステムにより動作する第1仮想マシンと第2仮想マシンとを備えるデータ処理装置におけるデータ処理プログラムであって、
    前記第1仮想マシンにおいて、実行することが許容される処理内容があらかじめ特定され、前記第2仮想マシンにおいて格納されるデータに対応付けられた仮想データを格納する第1記憶手段と、
    前記第1仮想マシンにおいて、前記データを用いて実行する処理内容を特定する情報が含まれ、前記仮想データを用いた処理命令を受信する受信手段と、
    前記第1仮想マシンにおいて、前記判定手段により前記処理内容を特定する情報に基づいた処理を前記仮想データに対して実行することが許容されると判定された場合に、前記仮想データに対応付けられた前記データの処理を前記第2仮想マシンへ要求する処理要求手段と、
    前記第2仮想マシンにおいて、前記データを格納する第2記憶手段と、
    前記第2仮想マシンにおいて、前記データを用いて実行されるプログラムを格納し、前記1仮想マシンからの要求に基づいて、前記データを用いて前記プログラムを実行する実行処理手段と、
    をコンピュータに機能させることを特徴とするデータ処理プログラム。
JP2009035326A 2009-02-18 2009-02-18 データ処理装置、データ処理方法、データ処理プログラム Expired - Fee Related JP4787341B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009035326A JP4787341B2 (ja) 2009-02-18 2009-02-18 データ処理装置、データ処理方法、データ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009035326A JP4787341B2 (ja) 2009-02-18 2009-02-18 データ処理装置、データ処理方法、データ処理プログラム

Publications (2)

Publication Number Publication Date
JP2010191681A true JP2010191681A (ja) 2010-09-02
JP4787341B2 JP4787341B2 (ja) 2011-10-05

Family

ID=42817663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009035326A Expired - Fee Related JP4787341B2 (ja) 2009-02-18 2009-02-18 データ処理装置、データ処理方法、データ処理プログラム

Country Status (1)

Country Link
JP (1) JP4787341B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012117465A1 (ja) * 2011-03-02 2012-09-07 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
JP2012212253A (ja) * 2011-03-30 2012-11-01 Fujitsu Ltd 制御プログラム、携帯端末および仮想計算機の制御プログラム
WO2013125222A1 (ja) * 2012-02-22 2013-08-29 パナソニック株式会社 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
JP2013197645A (ja) * 2012-03-16 2013-09-30 Mitsubishi Electric Information Systems Corp 通信端末、通信サーバ及び通信システム
JP2014521184A (ja) * 2011-07-20 2014-08-25 マイクロソフト コーポレーション 信頼レベルのアクティブ化

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012117465A1 (ja) * 2011-03-02 2012-09-07 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
JP5981845B2 (ja) * 2011-03-02 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
JP2012212253A (ja) * 2011-03-30 2012-11-01 Fujitsu Ltd 制御プログラム、携帯端末および仮想計算機の制御プログラム
US9225818B2 (en) 2011-03-30 2015-12-29 Fujitsu Limited Mobile terminal
JP2014521184A (ja) * 2011-07-20 2014-08-25 マイクロソフト コーポレーション 信頼レベルのアクティブ化
US9465948B2 (en) 2011-07-20 2016-10-11 Microsoft Technology Licensing Llc. Trust level activation
WO2013125222A1 (ja) * 2012-02-22 2013-08-29 パナソニック株式会社 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
JPWO2013125222A1 (ja) * 2012-02-22 2015-07-30 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム
US9460276B2 (en) 2012-02-22 2016-10-04 Panasonic Intellectual Property Corporation Of America Virtual machine system, confidential information protection method, and confidential information protection program
JP2013197645A (ja) * 2012-03-16 2013-09-30 Mitsubishi Electric Information Systems Corp 通信端末、通信サーバ及び通信システム

Also Published As

Publication number Publication date
JP4787341B2 (ja) 2011-10-05

Similar Documents

Publication Publication Date Title
US9098368B1 (en) Loading branded media outside system partition
JP5749814B2 (ja) プレディケートを用いた動的なデバイス・コンフィグレーション
US7698223B2 (en) Pluggable file-based digital rights management API layer for applications and engines
EP2207333B1 (en) Method and system for modifying the execution of a native application running on a portable eletronic device
US20240192986A1 (en) Application handoff method and apparatus
US9098715B1 (en) Method and system for exchanging content between applications
CN114629865A (zh) 与动态扩展应用程序交互的即时消息系统
JP4787341B2 (ja) データ処理装置、データ処理方法、データ処理プログラム
KR20110099310A (ko) 컴퓨터 플랫폼에 프로그램을 설치하기 위한 방법과 장치 및 컴퓨터 판독가능 저장 매체
TW201227502A (en) Application execution in a restricted application execution environment
JP4629304B2 (ja) 通信装置、プログラムおよび記録媒体
US20100082679A1 (en) Method, apparatus and computer program product for providing object privilege modification
JP2004348439A (ja) コンピュータ及びプログラム
US8886933B1 (en) Streamlined provisioning and configuration of computing devices
US8401973B1 (en) Method and system for managing a license for an add-on software component
JP2003332978A (ja) 通信装置、プログラムおよび記録媒体
JP2017142792A (ja) ファイル保護方法
KR102124330B1 (ko) 어플리케이션 업데이트 방법 및 이를 지원하는 단말
JP2014525638A (ja) アプリケーションのためのコンテンツの管理
KR101482149B1 (ko) 어플리케이션 실행 장치, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록 매체
JP2010033385A (ja) ネットワーク電話帳システム、ネットワーク電話帳管理方法、及びプログラム
US9491231B1 (en) Mobile communication device stateful applications system
US10891017B1 (en) Rotating icon selection and interaction software development kit (SDK)
JP4477035B2 (ja) 移動体通信端末
WO2024093755A1 (zh) 文件管理方法、终端设备和可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110617

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110628

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees