(57)【特許請求の範囲】
【請求項１】
第一アプリにかかる第一インストールパッケージを取得することと、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得ることと、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成することと、
を含むことを特徴とする仮想マシン作成方法。
【請求項２】
前記した前記第一インストールパッケージに対応する必要な環境データを確定することの前に、さらに、
前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定し、作成が必要であると確定した場合には、仮想マシンを作成し、作成が不要であると確定した場合には、仮想マシンを作成しないことが含まれていることを特徴とする、請求項１に記載の方法。
【請求項３】
前記した前記仮想マシンインストールパッケージを実行して仮想マシンを作成することの後に、さらに、
第二インストールパッケージを取得することと、
前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが安全レベルに関する事前設定条件を満たすか否かを確定することと、
事前設定条件を満たすと確定した場合には、前記第二インストールパッケージを前記仮想マシンにインストールし、
事前設定条件を満たさない場合と確定した場合には、前記第二インストールパッケージを前記仮想マシンにインストールしないこととが含まれていることを特徴とする、請求項１又は２に記載の方法。
【請求項４】
前記事前設定条件は、
前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることを含むことを特徴とする、請求項３に記載の方法。
【請求項５】
前記事前設定条件は、
前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることを含むことを特徴とする、請求項３に記載の方法。
【請求項６】
前記した前記第二インストールパッケージを前記仮想マシンにインストールすることの前に、さらに、
前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することが含まれていることを特徴とする、請求項５に記載の方法。
【請求項７】
第一アプリにかかる第一インストールパッケージを取得するための第一取得モジュールと、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得るためのコンパイル・パッケージ化モジュールと、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成するための作成モジュールと、
を備えることを特徴とする仮想マシン作成装置。
【請求項８】
前記装置はさらに、
前記コンパイル・パッケージ化モジュールが前記第一インストールパッケージに対応する必要な環境データを確定する前に、前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定するための安全モジュールを備えることを特徴とする、請求項７に記載の装置。
【請求項９】
前記装置はさらに、
前記作成モジュールが前記仮想マシンインストールパッケージを実行して仮想マシンを作成した後に、第二インストールパッケージを取得するための第二取得モジュールと、前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが、安全レベルに関する事前設定条件を満たすか否かを確定するための条件確定モジュールと、前記条件確定モジュールが前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすのを確定した後に、前記第二インストールパッケージを前記仮想マシンにインストールするためのインストールモジュールと、
を備えることを特徴とする、請求項７又は８に記載の装置。
【請求項１０】
前記事前設定条件は、
前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることを含むことを特徴とする、請求項９に記載の装置。
【請求項１１】
前記事前設定条件は、
前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることを含むことを特徴とする、請求項９に記載の装置。
【請求項１２】
前記条件確定モジュールはさらに、前記インストールモジュールが前記第二インストールパッケージを前記仮想マシンにインストールする前に、前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することに用いられることを特徴とする、請求項１１に記載の装置。
【請求項１３】
コンピュータ可読メモリと、プロセッサとを備え、前記コンピュータ可読メモリは、前記プロセッサのコンピュータプログラム指令を記憶するためのものであり、前記プロセッサは、請求項１〜６のいずれかに記載の仮想マシン作成方法における各ステップの指令を実行するためのものであることを特徴とする仮想マシン作成装置。
【請求項１４】
コンピュータプログラム指令を備え、前記コンピュータのプログラム指令は仮想マシン作成装置により実行される時、仮想マシン作成装置が請求項１〜６のいずれかに記載の方法を実行することを特徴とするコンピュータ可読メモリ。
【請求項１５】
コンピュータ可読メモリに記憶されるコンピュータプログラムを含み、前記コンピュータプログラムはプログラム指令を含み、前記プログラム指令は仮想マシン作成機器により実行される時、仮想マシン作成装置が請求項１〜６のいずれかに記載の方法を実行することを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想化の技術分野に関し、特に、仮想マシン作成方法及び装置に関する。
【背景技術】
【０００２】
携帯端末はユーザの日常の仕事や生活での重要なツールとなってきており、それによりモバイルインターネットの迅速な発展が推進されていると同時に、その安全性問題もますます厳しくなって、社会に広く注目されるようになる。モバイル仮想化は、携帯電話又は無線ハンドヘルドデバイスにて複数のオペレーティングシステム又は仮想マシン（ＶＭ）を同時に稼働させることができ、Ｈｙｐｅｒｖｉｓｏｒにより基盤ハードウェアにおいて安全な且つ独立のソフトウェア稼働環境が作成されるようにするものである。モバイル仮想化によれば、ユーザは二つ又は複数のモバイル機器を携帯する必要なく、一つの物理的ハンドヘルドデバイスにて複数のオペレーティングシステムにアクセス可能になり、そして安全性の点では顕著な特性がある。
【０００３】
仮想化技術による隔離性によれば、単一端末での複数のオペレーティングシステムの間の隔離を実現して、各オペレーティングシステムにおけるプロセスによる他のオペレーティングシステムに対する不利な影響を回避することが可能になり、典型的なシナリオとしては、仮想化技術により、携帯電話等のモバイル機器において企業システムと個人システムとの分離を実現し、個人システムにおけるプロセスによる企業への潜在的な危害を防ぎ、安全要求が求められる企業による「私的デバイス」（ＢＹＯＤ）の需要を満たすことである。
【０００４】
端末における各々のアプリレベルでの隔離性をより一層向上させるために、従来技術によるスキームのアーキテクチャは、図１に示されるように、安全要求の低い若干のアプリ例えばアプリ１，２及び３等について、隔離を行うことなく、それらを一つの仮想マシンにて稼働させるようにすればよい。より安全要求の高い若干のアプリ例えばアリペイ、インターネット銀行又は企業メール等のアプリについては、独立したアプリ毎に仮想マシンを確立し、仮想マシン毎においてオペレーティングシステムをインストールし稼働させて、あるアプリに対するホスティングに用いるようにすることにより、安全要求の高いアプリの間のより良好な隔離を実現している。
【０００５】
従来技術は主に以下のような問題点がある。
【０００６】
多くのアプリは完全なオペレーティングシステムを必要とすることなく稼働できるため、各アプリを独立して稼働させる各仮想マシンのいずれにおいても完全なオペレーティングシステムをインストールすると、多すぎる端末資源が占有されて浪費になってしまい、そして、独立したアプリ毎に仮想マシンを確立することは、複雑なユーザ操作が必要となり、一般ユーザが完成し難いことである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本願の実施例は、上記問題を解決する技術的解決手段を提案した。
【課題を解決するための手段】
【０００８】
一つの態様では、本願の実施例は、
第一アプリにかかる第一インストールパッケージを取得することと、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得ることと、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成することと、
を含むことを特徴とする仮想マシン作成方法を提供する。
【０００９】
好ましくは、前記した前記第一インストールパッケージに対応する必要な環境データを確定することの前に、さらに、前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定することが含まれている。
【００１０】
好ましくは、前記した前記仮想マシンインストールパッケージを実行して仮想マシンを作成することの後に、さらに、
第二インストールパッケージを取得することと、
前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすか否かを確定することと、
前記第二インストールパッケージを前記仮想マシンにインストールすることとが含まれている。
【００１１】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることを含む。
【００１２】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることを含む。
【００１３】
好ましくは、前記した前記第二インストールパッケージを前記仮想マシンにインストールすることの前に、さらに、前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することが含まれている。
【００１４】
もう一つの態様では、本願の実施例は、
第一アプリにかかる第一インストールパッケージを取得するための第一取得モジュールと、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得るためのコンパイル・パッケージ化モジュールと、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成するための作成モジュールと、
を備えることを特徴とする仮想マシン作成装置を提供する。
【００１５】
好ましくは、前記装置はさらに、前記コンパイル・パッケージ化モジュールが前記第一インストールパッケージに対応する必要な環境データを確定する前に、前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定するための安全モジュールを備える。
【００１６】
好ましくは、前記装置はさらに、
前記作成モジュールが前記仮想マシンインストールパッケージを実行して仮想マシンを作成した後に、第二インストールパッケージを取得するための第二取得モジュールと、
前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすか否かを確定するための条件確定モジュールと、
前記条件確定モジュールが前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすのを確定した後に、前記第二インストールパッケージを前記仮想マシンにインストールするためのインストールモジュールと、
を備える。
【００１７】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることを含む。
【００１８】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることを含む。
【００１９】
好ましくは、前記条件確定モジュールはさらに、前記インストールモジュールが前記第二インストールパッケージを前記仮想マシンにインストールする前に、前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することに用いられる。
【発明の効果】
【００２０】
本願では、第一アプリにかかる第一インストールパッケージを取得し、前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得て、前記仮想マシンインストールパッケージを実行して仮想マシンを作成するようにしている。本願は、あるアプリを独立して稼働させる仮想マシンを自動的に作成する方法を提供し、また、前記仮想マシンに対して、オペレーティングシステム環境全体ではなく、それにて稼働するアプリに必要な簡素化されたオペレーティング環境のみを配置することによって、端末資源を大きく節約した。
【図面の簡単な説明】
【００２１】
以下、図面を参照して、本発明の具体的な実施例を説明する。
【図１】従来技術による仮想マシンスキームのアーキテクチャ模式図である。
【図２】本願の実施例一にかかる仮想マシン作成方法のフロー模式図である。
【図３】本願の実施例一にかかる仮想マシンスキームのアーキテクチャ模式図である。
【図４】本願の実施例二にかかる仮想マシン作成方法のフロー模式図である。
【図５】本願の実施例三にかかる仮想マシン作成装置の構造模式図である。
【発明を実施するための形態】
【００２２】
本発明の技術的解決手段及び利点をより明瞭にするために、以下、本発明の例示的な実施例を図面に合わせてより詳細に説明するが、説明されるものは本発明の実施例の一部に過ぎず、すべての実施例を挙げたものではないことは明らかである。また、本開示中の実施例及びその特徴は、衝突のない限り、互いに組み合わせることができる。
【００２３】
あるアプリに対してその稼働に専用される仮想マシンを確立する場合、仮想マシンにて完全なオペレーティングシステムを稼働させているのは一般的である一方、多くのアプリは完全なオペレーティングシステムを必要とすることなく稼働できるため、各アプリを独立して稼働させる各仮想マシンのいずれにおいても完全なオペレーティングシステムをインストールすると、多すぎる端末資源が占有されて浪費になってしまい、そして、独立したアプリ毎に仮想マシンを確立することは、複雑なユーザ操作が必要となり、一般ユーザが完成し難いことであることを、発明者は本発明の検討過程において認識した。
【００２４】
上記の問題点に対して、本願は、第一アプリにかかる第一インストールパッケージを取得することと、前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得ることと、前記仮想マシンインストールパッケージを実行して仮想マシンを作成することと、を提案した。本願は、あるアプリを独立して稼働させる仮想マシンを自動的に作成する方法を提供し、また、前記仮想マシンに対して、オペレーティングシステム環境全体ではなく、それにて稼働するアプリに必要な簡素化されたオペレーティング環境のみを配置することによって、端末資源を大きく節約したが、以下に説明する。
【００２５】
本発明の実施の便宜を図るために、以下に実例として説明する。
【００２６】
実施例一
図２には、本発明の実施例一にかかる仮想マシン作成方法のフロー模式図が示されており、図２に示されるように、前記仮想マシン作成方法は、
第一アプリにかかる第一インストールパッケージを取得するステップ２０１と、
前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定するステップ２０２と、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得るステップ２０３と、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成するステップ２０４と、
を含む。
【００２７】
ステップ２０１では、本実施例にかかる仮想マシン作成方法は、前記第一アプリに対してその稼働に専用される仮想マシンを作成することに用いられ、第一アプリにかかる第一インストールパッケージを取得することは、ユーザからの前記第一アプリのインストール要求を取得し、当該アプリのインストール要求に応じて前記第一アプリのインストールパッケージを確定し、さらに前記インストールパッケージを取得するようにされてもよい。
【００２８】
ステップ２０２では、前記第一アプリに対してその稼働に専用される仮想マシンを作成する前に、当該アプリに対して当該アプリの稼働に専用される仮想マシンを作成する必要があるか否かを確定するようにしており、これは、隔離性に対する各アプリの要求が異なるためであり、一定の安全要求が求められる若干のアプリ、例えば共同購入アプリや配車アプリ等を含むオンライン支払に関するアプリ、あるいは、より安全要求の高い、ユーザの銀行カードに対する直接的且つ多額の操作を行うアリペイやインターネット銀行アプリ等を含むアプリ、という安全要求の高いアプリについてのみ、あるアプリの稼働に専用される仮想マシンを作成必要がある。安全要求が求められていないアプリ例えば音楽・ビデオ再生アプリ、ニュース・情報閲覧アプリ又は辞書翻訳アプリ等については、端末資源を最大限節約するために、それらを一つの仮想マシンにインストールしてもよい。
【００２９】
上記ステップ２０２は選択可能なものであり、このステップを加えると、安全要求が事前設定条件を満たすアプリのみに対して仮想マシンを作成する一方、安全要求の高くないアプリについては、仮想マシンを作成することなく、従来技術に従って統括して既存の仮想マシンのオペレーティングシステムにインストールすることが可能になる。アプリの安全要求を可能な限り満たしながら、端末資源をさらに節約するようになる。
【００３０】
ステップ２０３では、前記第一アプリのインストールパッケージをアンパックし走査して、当該アプリが稼働するオペレーティングシステムのタイプ（例えばアップルオペレーティングシステム又はアンドロイドオペレーティングシステム等）を確定し、そして当該オペレーティングシステムにて前記第一アプリを稼働させる場合に呼び出されている必要な環境データを確定するようにしており、前記環境データは、当該オペレーティングシステムでのライブラリと関連ファイル等の、ユーザ権限等の関連情報が含まれているものを含む。前記必要な環境データが提供されると、前記第一アプリの稼働過程における稼働環境に対する需要を満たすことができ、また、前記必要な環境データには、第一アプリの稼働過程に不要なものが含まれていない。
【００３１】
上記環境データ及び前記第一アプリに対応するオペレーティングシステム起動と制御情報を合わせて、当該オペレーティングシステムをコンパイルするための新しい構成ファイルを生成する。前記オペレーティングシステム起動と制御情報は、対応するオペレーティング環境においてオペレーティングシステム環境を起動し前記第一アプリを稼働させることに用いられる。生成された新しい構成ファイルに基づいて、前記第一アプリの需要を満たすオペレーティングシステム環境のみを含む、簡素化された「オペレーティングシステム」をコンパイルした。コンパイルされた簡素化されたオペレーティングシステムと前記第一アプリとをパッケージ化して、仮想マシンインストールパッケージＩｍａｇｅ（ミラーファイル）を生成する。
【００３２】
ほとんどすべてのアプリは、各種のオペレーティングシステム環境にて稼働する時には、それに対応する「オペレーティングシステム起動と制御情報」に支持されていなければならないが、異なるアプリが呼び出している環境データ、即ち「ライブラリと関連ファイル」の間の差異が大きく、また、完全なオペレーティングシステムのすべての環境データよりも小さいのは一般的である。例えば、完全なオペレーティングシステムは数Ｇのメモリを占有する可能性がある一方、各アプリについて簡素化されたオペレーティングシステムは数十や百Ｍのメモリを占有すれば済むため、本スキームに従って作成された仮想マシンによれば、異なるアプリの稼働要件を満たすことができれば、メモリでの占有を大きく低減することもできる。
【００３３】
ステップ２０４では、仮想化層ホスト（Ｈｏｓｔ）にて前記仮想マシンインストールパッケージのミラーファイルを実行すると、上記第一アプリの稼働に専用される仮想マシンを直接作成でき、即ち、仮想マシンを作成し、前記仮想マシンにおいて前記簡素化されたオペレーティングシステムを配置して前記第一アプリをインストールしておくことができる。
【００３４】
本願では、仮想マシンを作成したアーキテクチャは図３に示されるとおりであり、安全要求の高いタオバオアプリとインターネット銀行アプリを個別に前記アプリの稼働に専用される仮想マシンにインストールしておきながら、これらの前記アプリの稼働に専用される仮想マシンによる端末資源に対する占有の最小化を実現した。
【００３５】
本願は、あるアプリを独立して稼働させる仮想マシンを自動的に作成する方法を提供し、また、前記仮想マシンに対して、オペレーティングシステム環境全体ではなく、それにて稼働するアプリに必要な簡素化されたオペレーティング環境のみを配置することによって、端末資源を大きく節約した。
【００３６】
実施例二
図４には、本発明の実施例二にかかる仮想マシン作成方法のフロー模式図が示されており、本実施例二の上記実施例一と類似又は重複する部分については、上記実施例一の説明を参照できる。図４に示されるように、前記フローは、
第一アプリにかかる第一インストールパッケージを取得するステップ４０１と、
前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定するステップ４０２と、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得るステップ４０３と、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成するステップ４０４と、
第二インストールパッケージを取得するステップ４０５と、
前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすか否かを確定するステップ４０６と、
前記第二インストールパッケージを前記仮想マシンにインストールするステップ４０７と、
を含む。
【００３７】
本実施例中のステップ４０１−４０４は上記実施例一中のステップ２０１−２０４と同様であり、上記の関連説明を参照できる。
【００３８】
本実施例では、あるアプリの稼働に専用される仮想マシンを作成しておいた後に、ステップ４０５では、第二インストールパッケージを取得し、当該第二インストールパッケージを既存の前記仮想マシンにインストールしようとしている。
【００３９】
ステップ４０６では、一般には、前記第二インストールパッケージは、複数の安全要求の低いアプリが稼働している既存の仮想マシンにインストールされるようになり、あるいは、前記ステップ２０１−２０４又はステップ４０１−４０４に従って、前記第二インストールパッケージに対して新しい仮想マシンを作成して前記第二インストールパッケージをインストールするようになる。任意の新しいインストールパッケージに対して新しい仮想マシンを作成するようにすると、システムにおける仮想マシンの数が多すぎるようになり、やはり端末資源の浪費を招いてしまう。ステップ４０６で前記第二インストールパッケージが事前設定条件を満たすか否かを確定し、事前設定条件を満たす第二インストールパッケージについては、仮想マシンの数を適宜低減するために、それを既存のあるアプリの稼働に専用される仮想マシンに合併してインストールすることができる。
【００４０】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることにされてもよい。
【００４１】
プログラムの更新後は、その安全性に対する要求が変わらないことが一般的であり、また、オペレーティングシステムが同一で、必要な環境データも基本的に同様で又は多少増加するため、あるアプリに対してその稼働に専用される仮想マシンを作成しておくと、前記アプリの更新インストールパッケージを取得した場合、前記アップデートインストールパッケージに対して独立した仮想マシンを作成する必要がなく、更新インストールパッケージを既存の前記更新インストールパッケージに対応するアプリの仮想マシンにインストールして、更新インストールパッケージに対する新しい仮想マシンの作成による端末資源の占有を回避すべきである。
【００４２】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることにされてもよい。
【００４３】
類似した若干のアプリは同じ安全要求が求められているため、これらのアプリにとっては、安全アプリ同士を互いに隔離させることではなく、それを一般アプリから隔離させることが最も重要となるため、同一の安全レベルであるアプリのいずれをも新たに作成された一つの仮想マシンにインストールするようにしてもよい。図３のアーキテクチャを例として、既存の仮想化アーキテクチャでは、タオバオアプリとインターネット銀行アプリに対して独立した仮想マシンを作成した状況であり、ユーザがティーモールアプリ（ティーモールアプリとタオバオアプリは、アリババ社で開発した二つの類似機能の電子商取引アプリであり、いずれもユーザのアカウントと支払情報に関わっており、両者の安全レベルが同じであると考えることができる）をインストールしようとすると、前記ティーモールアプリの安全レベルが既存のタオバオアプリの安全レベルと同じであるのを確認してから、前記ティーモールアプリのインストールパッケージが前記事前設定条件を満たすのを確定し、そして前記ティーモールアプリを既存のタオバオアプリの稼働に専用される仮想マシンにインストールして、仮想マシンの大量作成による端末資源の占有を回避することができる。
【００４４】
好ましくは、前記第二インストールパッケージが第二アプリのインストールパッケージである場合、前記事前設定条件は、前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することを含んでもよい。
【００４５】
同一安全レベルを有する若干のアプリを一つの仮想マシンにインストールしようとする場合、各アプリが呼び出している環境データが同一又は類似するものであるかをさらに考えなければならず、各アプリに必要な環境データが大きく異なっている時、これらのアプリを同時に稼働させうる仮想マシンに多量の環境データが含まれるようになり、ひいては完全なオペレーティングシステムをインストールした場合と同様になり、同一安全レベルのアプリ同士間の隔離をよく実現できない一方、仮想マシンが占有するメモリを最小化させることができなくなる。このため、第二インストールパッケージに対応する必要な環境データと前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えた場合のみにおいて、前記第二インストールパッケージを既存の前記第一アプリの稼働に専用される仮想マシンにインストールするようにしており、前記した環境データの類似度が事前設定閾値を超えることは、前記第二インストールパッケージに対応する必要な環境データが前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データよりも少ないこと、あるいは、前記第二インストールパッケージに対応する必要な環境データが前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データと同じであること、あるいは、前記第二インストールパッケージに対応する必要な環境データのうちの前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データと同じ部分が占有するメモリの大きさは、前記第二インストールパッケージに対応する必要な環境データが占有するメモリの総量を占める比が事前設定比（例えば９０％）を超えたことを含む。
【００４６】
即ち、二つのアプリに必要な環境データが大きく異なっていると、二つのアプリの安全レベルが同じであっても、後の方のアプリを前の方のアプリの稼働に専用される仮想マシンにインストールすべきではない。
【００４７】
例えば、ティーモールアプリとタオバオアプリに必要な環境データが完全に同じであるため、ティーモールアプリのインストールパッケージによりティーモールアプリを既存のタオバオアプリの稼働に専用される仮想マシンにインストールすることができる。カンギョアプリ（タオバオアプリとティーモールアプリに類似するもので、アリババ社で開発した類似機能の電子商取引アプリであり、同様にユーザのアカウントと支払情報に関わっており、その安全レベルが前記タオバオアプリやティーモールアプリと同じであると考えることができる）に必要な環境データがタオバオアプリよりも少なく又はそれに等しいため、それを既存のタオバオアプリの稼働に専用される仮想マシンにインストールすることができる。最終的に、もともとタオバオアプリの稼働に専用される仮想マシンにおいてタオバオアプリとティーモールアプリやカンギョアプリが稼働するようになり、上記条件を満たすその他のアプリをさらにインストールしてもよい。
【００４８】
ステップ４０７では、上記事前設定条件を満たす第二インストールパッケージを前記仮想マシンにインストールするようにした。
【００４９】
前記第二インストールパッケージが前記第一アプリの更新インストールパッケージである場合、当該アプリの更新・アップデートの過程において新しい機能を追加する必要となる可能性があるため、前記更新インストールパッケージを走査し、更新インストールパッケージに必要な環境データを既存の前記第一アプリの稼働に専用される仮想マシンが対応できる環境データと比較して、追加又は変更する必要がある機能に対応して呼び出されなければならない環境データを確定し、そして、前記環境データと前記の第一アプリが更新されたオペレーティングシステム起動と制御情報を改めてコンパイルし、拡張アプリとして第二インストールパッケージとともに既存の前記第一アプリの稼働に専用される仮想マシンにインストールする。前記仮想マシンは、その対応できる環境データのリストを更新し、前記第一アプリのオペレーティングシステム起動と制御情報を更新する必要がある。
【００５０】
例えば、先にユーザによりインストールされたタオバオアプリには、コードを走査して商品を探す機能が備えられておらず、新バージョンのタオバオアプリは、カメラを呼び出し走査させて商品の二次元コードやバーコード情報を取得できるものになるため、もともとタオバオアプリの稼働に専用される仮想マシンにオペレーティングシステムにおけるカメラの呼出しに必要な環境データを追加し、新バージョンのタオバオアプリに対応するオペレーティングシステム起動と制御情報を更新する必要となる。
【００５１】
前記第二インストールパッケージが前記第二アプリのインストールパッケージである場合、前記第二インストールパッケージに対応する必要な環境データが前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データよりも少なく、あるいは、前記第二インストールパッケージに対応する必要な環境データが前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データと同じであると、新しい環境データを追加することなく、前記第二アプリを既存の前記第一アプリの稼働に専用される仮想マシンに直接インストールするとともに、前記仮想マシンに前記第二アプリに対応するオペレーティングシステム起動と制御情報を追加すればよい。
【００５２】
例えば、ユーザによりタオバオアプリの稼働に専用される仮想マシンが作成されておいてから、ティーモールアプリをインストールしようとする場合、Ｈｏｓｔはティーモールアプリの安全レベルがタオバオアプリと同じ、両者がいずれも同一のオペレーティングシステム（例えばアンドロイド）にて稼働するものであるとともに、呼び出しているオペレーティングシステムにおける環境データが完全に同じであると判断すると、ティーモールアプリを既存のタオバオアプリの稼働に専用される仮想マシンに直接インストールするとともに、仮想マシンにティーモールアプリに対応するオペレーティングシステム起動と制御情報を追加する。
【００５３】
前記第二インストールパッケージに対応する必要な環境データのうちの前記第一アプリにかかる第一インストールパッケージに対応する必要な環境データと同じ部分が占有するメモリの大きさは、前記第二インストールパッケージに対応する必要な環境データが占有するメモリの総量を占める比が事前設定比（例えば９０％）を超え、即ち、前記第二アプリに必要な環境データは一部が第一アプリと異なる可能性があると、前記第二アプリを既存の前記第一アプリの稼働に専用される仮想マシンにインストールする場合、前記第二アプリに対応するオペレーティングシステム起動と制御情報を追加する必要となる以外に、前記第二アプリにさらに必要な前記第一アプリと異なる環境データを追加する必要もある。
【００５４】
例えば、先にユーザにより家屋取引類アプリの稼働に専用される仮想マシンが作成されており、これらのアプリは電子商取引・ショッピング類アプリに類似しながら実際の支払機能を備えないものであるため、それに関わるオペレーティングシステムにおける環境データがタオバオアプリやティーモールアプリよりもわずかに少なくなる。そして、この時にユーザからタオバオアプリのインストールが要求されると、Ｈｏｓｔはタオバオアプリの安全レベルが独立した仮想マシンにて稼働する前記家屋取引類アプリと同じで、また、タオバオアプリに必要な環境データが前記家屋取引類アプリよりもわずかに多いが、関わる環境パラメータの類似度がある閾値（例えば９０％との環境パラメータが同じである）を超えたと判断すると、Ｈｏｓｔはタオバオアプリを前記仮想マシンにインストールするとともに、タオバオアプリがさらに呼び出しなければならない家屋取引類ＡＰＰと異なる環境データ、及び、タオバオアプリのオペレーティングシステム起動と制御情報を追加し、そして、インストールしておいた後に、前記仮想マシンの環境データのリストを更新するようにする。
【００５５】
本願は、あるアプリを独立して稼働させる仮想マシンを自動的に作成する方法を提供し、また、前記仮想マシンに対して、オペレーティングシステム環境全体ではなく、それにて稼働するアプリに必要な簡素化されたオペレーティング環境のみを配置することによって、端末資源を大きく節約した。同時に、あるアプリの稼働に専用される仮想マシンが存在している場合、端末資源の最善の利用を実現するために、実情に応じて、前記仮想マシンに前記アプリの更新インストールパッケージ又はその他のアプリをさらにインストールすることができる。
【００５６】
実施例三
同一の発明思想に基づいて、本発明の実施例はさらに仮想マシン作成装置を提供するが、これらの設備にかかる問題を解決する原理は仮想マシン作成方法に類似しているため、これらの設備の実施については方法の実施を参照でき、繰り返し部分について贅言しない。図５には、本発明の実施例三にかかる仮想マシン作成装置の構造模式図が示されており、図に示されるように、前記仮想マシン作成装置５００は、
第一アプリにかかる第一インストールパッケージを取得するための第一取得モジュール５０１と、
前記第一インストールパッケージに対応する必要な環境データを確定し、前記必要な環境データに基づいてコンパイルし、簡素化されたオペレーティングシステムを得て、前記簡素化されたオペレーティングシステムと前記第一インストールパッケージとをパッケージ化して仮想マシンインストールパッケージを得るためのコンパイル・パッケージ化モジュール５０３と、
前記仮想マシンインストールパッケージを実行して仮想マシンを作成するための作成モジュール５０４と、
を備える。
【００５７】
好ましくは、前記装置５００はさらに、前記コンパイル・パッケージ化モジュール５０３が前記第一インストールパッケージに対応する必要な環境データを確定する前に、前記第一アプリの安全レベルを確定し、前記第一アプリの安全レベルに基づいて、前記第一アプリに対して仮想マシンを作成する必要があるか否かを確定するための安全モジュール５０２を備える。
【００５８】
好ましくは、前記装置５００はさらに、
前記作成モジュール５０４が前記仮想マシンインストールパッケージを実行して仮想マシンを作成した後に、第二インストールパッケージを取得するための第二取得モジュール５０５と、
前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすか否かを確定するための条件確定モジュール５０６と、
前記条件確定モジュール５０６が前記第二インストールパッケージと前記第一アプリにかかる第一インストールパッケージが事前設定条件を満たすのを確定した後に、前記第二インストールパッケージを前記仮想マシンにインストールするためのインストールモジュール５０７と、
を備える。
【００５９】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが前記第一アプリの更新インストールパッケージであることを含む。
【００６０】
好ましくは、前記事前設定条件は、前記第二インストールパッケージが第二アプリのインストールパッケージであり、且つ前記第二アプリの安全レベルが前記第一アプリの安全レベルと同じであることを含む。
【００６１】
好ましくは、前記条件確定モジュール５０６はさらに、前記インストールモジュールが前記第二インストールパッケージを前記仮想マシンにインストールする前に、前記第二インストールパッケージに対応する必要な環境データと前記第一インストールパッケージに対応する必要な環境データとの類似度が事前設定閾値を超えたか否かを確定することに用いられる。
【００６２】
説明の便宜上、以上に記載した装置の各部分は機能で各種のモジュールに分けられてそれぞれ説明されていた。本発明を実施する場合、各モジュールやユニットの機能を同一又は複数のソフトウェア又はハードウェアにて実現可能であることは言うまでもない。
【００６３】
本発明の実施例は方法、システム、又はコンピュータプログラム製品として提供可能であることは、当業者にとっては明らかであるはずである。このため、本発明は完全ハードウェア形態の実施例、完全ソフトウェア形態の実施例、又は、ソフトウェアとハードウェアとを組み合わせた形態の実施例として実施することができる。また、本発明は、コンピュータ使用可能プログラム・コードが含まれる一つ又は複数のコンピュータ使用可能記憶媒体（ディスクメモリ、ＣＤ−ＲＯＭ、光メモリ等を含むがそれらに限定されるものではない）にて実行されるコンピュータプログラム製品として実施することができる。
【００６４】
本発明は、その実施例に記載の方法、設備（システム）、及びコンピュータプログラム製品のフロー図及び／又はブロック図を参照して説明されていた。コンピュータプログラム指令により、フロー図及び／又はブロック図中のフロー及び／又はブロック毎、並びに、フロー図及び／又はブロック図中のフロー及び／又はブロックの組合せを実現可能であることは理解されるはずである。これらのコンピュータプログラム指令を、マシンを生成するように汎用コンピュータ、専用コンピュータ、組込みプロセッサ又はその他のプログラム可能データ処理機器のプロセッサに提供することができ、それにより、コンピュータ又はその他のプログラム可能データ処理機器のプロセッサにより実行される指令から、フロー図の一つ又は複数のフロー及び／又はブロック図の一つ又は複数のブロックにおいて指定された機能を実現するための装置を生成する。
【００６５】
これらのコンピュータプログラム指令をコンピュータ又はその他のプログラム可能データ処理機器を所定の方式で動作させるようにガイドしうるコンピュータ可読メモリに記憶することもでき、それにより、当該コンピュータ可読メモリに記憶された指令から、フロー図の一つ又は複数のフロー及び／又はブロック図の一つ又は複数のブロックにおいて指定された機能を実現する指令装置を含む製造品を生成する。
【００６６】
これらのコンピュータプログラム指令をコンピュータ又はその他のプログラム可能データ処理機器にロードすることもでき、それにより、コンピュータ又はその他のプログラム可能機器にて一連の操作工程を実行してコンピュータで実現される処理を生成し、そしてコンピュータ又はその他のプログラム可能機器にて実行される指令において、フロー図の一つ又は複数のフロー及び／又はブロック図の一つ又は複数のブロックにおいて指定された機能を実現するための工程を提供する。
【００６７】
本発明の好ましい実施例を説明したが、当業者が基本的な創造的思想を分かっていれば、これらの実施例について他の変更や手直しをすることが可能になる。このため、添付されている特許請求の範囲は、好ましい実施例及び本発明の範囲にあるすべての変更や手直しを含むものと解釈されようとしている。
【図１】
0006412276.tif 000002
【図２】
0006412276.tif 000003
【図３】
0006412276.tif 000004
【図４】
0006412276.tif 000005
【図５】
0006412276.tif 000006