(57)【要約】      （修正有）【課題】リソースのサイズと性能に対する依存度を減少させ、組み込みソフトウェアのビルド時間を減縮する。【解決手段】ウェブを介して接続可能なクラウド開発環境上で使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、第１仮想システム上で使用者インターフェース用ツールを用いて編集したソースコードに対するシミュレーションを実行し、ソースコードに対するシミュレーション結果を使用者インターフェース用ツールを用いて使用者にフィードバックし、ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム上で提供し、ソースコードをターゲットボードに対して前もって生成したプリビルドソフトウェアと結合してターゲットボードで実行することができるバイナリーアウトプットを第２仮想システム上で生成する。【選択図】図５
2019114223.tif 000002
【特許請求の範囲】
【請求項１】
使用者がソースコードを編集することができる使用者インターフェース用ツールを提供する段階；
第１仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックする段階；
ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム上で提供する段階；及び
前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成する段階；
を含む、仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項２】
前記第１仮想システムと前記第２仮想システムは同一のホストオペレーティングシステム階層上で実行される、請求項１に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項３】
前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程で活用された開発環境情報が前記第１仮想システム上で実行されるシミュレーション過程に共有される、請求項２に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項４】
前記第１仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報が前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程に共有される、請求項２に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項５】
前記使用者インターフェース用ツールを提供する段階は、
ウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供する、請求項１に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項６】
前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存する段階をさらに含む、請求項５に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項７】
前記バイナリーアウトプットに対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存する段階をさらに含む、請求項５に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法。
【請求項８】
プロセッサを含むコンピューティングシステムであって、
前記プロセッサは、
使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、
第１仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックし、
ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム上で提供し、
前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを生成する、仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項９】
前記プロセッサは前記第１仮想システムと前記第２仮想システムを同じホストオペレーティングシステム階層上で実行する、請求項８に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項１０】
前記プロセッサは前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程で活用された開発環境情報を前記第１仮想システム上で実行されるシミュレーション過程に共有する、請求項９に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項１１】
前記プロセッサは前記第１仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報を前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程に共有する、請求項９に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項１２】
前記プロセッサはウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供する、請求項８に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項１３】
前記プロセッサは前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存する、請求項１２に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【請求項１４】
前記プロセッサは前記バイナリーアウトプットに対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存する、請求項１２に記載の仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は組み込みソフトウェア及び組み込みシステムに関するもので、より詳しくは仮想化されたシステム上で組み込みソフトウェア（組み込みシステムで実行されるソフトウェア）を自動で生成することができるワークフロー及びそのワークフローが実行されて組み込みソフトウェアを自動で生成するコンピューティングシステムに関するものである。
【背景技術】
【０００２】
組み込みシステムはマイクロプロセッサ又はマイクロコントローラーを組み込んで（ｅｍｂｅｄｄｅｄ）元の製作者が指定した機能のみを行う装置を意味し、一般的により大きなシステムの一部として特別な業務を遂行するためのハードウェアとソフトウェアを含んでいる特定の応用システムを言う。
【０００３】
このような組み込みシステムは多様な応用分野、例えば工場自動化、家庭自動化、ロボット制御、工程制御を含む制御分野、携帯電話、ＰＤＡ、スマートフォン、ＬＢＳなどを含む端末器機分野、プリンター、インターネット冷蔵庫、ゲーム機、ＨＤＴＶなどを含む情報家電器機分野、交換器、ルーター、ホームサーバー、ホームゲートウェイなどを含むネットワーク器機分野、自動車のＥＣＵ、カーナビゲーション、車両部品などの動作の制御を含む自動車分野などに多様に適用されている。
【０００４】
前述したような組み込みシステムは、先端技術の発展につれてハードウェアの仕様が高性能化している。
【０００５】
一方、市場競争力の確保のために、組み込みシステム製品は使用者の要求を反映して製作されなければならないうえに、早い時間内に発売されなければならないので、製品の迅速な開発のために、組み込みシステム開発者は設計及びテストツールを使う。
【０００６】
しかし、このようなツールはハードウェア部品の開発速度に追いつかない状況だった。このような速度差を埋めるために、ターゲットシステムのシミュレーションツールを使う。ターゲットプラットホームのシミュレーション、すなわち仮想プラットホームは組み込みソフトウェア開発者が実物ハードウェアの開発が完了することを待つ必要なしに仮想プラットホーム上で彼らのソフトウェアを分析して試してみることができるようになる。このような従来のシミュレーションシステムとしては、ＳｉｍＯＳ、ＳｋｙＥｙｅ、ＱＥＭＵ、ＳＩＤなどがある。
【０００７】
一方、このような従来の組み込みシステム及び組み込みシステムで実行される組み込みソフトウェアを開発する過程は、図１のように、仮想開発環境を構築したコンピューティングシステム上で行うことができる。他の従来技術の組み込みソフトウェア開発過程は、図２に示すように、ソフトウェア開発のためのツールの集合であるＴｏｏｌ−ｃｈａｉｎをターゲットボードで実行するのに（Ｓ２３０）適した形態にシミュレーションして（Ｓ２１０）ターゲットボードで実行可能なソースコードでビルドする過程（Ｓ２２０）を含む。しかし、このようなソースコードのビルド過程（Ｓ２２０）はＴｏｏｌ−ｃｈａｉｎの変更（Ｓ２１０）ごとに又はターゲットボードごとに毎度新しく実行しなければならなかったし、この過程で生成されるビルドのアウトプットはデータのサイズが膨大であり、ソースコードのビルド過程に長時間がかかるため、デバッギング又は修正の際に迅速な対処がなされにくい問題点があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】大韓民国公開特許第１０−２０１１−００３７１４０号の“組み込みソフトウェア仮想開発環境を提供するシステム”（公開日２０１１年４月１３日）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来の開発環境において開発環境ツールチェーン（Ｔｏｏｌ−ｃｈａｉｎ）を構築するためには、開発者が自ら構築のためのノウハウを確保しなければならない問題点があり、ターゲットボード別に組み込みソフトウェア（バイナリーイメージ）を生成するためのビルドに平均的に数時間以上の長時間がかかった。
【００１０】
また、従来の開発環境では、それぞれのターゲットボードに対して組み込みソフトウェアを生成するために数十ギガバイト以上のハードディスク容量が必要であった。
【００１１】
従来の開発環境では、チームワーク（Ｔｅａｍ  ｗｏｒｋ）によって組み込みソフトウェアを開発する場合、チームメンバー間のビルドファイル共有のために時間的及び物理的リソースを必要とした。各チームメンバーのコンピューティングシステムに開発環境の構築が必要であり、ターゲットボード別にビルドファイルを共有する必要があった。ビルドファイルを共有する過程、すなわちコピーのみを行うのにも多くの時間及び容量が必要であった。ビルドファイルを共有したとしても各コンピューティングシステムの環境によって正常に作動しない可能性が存在した。すなわち、意図せぬエラーによるデバッギングに時間が消費された。
【００１２】
本発明は前記の従来技術の問題点を解決するためになされたもので、開発過程で開発者のコンピューティングシステムのリソース（ハードディスク、及びメモリ）のサイズ、及び性能に対する依存度を減少させ、ターゲットボード当たりの最終アウトプットである組み込みソフトウェアのビルド時間を大幅に減縮することを目的とする。
【００１３】
また、本発明はクラウドに基づく統合開発環境を提供し、ブラウザーなどのウェブを介した使用者インターフェースで開発することができるように実装される開発システムを提供することを他の目的とする。
【００１４】
また、本発明はターゲットボード別のアウトプットであるバイナリーイメージを生成し、クラウドに基づく統合開発環境でこれを保存し、必要時に開発者がバイナリーイメージをダウンロードすることができるクラウドシステムを提供することをさらに他の目的とする。
【課題を解決するための手段】
【００１５】
本発明は前記の目的を達成するためになされたもので、本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するコンピューティングシステムは少なくとも一つ以上のプロセッサを含む。前記少なくとも一つ以上のプロセッサは、単独で又は集合的に使用者がソースコードを編集することができる使用者インターフェース用ツールを提供し、第１仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックし、ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム上で提供し、前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリー結果物を生成する。
【００１６】
ここで、第１仮想システムは使用者がソースコードをシミュレーションすることができるように実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。例えば、ＱＥＭＵ  ＩＤＥコンテナーの形態を取ることができる。
【００１７】
第２仮想システムはそれぞれのターゲットボードのためのプリビルドソフトウェアを生成するために実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。
【００１８】
組み込みソフトウェアはターゲットボードに実行するための最終的なバイナリーファイルのアウトプットを意味し、組み込みソフトウェアがターゲットボードで実行されることによって組み込みシステムが実装されることができる。
【００１９】
本発明のコンピューティングシステムのプロセッサは前記第１仮想システムと前記第２仮想システムを同じホストオペレーティングシステム階層上で実行することができる。
【００２０】
本発明のコンピューティングシステムのプロセッサは前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程で活用（利用）された開発環境情報を前記第１仮想システム上で実行されるシミュレーション過程に共有することができる。
【００２１】
本発明のコンピューティングシステムのプロセッサは前記第１仮想システム上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードに対する活用情報（利用情報）を前記第２仮想システム上で前記プリビルドソフトウェアを生成する過程に共有することができる。
【００２２】
本発明のコンピューティングシステムのプロセッサはウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツールを提供することができる。
【００２３】
本発明のコンピューティングシステムのプロセッサは前記ソースコードに対するファイルシステムを生成し、前記クラウド開発環境上に前記ソースコードに対するファイルシステムを保存することができる。
【００２４】
本発明のコンピューティングシステムのプロセッサは前記バイナリー結果物に対するファイルシステムを生成し、前記クラウド開発環境上に前記バイナリーアウトプットに対するファイルシステムを保存することができる。
【００２５】
本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法は、ウェブを介して接続可能なクラウド開発環境上で使用者がソースコードを編集することができる使用者インターフェース用ツールを提供する段階；第１仮想システム上で前記使用者インターフェース用ツールを用いて編集した前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックする段階；ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム上で提供する段階；及び前記ソースコードを前記ターゲットボードに対して前もって生成した前記プリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリーアウトプットを第２仮想システム上で生成する段階を含む。本発明の仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法は、前記コンピューティングシステムの前記少なくとも一つ以上のプロセッサの単独で又は前記少なくとも一つ以上のプロセッサの集合となるクラウドコンピューティング技法によって実行することができる。
【発明の効果】
【００２６】
本発明によれば、開発過程で開発者のコンピューティングシステムのリソース（ハードディスク、及びメモリ）のサイズ、及び性能に対する依存度を減少させ、ターゲットボード当たりの最終アウトプットである組み込みソフトウェアのビルド時間を大幅に減縮することができる。
【００２７】
本発明によれば、クラウドに基づく統合開発環境を提供し、ブラウザーなどのウェブに基づく使用者インターフェースで開発することができるように実装される開発システムを提供することができる。
【００２８】
本発明によれば、ターゲットボード別のアウトプットであるバイナリーイメージを生成し、クラウドに基づく統合開発環境でこれを保存し、必要時に開発者がバイナリーイメージをダウンロードすることができるクラウドシステムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】従来技術の組み込みソフトウェア開発システムの概要を示す図である。
【図２】従来技術の組み込みソフトウェア開発システムの概要を示す図である。
【図３】本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを示す図である。
【図４】本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを用いたソフトウェア開発プロセスの全般を示す図である。
【図５】本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。
【図６】本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。
【発明を実施するための形態】
【００３０】
前記目的、そして本発明の他の目的及び特徴は添付図面に基づく実施例の説明から明らかになるであろう。
【００３１】
本発明の好適な実施例を添付図面に基づいて詳細に説明する。本発明の説明において、関連の公知の構成又は機能についての具体的な説明が本発明の要旨をあいまいにすることができると判断される場合にはその詳細な説明は省略する。
【００３２】
一般的に使われる“ソースコード”は最終アウトプットであるバイナリーアウトプットを生成するためのコンパイル過程を経る前のコードセットを意味し、疑似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）からコンパイル直前段階のプログラムコードまで非常に広い範囲を意味する。本明細書で言及する“ソースコード”は特定の意味に制限されず、コンパイル直前段階のプログラムコードのみを意味するのにとどまらず、特に目標機能と仕様に対するチェックポイントのみを含む場合、すなわち開発者の立場で最終アウトプットを生成するための“ソース”に近いコードの場合までを含む概念として使われるであろう。
【００３３】
以下で説明する図３及び図４のクラウドサービスシステムは、少なくとも一つ以上のサーバーコンピューティングシステムを含んでなることができる。少なくとも一つ以上のサーバーコンピューティングシステムはそれぞれ少なくとも一つ以上のプロセッサを含むことができ、少なくとも一つ以上のプロセッサは単独で又は集合的に本発明の特徴である第１仮想システムと第２仮想システムを生成し、使用者インターフェース用ツール、プリビルドソフトウェア、及び組み込みソフトウェアを生成及び提供することができる。
【００３４】
ここで、第１仮想システムは使用者がソースコードをシミュレーションすることができるように実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味することができ、例えばＱＥＭＵ  ＩＤＥコンテナーの形態を取ることができる。第１仮想システムはクラウドサービスシステム又はクラウドコンピューティングシステム内で実行されるシミュレーターであってもよく、シミュレーターはターゲットボードでの動作を前もってシミュレーションすることができる、ターゲットボードを仮想化したソフトウェアを意味する。
【００３５】
第２仮想システムはそれぞれのターゲットボードのためのプリビルドソフトウェアを生成するために実装される仮想マシン、仮想化されたシステム、仮想システム、又は仮想化ソフトウェアを意味し得る。
【００３６】
組み込みソフトウェアはターゲットボードに実行するための最終的なバイナリーファイルのアウトプットを意味し、組み込みソフトウェアがターゲットボードで実行されることによって組み込みシステムが実装されることができる。
【００３７】
図３は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを示す図である。
【００３８】
図３のシステム３００はクラウドサービスシステム又はクラウドコンピューティングシステムと理解することができる。システム３００は少なくとも一つ以上のプロセッサ（図示せず）を含む。少なくとも一つ以上のプロセッサは単独で又は集合的にシステム３００内で以下の動作を行う主体になることができる。
【００３９】
システム３００は使用者がソースコードを編集することができるように使用者インターフェース用ツール３４０を提供し、第１仮想システム３３１上で前記使用者インターフェース用ツール３４０を用いて編集された前記ソースコードに対するシミュレーションを実行し、前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツールを用いて前記使用者にフィードバックすることができる。
【００４０】
システム３００は第１ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成した第１プリビルドソフトウェアを第２仮想システム３３２上で提供し、第２ターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成した第２プリビルドソフトウェアを第３仮想システム３３３上で提供することができる。
【００４１】
システム３００は前記ソースコードを前記第１ターゲットボードに対して前もって生成した前記第１プリビルドソフトウェアと結合して前記第１ターゲットボードで実行することができる第１バイナリーアウトプットを前記第２仮想システム３３２上で生成することができ、前記ソースコードを前記第２ターゲットボードに対して前もって生成した前記第２プリビルドソフトウェアと結合して前記第２ターゲットボードで実行することができる第２バイナリーアウトプットを前記第３仮想システム３３３上で生成することができる。
【００４２】
使用者は使用者インターフェース用ツール３４０を用いてソースコードを作成してアプリケーションを開発することができる（Ｓ３１１）。このために、システム３００は使用者インターフェース用ツール３４０をもう一つの仮想システムとして実装して使用者に提供することができる。使用者インターフェース用ツール３４０は使用者のコンピューティングシステムに表示されて使用者に提供され、使用者インターフェース用ツール３４０で行われる演算及び情報処理はシステム３００で実行される。もちろん、実施例によっては、使用者がシステム３００を直接使ってアプリケーションを開発することもできる（Ｓ３１１）。この場合には、使用者のコンピューティングシステムが直ちにシステム３００と一致する。
【００４３】
使用者インターフェース用ツール３４０を介して入力された使用者の伝送命令に従い、システム３００は使用者によって使用者インターフェース用ツール３４０を用いて開発されたアプリケーション（ソースコード）をターゲットボード用にプリビルドされたプリビルドソフトウェアを提供することができる仮想システム３３２、３３３に伝送及び共有することができる（Ｓ３１３）。
【００４４】
第２仮想システム３３２は第１ターゲットボード用の第１組み込みソフトウェアの最終アウトプットを生成し（Ｓ３１４）、第１組み込みソフトウェアの最終アウトプットである第１バイナリーアウトプット（第１バイナリーイメージ）をシステム３００内の第２ファイルシステム３４２に伝送することができる（Ｓ３１５）。同様に、第３仮想システム３３３は第２ターゲットボード用の第２組み込みソフトウェアの最終アウトプットを生成し（Ｓ３１４）、第２組み込みソフトウェアの最終アウトプットである第２バイナリーアウトプット（第２バイナリーイメージ）をシステム３００内の第２ファイルシステム３４２に伝送することができる（Ｓ３１５）。第２ファイルシステム３４２は複数のターゲットボードに対応する組み込みソフトウェアの最終アウトプットである第１バイナリーアウトプット及び／又は第２バイナリーアウトプットを保存することができる。
【００４５】
一方、システム３００上の第１ファイルシステム３４１は使用者インターフェース用ツール３４０内でビルドされたアプリケーション開発のためのソースコードアプリ（Ａｐｐ１、Ａｐｐ２、．．．、ＡｐｐｐＮ）を保存することができる。ここで、図３に示されてはいないが、使用者インターフェース用ツール３４０で開発されたソースコードが第２仮想システム３３２及び第３仮想システム３３３に伝送される前、第２仮想システム３３２及び第３仮想システム３３３のそれぞれで第１プリビルドソフトウェア及び第２プリビルドソフトウェアがプリビルドされることができる。ここで、プリビルドソフトウェアはターゲットボードで動作するアプリケーションを除き、ターゲットボードに関連したオペレーティングシステムなどの情報を含んで前もって生成される疑似バイナリーイメージ形態の情報を意味し得る。
【００４６】
ここで、第１プリビルドソフトウェアは第２仮想システム３３２上でソースコードと結合する前にプリビルドされれば十分であるので、第１プリビルドソフトウェアのプリビルド過程は使用者が使用者インターフェース用ツール３４０を用いてアプリケーションを開発するうちに（Ｓ３１１）バックグラウンドで並列に実行されることもでき、使用者がアプリケーションを開発する前に実行されることもできる。
【００４７】
本発明によれば、例えば第１ターゲットボードのための第１プリビルドソフトウェアと第２ターゲットボードのための第２プリビルドソフトウェアが既に生成されているので、使用者は第１ターゲットボード及び第２ターゲットボードに共通して適用されるアプリケーションを開発する（Ｓ３１１）過程に数秒乃至数分程度の時間がかかったとすると、第２仮想システム３３２と第３仮想システム３３３のそれぞれでアプリケーションソースコードを第１プリビルドソフトウェア及び第２プリビルドソフトウェアのそれぞれと結合してコンパイルすることによって最終的に第１バイナリーアウトプットと第２バイナリーアウトプットを得るまでにかかる時間はコンパイルにかかる数秒乃至数分程度の時間であれば十分である。その後、それぞれのターゲットボードで実行する目標機能を修正することにしてアプリケーションを修正する場合にも、アプリケーションの開発にかかる時間及び最終結果物のコンパイル時間のみで修正された目標機能を満たす修正された最終アウトプットを得ることができる。
【００４８】
従来には、このような目標機能の修正時ごとに、目標機能の修正後に新たにターゲットボードのそれぞれに対する最終アウトプットをビルドするのに平均的に数時間以上の長時間がかかったので、本発明によれば多数のターゲットボードに対して同時にアプリケーションを開発して適用する場合にも組み込みソフトウェアの開発時間を画期的に縮めることができる。また、本発明によれば、多数のターゲットボードのそれぞれに対する組み込みソフトウェアのそれぞれの生成過程が並列に行われることもできるので、開発者は自分のアプリケーション開発過程で導出された最終アウトプットをターゲットボードで速かに確認してみることができ、デバッギング時間と全体開発プロセスを極めて画期的な短縮を可能にする効果がある。
【００４９】
システム３００はウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツール３４０を提供することができる。
【００５０】
システム３００はソースコードに対する第１ファイルシステム３４１を生成し、前記クラウド開発環境上にソースコードに対する第１ファイルシステム３４１を保存することができる。
【００５１】
システム３００はバイナリーアウトプットに対する第２ファイルシステム３４２を生成し、前記クラウド開発環境上にバイナリーアウトプットに対する第２ファイルシステム３４２を保存することができる。
【００５２】
図３にプリビルドソフトウェアを生成する二つの仮想システム３３２、３３３が示されているが、プリビルドソフトウェアを生成する仮想システムはターゲットボードごとに提供されることができるので、仮想システムの数はターゲットボードの数によって変わることができる。図３の実施例によって本発明の思想が限定的に解釈されてはいけない。
【００５３】
システム３００内の第１ファイルシステム３４１及び第２ファイルシステム３４２はホストのファイルシステムを意味し得る。全てのコンテナー（仮想システム）が同じファイルシステム空間を共有することもでき、他の空間に分離してソースコード及びアウトプットを伝送することもできる。図３にはアプリケーション開発のためのソースコードを保存する第１ファイルシステム３４１と最終バイナリーアウトプット（バイナリーイメージ）を保存する第２ファイルシステム３４２が区分されるものとして示され、仮想システム上で生成されたバイナリーアウトプットが第２ファイルシステム３４２に伝送されるものとして示されている。このような伝送は論理的に設定された仮想のシステム上から同様の論理的に設定されたファイルシステム上への伝送であるだけ、必ずしも物理的に情報を伝送して受信する過程を伴うものではないのは当業者であれば明らかに理解可能であろう。
【００５４】
システム３００内の第１仮想システム３３１は使用者インターフェース用ツール３４０と連動して使用者の開発過程で必要なソースコードのシミュレーションを実行する。第１仮想システム３３１は使用者アプリコンテナー、又は使用者インターフェース用ツール３４０が実行されるコンテナーであり得る。ここで、第１仮想システム３３１と第２仮想システム３３２は同じホストオペレーティングシステム３６０の階層上で実行される。同様に、第１仮想システム３３１と第３仮想システム３３３も同じホストオペレーティングシステム３６０の階層上で実行される。ホストオペレーティングシステム３６０は複数の仮想システムを生成して管理するためにコンテナーエンジン３５０を生成し、コンテナーエンジン３５０上で複数の仮想システムを生成及び管理することができる。
【００５５】
第１仮想システム３３１が提供する開発環境と第２仮想システム３３２（プリビルドソフトウェアが提供され、プリビルドとソースコードが結合されるコンテナー）が同じホストオペレーティングシステム３６０上で実行されるため、第１仮想システム３３１と第２仮想システム３３２が提供する開発環境が相当部分で共有するので、使用者がソースコードを修正しても第２仮想システム３３２でプリビルドソフトウェアとコードセットの修正なしに直ぐコンパイルすることができる。
【００５６】
システム３００は第２仮想システム３３２上で第１プリビルドソフトウェアを生成する過程で活用された開発環境情報を第１仮想システム３３１上で実行されるシミュレーション過程に共有することができる。
【００５７】
第２仮想システム３３２上で第１プリビルドソフトウェアを生成する過程で活用（利用）された情報が第１仮想システム３３１上でシミュレーション過程でそのまま活用及び／又は共有されるので、シミュレーション過程を経たソースコードと第１プリビルドソフトウェアの結合過程が容易であり、ソースコードと第１プリビルドソフトウェア間の結合時に簡単なコンパイル過程のみでも最終的な第１バイナリーアウトプット（第１組み込みソフトウェア）を生成することができる。
【００５８】
したがって、本発明は、従来技術に比べ、組み込みソフトウェアの開発及び生成に必要な時間を縮めることができる。従来技術でソースコードをターゲットボードで実行するための最終バイナリーファイルにビルドするのに長時間がかかった理由は毎度ツールチェーン（カスタム化された機能と目標仕様などを記述するディスクリプション）とターゲットボードの環境情報、オペレーティングシステム情報などを結合してソースコードそのものを新しくビルドしなければならなかったからである。一方でツールチェーンはターゲットボード用イメージをビルドするための開発ツール及びソフトウェアの集合を意味し得る。本発明はターゲットボードに適用される開発環境、オペレーティングシステムについての主要情報が含まれたコードセットをプリビルドすることによってプリビルドソフトウェアと名付けられた形態として提供し、プリビルドソフトウェアを生成する時に使用された開発環境及びオペレーティングシステムについての情報をソースコードのシミュレーション上で活用する。ソースコードのシミュレーションはソースコードの機能が使用者の目標仕様に見合うかをチェックする過程で、ターゲットボードに全く従属しなくて論理に基づくシミュレーションであるので、早く実行及び検証されることができる。すなわち、プリビルドソフトウェアをプリビルド／生成する過程で使用された情報を同じオペレーティングシステム上の第１仮想システム３３１（使用者アプリコンテナー）でシミュレーションするときに前もってチェックして見ることができるので、ソースコードとプリビルドソフトウェア間の結合が容易である。また、ソースコードのシミュレーション時に負担となる要素は選択的に排除されるので、ソースコードのシミュレーション時間／費用がターゲットボードとの適合性検証によって増加することを防止することができる。
【００５９】
これにより、シミュレーション及びフィードバックによる検証を経たソースコードがプリビルドソフトウェアと結合されれば、簡単なコンパイル過程によってバイナリーアウトプット（組み込みソフトウェア）を得ることができる。
【００６０】
システム３００は第１仮想システム３３１上で前記ソースコードに対する前記シミュレーション過程で得られる前記ソースコードについての活用情報を第２仮想システム３３２上で第１プリビルドソフトウェアを生成する過程で共有することができる。
【００６１】
クラウドサービスシステムと連動する開発環境を提供する場合、クラウドシステム内のプリビルドソフトウェアのファイルシステム（例えば、バイナリーイメージのような形態に実装できる）とバイナリーアウトプットのファイルシステムが変更されれば、クラウドの全体で共有することができるようにアップデートされることができる。この時、クラウドシステム内に分散して保存されたファイルシステム間の不一致がチェックされ、同じソフトウェアコンテンツに対する全てのファイルシステムが同期化することができる。
【００６２】
同じソフトウェアコンテンツに対する全てのファイルシステムの同期化とは別個に、プリビルドドソフトウェアのコンテンツがアップデートされることができる。一般に、上位階層のアプリケーションソフトウェア及びソースコードが変動すると言ってもアプライアンスと類似した役目を有するプリビルドソフトウェアが必ずしも再びビルドされなければならないのではない。本発明のプリビルドソフトウェアはソースコードの変動にもかかわらず、ソースコードと容易に結合して組み込みソフトウェアを生成することを要件とする。一方、実施例によってはターゲットボード及びターゲットボードで実行されなければならないオペレーティングシステムに基づいてプリビルドソフトウェアがアップデートされるとか再びプリビルドされることができる。この時、プリビルドソフトウェアは、ソースコードとターゲットボード間の関連性、ターゲットボードでソースコードの活用情報、ターゲットボードで活用されるソースコードの主要機能などについての情報に基づいて効率的にソースコードと結合することができるように前もって生成されるとか前もってアップデートされることができる。
【００６３】
ここで、第１仮想システム３３１上でソースコードに対する前記シミュレーション過程で得られるソースコードについての活用情報が第２仮想システム３３２上で前記プリビルドソフトウェアを生成する過程で共有されることにより、第２仮想システム３３２で次バージョンのプリビルドソフトウェアを生成するとき、使用者の目標機能にもっと見合うことができるプリビルドソフトウェアが生成されることができる。このような共有も第１仮想システム３３１と第２仮想システム３３２が同じホストオペレーティングシステム上で実行されるため可能である。第１仮想システム３３１で使用者がソースコードをシミュレーションして検証するのに用いられた情報、すなわち目的機能に対する要求、ソースコードの検証パターン、ソースコードを活用しようとする目的などの活用情報は累積してプリビルドソフトウェアの改善に用いられることができる。
【００６４】
以上では第１ターゲットボードのための第１組み込みソフトウェアを生成する過程について主に説明したが、他のターゲットボード、例えば第２ターゲットボードのための第２組み込みソフトウェアを生成する過程に対しても共通して適用可能である。すなわち、第１仮想システム３３１と第３仮想システム３３３が同じホストオペレーティングシステム３６０上で実行されるので、第１仮想システム３３１と第３仮想システム３３３の開発過程で情報共有が可能であり、よって第２プリビルドソフトウェアのプリビルド過程及び第２ターゲットボードに対するソースコードのアプリケーションシミュレーション過程が改善されることができる。
【００６５】
図４は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成するクラウドサービスシステム又はクラウドコンピューティングシステムを用いたソフトウェア開発プロセスの全般を示す図である。
【００６６】
図４のシステム４００は図３のシステム３００と同様にクラウドサービスシステム又はクラウドコンピューティングシステムであってもよく、少なくとも一つ以上のプロセッサを含むことができる。以下のシステム４００の動作はシステム４００内の少なくとも一つ以上のプロセッサの単独又は集合的動作によって実行されることができる。
【００６７】
図３及び図４に共通した構成要素についての重複説明は省略する。例えば、図４の第１ファイルシステム４４１及び第２ファイルシステム４４２は図３の第１ファイルシステム３４１及び第２ファイルシステム３４２と同一であり、図４の使用者インターフェース用ツール４４０は図３の使用者インターフェース用ツール３４０と同一である。図４の第１仮想システム４３１、第２仮想システム４３２、第３仮想システム４３３、コンテナーエンジン４５０及びホストオペレーティングシステム４６０は図３の第１仮想システム３３１、第２仮想システム３３２、第３仮想システム３３３、コンテナーエンジン３５０及びホストオペレーティングシステム３６０と同一である。
【００６８】
使用者はウェブブラウザーを介してシステム４００に接続することができる（Ｓ４１０）。この時、使用者に実際にシミュレーション環境を提供するものは第１仮想システム４３１である。第１仮想システム４３１は、例えばＩＤＥコンテナーの形態に実装されることができる。ここで、第１仮想システム４３１の実装のためにＩＤＥコンテナーの形態を取ることができるだけ、従来のＩＤＥコンテナーで提供しない第２仮想システム４３２との情報共有及び環境共有などは本発明の固有した特徴であることが当業者に明らかに理解可能であろう。
【００６９】
また、図４の第１仮想システム４３１が支援するシミュレーターは公知のＱＥＭＵシミュレーターの形態として提供されることができる。ただ、ＱＥＭＵシミュレーターは使用者とのインターフェースとシミュレーションのための基本的な設定に対する構成要素で、本発明の構成の一部として含まれるだけ、本発明の第１仮想システム４３１が有する固有した特徴、例えば第２仮想システム４３２との情報共有及び環境共有によるプリビルドソフトウェアの性能改善及びソースコードのシミュレーション過程の改善は公知のＱＥＭＵシミュレーターのみを用いて達成することができる特徴ではないのは当業者に明らかに理解可能であろう。
【００７０】
また、ＱＥＭＵシミュレーターはＩＤＥコンテナーという手段を活用して提供することができる。ＱＥＭＵシミュレーターはＩＤＥコンテナーと必ずしも一緒に含まれなければならないものではなく、ＱＥＭＵシミュレーターとＩＤＥコンテナーが論理的に分離された状態に実装されることもできるのもやはり当業者に明らかに理解可能であろう。このような実施例によって本発明の思想が限定的に理解されてはいけない。
【００７１】
使用者は前記接続（Ｓ４１０）の後に使用者インターフェース用ツール４４０を用いてソースコードを作成してアプリケーションを開発することができる（Ｓ４１１）。この時、システム４００は使用者インターフェース用ツール４４０及び第１仮想システム４３１を生成して使用者に提供することで使用者のアプリケーション開発過程（Ｓ４１１）を支援する。
【００７２】
システム４００は開発されたアプリケーション（ソースコード）をターゲットボード用にプリビルドされたプリビルドソフトウェアを提供することができるコンテナー４３２、４３３に伝送（共有）することができる（Ｓ４１３ａ、Ｓ４１３ｂ）。すなわち、同じソースコードを第１ターゲットボードのための第２仮想システム４３２に伝送することができ（Ｓ４１３ａ）、第２ターゲットボードのための第３仮想システム４３３に伝送することができる（Ｓ４１３ｂ）。第１ターゲットボードはＡ社の製品、第２ターゲットボードはＢ社の製品であれば、同じソースコードと言ってもターゲットボードのオペレーティングシステムによってバイナリーアウトプットは変わることができるのは当業者に明らかに理解可能であろう。
【００７３】
システム４００は第１ターゲットボードのための第１バイナリーアウトプットを第２仮想システム４３２上で生成し、第２ファイルシステム４４２に第１バイナリーアウトプットを伝送することができる（Ｓ４１５ａ）。同様に、システム４００は第２ターゲットボードのための第２バイナリーアウトプットを第３仮想システム４３３上で生成し、第２ファイルシステム４４２に第２バイナリーアウトプットを伝送することができる（Ｓ４１５ｂ）。
【００７４】
使用者は最終的にビルドの完了したバイナリーアウトプットをそれぞれダウンロードしてそれぞれのターゲットボードで実行することができる（Ｓ４１６ａ、Ｓ４１６ｂ）。この時、システム４００は第１バイナリーアウトプットを第１ターゲットボードで実行することができるように伝送することができ（Ｓ４１６ａ）、第２バイナリーアウトプットを第２ターゲットボードで実行することができるように伝送することができる（Ｓ４１６ｂ）。図４では段階Ｓ４１６ａとＳ４１６ｂを“伝送”という用語で表現したが、これは一実施例に過ぎないもので、本発明の思想がこれに限られて理解されてはいけない。図４で、段階Ｓ４１６ａとＳ４１６ｂで例示しようとする事項は次の技術思想の一部を反映して表現される。クラウド又はスタンドアローンシステムで本発明の動作が実行される場合、バイナリーアウトプットは使用者が接続した（Ｓ４１０）コンピューティングシステムを介してダウンロードされなければならず、実行のために使用者が接続した（Ｓ４１０）コンピューティングシステムを介して又は他の記録媒体（例えば、ＵＳＢメモリ、ポータブルハードディスク、ＳＳＤドライブなど）を介してターゲットボードにイメージライトされる過程を必要とする。
【００７５】
本発明によれば、ターゲットボードのそれぞれで実行のための組み込みソフトウェアの最終アウトプットをビルドするのに必要な時間を縮めることができるので、使用者は使用者インターフェース用ツール４４０及び第１仮想システム４３１内のシミュレーターで多様なツールチェーンを試して見ることができ、よってツールチェーンを簡便に構築することができる。
【００７６】
本発明によれば、使用者はクラウド開発環境を用いる場合、使用者のコンピューティングシステムのリソースを不必要に使わなくても便利にアプリケーションを開発することができる。
【００７７】
本発明によれば、使用者がチームワークによって組み込みソフトウェアを開発する場合にも、チームメンバー間のビルドファイルを互いに共有する過程でファイル複製ではないリンク共有によって時間及びリソースを節減することができる。
【００７８】
本発明によれば、多数のチームメンバーが同じクラウド開発環境内で開発を進行する場合、全てのチームメンバーの開発環境の構成が同一であるので、他のチームメンバーの全てのビルドファイルが相互間のシミュレーターでシミュレーションすることができ、相互間の環境で実行可能である。また、チームメンバーＡによるシミュレーション及び実行の結果とチームメンバーＢによるシミュレーション及び実行の結果が同一であるので、エラー発生の確率を減少させ、デバッギングにかかる時間とリソースを節減することができる。
【００７９】
図５は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。図５の方法はシステム３００、４００内の少なくとも一つ以上のプロセッサによって単独で又は集合的に実行されることができる。
【００８０】
システム３００、４００はウェブを介して接続可能なクラウド開発環境上で使用者がソースコードを編集することができる使用者インターフェース用ツール３４０、４４０を提供する（Ｓ５１０）。
【００８１】
システム３００、４００は第１仮想システム３３１、４３１上で前記使用者インターフェース用ツール３４０、４４０を用いて編集された前記ソースコードに対するシミュレーションを実行し（Ｓ５２０）、システム３００、４００は前記ソースコードに対する前記シミュレーション結果を前記使用者インターフェース用ツール３４０、４４０を用いて前記使用者にフィードバックする（Ｓ５３０）。
【００８２】
システム３００、４００はターゲットボードで組み込みソフトウェアを動作させるためのオペレーティングシステムに基づいて前もって生成したプリビルドソフトウェアを第２仮想システム３３２、４３２又は第３仮想システム３３３、４３３上で提供することができる（Ｓ５４０）。
【００８３】
システム３００、４００は前記ソースコードを前記ターゲットボードに対して前もって生成したプリビルドソフトウェアと結合して前記ターゲットボードで実行することができるバイナリープリビルドを第２仮想システム３３２、４３２又は第３仮想システム３３３、４３３上で生成することができる（Ｓ５５０）。
【００８４】
図６は本発明の一実施例による仮想化されたシステム上で組み込みソフトウェアを自動で生成する方法を示す動作フローチャートである。図６の方法はシステム３００、４００内の少なくとも一つ以上のプロセッサによって単独で又は集合的に実行されることができる。
【００８５】
図６に示した段階のうち、段階（Ｓ６１０、Ｓ６２０、Ｓ６３０、Ｓ６４０、及びＳ６５０）は図５に示された段階（Ｓ５１０、Ｓ５２０、Ｓ５３０、Ｓ５４０、及びＳ５５０）と類似しているので、重複説明は省略する。
【００８６】
システム３００、４００はターゲットボードのためのプリビルドソフトウェアを第２仮想システム３３２、４３２又は第３仮想システム３３３、４３３上で生成することができる（Ｓ６１２）。この時、使用者インターフェース用ツール３４０、４４０で開発されたソースコードが第２仮想システム３３２、４３２及び第３仮想システム３３３、４３３に伝送される前、第２仮想システム３３２、４３２及び第３仮想システム３３３、４３３のそれぞれで第１プリビルドソフトウェア及び第２プリビルドソフトウェアがプリビルドされることができる。この時、プリビルドソフトウェアはターゲットボードで動作するアプリケーションを除き、ターゲットボードと連関したオペレーティングシステムなどの情報を含んで前もって生成される疑似バイナリーイメージ形態の情報を意味し得ることは前述したようである。
【００８７】
段階（Ｓ６１０）はシステム３００、４００によってウェブを介して接続可能なクラウド開発環境上で前記使用者が前記ソースコードを編集することができるように前記使用者インターフェース用ツール３４０、４４０を提供する方式で実装されることもできる。
【００８８】
システム３００、４００はソースコードに対する第１ファイルシステム３４１、４４１を生成し、前記クラウド開発環境上に前記ソースコードに対する第１ファイルシステム３４１、４４１を保存することができる（Ｓ６６０）。
【００８９】
システム３００、４００は少なくとも一つ以上のバイナリーアウトプットに対する第２ファイルシステム３４２、４４２を生成し、前記クラウド開発環境上に前記少なくとも一つ以上のバイナリーアウトプットに対する第２ファイルシステム３４２、４４２を保存することができる（Ｓ６７０）。
【００９０】
図６には段階（Ｓ６６０）が各ソースコードに対するバイナリーアウトプットが生成される段階（Ｓ６５０）以後に実行されるものとして示されている。ここで、ソースコードが第１ファイルシステム３４１、４４１の形態として保存されることは使用者の開発シーケンスがある程度進行して最終アウトプットが得られた場合である。この時には、段階（Ｓ６６０）及び段階（Ｓ６７０）が実質的に同時又は順次実行されることができる。
【００９１】
図６には示されていない本発明の他の実施例によれば、ソースコードに対する第１ファイルシステム３４１、４４１の保存はソースコードに対するシミュレーション実行（Ｓ６２０）及びシミュレーション結果を使用者にフィードバックした（Ｓ６３０）直後に行われることもできる。すなわち、シミュレーション過程の中間精算及び検討時点ごとにソースコードに対するバックアップが行われることもできる。
【００９２】
本発明の仮想化されたシステム上で組み込みソフトウェアを自動で生成する技法はクラウドサービスシステム３００、４００上で実装されることを前提として説明したが、本発明の思想はこれに局限されない。実施例によっては、スタンドアローン（ｓｔａｎｄ−ａｌｏｎｅ）状態のコンピューティングシステムとそのプロセッサによっても仮想化されたシステムを実装し、プリビルドソフトウェア及び組み込みソフトウェアを生成することができる。
【００９３】
本発明の一実施例による組み込みソフトウェアを自動で生成する方法は多様なコンピュータ手段を介して実行可能なプログラム命令の形態に実装されてコンピュータ可読媒体に記録されることができる。前記コンピュータ可読媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記媒体に記録されるプログラム命令は本発明のために特別に設計及び構成されたものであるかコンピュータソフトウェア当業者に知られて使用可能なものであり得る。コンピュータ可読記録媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体（ｍａｇｎｅｔｉｃ  ｍｅｄｉａ）、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体（ｏｐｔｉｃａｌ  ｍｅｄｉａ）、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような磁気光媒体（ｍａｇｎｅｔｏ−ｏｐｔｉｃａｌ  ｍｅｄｉａ）、及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ、フラッシュメモリなどのような、プログラム命令を保存して実行することができるように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって作られるもののような機械語コードだけではなく、インタープリターなどを介してコンピュータによって実行可能な高級言語コードを含む。前記のようなハードウェア装置は本発明の動作を遂行するために一つ以上のソフトウェアモジュールとして作動するように構成されることができ、その逆もまた同様である。
【００９４】
しかし、本発明が実施例によって制限されるとか限定されるものではない。各図に提示した同じ参照符号は同じ部材を示す。本発明の実施例と図面に例示した長さ、高さ、サイズ、幅などは理解を深めるために誇張して示したものもあり得る。
【００９５】
以上のように、本発明では具体的な構成要素などの特定事項と特定の実施例及び図面に基づいて説明したが、これは本発明のより全般的な理解を深めるために提供したものであるだけ、本発明は前記実施例に限定されるものではなく、本発明が属する分野で通常の知識を有する者であればこのような記載から多様な修正及び変形が可能である。
【００９６】
したがって、本発明の思想は前述した実施例に限られて決定されてはいけなく、後述する特許請求範囲だけではなくこの特許請求範囲と均等乃至等価の変形の全ては本発明の思想範疇に属すると言える。
【符号の説明】
【００９７】
３００、４００    クラウドサービスシステム又はクラウドコンピューティングシステム
３３１、４３１    第１仮想システム
３３２、４３２    第２仮想システム
３３３、４３３    第３仮想システム
３４０、４４０    使用者インターフェース用ツール
３４１、４４１    第１ファイルシステム
３４２、４４２    第２ファイルシステム
３５０、４５０    コンテナーエンジン
３６０、４６０    ホストオペレーティングシステム
【図１】
2019114223.tif 000003
【図２】
2019114223.tif 000004
【図３】
2019114223.tif 000005
【図４】
2019114223.tif 000006
【図５】
2019114223.tif 000007
【図６】
2019114223.tif 000008
【外国語明細書】
2019114223000001.pdf