(57)【要約】  第１のオペレーティングシステム（１１；３１）（Ｃｈｒｏｍｅ  ＯＳ（登録商標）のような、シン・ウェブクライアントオペレーティングシステムなど）を実行し、アプリケーションが、第２のオペレーティングシステム（１３；３３）（オペレーティングシステム（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ  Ｘ（登録商標）、Ｌｉｎｕｘ（登録商標）のような、完全なオペレーティングシステムなど）上で動作し、ストレージ（７）およびプロセッサ（２）を備えたコンピューティングデバイス上でアプリケーションを実行する方法であって、ストレージ（７）にコンテナパッケージ（１２；３２）をロードし、コンテナパッケージ（１２；３２）をプロセッサ（７）上で実行することであって、コンテナパッケージ（１２；３２）が、第２のオペレーティングシステム（１３；３３）のためのエミュレータとして動作することと、第２のオペレーティングシステム（１３；３３）のためのアプリケーションコードを各々が含んでいる少なくとも１つのアプリケーションパッケージ（１５；３５）を、コンテナパッケージ（１２；３２）にインストールすることと、プロセッサ（７）上で各アプリケーションパッケージ（１５；３５）を実行することであって、コンテナパッケージ（１２；３２）は、第２のオペレーティングシステム（１３；３３）に対してアプリケーションコードが行う任意のリクエストを、第１のオペレーティングシステム（１１；３１）の対応するリクエストに変換することとを含む。【選択図】図２
2018526759.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイス上でアプリケーションを実行する方法であって、前記コンピューティングデバイスは、第１のオペレーティングシステムを実行し、前記アプリケーションは、第２のオペレーティングシステム上で動作し、前記コンピューティングデバイスは、ストレージおよびプロセッサを備え、前記方法は、
前記ストレージにコンテナパッケージをロードし、前記コンテナパッケージを前記プロセッサ上で実行することであって、前記コンテナパッケージは、前記第２のオペレーティングシステムのためのエミュレータとして動作するステップと、
前記第２のオペレーティングシステムのためのアプリケーションコードを各々が含んでいる少なくとも１つのアプリケーションパッケージを、前記コンテナパッケージにインストールするステップと、
前記プロセッサ上で各アプリケーションパッケージを実行することであって、前記コンテナパッケージは、前記第２のオペレーティングシステムに対して前記アプリケーションコードが行う任意のリクエストを、前記第１のオペレーティングシステムの対応するリクエストに変換するステップと
を含む、コンピューティングデバイス上でアプリケーションを実行する方法。
【請求項２】
前記第１のオペレーティングシステムは、Ｃｈｒｏｍｅ  ＯＳのような、シン・ウェブクライアントオペレーティングシステムである、請求項１に記載の方法。
【請求項３】
前記第２のオペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ  Ｘ（登録商標）、Ｌｉｎｕｘ（登録商標）などのような完全なオペレーティングシステムである、請求項１または２に記載の方法。
【請求項４】
前記コンテナパッケージをブラウザのキャッシュにロードするステップ、および／または前記エミュレーションパッケージをブラウザのキャッシュ内で実行するステップを含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記コンテナパッケージは、各アプリケーションパッケージを実行するように構成された、エミュレータを実行するサンドボックス、およびローカルグラフィック端末サーバを備える、請求項１から４のいずれかに記載の方法。
【請求項６】
ローカルグラフィック端末クライアントとして動作する、フロントエンドプログラムを実行するステップを含む、請求項５に記載の方法。
【請求項７】
前記コンピューティングデバイス内で、前記コンテナパッケージがグラフィック出力を生成し、前記グラフィック出力を前記ローカルグラフィック端末サーバを介して前記ローカルグラフィック端末クライアントに送信するステップを含む、請求項６に記載の方法。
【請求項８】
前記ローカルグラフィック端末クライアントは、キーボードイベントおよびマウスイベントのような入力イベントを、前記フロントエンドプログラムから前記ローカルグラフィック端末サーバに送信する、請求項６または７に記載の方法。
【請求項９】
前記サンドボックスは、典型的には前記第１のオペレーティングシステムとは異なる、第３のオペレーティングシステムを実行する、請求項５から８のいずれかに記載の方法。
【請求項１０】
前記第３のオペレーティングシステムは、Ｌｉｎｕｘオペレーティングシステムである、請求項９に記載の方法。
【請求項１１】
前記第２のオペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）であり、前記エミュレータは、ＷＩＮＥのような互換レイヤである、請求項５から１０のいずれかに記載の方法。
【請求項１２】
各アプリケーションパッケージは、前記プロセッサ上で実行することの一部として、少なくとも１つのデータファイルを生成し、前記方法は、
任意で暗号化された、前記コンテナパッケージ内、
前記コンテナパッケージ外の前記ストレージ、
前記コンピューティングデバイス外の、基本的にネットワークを介してアクセス可能なリモートロケーション、
のうちの少なくとも１つまたはそれらの任意の組み合わせを含む群から選択される場所に、各データファイルを記憶するステップを含む、請求項１から１１のいずれかに記載の方法。
【請求項１３】
少なくとも１つのデータファイルが前記コンテナパッケージに記憶され、前記第１のオペレーティングシステムは、前記コンテナパッケージに記憶された前記少なくとも１つのデータファイルにアクセス可能である、請求項１２に記載の方法。
【請求項１４】
少なくとも１つのデータファイルは、前記コンテナパッケージに記憶され、各アプリケーションパッケージを介さない限り前記コンテナパッケージ外からアクセス不能である、請求項１２または１３に記載の方法。
【請求項１５】
少なくとも１つのデータファイルが、前記コンピューティングデバイス外に記憶され、また、前記コンテナパッケージのリモート共有フォルダ内にも記憶される、請求項１２から１４のいずれかに記載の方法。
【請求項１６】
好適なプロセッサ上で実行されたときに、請求項１から１５のいずれかに記載の方法を実行させる、プログラム命令を保持するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューティングデバイス上でアプリケーションを実行する方法、および関連したコンピュータ可読媒体に関する。
【背景技術】
【０００２】
新たな、または革新的なプロジェクトへのアプローチに伴う重要な課題の１つとして、エンドユーザへの情報技術サービス配信コストの低減、即ち如何により優れたサービスを、より低価格で提供するかということが常に挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
現在の傾向としては、ユーザのモビリティを向上すること、任意のデバイスを使用可能とすること、何らかの形態のクラウドベースのオンラインストアから、ユーザのデバイスに合わせて記述されたアプリケーションを配信、利用可能とすることが挙げられる。これは、消費者市場には最適である一方、商業、企業団体には情報技術的に多くの課題がある。
【０００４】
第一に、企業団体が有する独自のアプリケーションの一部が、業務に非常に重要であるにも関わらず、旧式であるためにオンラインストアを通じて入手、利用できない場合がある。したがって、このようなアプリケーションを、ユーザの利用に合わせて（モビリティを保証し且つ任意のデバイスで実行可能なように）提供することが課題となる。
【０００５】
さらに、オンライン環境、インターネット接続が必要であるということについて２つめの課題が存在する。現在、市販のソリューションを利用する場合、アプリケーションがインターネットを介してデバイスにリアルタイムでストリーミングされている際、あるいはユーザがデータセンター内で動作するアプリケーションに遠隔接続している際、常時接続していることが求められる。したがって、インターネット接続が不能または著しく制限されている、あるいは不十分な場所では、問題が生じる。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、本願出願人は、コンピューティングデバイス上でアプリケーションを実行する方法であって、コンピューティングデバイスは、第１のオペレーティングシステムを実行し、アプリケーションは、第２のオペレーティングシステム上で動作し、コンピューティングデバイスは、ストレージおよびプロセッサを備え、方法は、
・ストレージにコンテナパッケージをロードし、エミュレーションパッケージをプロセッサ上で実行することであって、コンテナパッケージが、第２のオペレーティングシステムのためのエミュレータとして動作することと、
・第２のオペレーティングシステムのためのアプリケーションコードを各々が含んでいる少なくとも１つのアプリケーションパッケージを、コンテナパッケージにインストールすることと、
・プロセッサ上で各アプリケーションパッケージを実行することであって、コンテナパッケージは、第２のオペレーティングシステムに対してアプリケーションコードが行う任意のリクエストを、第１のオペレーティングシステムの対応するリクエストに変換することと
を含む、コンピューティングデバイス上でアプリケーションを実行する方法を提供する。
【０００７】
このように、２段階のパッケージプロセスを実行することによって、あるオペレーティングシステム上で動作するように設計されたアプリケーションを、別のオペレーティングシステム上で動作でき、その際のエンドユーザによる管理が容易となる。
【０００８】
典型的には、第１のオペレーティングシステムは、Ｃｈｒｏｍｅ  ＯＳ（登録商標）のような、シン・ウェブクライアントオペレーティングシステムシステムである。第２のオペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ  Ｘ（登録商標）、Ｌｉｎｕｘ（登録商標）などのような完全なオペレーティングシステムであってもよい。
【０００９】
本方法は、コンテナパッケージをブラウザのキャッシュにロードすること、および／またはエミュレーションパッケージをブラウザのキャッシュ内で実行することを含んでもよい。典型的には、ブラウザは、「実行時」（ｊｕｓｔ  ｉｎ  ｔｉｍｅ：ＪＩＴ）コンパイルの実現を保証するウェブアセンブリ（Ｗｅｂ  Ａｓｓｅｍｂｌｙ：ＷＡＳＭ）プロトコルを有し、また、動的変換およびプラットホーム独立性を実現可能であってもよい。
【００１０】
本発明は、特に、シン・ウェブクライアントオペレーティングシステムの場合に有効である。即ち、当該システムにおいて、たとえばＷｉｎｄｏｗｓアプリケーションの実行が求められれば、リモートデスクトップ接続（仮想ネットワークコンピューティング（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ：ＶＮＣ）またはリモートデスクトッププロトコル（Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ：ＲＤＰ）など）によりマウスイベントおよびキーボードイベントをリモートサーバーに送信し、アプリケーションのグラフィカル出力をクライアントに返信するようにして、当該アプリケーションがリモートサーバー上で動作するものとする。これにより、常にオンライン状態にある必要がなくなる。
【００１１】
１つの実施形態では、コンテナパッケージは、各アプリケーションパッケージを実行するように構成された、エミュレータを実行するサンドボックス、およびローカルグラフィック端末サーバを備えてもよい。この場合、本方法は、ローカルグラフィック端末クライアントとして動作する、フロントエンドプログラムを実行することをさらに含んでもよい。典型的には、フロントエンドプログラムは、第１のオペレーティングシステムにおけるネイティブアプリケーションでもよい。したがって、本方法は、コンピューティングデバイス内で、コンテナパッケージが、グラフィック出力を生成し、グラフィック出力を、ローカルグラフィック端末サーバを介してローカルグラフィック端末クライアントに送信することを含んでもよい。同様に、ローカルグラフィック端末クライアントは、キーボードイベントおよびマウスイベントのような入力イベントを、フロントエンドプログラムから前記ローカルグラフィック端末サーバに送信してもよい。
【００１２】
これは、特に、サンドボックスが、典型的には第１のオペレーティングシステムとは異なる第３のオペレーティングシステムを実行する場合に有効である。そのような構成では、第１のオペレーティングシステム以上の柔軟性が実現可能である。実際、第１のオペレーティングシステムがＣｈｒｏｍｅ  ＯＳである場合には、上述のエミュレータをネイティブに実行することは困難であり得る。典型的には、第３のオペレーティングシステムは、Ｌｉｎｕｘ（登録商標）オペレーティングシステムでもよい。第２のオペレーティングシステムがＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）である場合、エミュレータは、ｈｔｔｐ：／／ｗｗｗ．ｗｉｎｅｈｑ．ｏｒｇ／．のワインプロジェクト（Ｔｈｅ  Ｗｉｎｅ  Ｐｒｏｊｅｃｔ）から入手可能なＷＩＮＥ（登録商標）のような互換レイヤでもよい。
【００１３】
各アプリケーションパッケージは、プロセッサ上で実行することの一部として、少なくとも１つのデータファイルを生成してもよい。本方法は、
・任意で暗号化された、コンテナパッケージ内、
・コンテナパッケージ外のストレージ、
・コンピューティングデバイスの外の、基本的にはネットワークを介してアクセス可能なリモートロケーション、
のうちの少なくとも１つまたはそれらの任意の組み合わせを含む群から選択される場所に、各データファイルを記憶することを含む。
【００１４】
少なくとも１つのデータファイルが、コンテナパッケージに記憶され、コンテナパッケージに記憶された少なくとも１つのデータファイルには、第１のオペレーティングシステムがアクセス可能であり、たとえば、コンテナパッケージ内の共有フォルダ上に配置されてもよい。あるいは、少なくとも１つのデータファイルは、各アプリケーションパッケージを介さない限り、コンテナパッケージ外でアクセス不能であってもよい。コンピューティングデバイス外に記憶される少なくとも１つのデータファイルは、コンテナパッケージのリモート共有フォルダ内にも記憶されてもよい。
【００１５】
本発明の第２の態様によれば、適切なプロセッサ上で実行されると、当プロセッサに本発明の第１の態様の方法を実行させるプログラム命令を保持するコンピュータ可読媒体が提供される。
【００１６】
添付図面を参照して、単に例として、本発明の実施形態について以下に説明する。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に従って動作するコンピューティングデバイスの概略図である。
【図２】コンピューティングデバイス内の機能の構成を示す図である。
【図３】本発明の第２の実施形態によるコンピューティングデバイスの機能の構成を示す、図２に対応する図である。
【発明を実施するための形態】
【００１８】
添付図面の図１は、本発明の第１の実施形態に従って動作するコンピューティングデバイスを示す。本実施形態におけるコンピューティングデバイス１は、Ｃｈｒｏｍｅｂｏｏｋ（登録商標）であり、プロセッサ２と、キーボード３や（マウスイベントを発生させる）タッチパッド５のようないくつかの入力デバイスと、スクリーン４のような出力を備える。コンピューティングデバイス１はさらに、ストレージ７（ＲＡＭ（ランダムアクセスメモリ）と大容量フラッシュストレージの両方を含む）、およびネットワークインターフェース６を備える。コンピューティングデバイス１は、ネットワークインターフェース６を利用してインターネットのようなネットワーク８にアクセスすることができる。
【００１９】
添付図面の図２の記載により、デバイスの動作が理解できる。コンピューティングデバイスはネイティブなＯＳとして第１のオペレーティングシステム１１を実行する。ここでは、第１のオペレーティングシステム１１はＣｈｒｏｍｅ  ＯＳ（登録商標）であり、上記のハードウェア１０へのあらゆるアクセスを制御し、（一般的には、全てストレージ７に記憶され、プロセッサ２上で動作する）様々なネイティブアプリケーション１６を有する。
【００２０】
一方、ユーザは、当該デバイスで、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のような第２のオペレーティングシステム上で動作するように設計されたアプリケーション１５の実行を望む場合がある。そのため、サンドボックス仮想マシンとしてのコンテナ１２が、コンピューティングデバイス１にインストールされる。コンテナ１２は、第３のオペレーティングシステム１３、典型的には軽量Ｌｉｎｕｘ（登録商標）をインストールするものである。コンテナは、各アプリケーション１５を実行するために必要なエミュレータ１４およびその他のサービスを実行する。コンテナが構築されると、各アプリケーション１５は、それぞれ対応する通常のインストールプロセスを使用して、コンテナにインストールされる。その結果最終的に、各アプリケーション１５の実行を確認するために必要な全てのコンポーネントを備える自己完結型アプリケーションコンテナ１２となる。
【００２１】
コンテナ１２を生成するために、Ｃｈｒｏｍｅ  ＯＳオペレーティングシステム１１から独立し、バックグラウンドで動作するサンドボックスＬｉｎｕｘ環境が生成される。このサンドボックスＬｉｎｕｘ環境内には、ウィンドウマネージャを含むグラフィック端末サーバ１８がインストールされる。ウィンドウマネージャは、仮想ネットワークコンピューティング（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ：ＶＮＣ）、リモートデスクトッププロトコル（Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ：ＲＤＰ）などのプロトコルを使用して、エミュレータ１４のグラフィック出力にアクセス可能とする。エミュレータ１４は、第２のオペレーティングシステム（つまり、Ｗｉｎｄｏｗｓ）に対するコールを解釈し、第３のオペレーティングシステム１３に適するように変換する。
【００２２】
典型的には、コンテナは、アプリケーションの動作に対して必要最低限となるように省略したデスクトップ環境のみを提供する。当該環境は、キーボード機能およびマウス機能用のアプリケーションへの入力、フォントレンダリング、エンドユーザにディスプレイインターフェースを提供するグラフィック端末サーバ１８を提供することのみが求められる。
【００２３】
エミュレータ１４は、ＷＩＮＥ（登録商標）のような互換レイヤとしてもよく、ハードウェアやオペレーティングシステムに応じて様々な実装形態を採りうる。即ち、エミュレータ、互換レイヤまたはリコンパイラであってもよい。
【００２４】
さらに追加的な要素として、第１のオペレーションシステム１１上で動作する、フロントエンドアプリケーション１７が設けられる。これは、エミュレータからのグラフィック出力をスクリーン４上に表示し、キーボードイベントおよびマウスイベントを返すように、同じプロトコルを使用するグラフィック端末サーバ１８と通信する。このフロントエンドアプリケーション１７は、自動的にインストールされ、インストール中にバックグラウンドで動作してもよい。フロントエンドアプリケーション１７はまた、アプリケーション１５をインストールし、起動するためのインターフェースを提供することができる。必要であれば、フロントエンドアプリケーションは、コンテナ１２の暗号化および復号が可能であってもよい。
【００２５】
フロントエンドアプリケーション１７は、アプリケーション１５を管理するために使用されるユーザ管理インターフェースを表示することができ、また、インストールされたアプリケーション１５に対するライセンスキーを管理することができる。フロントエンドは、場合によっては認証情報およびポリシーに基づいて、ユーザがアプリケーションをダウンロードし、それらをコンテナ１２にインストールできるようにする。フロントエンドはまた、必要に応じて、エンドユーザがコンテナ１２を起動し、終了できるようにする。さらに、フロントエンドアプリケーション１７は、コンテナ１２のコンテンツ、またはアプリケーション１５（グラフィック端末サーバ１８の出力）をディスプレイ４上に表示できるようにする、グラフィック端末クライアントを提供する。
【００２６】
コンテナとフロントエンドはいずれも、エンドユーザによって、コンピューティングデバイス１上にインストールされる必要がある。コンテナ１２は起動時には、アプリケーションがインストールされていない空のコンテナである。次いで、ユーザは、インストールしたいアプリケーション１５を選択する。ユーザインターフェースから選択された当該アプリケーションは、コンテナにダウンロードされ、インストールされる。このインストールプロセスは、フロントエンドアプリケーション１７により処理される。ユーザがアプリケーションを起動すると、フロントエンドアプリケーション１７は、コンテナ１２内のアプリケーション１５に固有のコマンドを実行し、これにより当該コンテナ１２とのグラフィック端末接続が確立される。アプリケーションの表示、マウスの移動およびキーボードのタイピングのような、コンテナに対するその他のインタラクションは全て、そのプロトコルによって処理される。
【００２７】
典型的なインストールスクリプトは、以下の機能を有する。
１．デベロッパーモードを有効にする。これにより、Ｌｉｎｕｘシステムへのアクセスが可能になる。Ａｎｄｒｏｉｄ（登録商標）のような、このことが表示済みとなる特定のシステムでは本処理は必要ではない（Ｃｈｒｏｍｅｂｏｏｋデバイスでは必要である）。
２．既存のシステムに影響を与えず、かつ、ファイルを暗号化することができるように、軽量サンドボックスＬｉｎｕｘシステム（コンテナ１２）をインストールする。
３．コンテナ１２内で、ユーザインタラクションのためのグラフィック端末サーバ１７をインストールする。
４．Ｗｉｎｄｏｗｓ（または他のＯＳ）のアプリケーション１５のための互換レイヤまたはエミュレータ１４をインストールする。
５．ネイティブな第１のＯＳ１１の下、フロントエンドアプリケーション１７をインストールする。
【００２８】
インストール完了後、ユーザは以下に説明するステップによって、ユーザインターフェースにおいて実行するアプリケーション１５を選択することができる。
１．アプリケーション１５をダウンロードし、そのセットアップルーチンを実行する（最初の実行時のみ）。
２．コンテナ１２内のアプリケーション１５およびグラフィック端末サーバ１８を起動する。
３．グラフィック端末サーバ１８に接続し、アプリケーションをフロントエンドアプリケーション１７内に示す。
【００２９】
ユーザによりアプリケーション１５に保存されたファイルは、いくつかの方法で提示できる。
１．コンテナ１２の特別な共有フォルダ内にあるファイルは、第１のＯＳ１１のファイルシステムにおいて見ることができる（必要に応じて、暗号化される）。
２．特別なリモートフォルダ内にあるファイルは、ネットワーク８を介して、リモートファイルストア（例えば、Ｇｏｏｇｌｅ（登録商標）ドキュメント）と自動的に共有することができる（必要に応じて、暗号化される）。
３．上記に該当しないファイルは、コンテナ内でのみ見ることが可能であり、暗号化されてもよい。
【００３０】
上述のように、第１のオペレーティングシステムとしてＣｈｒｏｍｅ  ＯＳを用い、第２のオペレーティングシステムとしてＷｉｎｄｏｗｓを用いる場合、コンテナ１２により、オペレーティングシステムカーネル、エミュレータ、さらに、標準的なＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ．ｅｘｅまたは．ｍｓｉベースのアプリケーションを追加し、インストールする能力を含む、フルレイヤアプリケーションコンテナが実現できる。このプロセスは、単一のインストーラにおいて自己完結型アプリケーションを配信するように設計されるため、簡潔なインストールプロセスが実現される。まず、ユーザは、コンテナ１２をインストールし、次いで、ユーザは、必要なアプリケーションをそのコンテナにインストールする。
【００３１】
この実施形態により、アプリケーション１５は、インストール済みのネイティブアプリケーションと全く同じようにデバイス１上で動作できるようになり、また、マウスパッドまたはタッチスクリーンなど、そのデバイス１上で利用可能な任意のローカルリソースの使用も可能になる。また、ユーザデータファイルを、隠しファイルの場所、あるいは標準的なドライブホストサービスまたはクラウドホストサービスとして指定されるデバイス１上に、ローカルに記憶することが可能になる。ユーザがこの構成を選択すれば、完全に暗号化されたファイルを記憶することができる。コンテナは、標準的なアプリケーションインストーラに対応するため、ユーザは、キャプチャまたは転用の必要なしに、必要な旧式のＷｉｎｄｏｗｓアプリケーションをインストールすることができるようになる。
【００３２】
デバイス１上ダウンロードした各アプリケーション１５は、デバイス１上でローカルに動作することができる。即ち、ネットワーク８への接続が必要とならない。接続が必要なのは各アプリケーション１５パッケージの最初のダウンロードを実行時のみである。
【００３３】
本願出願人は、Ｃｈｒｏｍｅ  ＯＳを実行するＣｈｒｏｍｅｂｏｏｋデバイス上で、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＰｏｗｅｒＰｏｉｎｔ（登録商標）およびＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ｅｘｃｅｌ（登録商標）をエンドユーザが実行できるようにする、この製品の作業用デモンストレーションプロトタイプを生成した。アプリケーション１５の見た目、印象、動作は、標準的なＷｉｎｄｏｗｓオペレーティングシステム上で動作する場合と同様である。
【００３４】
添付図面の図３に、本発明の第２の実施形態を示す。前述の実施形態と共通する特徴には、元の参照番号に２０を加えた参照番号を付している。
この実施形態では、コンテナ３２は、第１のＯＳ１１内で直接実行されるのではなく、第１のＯＳ３１上で動作するブラウザ４０自体の中で実行する。コンテナ３２は、ブラウザのキャッシュ４１にダウンロードされ、キャッシュ４１内で動作する。典型的には、ブラウザ４０は、「実行時」（ｊｕｓｔ  ｉｎ  ｔｉｍｅ：ＪＩＴ）コンパイルを保証できるようにされたウェブアセンブリ（Ｗｅｂ  Ａｓｓｅｍｂｌｙ：ＷＡＳＭ）プロトコルを有し、また、動的変換およびプラットホーム独立性を実現する。
【図１】
2018526759.tif 000003
【図２】
2018526759.tif 000004
【図３】
2018526759.tif 000005
【国際調査報告】
2018526759.tif 000006