(57)【要約】  本発明は、ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法に関するものである。本発明は、ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、前記ノードコントローラが、前記ライブラリコンテナ内のライブラリが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、交換が可能であれば、コンテナエンジンが前記ライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成するステップとを含む。【選択図】図２
2021529408.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、
前記ノードコントローラが、前記ライブラリコンテナ内のライブラリが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、
交換が可能であれば、コンテナエンジンが前記ライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成するステップと、
を含むユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項２】
前記ノードコントローラが、生成された前記セッションコンテナを実行するステップをさらに含む請求項１に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項３】
前記ライブラリコンテナ内のライブラリは、前記セッションコンテナで実行可能なように静的ビルドとして生成する請求項２に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項４】
前記ライブラリコンテナ内のライブラリは、ボリュームマウント形式で前記セッションコンテナに搭載する請求項１に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項５】
ユーザの要請に応じてコンテナカタログから必要なライブラリを追加指定するステップをさらに含む請求項１に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法に関し、特に、ランタイム上でユーザが要請した複数個のライブラリをセッションコンテナに搭載して実行する方法に関する。
【背景技術】
【０００２】
コンテナ（Ｃｏｎｔａｉｎｅｒ）は、仮像化でない運営体制水準の隔離技術を使用し、仮像マシンの短所を克服する仮像化技術として浮かび上がっている。コンテナは、カーネルレベル実行環境は、ホストの運営体制カーネルを共有するものの、ユーザレベル実行環境は、完全に隔離されたファイルシステムとカーネルが提供する資源要素等の仮像化された名前空間を使用する方式で実現される。隔離されたファイルシステムの内容は、アプリケーションと、これを駆動するのに必要な全ての従属物、ライブラリ、その他、バイナリと構成ファイルなどをひとまとめにして構成される。仮像化された名前空間に区分されてコンテナに提供されるカーネルの資源要素には、プロセスＩＤ、ネットワークソケット、ユーザアカウント、プロセス間通信（ＩＰＣ）のための共有メモリなどがある。その他のハードウェア接近は、コンテナでない場合と同様に処理されるので、ホストハードウェアの性能をオーバーヘッドなしに完全に活用することができる。ここで、運営体制は、コンテナ別に最大使用可能なハードウェア資源の量を制限できるオプションを提供する。
【０００３】
一方、従来のコンテナイメージは、ユーザプログラム実行に必要な全てのライブラリをひとかたまりにしたものであって、配布の容易性を保障するが、個別ライブラリを別にアップデートしたり、追加的なライブラリが必要な場合、これをランタイムにリアルタイムに反映し難く、イメージを初めから再度ビルドしなければならないという不便がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、ライブラリを含んでいるライブラリコンテナと、それに関する情報を記述したコンテナーカタログとを用いて、ランタイムにリアルタイムにユーザが所望する複数個のライブラリをセッションコンテナに搭載して実行する方法を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一実施形態に係るユーザが組み合わせた複数個のライブラリコンテナを搭載したセッションコンテナ提供方法は、ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、前記ノードコントローラが、前記ライブラリコンテナが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、コンテナエンジンが前記ライブラリコンテナを搭載したセッションコンテナを生成するステップとを含む。
【０００６】
前記ノードコントローラが、生成された前記セッションコンテナを実行するステップをさらに含み、前記ライブラリコンテナの実行ファイル等は、前記セッションコンテナで実行可能なように静的ビルドとして生成する。
【０００７】
前記コンテナカタログで提供するディレクトリ及びファイルをバインドマウント形式で前記セッションコンテナに搭載する。ユーザの要請に応じてコンテナカタログから必要なライブラリを追加指定するステップをさらに含む。
【発明の効果】
【０００８】
本発明によれば、コンテナカタログ内のライブラリコンテナを用い、ユーザが所望するライブラリを組み合わせて搭載したセッションコンテナを提供できる。
【０００９】
また、ライブラリコンテナが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能である。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【図２】本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【図３】本発明の一実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【図４】本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【図５】本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【図６】本発明の他の実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【発明を実施するための形態】
【００１１】
本明細書に開示されている本発明の概念による実施形態等について特定の構造的または機能的説明は、単に本発明の概念による実施形態等を説明するための目的として例示されたものであって、本発明の概念による実施形態等は、様々な形態で実施されることができ、本明細書に説明された実施形態等に限定されない。
【００１２】
本発明の概念による実施形態等は、様々な変更を加えることができ、種々の形態を有することができるので、実施形態等を図面に例示し、本明細書において詳細に説明しようとする。しかしながら、これは、本発明の概念による実施形態等を特定の開示形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物、または代替物を含む。
【００１３】
本明細書において使用した用語は、単に特定の実施形態を説明するために使用されたものであって、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なるように意味しない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、本明細書に記載された特徴、数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、１つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【００１４】
以下、本明細書に添付された図面を参照して本発明の実施形態等を詳細に説明する。
【００１５】
図１は、本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【００１６】
図１に示すように、セッションコンテナ提供システム１００のソフトウェア構造は、運営体制１１０、コンテナカタログ１２０、セッションコンテナ１３０、１４０で構成される。
【００１７】
運営体制１１０は、ノードコントローラ１１１、コンテナエンジン１１３で構成される。運営体制１１０は、運営体制カーネル内に設けられたプロセッサドライバを介してプロセッサと通信する。
【００１８】
ノードコントローラ１１１は、ユーザからセッションコンテナ実行を受信すれば、コンテナカタログ１２０でユーザから要請された情報に基づいてライブラリコンテナを照会する。また、ノードコントローラ１１１は、ユーザからライブラリ追加の要請を受けると、コンテナカタログに必要なライブラリを追加指定することができる。
【００１９】
ノードコントローラ１１１は、ライブラリコンテナが搭載されるセッションコンテナ１３０、１４０とライブラリコンテナ１２１、１２５との間の互換可否をチェックできる。このとき、搭載されるセッションコンテナとライブラリコンテナとの間のＣＰＵ構造及び配布板の種類にて互換可否をチェックできるが、これに対して限定するものではない。すなわち、互換が可能な場合にのみ、ライブラリコンテナのライブラリを搭載したセッションコンテナを生成できる。ノードコントローラ１１１は、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【００２０】
コンテナエンジン１１３は、互換が可能な場合、セッションコンテナ１３０、１４０を生成し、配布し、各セッションコンテナ１３０、１４０が該当する応用プログラムを実行できる。すなわち、コンテナエンジン１１３は、生成されたセッションコンテナを実行し、終了することができる。このとき、前記コンテナカタログで提供するディレクトリ及びファイルをボリュームマウント（ｖｏｌｕｍｅ−ｍｏｕｎｔ）形式で前記セッションコンテナに搭載することができる。
【００２１】
コンテナカタログ１２０は、複数個のライブラリコンテナ１２１、１２５を格納することができる。コンテナカタログ１２０は、一種のデータベースとして運営体制内に構成されることができ、実施形態によって別のサーバに配置されることができる。
【００２２】
第１のライブラリコンテナ１２１は、第１のライブラリ１２３を含み、第２のライブラリコンテナ１２５は、第２のライブラリ１２７を含む。
【００２３】
第１のセッションコンテナ１３０は、第１のライブラリコンテナ１２１内の第１のライブラリ１２３と同じ第１のライブラリ１３１、第２のライブラリコンテナ１２５の第２のライブラリ１２７と同じ第２のライブラリ１３３が搭載され得るし、第２のセッションコンテナ１４０は、第１のライブラリコンテナ１２１内の第１のライブラリ１２３と同じ第１のライブラリ１４１のみが搭載され得る。すなわち、ユーザの要請に応じて特定ライブラリが搭載されるセッションコンテナを生成できる。また、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【００２４】
セッションコンテナ１３０、１４０は、ユーザが要請したソフトウェアを実行するコンテナであって、ユーザプログラムを駆動できるように必要な各種プログラム、ソースコードなどとライブラリなどをひとまとめにしたイメージを含む空間である。ユーザプログラムの駆動は、運営体制１１０で実質的になされるようになる。すなわち、運営体制１１０は、コンテナエンジン１１３を介してそれぞれのセッションコンテナ１３０、１４０に接近し、該当するユーザプログラムを実行し、処理することができる。ユーザの要請に応じて、第１のライブラリ１３１と第２のライブラリ１３３とが搭載された第１のセッションコンテナ１３０と、第１のライブラリ１４１が搭載された第２のセッションコンテナ１４０とを図示しているが、セッションコンテナ及び搭載されるライブラリの個数を制限するものではない。本発明は、ライブラリコンテナが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能であり、コンテナカタログ内のライブラリコンテナを介してユーザが所望するライブラリを組み合わせたセッションコンテナをリアルタイムに提供することができる。
【００２５】
図２は、本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【００２６】
図２に示すように、ユーザがコンテナ実行を要請してユーザからコンテナ実行を受信すれば（Ｓ２０１）、ノードコントローラ１１１がコンテナカタログ１２０でライブラリコンテナを照会する（Ｓ２０３）。このとき、ユーザがライブラリ追加を要請すれば、コンテナカタログから必要なライブラリを追加指定するステップをさらに含むことができる。
【００２７】
その後、ノードコントローラ１１１が、ライブラリコンテナ１２０が搭載されるセッションコンテナとライブラリコンテナ１２１、１２５との間の互換可否をチェックする（Ｓ２０５）。
【００２８】
互換が可能であれば、コンテナエンジン１１３がライブラリコンテナ内のライブラリを搭載したセッションコンテナ１４０を生成する（Ｓ２０７）。このとき、前記コンテナカタログで提供するディレクトリ及びファイルをボリュームマウント形式で前記セッションコンテナに搭載することができる。互換が不可能であれば、プロセスを終了する。
【００２９】
その後、ノードコントローラ１１１が、生成されたセッションコンテナ１３０、１４０を実行する（Ｓ２０９）。
【００３０】
図３は、本発明の一実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【００３１】
図３に示すように、コンテナカタログは、ライブラリを含むライブラリコンテナを生成する（Ｓ３０１）。このとき、ライブラリコンテナのライブラリ実行ファイルを静的にビルドして生成することができる。すなわち、ライブラリコンテナの実行ファイルが前記セッションコンテナで実行可能なように静的ビルドとして生成する（Ｓ３０３）。生成されたライブラリコンテナをコンテナカタログに格納する（Ｓ３０５）。
【００３２】
図４は、本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【００３３】
図４に示すように、セッションコンテナ提供システム２００のソフトウェア構造は、運営体制２１０、ライブラリカタログ２２０、セッションコンテナ２３０、２４０で構成される。
【００３４】
運営体制２１０は、ノードコントローラ２１１、コンテナエンジン２１３で構成される。運営体制２１０は、運営体制カーネル内に設けられたプロセッサドライバを介してプロセッサと通信する。
【００３５】
ノードコントローラ２１１は、ユーザからセッションコンテナ実行を受信すれば、ライブラリカタログ２２０でユーザから要請された情報に基づいてライブラリを照会する。また、ノードコントローラ２１１は、ユーザからライブラリ追加の要請を受けると、ライブラリカタログに必要なライブラリを追加指定することができる。
【００３６】
ノードコントローラ２１１は、ライブラリが搭載されるセッションコンテナ２３０、２４０とライブラリ２２１、２２３との間の互換可否をチェックできる。このとき、搭載されるセッションコンテナとライブラリとの間のＣＰＵ構造及び配布板の種類にて互換可否をチェックできるが、これに対して限定するものではない。すなわち、互換が可能な場合にのみ、ライブラリカタログのライブラリを搭載したセッションコンテナを生成できる。ノードコントローラ２１１は、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【００３７】
コンテナエンジン２１３は、互換が可能な場合、セッションコンテナ２３０、２４０を生成し、配布し、各セッションコンテナ２３０、２４０が該当する応用プログラムを実行できる。すなわち、コンテナエンジン２１３は、生成されたセッションコンテナを実行し、終了することができる。このとき、前記ライブラリカタログで提供するディレクトリ及びファイルをバインドマウント（ｂｉｎｄ−ｍｏｕｎｔ）形式で前記セッションコンテナに搭載することができる。
【００３８】
ライブラリカタログ２２０は、複数個のライブラリ２２１、２２３を格納することができる。ライブラリカタログ２２０は、一種のデータベースとして運営体制内に構成されることができ、実施形態によって別のサーバに配置されることができる。
【００３９】
第１のセッションコンテナ２３０は、第１のライブラリ２２１と同じ第１のライブラリ２３１、第２のライブラリ２２３と同じ第２のライブラリ２３３が搭載され得るし、第２のセッションコンテナ２４０は、第１のライブラリ２２１と同じ第１のライブラリ２４１のみが搭載され得る。すなわち、ユーザの要請に応じて特定ライブラリが搭載されるセッションコンテナを生成できる。また、ランタイム上でライブラリカタログから必要なライブラリを追加指定して搭載することができる。
【００４０】
セッションコンテナ２３０、２４０は、ユーザが要請したソフトウェアを実行するコンテナであって、ユーザプログラムを駆動できるように必要な各種プログラム、ソースコードなどとライブラリなどをひとまとめにしたイメージを含む空間である。ユーザプログラムの駆動は、運営体制２１０で実質的になされるようになる。すなわち、運営体制２１０は、コンテナエンジン２１３を介してそれぞれのセッションコンテナ２３０、２４０に接近し、該当するユーザプログラムを実行し、処理することができる。ユーザの要請に応じて第１のライブラリ２３１と第２のライブラリ２３３とが搭載された第１のセッションコンテナ２３０と、第１のライブラリ２４１が搭載された第２のセッションコンテナ２４０とを図示しているが、セッションコンテナ及び搭載されるライブラリの個数を制限するものではない。本発明は、ライブラリが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能であり、ライブラリカタログ内にライブラリを組み合わせたセッションコンテナを提供できる。
【００４１】
図５は、本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【００４２】
図５に示すように、ユーザがコンテナ実行を要請してユーザからコンテナ実行を受信すれば（Ｓ４０１）、ノードコントローラがライブラリカタログでライブラリを照会する（Ｓ４０３）。このとき、ユーザがライブラリ追加を要請すれば、ライブラリカタログから必要なライブラリを追加指定するステップをさらに含むことができる。
【００４３】
その後、ノードコントローラが、ライブラリが搭載されるセッションコンテナとライブラリとの間の互換可否をチェックする（Ｓ４０５）。
【００４４】
互換が可能であれば、コンテナエンジンがライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成する（Ｓ４０７）。このとき、前記ライブラリカタログで提供するディレクトリ及びファイルをバインドマウント形式で前記セッションコンテナに搭載することができる。互換が不可能であれば、プロセスを終了する。
【００４５】
その後、ノードコントローラが、生成されたセッションコンテナを実行する（Ｓ４０９）。
【００４６】
図６は、本発明の他の実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【００４７】
図６に示すように、ライブラリカタログは、ライブラリを生成する（Ｓ５０１）。このとき、ライブラリ実行ファイルを静的にビルドして生成することができる。すなわち、ライブラリの実行ファイルが前記セッションコンテナで実行可能なように静的ビルドとして生成することができる（Ｓ５０３）。生成されたライブラリをライブラリカタログに格納する（Ｓ５０５）。
【００４８】
本発明は、図面に示された実施形態を参考として説明されたが、これは、例示的なものに過ぎず、本技術分野における通常の知識を有する者であれば、これから様々な変形及び均等な他の実施形態が可能であるという点を理解するであろう。したがって、本発明の本当の技術的保護範囲は、添付された特許請求の範囲の技術的思想により決められるべきであろう。
【図１】
2021529408.tif 000003
【図２】
2021529408.tif 000004
【図３】
2021529408.tif 000005
【図４】
2021529408.tif 000006
【図５】
2021529408.tif 000007
【図６】
2021529408.tif 000008
【手続補正書】
【提出日】令和3年4月8日(2021.4.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、
前記ノードコントローラが、前記ライブラリコンテナ内のライブラリが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、
交換が可能であれば、コンテナエンジンが前記ライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成するステップと、
前記ノードコントローラが、生成された前記セッションコンテナを実行するステップと、
を含み、
前記ノードコントローラは、搭載されるセッションコンテナとライブラリコンテナとの間のＣＰＵ構造及び配布板の種類にて互換可否をチェックし、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができるユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項２】
前記ライブラリコンテナ内のライブラリは、前記セッションコンテナで実行可能なように静的ビルドとして生成する請求項１に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項３】
前記ライブラリコンテナ内のライブラリは、ボリュームマウント形式で前記セッションコンテナに搭載する請求項１に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【国際調査報告】
2021529408.tif 000009
2021529408.tif 000010
2021529408.tif 000011
2021529408.tif 000012