(57)【要約】      （修正有）【課題】仕様の異なるバーチャルマシン（ＶＭ）が動作する種々のハードウェアプラットフォーム上において共通のアプリケーションソフトウェアを動作させる。【解決手段】種々の市販ＶＭのいずれかが動作する市販ＶＭ動作部１１０を備える種々のハードウェアプラットフォーム１００のいずれかにおいて動作することにより、共通のアプリケーションソフトウェア１２０を追加・変更・削除するロード部１３３と、１又は複数のアプリケーションソフトウェアを同時に起動する起動部１３５と、複数のアプリケーションソフトウェアを切り替え等の制御をする動作制御部１３７と、市販ＶＭ１１０に適合され、ロード部１３３、起動部１３５、動作制御部１３７のそれぞれと、市販ＶＭ動作部１１０との間で、一方からの要求を他方によって処理される形態に変換して提供するインタフェース部１３９とを備える適合ＶＭ動作部１３０を形成するＶＭを提供する。【選択図】図３
2009093601.tif 000002
【特許請求の範囲】
【請求項１】
種々の市販バーチャルマシンのいずれかが動作する市販バーチャルマシン動作部を備える種々のハードウェアプラットフォームのいずれかにおいて動作することにより、
種々のハードウェアプラットフォーム、種々の市販バーチャルマシンに共通のアプリケーションソフトウェアを追加・変更・削除するソフトウェアロード部と、１又は複数のアプリケーションソフトウェアを同時に起動するソフトウェア起動部と、同時に起動されているアプリケーションソフトウェアを切り替え、または連携させ、かつ、ユーザが意図しない操作を制限するソフトウェア動作制御部と、前記市販バーチャルマシンに適合され、前記ソフトウェアロード部、前記ソフトウェア起動部、前記ソフトウェア動作制御部のそれぞれと、前記市販バーチャルマシン動作部との間で、一方からの要求を他方によって処理される形態に変換して提供するインタフェース部とを形成するバーチャルマシン。
【発明の詳細な説明】
【技術分野】  本発明は、バーチャルマシンに関するものである。
【背景技術】  携帯電話機やコンピュータ、家電等の異なるハードウェアプラットフォームにおいては、ハードウェアのリソースやオペレーティングシステムなどの基本ソフトウェアが異なっている。このように、異なるハードウェアプラットフォーム上で動作するアプリケーションソフトウェアを提供するためには、それぞれのハードウェアプラットフォームに合わせたアプリケーションソフトウェアを開発する必要があり、開発コストと開発の手間が生じていた。このため、異なるハードウェアプラットフォーム間の仕様差を吸収する目的で搭載されているバーチャルマシンが存在する。
【非特許文献１】Ｊａｖａ（登録商標）バーチャルマシン  インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｊａｖａ．ｃｏｍ／ｊａ／〉
【非特許文献２】．ＮＥＴ（登録商標）バーチャルマシン  インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｊａｐａｎ／ｍｓｄｎ／ｎｅｔｆｒａｍｅｗｏｒｋ／〉
【発明の開示】
【発明が解決しようとする課題】  しかしながら、携帯電話機やパソコンや家電などにおいて動作するバーチャルマシンは複数存在し、これらのバーチャルマシンの仕様は統一されていない。このため、バーチャルマシンが存在するハードウェアプラットフォームであっても、それぞれのバーチャルマシンに合わせたアプリケーションソフトウェアを開発する開発コストと開発の手間が発生し、開発利便性が阻害されていた。
携帯電話や家電などにおいては、利用可能なメモリがパソコンと比較し著しく少なく、搭載しているＣＰＵの速度も遅いことなどから、同時に複数のアプリケーションソフトウェアが起動できないものが存在し、ユーザに不便を強いている。
また、ネットワークを使用するアプリケーションソフトウェアにおいては、ユーザの個人情報がユーザが意図しないままに流出してしまう危険性が存在する。
本発明が解決しようとする課題は、仕様の異なるバーチャルマシンが動作する種々のハードウェアプラットフォーム上において共通のアプリケーションソフトウェアを動作させることである。
【課題を解決するための手段】  本発明の態様によれば、種々の市販バーチャルマシンのいずれかが動作する市販バーチャルマシン動作部を備える種々のハードウェアプラットフォームのいずれかにおいて動作することにより、以下の各部を形成するバーチャルマシンが提供される。すなわち、種々のハードウェアプラットフォーム、種々の市販バーチャルマシンに共通のアプリケーションソフトウェアを追加・変更・削除するソフトウェアロード部と、１又は複数のアプリケーションソフトウェアを同時に起動するソフトウェア起動部と、同時に起動されているアプリケーションソフトウェアを切り替え、または連携させ、かつ、ユーザが意図しない操作を制限するソフトウェア動作制御部と、前記バーチャルマシンに適合され、前記ソフトウェアロード部、前記ソフトウェア起動部、前記ソフトウェア動作制御部のそれぞれと、前記市販バーチャルマシン動作部との間で、一方からの要求を他方によって処理される形態に変換して提供するインタフェース部とである。
本態様によれば、複数の異なるハードウェアプラットフォーム上で動作する仕様の異なる種々の市販バーチャルマシンのいずれかに適合され、前記ソフトウェアロード部、前記ソフトウェア起動部、前記ソフトウェア動作制御部のそれぞれと、前記市販バーチャルマシン動作部との間で、一方からの要求を他方によって処理される形態に変換して提供するインタフェース部が提供されるため、種々の市販バーチャルマシンが動作するハードウェアプラットフォーム上に、共通のアプリケーションソフトウェアを追加・変更・削除し、当該ハードウェアプラットフォーム上で共通のアプリケーションソフトウェアを起動し、共通のアプリケーションソフトウェアの動作を制御すること等が可能となる。
【発明を実施するための最良の形態】  図１は、異なるハードウェアプラットフォーム上で本実施の形態によるバーチャルマシン（以下、適合バーチャルマシンと称する）を用いてアプリケーションソフトウェアが動作する様子を概念的に示している。
図１において、携帯電話機やパソコンや家電などのハードウェアプラットフォーム１ａ、１ｂ、１ｃにはハードウェアプラットフォームの仕様差を吸収するそれぞれ異なるバーチャルマシン（以下、市販バーチャルマシンと称する）２ａ、２ｂ、２ｃが搭載されている。本実施形態においては、機能を実現する市販バーチャルマシン２ａ、２ｂ、２ｃのそれぞれに適合され、市販バーチャルマシン間の仕様差を吸収する適合バーチャルマシン３ａ、３ｂ、３ｃがそれぞれ提供される。これにより、アプリケーションソフトウェア４はいずれのハードウェアプラットフォーム１ａ、１ｂ、１ｃにおいても同様に動作することができる。したがってアプリケーションソフトウェア４を容易に開発・提供することが可能となる。
図２は本実施形態に係る携帯電話機５とパソコン６と家電７において同一のアプリケーションソフトウェア８が動作していることを示す図である。同一のアプリケーションソフトウェア８は、携帯電話機５やパソコン６や家電７に搭載されているダウンロード機能などによって、提供される。
図３は本実施形態に係る任意のハードウェアプラットフォーム１００を示すブロック図である。ハードウェアプラットフォーム１００は、市販ＶＭ動作部１１０と、ソフトウェア保持部１２０と、適合ＶＭ動作部１３０とを備える。市販ＶＭ動作部１１０は、ハードウェアプラットフォームの仕様差を吸収する種々の市販バーチャルマシンのいずれかが動作する市販バーチャルマシン動作部である。
市販バーチャルマシンとしては、Ｊａｖａ（登録商標）バーチャルマシンなどが知られている。ソフトウェア保持部１２０は、種々の市販バーチャルマシンに共通のアプリケーションソフトウェアを１または複数保持する。ソフトウェア保持部１２０には、不揮発メモリを用いることができる。アプリケーションソフトウェアとしては、スケジュール管理アプリケーションなどが挙げられる。適合ＶＭ動作部１３０は、本発明の態様により、複数の異なるハードウェアプラットフォーム上で動作する仕様の異なる種々の市販バーチャルマシンのいずれかに適合されるバーチャルマシンを動作させる。
適合ＶＭ動作部１３０は、適合ＶＭ用メモリ１３１と、ロード部１３３と、起動部１３５と、動作制御部１３７と、インタフェース部１３９とを備える。適合ＶＭ用メモリ１３１は、適合バーチャルマシンによって管理されるメモリ領域であって、アプリケーションソフトウェアが使用するデータの保持などに使われる。
ロード部１３３は、種々のハードウェアプラットフォーム、種々の市販バーチャルマシンに共通のアプリケーションソフトウェアを追加・変更・削除するソフトウェアロード部である。ロード部１３３は、図示しない入出力部を介してユーザから入力される命令や、アプリケーションソフトウェアからの要求等に応じて、アプリケーションソフトウェアをソフトウェア保持部から読み出し、適合ＶＭ用メモリ１３１にロードする。
起動部１３５は、１又は複数のアプリケーションソフトウェアを同時に起動するソフトウェア起動部である。起動部１３５は、図示されない入出力部を介してユーザから入力される命令や、アプリケーションソフトウェアからの要求などに応じて、適合ＶＭ用メモリ１３１にロードされたアプリケーションソフトウェアを起動させる。
動作制御部１３７は、同時に起動されているアプリケーションソフトウェアを切り替え、または連携させ、かつ、ユーザが意図しない操作を制限するソフトウェア動作制御部である。動作制御部１３７は、適合ＶＭ用メモリ１３１内で動作しているアプリケーションソフトウェアの動作を制御することによって、同時に起動されている１又は複数のアプリケーションソフトウェアを適切に管理する。
上記のロード部１３３と、起動部１３５と、動作制御部１３７とのそれぞれは、各処理において必要に応じて、後述するインタフェース部１３９を介して市販ＶＭ動作部１１０に要求を送信する。ロード部１３３と、起動部１３５と、動作制御部１３７から市販ＶＭ動作部１１０に送信される要求としては「画面にボタンを描画する」などが挙げられる。
インタフェース部１３９は、上記の市販ＶＭ動作部１１０と、ロード部１３３と、起動部１３５と、動作制御部１３７とのそれぞれと通信する。インタフェース部１３９は、市販バーチャルマシンに適合されており、ロード部１３３、起動部１３５、動作制御部１３７のそれぞれから、市販ＶＭ動作部１１０への要求を、市販ＶＭ動作部１１０によって処理される形態に変換して提供し、かつ、市販ＶＭ動作部１１０からの要求をロード部１３３、起動部１３５、動作制御部１３７によって処理される形態に変換して提供する。例えば、アプリケーションソフトウェアにおける「画面上へのボタン描画」の処理においては、インタフェース部１３９は、動作制御部１３７からの要求に伴って得られる、描画されるボタンの特性（ボタンサイズ、色等）を示すパラメータを市販ＶＭ動作部において実行可能な線分に変換し、線分描画、矩形描画の命令として市販ＶＭ動作部に提供する。
図４は本実施形態を示すフローチャートである。ステップ１２ａにおいて、ロード部１３３によってアプリケーションソフトウェアが適合ＶＭ用メモリ１３１にロードされる。ステップ１２ｂにおいて、適合ＶＭ動作部１３０が、図示されない入出力部を介してユーザの入力を取得する。ステップ１２ｃにおいて、起動部１３５によって、ロードされたアプリケーションソフトウェアを実行しようとする。ステップ１２ｄにおいて、動作制御部１３７が、起動部１３５による操作がユーザによって意図されるものかどうか判定する。意図されるものであれば（ＯＫ）ステップ１２ｆにおいて起動部１３５がアプリケーションソフトウェアを実行し、意図されるものでなければ（ＮＧ）アプリケーションソフトウェアは実行されずステップ１２ｅに処理が遷移する。
【発明の効果】
本発明により、仕様の異なる市販バーチャルマシンが動作する種々のハードウェアプラットフォーム１００上に、共通のアプリケーションソフトウェアを追加・変更・削除し、当該ハードウェアプラットフォーム上で共通のアプリケーションソフトウェアを起動し、共通のアプリケーションソフトウェアの動作を制御すること等が可能となる。これにより、より多くの携帯電話機やパソコンや家電などのハードウェアプラットフォームに対して利用者の求めるアプリケーションソフトウェアをより容易に開発・提供することが可能となる。
また、利用者にとって、従来技術では得られなかったアプリケーションソフトウェアを利用することが可能となり、より便利で安全に携帯電話機やコンピュータを利用することができる。
【図面の簡単な説明】
【図１】  図１はバーチャルマシンが動作するソフトウェア構成を概念的に示す図である。
【図２】  図２はバーチャルマシンが動作する様子を示す概念図である。
【図３】  図３はバーチャルマシン実行部を示すブロック図である。
【図４】  図４はアプリケーションソフトウェアの実行処理を示すフローチャートである。
【符号の説明】
１ａ、１ｂ、１ｃ  ハードウェアプラットフォーム
２ａ、２ｂ、２ｃ  市販バーチャルマシン
３ａ、３ｂ、３ｃ  適合バーチャルマシン
４  アプリケーションソフトウェア
５  携帯電話機
６  パソコン
７  家電
８  アプリケーションソフトウェア
１００  ハードウェアプラットフォーム
１１０  市販ＶＭ動作部
１２０  ソフトウェア保持部
１３０  適合ＶＭ動作部
１３１  適合ＶＭ用メモリ
１３３  ロード部
１３５  起動部
１３７  動作制御部
１３９  インタフェース部
【図１】
2009093601.tif 000003
【図２】
2009093601.tif 000004
【図３】
2009093601.tif 000005
【図４】
2009093601.tif 000006