IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レブルアップ インコーポレーテッドの特許一覧

特許7054574ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法
<>
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図1
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図2
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図3
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図4
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図5
  • 特許-ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-06
(45)【発行日】2022-04-14
(54)【発明の名称】ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法
(51)【国際特許分類】
   G06F 9/445 20180101AFI20220407BHJP
【FI】
G06F9/445
【請求項の数】 2
(21)【出願番号】P 2021519544
(86)(22)【出願日】2019-06-04
(65)【公表番号】
(43)【公表日】2021-10-28
(86)【国際出願番号】 KR2019006730
(87)【国際公開番号】W WO2020222352
(87)【国際公開日】2020-11-05
【審査請求日】2021-04-08
(31)【優先権主張番号】10-2019-0049711
(32)【優先日】2019-04-29
(33)【優先権主張国・地域又は機関】KR
【早期審査対象出願】
(73)【特許権者】
【識別番号】519121186
【氏名又は名称】レブルアップ インコーポレーテッド
【氏名又は名称原語表記】Lablup Inc.
【住所又は居所原語表記】16F,145,Teheran-ro,Gangnam-gu,Seoul 06132,Republic of Korea
(74)【代理人】
【識別番号】100130111
【弁理士】
【氏名又は名称】新保 斉
(72)【発明者】
【氏名】キム、ジュン ギ
(72)【発明者】
【氏名】シン、ジョン ギュ
(72)【発明者】
【氏名】パク、ジョン ヒョン
【審査官】中村 信也
(56)【参考文献】
【文献】米国特許出願公開第2018/0373505(US,A1)
【文献】打越 浩幸,超入門Docker 最終回 Windowsプログラムを実行するWindowsコンテナ,アイティメディア,2017年02月02日,インターネット<URL:https://atmarkit.itmedia.co.jp/ait/articles/1702/02/news039.html>
【文献】打越 浩幸,超入門Docker 第3回 Dockerコマンドの使い方,アイティメディア,2017年02月01日,インターネット<URL:https://atmarkit.itmedia.co.jp/ait/articles/1702/01/news061.html>
【文献】松島 浩道,Dockerコンテナをクラウドサービス上で共有できる「Docker Hub」を使ってみる,さくらのナレッジ,2014年07月14日,インターネット<URL:https://knowledge.sakura.ad.jp/2210/>
【文献】松島 浩道,Dockerコンテナで利用できるリソースや権限を制限する(Dockerの最新機能を使ってみよう:第3回),さくらのナレッジ,2016年06月23日,インターネット<URL:https://knowledge.sakura.ad.jp/5118/>
【文献】[Docker]第5回マウントについて(bind),PUBLIC RELATIONS,2019年02月08日,インターネット<URL:https://www.public.ne.jp/2019/02/08/docker-5/>
【文献】樋口 匡俊,さわって理解するDocker入門 第7回バインドマウントでHello Javaしよう,オージス総研,2018年02月08日,インターネット<URL:https://www.ogis-ri.co.jp/otc/hiroba/technical/docker/part7.html>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
G06F 8/60-8/77
G06F 9/44-9/445
G06F 9/451
(57)【特許請求の範囲】
【請求項1】
ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、
前記ノードコントローラが、前記ライブラリコンテナ内のライブラリが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、
互換性がある場合、コンテナエンジンが前記ライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成するステップと、
前記ノードコントローラが、生成された前記セッションコンテナを実行するステップと、
を含み、
前記ライブラリコンテナ内のライブラリは、前記セッションコンテナで実行可能な実行ファイルとして静的ビルドとして生成されたものを含み、
前記ノードコントローラは、搭載されるセッションコンテナとライブラリコンテナとの間のCPU構造及びビルドされた前記実行ファイルの配布版の種類にて互換可否をチェックし、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載する、ことを特徴とする、
ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【請求項2】
前記ライブラリコンテナ内のライブラリは、ボリュームマウント形式で前記セッションコンテナに搭載する請求項1に記載のユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法に関し、特に、ランタイム上でユーザが要請した複数個のライブラリをセッションコンテナに搭載して実行する方法に関する。
【背景技術】
【0002】
コンテナ(Container)は、仮像化でない運営体制水準の隔離技術を使用し、仮像マシンの短所を克服する仮像化技術として浮かび上がっている。コンテナは、カーネルレベル実行環境は、ホストの運営体制カーネルを共有するものの、ユーザレベル実行環境は、完全に隔離されたファイルシステムとカーネルが提供する資源要素等の仮像化された名前空間を使用する方式で実現される。隔離されたファイルシステムの内容は、アプリケーションと、これを駆動するのに必要な全ての従属物、ライブラリ、その他、バイナリと構成ファイルなどをひとまとめにして構成される。仮像化された名前空間に区分されてコンテナに提供されるカーネルの資源要素には、プロセスID、ネットワークソケット、ユーザアカウント、プロセス間通信(IPC)のための共有メモリなどがある。その他のハードウェア接近は、コンテナでない場合と同様に処理されるので、ホストハードウェアの性能をオーバーヘッドなしに完全に活用することができる。ここで、運営体制は、コンテナ別に最大使用可能なハードウェア資源の量を制限できるオプションを提供する。
【0003】
一方、従来のコンテナイメージは、ユーザプログラム実行に必要な全てのライブラリをひとかたまりにしたものであって、配布の容易性を保障するが、個別ライブラリを別にアップデートしたり、追加的なライブラリが必要な場合、これをランタイムにリアルタイムに反映し難く、イメージを初めから再度ビルドしなければならないという不便がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、ライブラリを含んでいるライブラリコンテナと、それに関する情報を記述したコンテナーカタログとを用いて、ランタイムにリアルタイムにユーザが所望する複数個のライブラリをセッションコンテナに搭載して実行する方法を提供することにある。
【課題を解決するための手段】
【0005】
本発明の一実施形態に係るユーザが組み合わせた複数個のライブラリコンテナを搭載したセッションコンテナ提供方法は、ユーザからコンテナ実行を受信すれば、ノードコントローラがコンテナカタログでライブラリコンテナを照会するステップと、前記ノードコントローラが、前記ライブラリコンテナが搭載されるセッションコンテナと前記ライブラリコンテナとの間の互換可否をチェックするステップと、コンテナエンジンが前記ライブラリコンテナを搭載したセッションコンテナを生成するステップとを含む。
【0006】
前記ノードコントローラが、生成された前記セッションコンテナを実行するステップをさらに含み、前記ライブラリコンテナの実行ファイル等は、前記セッションコンテナで実行可能なように静的ビルドとして生成する。
【0007】
前記コンテナカタログで提供するディレクトリ及びファイルをバインドマウント形式で前記セッションコンテナに搭載する。ユーザの要請に応じてコンテナカタログから必要なライブラリを追加指定するステップをさらに含む。
【発明の効果】
【0008】
本発明によれば、コンテナカタログ内のライブラリコンテナを用い、ユーザが所望するライブラリを組み合わせて搭載したセッションコンテナを提供できる。
【0009】
また、ライブラリコンテナが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能である。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
図2】本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
図3】本発明の一実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
図4】本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
図5】本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
図6】本発明の他の実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【発明を実施するための形態】
【0011】
本明細書に開示されている本発明の概念による実施形態等について特定の構造的または機能的説明は、単に本発明の概念による実施形態等を説明するための目的として例示されたものであって、本発明の概念による実施形態等は、様々な形態で実施されることができ、本明細書に説明された実施形態等に限定されない。
【0012】
本発明の概念による実施形態等は、様々な変更を加えることができ、種々の形態を有することができるので、実施形態等を図面に例示し、本明細書において詳細に説明しようとする。しかしながら、これは、本発明の概念による実施形態等を特定の開示形態に対して限定しようとするものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物、または代替物を含む。
【0013】
本明細書において使用した用語は、単に特定の実施形態を説明するために使用されたものであって、本発明を限定しようとする意図ではない。単数の表現は、文脈上明らかに異なるように意味しない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、本明細書に記載された特徴、数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部分品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【0014】
以下、本明細書に添付された図面を参照して本発明の実施形態等を詳細に説明する。
【0015】
図1は、本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【0016】
図1に示すように、セッションコンテナ提供システム100のソフトウェア構造は、運営体制110、コンテナカタログ120、セッションコンテナ130、140で構成される。
【0017】
運営体制110は、ノードコントローラ111、コンテナエンジン113で構成される。運営体制110は、運営体制カーネル内に設けられたプロセッサドライバを介してプロセッサと通信する。
【0018】
ノードコントローラ111は、ユーザからセッションコンテナ実行を受信すれば、コンテナカタログ120でユーザから要請された情報に基づいてライブラリコンテナを照会する。また、ノードコントローラ111は、ユーザからライブラリ追加の要請を受けると、コンテナカタログに必要なライブラリを追加指定することができる。
【0019】
ノードコントローラ111は、ライブラリコンテナが搭載されるセッションコンテナ130、140とライブラリコンテナ121、125との間の互換可否をチェックできる。このとき、搭載されるセッションコンテナとライブラリコンテナとの間のCPU構造及び配布版の種類にて互換可否をチェックできるが、これに対して限定するものではない。すなわち、互換が可能な場合にのみ、ライブラリコンテナのライブラリを搭載したセッションコンテナを生成できる。ノードコントローラ111は、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【0020】
コンテナエンジン113は、互換が可能な場合、セッションコンテナ130、140を生成し、配布し、各セッションコンテナ130、140が該当する応用プログラムを実行できる。すなわち、コンテナエンジン113は、生成されたセッションコンテナを実行し、終了することができる。このとき、前記コンテナカタログで提供するディレクトリ及びファイルをボリュームマウント(volume-mount)形式で前記セッションコンテナに搭載することができる。
【0021】
コンテナカタログ120は、複数個のライブラリコンテナ121、125を格納することができる。コンテナカタログ120は、一種のデータベースとして運営体制内に構成されることができ、実施形態によって別のサーバに配置されることができる。
【0022】
第1のライブラリコンテナ121は、第1のライブラリ123を含み、第2のライブラリコンテナ125は、第2のライブラリ127を含む。
【0023】
第1のセッションコンテナ130は、第1のライブラリコンテナ121内の第1のライブラリ123と同じ第1のライブラリ131、第2のライブラリコンテナ125の第2のライブラリ127と同じ第2のライブラリ133が搭載され得るし、第2のセッションコンテナ140は、第1のライブラリコンテナ121内の第1のライブラリ123と同じ第1のライブラリ141のみが搭載され得る。すなわち、ユーザの要請に応じて特定ライブラリが搭載されるセッションコンテナを生成できる。また、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【0024】
セッションコンテナ130、140は、ユーザが要請したソフトウェアを実行するコンテナであって、ユーザプログラムを駆動できるように必要な各種プログラム、ソースコードなどとライブラリなどをひとまとめにしたイメージを含む空間である。ユーザプログラムの駆動は、運営体制110で実質的になされるようになる。すなわち、運営体制110は、コンテナエンジン113を介してそれぞれのセッションコンテナ130、140に接近し、該当するユーザプログラムを実行し、処理することができる。ユーザの要請に応じて、第1のライブラリ131と第2のライブラリ133とが搭載された第1のセッションコンテナ130と、第1のライブラリ141が搭載された第2のセッションコンテナ140とを図示しているが、セッションコンテナ及び搭載されるライブラリの個数を制限するものではない。本発明は、ライブラリコンテナが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能であり、コンテナカタログ内のライブラリコンテナを介してユーザが所望するライブラリを組み合わせたセッションコンテナをリアルタイムに提供することができる。
【0025】
図2は、本発明の一実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【0026】
図2に示すように、ユーザがコンテナ実行を要請してユーザからコンテナ実行を受信すれば(S201)、ノードコントローラ111がコンテナカタログ120でライブラリコンテナを照会する(S203)。このとき、ユーザがライブラリ追加を要請すれば、コンテナカタログから必要なライブラリを追加指定するステップをさらに含むことができる。
【0027】
その後、ノードコントローラ111が、ライブラリコンテナ120が搭載されるセッションコンテナとライブラリコンテナ121、125との間の互換可否をチェックする(S205)。
【0028】
互換が可能であれば、コンテナエンジン113がライブラリコンテナ内のライブラリを搭載したセッションコンテナ140を生成する(S207)。このとき、前記コンテナカタログで提供するディレクトリ及びファイルをボリュームマウント形式で前記セッションコンテナに搭載することができる。互換が不可能であれば、プロセスを終了する。
【0029】
その後、ノードコントローラ111が、生成されたセッションコンテナ130、140を実行する(S209)。
【0030】
図3は、本発明の一実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【0031】
図3に示すように、コンテナカタログは、ライブラリを含むライブラリコンテナを生成する(S301)。このとき、ライブラリコンテナのライブラリ実行ファイルを静的にビルドして生成することができる。すなわち、ライブラリコンテナの実行ファイルが前記セッションコンテナで実行可能なように静的ビルドとして生成する(S303)。生成されたライブラリコンテナをコンテナカタログに格納する(S305)。
【0032】
図4は、本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供システムのソフトウェア構造を説明するための図である。
【0033】
図4に示すように、セッションコンテナ提供システム200のソフトウェア構造は、運営体制210、ライブラリカタログ220、セッションコンテナ230、240で構成される。
【0034】
運営体制210は、ノードコントローラ211、コンテナエンジン213で構成される。運営体制210は、運営体制カーネル内に設けられたプロセッサドライバを介してプロセッサと通信する。
【0035】
ノードコントローラ211は、ユーザからセッションコンテナ実行を受信すれば、ライブラリカタログ220でユーザから要請された情報に基づいてライブラリを照会する。また、ノードコントローラ211は、ユーザからライブラリ追加の要請を受けると、ライブラリカタログに必要なライブラリを追加指定することができる。
【0036】
ノードコントローラ211は、ライブラリが搭載されるセッションコンテナ230、240とライブラリ221、223との間の互換可否をチェックできる。このとき、搭載されるセッションコンテナとライブラリとの間のCPU構造及び配布版の種類にて互換可否をチェックできるが、これに対して限定するものではない。すなわち、互換が可能な場合にのみ、ライブラリカタログのライブラリを搭載したセッションコンテナを生成できる。ノードコントローラ211は、ランタイム上でコンテナカタログから必要なライブラリを追加指定して搭載することができる。
【0037】
コンテナエンジン213は、互換が可能な場合、セッションコンテナ230、240を生成し、配布し、各セッションコンテナ230、240が該当する応用プログラムを実行できる。すなわち、コンテナエンジン213は、生成されたセッションコンテナを実行し、終了することができる。このとき、前記ライブラリカタログで提供するディレクトリ及びファイルをバインドマウント(bind-mount)形式で前記セッションコンテナに搭載することができる。
【0038】
ライブラリカタログ220は、複数個のライブラリ221、223を格納することができる。ライブラリカタログ220は、一種のデータベースとして運営体制内に構成されることができ、実施形態によって別のサーバに配置されることができる。
【0039】
第1のセッションコンテナ230は、第1のライブラリ221と同じ第1のライブラリ231、第2のライブラリ223と同じ第2のライブラリ233が搭載され得るし、第2のセッションコンテナ240は、第1のライブラリ221と同じ第1のライブラリ241のみが搭載され得る。すなわち、ユーザの要請に応じて特定ライブラリが搭載されるセッションコンテナを生成できる。また、ランタイム上でライブラリカタログから必要なライブラリを追加指定して搭載することができる。
【0040】
セッションコンテナ230、240は、ユーザが要請したソフトウェアを実行するコンテナであって、ユーザプログラムを駆動できるように必要な各種プログラム、ソースコードなどとライブラリなどをひとまとめにしたイメージを含む空間である。ユーザプログラムの駆動は、運営体制210で実質的になされるようになる。すなわち、運営体制210は、コンテナエンジン213を介してそれぞれのセッションコンテナ230、240に接近し、該当するユーザプログラムを実行し、処理することができる。ユーザの要請に応じて第1のライブラリ231と第2のライブラリ233とが搭載された第1のセッションコンテナ230と、第1のライブラリ241が搭載された第2のセッションコンテナ240とを図示しているが、セッションコンテナ及び搭載されるライブラリの個数を制限するものではない。本発明は、ライブラリが提供する実行ファイルは、静的ビルドされており、全ての任意のコンテナ環境で実行が可能であり、ライブラリカタログ内にライブラリを組み合わせたセッションコンテナを提供できる。
【0041】
図5は、本発明の他の実施形態に係るユーザが要請した複数個のライブラリを搭載したセッションコンテナ提供方法を説明する順序図である。
【0042】
図5に示すように、ユーザがコンテナ実行を要請してユーザからコンテナ実行を受信すれば(S401)、ノードコントローラがライブラリカタログでライブラリを照会する(S403)。このとき、ユーザがライブラリ追加を要請すれば、ライブラリカタログから必要なライブラリを追加指定するステップをさらに含むことができる。
【0043】
その後、ノードコントローラが、ライブラリが搭載されるセッションコンテナとライブラリとの間の互換可否をチェックする(S405)。
【0044】
互換が可能であれば、コンテナエンジンがライブラリコンテナ内のライブラリを搭載したセッションコンテナを生成する(S407)。このとき、前記ライブラリカタログで提供するディレクトリ及びファイルをバインドマウント形式で前記セッションコンテナに搭載することができる。互換が不可能であれば、プロセスを終了する。
【0045】
その後、ノードコントローラが、生成されたセッションコンテナを実行する(S409)。
【0046】
図6は、本発明の他の実施形態に係るライブラリコンテナを生成する方法を説明する順序図である。
【0047】
図6に示すように、ライブラリカタログは、ライブラリを生成する(S501)。このとき、ライブラリ実行ファイルを静的にビルドして生成することができる。すなわち、ライブラリの実行ファイルが前記セッションコンテナで実行可能なように静的ビルドとして生成することができる(S503)。生成されたライブラリをライブラリカタログに格納する(S505)。
【0048】
本発明は、図面に示された実施形態を参考として説明されたが、これは、例示的なものに過ぎず、本技術分野における通常の知識を有する者であれば、これから様々な変形及び均等な他の実施形態が可能であるという点を理解するであろう。したがって、本発明の本当の技術的保護範囲は、添付された特許請求の範囲の技術的思想により決められるべきであろう。
図1
図2
図3
図4
図5
図6