JP7047497B2 - 操作制御方法、情報処理装置および操作制御プログラム - Google Patents

操作制御方法、情報処理装置および操作制御プログラム Download PDF

Info

Publication number
JP7047497B2
JP7047497B2 JP2018045891A JP2018045891A JP7047497B2 JP 7047497 B2 JP7047497 B2 JP 7047497B2 JP 2018045891 A JP2018045891 A JP 2018045891A JP 2018045891 A JP2018045891 A JP 2018045891A JP 7047497 B2 JP7047497 B2 JP 7047497B2
Authority
JP
Japan
Prior art keywords
data
image
container
catalog
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018045891A
Other languages
English (en)
Other versions
JP2019159825A (ja
Inventor
信行 黒松
晴康 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018045891A priority Critical patent/JP7047497B2/ja
Priority to US16/278,835 priority patent/US10810025B2/en
Publication of JP2019159825A publication Critical patent/JP2019159825A/ja
Application granted granted Critical
Publication of JP7047497B2 publication Critical patent/JP7047497B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、操作制御方法等に関する。
近年、開発されたアプリケーションを任意の環境で再現するための技術として、VM(Virtual Machine)仮想化の技術やコンテナ型仮想化の技術が知られている。VM仮想化は、ホスト上に、VMを起動して、特定の環境を再現する。コンテナ型仮想化は、ホスト上のOS(Operating System)のカーネルの上にコンテナと呼ばれる仮想的なユーザ空間を提供して、特定の環境を再現する。
VMは、ホスト上に別のOSを動かすための仮想化ソフトを導入する必要がある。一方、コンテナ型仮想化は、VMと同じく特定の環境を再現する点では同じであるものの、ホスト上のOSのカーネルをそのまま使うため、仮想化ソフトを必要とせず、起動が素速く、オーバヘッドも小さい。コンテナ型仮想化のプロジェクトには、例えば、Docker(登録商標)が挙げられる。
ここで、Dockerの利用例を、図10を参照して説明する。図10は、Dockerの利用例を示す参考図である。図10に示すように、Dockerのコンテナとしてアプリケーションを実行可能にするためには、アプリケーションの開発者は、実行環境を定義するDockerfileとアプリケーションのソースコードとを準備する(a1,a2)。ここでいうDockerfileとは、アプリケーションの実行環境を定義したファイルのことをいう。
アプリケーションの開発者は、Dockerfileとアプリケーションのソースコードを用いてDockerイメージをビルドする(a3)。ここでは、アプリケーションの開発者は、OSがUbuntuである場合のDockerイメージをビルドする。このアプリケーションを利用するユーザは、実行用のマシンにOSがUbuntuである場合のDockerイメージを取得し、コンテナを起動する。ここでは、アプリケーション開発者である「hoge」が作成したアプリケーション「app1」のDockerイメージ「hoge/app1:v1」がビルドされる。なお、v1は、後述するDockerタグである。v1は、例えば、Ubuntuであるバージョンであることを示す。
ユーザが、このアプリケーションを利用する場合には、実行用のマシンにDockerイメージを取得(pull)し(a4)、コンテナを起動する(a5)。コンテナは、利用しているライブラリやOSを含めてアプリケーションが動作する環境をそのまま再現する。したがって、ユーザは、このコンテナで動くアプリケーションが必要とするOSやツールを意識する必要はない。
また、既にDockerイメージ化したアプリケーションの開発が進み、以前より改善されたアプリケーションのイメージが利用される場合や、目的に合わせて異なるイメージが利用される場合がある。かかる場合には、前述のDockerタグと呼ばれるDockerイメージを識別するための名前をつけることができる。例えば、“apache_server”という名前のDockerイメージがあったとする。OSにおいて、CentOsであるバージョンと、Ubuntuであるバージョンとが区別される場合には、それぞれ“apache_server:centos”と“apatche_server:ubuntu”とタグが付与されても良い。
特開2016-130887号公報 特表2007-538313号公報 特開2017-107555号公報
しかしながら、コンテナ上で大規模なデータを用いるアプリケーションを動かすには、問題がある。
1つ目の問題は、Dockerイメージに大規模なデータを埋め込むと、このイメージの取得やコンテナの起動に時間がかかり、コンテナの起動が素速いというDockerそのもののメリットが失われるという問題がある。なお、コンテナの中には、10GB(ギガバイト)までしかデータを埋め込むことができないという制限があるので、Dockerイメージに大規模なデータを埋め込むこと自体難しいという問題もある。特に、機械学習の学習用データや学習用モデルは、データが大規模になりがちであるので、このような問題が起こり得る。
かかる問題については、コンテナが外部のストレージをマウントすることで解消することが可能である。例えば、データが学習用データである場合、Dockerが、コンテナの中に学習用データや学習用モデルを埋め込むのではなく、コンテナを起動する際に外部のストレージに保存されたこれらのデータをマウントすることで解消することが可能である。
ところが、外部のストレージにデータを保存しておく方法では、Dockerイメージだけでなく、このイメージに付随するデータの管理が必要になる。したがって、ユーザは、コンテナの起動時に、Dockerイメージとデータとの組み合わせを把握しなければならず、組み合わせの管理が煩雑になるという2つ目の問題がある。特に、データが学習用データである場合、マウントすべきデータは、学習に用いられたデータ、生成された学習用モデル、再学習する際に用いられたデータ、再学習した結果によって生成された学習用モデルなど多岐に渡る。アプリケーションが改善された場合には、バージョンの数だけ、Dockerイメージとデータとの組み合わせが増える。また、ユーザは、データの保存場所のどのパスに学習用データや学習用モデルが保存されているのか、どのデータをマウントするのかを把握しなければならない。したがって、ユーザは、コンテナの起動時に、Dockerイメージとデータとの組み合わせを把握しなければならず、組み合わせの管理が煩雑になる。
なお、上記課題は、Dockerだけではなく、rktやLXC等のコンテナ型仮想化の技術にも同様に生じる課題である。
1つの側面では、ユーザが、利用するデータの保存場所や利用するアプリケーション実行環境イメージの組み合わせを把握しなくても、コンテナ上でアプリケーションを利用することを目的とする。
1つの態様では、コンピュータが、アプリケーションの実行環境が配置される領域を示すコンテナの起動方法を定義する際に、データ操作のインターフェースの定義に従って、前記アプリケーションが用いるデータを保存し、前記アプリケーションの実行環境のイメージを保存し、コンテナ操作のインターフェースの定義に従って、前記アプリケーションの実行環境のイメージの情報に、前記コンテナの中で前記アプリケーションが用いるデータのデータ情報を付加した前記コンテナの起動方法の定義を、定義情報に登録する、処理を実行する。
1つの態様によれば、ユーザが、利用するデータの保存場所や利用するアプリケーション実行環境イメージの組み合わせを把握しなくても、コンテナ上でアプリケーションを利用することが可能となる。
図1は、実施例に係る管理装置を含むシステムの処理の一例を示す図である。 図2は、実施例に係る管理装置の構成を示す機能ブロック図である。 図3は、実施例に係るカタログ情報のフォーマットの一例を示す図である。 図4は、実施例に係るカタログ情報のフォーマットの別の例を示す図である。 図5は、実施例に係るカタログ操作のシーケンスの一例を示す図である。 図6は、実施例に係るサービス起動のシーケンスの一例を示す図である。 図7は、実施例に係るカタログ操作のシーケンスの別の例を示す図である。 図8は、実施例に係る管理装置の用途の一例を示す図である。 図9は、操作制御プログラムを実行するコンピュータの一例を示す図である。 図10は、Dockerの利用例を示す参考図である。
以下に、本願の開示する操作制御方法、情報処理装置および操作制御プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例では、コンテナ型仮想化のプロジェクトとしてDockerを適用した場合を説明する。実施例によりこの発明が限定されるものではない。
[管理装置を含むシステムの処理の一例]
図1は、実施例に係る管理装置を含むシステムの処理の一例を示す図である。図1に示すように、管理装置1は、インターフェースとして、カタログ操作、サービス操作およびデータの保存操作を有する。カタログ操作のインターフェースは、コンテナ実行基盤(サービス用サーバ)上で動くことになるコンテナの起動方法の定義を登録するために用いられる。なお、コンテナの起動方法の定義のことを「カタログ」というものとする。また、サービス操作のインターフェースは、コンテナを起動するサービスを行うために用いられる。サービス操作のインターフェースは、WebAPI(Application Programming Interface)の機能を持つサービスであっても良い。また、データの保存操作のインターフェースは、コンテナ実行基盤(サービス用サーバ)が利用するデータを保存するために用いられる。
Dockerのコンテナとしてアプリケーションを実行可能にするために、アプリケーション開発者は、予め、実行環境を定義するDockerfileとアプリケーションのソースコードとを準備し、これらを用いてDockerイメージをビルドする。そして、アプリケーション開発者は、ビルドされたDockerイメージをレジストリ(Dockerイメージの置き場)に登録する。なお、Dockerイメージのビルドおよびレジストリへの登録は、コード管理ツールによってなされても良い。なお、コード管理ツールの説明は、後述する。
このような状況の下、アプリケーション開発者は、アプリケーションにより用いられるデータの保存操作のインターフェースに従って、指定するデータをデータ置き場に保存する(S110)。データ置き場は、コンテナ実行基盤(サービス用サーバ)にあっても良いし、別個の分散ファイルシステムにあっても良い。データは、例えば、機械学習の学習モデルであったり、機械学習の学習データであったりする。そして、データの保存操作のインターフェースは、データ置き場の具体的なデータのパスをデータ情報21に登録する(S120)。
アプリケーション開発者は、カタログ操作のインターフェースに従って、カタログをカタログ情報22に登録する(S130)。カタログには、Dockerイメージの名前、通信で用いられるポート、環境変数、データの種類、データのパスおよびコンテナ内のマウントパスが含まれる。カタログは、カタログ名およびバージョンによって識別される。
ユーザが、あるサービスを利用したいとき、カタログ名およびバージョンを指定して、サービス操作のインターフェースを呼び出す。サービス操作のインターフェースは、カタログ情報22を参照し、指定されたカタログ名およびバージョンに対するカタログを取得する(S140)。また、サービス操作のインターフェースは、データ情報21を参照し、カタログに設定されたデータのパスに対するデータ置き場の具体的なデータのパスを取得する(S150)。そして、サービス操作のインターフェースは、コンテナの起動をコンテナ実行基盤(サービス用サーバ)に依頼する(S160)。コンテナの起動依頼には、カタログに含まれるDockerイメージの名前、ポート、環境変数、データのパス、コンテナ内のマウントパスおよびデータ置き場の具体的なデータのパスが含まれる。
すると、コンテナの起動依頼を受け付けたサービス用サーバのDockerが、レジストリから、Dockerイメージの名前に対応するDockerイメージを取得(pull)する(S161)。そして、Dockerは、取得したDockerイメージを用いてコンテナを起動する(S162)。そして、Dockerは、データ置き場から、データ置き場の具体的なデータのパスに対応するデータを取得し、取得したデータをコンテナ内のマウントパスにマウントする(S163,S164)。
例えば、ユーザが、カタログ名として「app1」、バージョンとして「v1」を指定した場合、サービス操作のインターフェースは、カタログ情報を参照し、指定されたカタログ名「app1」およびバージョン「v1」に対するカタログを取得する。カタログには、Dockerイメージの名前として「hoge/app1:v1」、通信で用いられるポート、環境変数が含まれるとする。加えて、カタログには、データの種類が学習モデルである場合の、データのパスおよびコンテナ内のマウントパスが含まれるとする。加えて、カタログには、データの種類が学習データである場合のデータのパスおよびコンテナ内のマウントパスが含まれるとする。
そして、サービス操作のインターフェースは、データ情報21を参照し、指定されたカタログ名「app1」およびバージョン「v1」に対するデータ置き場の具体的なデータのパスを取得する。そして、サービス操作のインターフェースは、コンテナの起動をコンテナ実行基盤(サービス用サーバ)に依頼する。コンテナの起動依頼には、カタログに含まれるDockerイメージの名前「hoge/app1:v1」、ポート、環境変数、データのパス、コンテナ内のマウントパスおよびデータ置き場の具体的なデータのパスが含まれる。
すると、コンテナの起動依頼を受け付けたサービス用サーバのDockerが、レジストリから、Dockerイメージの名前「hoge/app1:v1」に対応するDockerイメージを取得(pull)する。そして、Dockerは、取得したDockerイメージを用いてコンテナを起動する。そして、Dockerは、データ置き場から、データ置き場の具体的なデータのパスに対応するデータ「app1の学習モデル」を取得し、取得したデータをコンテナ内のマウントパスにマウントする(S163)。Dockerは、データ置き場から、データ置き場の具体的なデータのパスに対応するデータ「app1の学習データ」を取得し、取得したデータをコンテナ内のマウントパスにマウントする(S164)。
このようにして、アプリケーション開発者がカタログ操作のインターフェースの定義に従ってコンテナの起動方法の定義(カタログ)を登録する。この結果、ユーザは、データの保存場所や利用するDockerイメージの組合せを意識しなくても、カタログの名前およびバージョンを指定するだけで、コンテナ上でアプリケーションを利用することができる。
[管理装置の構成]
図2は、実施例に係る管理装置の構成を示す機能ブロック図である。図2に示すように、管理装置1は、制御部10および記憶部20を有する。
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、データ操作部11、カタログ操作部12、サービス操作部13およびコード管理連携部14を有する。なお、データ操作部11は、第1の操作部の一例である。サービス操作部13は、第2の操作部の一例である。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、データ情報21およびカタログ情報22を有する。
データ情報21は、カタログで定義されたデータの実際の置き場の情報である。例えば、データ情報21は、カタログおよびバージョンと、実際にデータが保存されているデータのパスとを対応付けた情報である。なお、データ情報21は、後述するデータ操作部11によって生成される。
カタログ情報22は、複数のカタログの集合である。カタログは、コンテナの起動方法を定義した情報である。なお、カタログ情報22は、カタログ操作部12によって生成される。
ここで、カタログ情報22のフォーマットの一例を、図3を参照して説明する。図3は、実施例に係るカタログ情報のフォーマットの一例を示す図である。図3に示すように、カタログ情報22は、管理装置1のファイルシステムの任意のパス(図3では、/catalog_date)配下に保存される。任意のパス配下では、カタログID(IDentifier)ごとにディレクトリが区切られる。そして、区切られた各ディレクトリ配下にコンテナの起動定義が保存される。
コンテナの起動定義には、docker_image、ports、envs、assetとしてdatadirとmodeldirが含まれる。docker_imageは、Dockerイメージの名前である。Dockerイメージの名前には、ユーザ名、イメージ名およびバージョンが含まれる。なお、イメージ名は、カタログ名と同じであっても良い。portsは、通信で用いられるポート名である。envsは、環境変数である。datadirには、データの種類が学習データ等のデータである場合のデータの指定(path)およびコンテナ内のマウントパス(mountdir)が含まれる。modeldirには、データの種類が学習モデル等のモデルである場合のデータの指定(path)およびコンテナ内のマウントパス(mountdir)が含まれる。
一例として、カタログIDが「001」である場合には、コンテナの起動定義として「container1.yml」と「container2.yml」とが存在する。すなわち、2個のコンテナの起動定義が設定されている。コンテナの起動定義が「container1.yml」である場合に、docker_image(Dockerイメージの名前)として「kuromt/app1:v1」が定義されている。docker_imageの中の「kuromt」がユーザ名である。「app1」がイメージ名であり、カタログ名である。「v1」がカタログのバージョンである。datadirには、mountdirとして「/train」、pathとして「dataset」が定義されている。すなわち、「dataset」のデータは、マウントディレクトリの「/train」にマウントされることが定義されている。modeldirには、mountdirとして「/model」、pathとして「model」が定義されている。すなわち、「model」の学習モデルは、マウントディレクトリの「/model」にマウントされることが定義されている。
また、カタログ情報22のフォーマットの別の例を、図4を参照して説明する。図4は、実施例に係るカタログ情報のフォーマットの別の例を示す図である。図4に示すカタログ情報22は、テーブル形式のフォーマットで表わしたものである。図4に示すカタログ情報22の1行目は、図3で示したdocker_imageが「kuromt/app1:v1」である場合のカタログの内容と同じ情報である。
図4に示すように、カタログ情報22は、catalog_id、catalog_version、docker_image、port、Envsおよびassetを対応付けた情報である。assetは、datadirおよびmodeldirが含まれる。datadirには、mountdirおよびpathが含まれる。modeldirには、mountdirおよびpathが含まれる。catalog_idは、図3のカタログIDに対応する。catalog_versionは、カタログのバージョンであり、Dockerタグに対応する情報である。docker_imageは、図3のdocker_imageに対応する。docker_imageの中のバージョンが、前述したcatalog_versionに対応する。portは、図3のportsに対応する。assetは、図3のassetに対応する。
図2に戻って、データ操作部11は、データ操作のインターフェースの定義に従って、アプリケーションが用いるデータをデータ置き場に保存する。データ置き場は、例えば、コンテナ実行基盤であっても良いし、別個の分散ファイルシステムであっても良い。また、データ操作部11は、保存したデータのデータ情報をデータ情報21に追加する。データ情報には、例えば、保存したデータについて、データ置き場の具体的なデータのパスが含まれる。
カタログ操作部12は、カタログ操作のインターフェースの定義に従って、アプリケーションの実行環境のイメージの情報に、アプリケーションが用いるデータの情報を付加したコンテナの起動方法の定義情報を、カタログとしてカタログ情報22に登録する。データの情報には、例えば、データの種類、データの指定(path)およびコンテナ内のマウントパスが含まれる。データの種類には、例えば、学習データ等のデータや学習モデル等のモデルが含まれる。
サービス操作部13は、サービス操作のインターフェースの定義に従って、カタログ情報22を参照し、カタログ名およびカタログのバージョンに対するコンテナを起動する。例えば、サービス操作部13は、ユーザによってカタログ名およびカタログのバージョンが指定されると、カタログ情報22を参照し、指定されたカタログ名が示すカタログIDおよびカタログのバージョンに対するカタログを取得する。サービス操作部13は、データ情報21を参照し、取得したカタログに指定されたデータやモデルに対するデータ置き場のそれぞれの具体的なデータのパスを取得する。そして、サービス操作部13は、Dockerに対して、コンテナの起動を依頼する。コンテナの起動依頼には、カタログに含まれるDockerイメージの名前、ポート、環境変数、データのパス、コンテナ内のマウントパスおよびデータ置き場の具体的なデータのパスが含まれる。
コード管理連携部14は、アプリケーションのソースコードを管理するコード管理ツールを利用する場合に、当該ツールと連携する機能部である。例えば、コード管理連携部14は、コード管理ツールに対して、Dockerイメージのビルドを依頼する。コード管理ツールは、依頼を受け付けると、自身が管理しているアプリケーションのソースコードおよびDockerファイルを用いて、Dockerイメージをビルドする。そして、コード管理ツールは、ビルドしたDockerイメージをレジストリ(Dockerイメージの置き場)に登録する。なお、コード管理ツールには、例えば、Gitlabが挙げられる。Gitlabは、Gitコマンドを使ったソースコード管理のプラットフォームであり、アプリケーションのソースコードをプロジェクトとして管理する。また、Gitlabは、プロジェクトのコードを流用して別の機能を実装するためのブランチという概念や、ある時点でのコードを保存するタグという概念を持つ。また、Gitlabは、プロジェクトにあるアプリケーションのソースコードとDockerファイルを使い、Dockerイメージをビルドしてレジストリに登録する機能を持つ。
[カタログ操作のシーケンスの一例]
図5は、実施例に係るカタログ操作のシーケンスの一例を示す図である。図5では、コード管理連携部14およびコード管理ツールを利用しない場合を説明する。また、図5では、データが学習データおよびモデルである場合を説明する。なお、図5では、アプリケーション開発者が実行する処理を破線で示すものとする。
図5に示すように、アプリケーション開発者(例えば、ユーザ名「kuromt」)が、アプリケーション(app1)を開発する(S11)。アプリケーション開発者が、アプリケーション(app1)からアクセスする学習データを作成するとともに、学習データからモデルを作成する(S12)。そして、アプリケーション開発者が、作成した学習データとモデルの登録を管理装置1に依頼する(S13)。
管理装置1では、データ操作部11が、学習データとモデルとをそれぞれ分散ファイルシステム2に登録する(S14,S15)。そして、データ操作部11は、登録したデータの情報をデータ情報21に追加する(S16)。例えば、データ操作部11は、登録した学習データの分散ファイルシステム2上の具体的なデータのパスをデータ情報21に追加する。データ操作部11は、登録したモデルの、分散ファイルシステム2上の具体的なデータのパスをデータ情報21に追加する。
続いて、アプリケーション開発者が、Dockerファイルを作成する(S17)。アプリケーション開発者は、作成したDockerファイルとアプリケーションのソースコードを用いて、Dockerイメージをビルドする(S18)。そして、アプリケーション開発者は、DockerイメージをDockerレジストリ3に登録する(S19)。Dockerレジストリ3には、Dockerイメージ名として「kuromt/app1:v1」のDockerイメージが登録される。
続いて、アプリケーション開発者が、カタログの登録を管理装置1に依頼する(S20)。例えば、ユーザ名が「kuromt」のアプリケーション開発者は、「catalog_name=app1,version=v1,datadir={mountdir=/train,path=dataset},modeldir={mountdir=/model,path=model}」をパラメータとするカタログの登録依頼を管理装置1に送信したとする。すなわち、カタログ名(catalog_name)として「app1」、バージョン(version)として「v1」がパラメータに含まれている。学習データのデータディレクトリ(datadir)として、学習データの指定(path)としての「dataset」およびコンテナ内のマウントパスとしての「/train」がパラメータに含まれる。そして、モデルのモデルディレクトリ(modeldir)として、モデルの指定(path)としての「model」およびコンテナ内のマウントパス(mountdir)としての「/model」がパラメータに含まれる。なお、パラメータには、環境変数やポート等の実行引数の情報が追加されても良い。
管理装置1では、カタログ操作部12が、カタログの登録依頼を受け付けると、登録依頼のパラメータを用いてカタログ定義を生成し、カタログ定義を登録する(S21)。例えば、カタログ操作部12は、登録を依頼したユーザ名、パラメータに含まれるカタログ名、バージョンから得られるDockerイメージの名前をカタログに設定する。カタログ操作部12は、パラメータに含まれる学習データのデータディレクトリおよびモデルのモデルディレクトリをカタログに設定する。そして、カタログ操作部12は、このカタログをカタログ情報22に登録する。なお、パラメータに環境変数やポート等の実行引数の情報が含まれている場合には、カタログ操作部12は、これらの情報もカタログに設定して、このカタログをカタログ情報22に登録する。つまり、カタログ操作部12は、分散ファイルシステム2上のapp1用の学習データとapp1用のモデルをマウントするapp1:v1コンテナの起動方法の定義をカタログとしてカタログ情報22に登録する。
[サービス起動のシーケンスの一例]
図6は、実施例に係るサービス起動のシーケンスの一例を示す図である。図6では、データが学習データおよびモデルである場合を説明する。
図6に示すように、ユーザが、カタログ名が「app1」であり、バージョンが「v1」であるサービスを利用したい場合に、カタログ名として「app1」、バージョンとして「v1」、サービス名として「myservice」を指定したサービスの立ち上げを依頼する(S31)。例えば、ユーザは、「catalog_name=app1,version=v1,name=myservice」をパラメータとするサービスの立ち上げ依頼を管理装置1に送信する。なお、サービス名は、ユーザによって任意に指定されれば良い。
管理装置1では、サービス操作部13が、サービスの立ち上げを受け付けると、立ち上げ依頼のパラメータを用いて、カタログ情報22からカタログを読み込む(S32)。例えば、サービス操作部13は、カタログ情報22を参照して、カタログ名「app1」、バージョン「v1」に対するカタログを読み込む。
サービス操作部13は、カタログに設定された学習データの指定やモデルの指定を用いて、データ情報21から該当するデータの情報を読み込む(S33)。例えば、サービス操作部13は、カタログから、学習データの指定(path)として「dataset」を取得する。サービス操作部13は、カタログから、モデルの指定(path)として「model」を取得する。そして、サービス操作部13は、データ情報21を参照して、学習データの指定(path)を示す「dataset」に対する、分散ファイルシステム2上の具体的なデータのパスを取得する。サービス操作部13は、データ情報21を参照して、モデルの指定(path)を示す「model」に対する、分散ファイルシステム2上の具体的なデータのパスを取得する。
サービス操作部13は、コンテナ実行基盤4に対して、コンテナの起動を依頼する(S34)。例えば、サービス操作部13は、カタログに含まれるDockerイメージの名前、ポート、環境変数、学習データおよびモデルの指定(path)、コンテナ内のマウントパスをパラメータとするコンテナの起動依頼を送信する。さらに、コンテナの起動依頼には、学習データおよびモデルの指定(path)に対する分散ファイルシステム2上の具体的なデータのパスが含まれる。
コンテナ実行基盤4では、Dockerが、コンテナの起動依頼を受け付けると、起動依頼のパラメータからDockerイメージの名前を取得する。そして、Dockerは、取得したDockerイメージの名前に対するDockerイメージをDockerレジストリから取得する(S35)。ここでは、Dockerは、Dockerイメージ名が「kuromt/app1:v1」であるDockerイメージを取得する。
Dockerは、取得したDockerイメージを用いてコンテナを起動する(S36)。
続いて、Dockerは、起動依頼のパラメータから、学習データの指定(path)に対する、コンテナ内のマウントパスおよび分散ファイルシステム2上の具体的なデータのパスを取得する。Dockerは、分散ファイルシステム2上の具体的なデータのパスから、学習データの指定(path)に対する学習データを取得する(S37)。そして、Dockerは、取得した学習データを、コンテナ内のマウントパスにマウントする(S38)。
同様に、Dockerは、起動依頼のパラメータから、モデルの指定(path)に対する、コンテナ内のマウントパスおよび分散ファイルシステム2上の具体的なデータのパスを取得する。Dockerは、分散ファイルシステム2上の具体的なデータのパスから、モデルの指定(path)に対するモデルデータを取得する(S39)。そして、Dockerは、取得したモデルデータを、コンテナ内のマウントパスにマウントする(S40)。
管理装置1では、サービス操作部13が、Dockerからコンテナの起動完了を受け付けると、ユーザに対してサービスの立ち上げ完了を通知する(S41)。
ユーザは、サービスの立ち上げ完了を取得すると、立ち上がったコンテナに対して、例えばWebAPIを通じて各種機能を利用する(S42)。
これにより、ユーザは、コンテナ上で学習データ等のデータサイズが大きいデータを利用する場合であっても、コンテナを起動する際に外部のストレージに保存されたデータをマウントするので、Dockerイメージに大規模なデータを埋め込まなくても良い。すなわち、ユーザは、コンテナの中に埋め込まれるデータのデータ量の制限を気にしないで、コンテナを起動することができる。また、ユーザは、データの保存場所や利用するDockerイメージの組合せを意識しなくても、コンテナ上でアプリケーションを利用することができるようになる。
[カタログ操作のシーケンスの別の例]
図7は、実施例に係るカタログ操作のシーケンスの別の例を示す図である。図7では、コード管理連携部14およびコード管理ツールを利用する場合を説明する。また、図7では、データが学習データおよびモデルである場合を説明する。なお、図7では、アプリケーション開発者が実行する処理を破線で示すものとする。
図7に示すように、アプリケーション開発者(例えば、ユーザ名「kuromt」)が、アプリケーション(app1)を開発する(S51)。アプリケーション開発者が、アプリケーション(app1)からアクセスする学習データを作成するとともに、学習データからモデルを作成する(S52)。そして、アプリケーション開発者が、作成した学習データとモデルの登録を管理装置1に依頼する(S53)。
管理装置1では、データ操作部11が、学習データとモデルとをそれぞれ分散ファイルシステム2に登録する(S54,S55)。そして、データ操作部11は、登録したデータの情報をデータ情報21に追加する(S56)。例えば、データ操作部11は、登録した学習データの分散ファイルシステム2上の具体的なデータのパスをデータ情報21に追加する。データ操作部11は、登録したモデルの、分散ファイルシステム2上の具体的なデータのパスをデータ情報21に追加する。
続いて、アプリケーション開発者が、Dockerファイルを作成する(S57)。アプリケーション開発者は、作成したDockerファイルとアプリケーションのソースコードとをGitlabに対してコミットする(S58)。例えば、アプリケーション開発者は、作成したDockerファイルとアプリケーションのソースコードとをGitlabのapp1プロジェクトのmasterブランチにコミットしたとする。
そして、アプリケーション開発者が、カタログの登録を管理装置1に依頼する(S59)。例えば、ユーザ名が「kuromt」のアプリケーション開発者は、「project=app1,ref=master,catalog_name=app1,version=v1,datadir={mountdir=/train,path=dataset},modeldir={mountdir=/model,path=model}」をパラメータとするカタログの登録依頼を管理装置1に送信したとする。すなわち、Gitlab5上のプロジェクト(project)名として「app1」、ブランチ(ref)名として「master」がパラメータに含まれている。そして、カタログ名(catalog_name)として「app1」、バージョン(version)として「v1」がパラメータに含まれている。学習データのデータディレクトリ(datadir)として、学習データの指定(path)としての「dataset」およびコンテナ内のマウントパスとしての「/train」がパラメータに含まれる。そして、モデルのモデルディレクトリ(modeldir)として、モデルの指定(path)としての「model」およびコンテナ内のマウントパス(mountdir)としての「/model」がパラメータに含まれる。なお、パラメータには、環境変数やポート等の実行引数の情報が追加されても良い。
管理装置1では、カタログ操作部12が、カタログの登録依頼を受け付けると、登録依頼のパラメータから、Dockerイメージのビルド対象のコードがあるプロジェクトおよびブランチを取得する。カタログ操作部12は、app1プロジェクトのmasterブランチにあるコードのDockerイメージのビルドを、コード管理連携部14を連携させてGitlab5に依頼する(S60,S61)。
Gitlab5では、Dockerイメージのビルドの依頼を受け付けると、Gitlab Runnerが、app1プロジェクトのmasterブランチにあるDockerファイルとアプリケーションのソースコードを取得する(S62)。Gitlab Runnerは、取得したDockerファイルとアプリケーションのソースコードを用いて、Dockerイメージをビルドする(S63)。そして、Gitlab Runnerは、DockerイメージをDockerレジストリ3に登録する(S64)。Dockerレジストリ3には、Dockerイメージ名として「kuromt/app1:v1」のDockerイメージが登録される。そして、Gitlab5では、Dockerイメージのビルドの完了を、コード管理連携部14を連携させてカタログ操作部12に通知する(S65,S66)。
管理装置1では、カタログ操作部12が、ビルドが完了したコードを保存するために、v1のタグでコードを保存するように、コード管理連携部14を連携させてGitlab5に依頼する(S67,S68)。
Gitlab5では、v1のタグでコードを保存する旨の依頼を受け付けると、v1のタグを生成し、app1プロジェクトのmasterブランチにあるDockerファイルとアプリケーションのソースコードをv1のタグで保存する(S69)。
続いて、管理装置1では、カタログ操作部12が、アプリケーション開発者からの登録依頼のパラメータを用いてカタログ定義を生成し、カタログ定義を登録する(S70)。例えば、カタログ操作部12は、登録を依頼したユーザ名、パラメータに含まれるカタログ名、バージョンから得られるDockerイメージの名前をカタログに設定する。カタログ操作部12は、パラメータに含まれる学習データのデータディレクトリおよびモデルのモデルディレクトリをカタログに設定する。そして、カタログ操作部12は、このカタログをカタログ情報22に登録する。なお、パラメータに環境変数やポート等の実行引数の情報が含まれている場合には、カタログ操作部12は、これらの情報もカタログに設定して、このカタログをカタログ情報22に登録する。つまり、カタログ操作部12は、分散ファイルシステム2上のapp1用の学習データとapp1用のモデルをマウントするapp1:v1コンテナの起動方法の定義をカタログとしてカタログ情報22に登録する。
[管理装置の用途]
図8は、実施例に係る管理装置の用途の一例を示す図である。図8では、株価予測に用いる場合を説明する。
図8に示すように、機械学習の知識を持つアプリケーションの開発者が、株価予測のモデルを作成したので、サービスとして公開する。すると、アプリケーションの開発者は、株価予測のモデルの登録を管理装置1に依頼する(S81)。すると、管理装置1のデータ操作部11は、登録依頼された株価予測のモデルをデータ格納部3´に登録する(S82)。加えて、データ操作部11は、登録されたモデルのデータ格納部3´上の具体的なデータのパスをデータ情報21に追加する。
そして、アプリケーションの開発者が、株価予測のWebAPI(appx)を株価予測のモデルのデータ(xxx)と紐付けた情報をカタログとして登録するように、管理装置1に依頼する(S83)。例えば、ユーザ名が「kuromt」のアプリケーション開発者は、「catalog_name=appx,version=v1,modeldir={mountdir=/model,path=xxx}」をパラメータとするカタログの登録依頼を管理装置1に送信する。
すると、管理装置1のカタログ操作部12は、登録依頼のパラメータを用いてカタログ定義を生成し、カタログ定義をカタログ情報22に登録する。
ここで、機械学習やDockerコンテナの知識を持たないユーザが、手持ちの株価データを使い、明日の株価を予測したいとする。すると、ユーザは、利用したいカタログ名と、バージョンを指定して、株価予測のサービスの起動を依頼する(S84)。例えば、ユーザは、カタログ名が「appx」であり、バージョンが「v1」であるサービスを利用する場合に、カタログ名として「appx」、バージョンとして「v1」、サービス名として「sss」のサービスの起動依頼を管理装置1に送信する。
すると、管理装置1のサービス操作部13は、カタログ情報22を参照して、カタログ名「appx」、バージョン「v1」に対するカタログを読み込む。サービス操作部13は、カタログに設定されたモデルの指定(path)を用いて、データ情報21から当該モデルのデータ格納部3´上の具体的なデータパスを読み込む。そして、サービス操作部13は、カタログの内容およびモデルの具体的なデータパスをパラメータとするコンテナの起動依頼を、実行環境4´に対して送信する(S85)。
実行環境4´では、Dockerが、株価予測のDockerイメージを用いて株価予測サービスのコンテナを起動する。そして、Dockerは、起動依頼のパラメータからモデルの指定(path)に対する、コンテナ内のマウントパスおよびデータ格納部3´上の具体的なデータパスを取得する。そして、Dockerは、取得したデータパスから株価予測モデルを取得し、取得したモデルを、コンテナ内のマウントパスにマウントする(S86)。
そして、ユーザは、実行環境4´に起動されたコンテナ上で動く株価予測のサービスを利用して、明日の株価を予測する(S87)。
このようにして、機械学習の詳細な知識を持たないユーザが、開発者のデータを使って、開発者が用意したコンテナの起動方法を知ることなく、自己のために機械学習をするためのサービスを立ち上げることができる。また、ユーザは、コンテナ上でデータのサイズが大きいサービスを動かす場合であっても、コンテナを起動する際に外部のストレージに保存されたデータをマウントするので、Dockerイメージに大規模なデータを埋め込まなくても良い。すなわち、ユーザは、コンテナの中に埋め込むデータ量の制限を気にしないで、コンテナを起動することができる。また、ユーザは、データの保存場所や利用するDockerイメージの組合せを意識しなくても、コンテナ上で動くサービスを利用することができる。
[実施例の効果]
実施例によると、管理装置1は、アプリケーションの実行環境が配置される領域を示すコンテナの起動方法を定義する際に、データ操作のインターフェースの定義に従って、アプリケーションが用いるデータを保存する。管理装置1は、アプリケーションの実行環境のイメージを保存する。管理装置1は、コンテナ操作のインターフェースの定義に従って、アプリケーションの実行環境のイメージの情報に、コンテナの中でアプリケーションが用いるデータのデータ情報を付加したコンテナの起動方法をカタログ情報22に登録する。かかる構成によれば、管理装置1は、コンテナの起動方法を登録することで、ユーザがデータの保存場所や利用するアプリケーションの実行環境のイメージの組合せを意識しなくても、コンテナでアプリケーションを利用することができる。
また、カタログ情報22は、アプリケーションの実行環境のイメージの名称、イメージのバージョン、データを保存した位置およびデータをマウントする位置を含む情報である。かかる構成によれば、管理装置1は、コンテナの起動方法をカタログとして登録することで、ユーザが、使用したいデータの保存場所や利用するアプリケーション実行環境イメージの組合せを意識しなくても、アプリケーションを利用することができる。
また、管理装置1は、サービス操作のインターフェースの定義に従って、カタログ情報22を参照し、コンテナの起動方法としてのカタログの識別情報および当該カタログのバージョンに対するコンテナを起動する、かかる構成によれば、管理装置1は、カタログの識別情報と当該カタログのバージョンを用いて、該当するコンテナを起動することで、ユーザが、使用したいデータの保存場所や利用するアプリケーション実行環境イメージの組合せを意識しなくても、アプリケーションを利用することができる。
また、管理装置1は、アプリケーションの開発者によって実施されるコンテナ操作のインターフェースの定義に従って、コンテナ操作に対応するカタログをカタログ情報22に登録する。管理装置1は、ユーザによって実施されるサービス操作のインターフェースの定義に従って、コンテナを起動する。かかる構成によれば、ユーザは、容易にアプリケーションを利用する環境を再現できる。
[その他]
なお、上記実施例では、ユーザが、カタログ名およびカタログのバージョンをパラメータとするサービスの立ち上げ依頼を管理装置1に送信すると説明した。そして、管理装置1では、サービス操作部13が、指定されたカタログ名およびカタログのバージョンに対するカタログを用いてDockerに対してコンテナの立ち上げを依頼する。しかしながら、ユーザは、これに限定されず、カタログ名およびカタログのバージョンの他、さらに、自身のデータの情報をパラメータとするサービスの立ち上げ依頼を管理装置1に送信しても良い。例えば、ユーザは、「catalog_name=app1,version=v1,name=myservice,datadir={mountdir=/yyy,path=datayyy}」をパラメータとするサービスの立ち上げ依頼を管理装置1に送信する。ここで、datadirには、自身のデータの情報が指定される。すなわち、datadirには、mountdirとして「/yyy」、pathとして「datayyy」が指定されている。すなわち、「datayyy」のデータは、コンテナ上のマウントディレクトリの「/yyy」にマウントされることが指定されている。なお、サービス名(name)は、ユーザによって任意に指定されれば良い。
また、上記実施例の管理装置1は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した制御部10および記憶部20などの各機能を搭載することによって実現することができる。
また、上記実施例では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、データ操作部11とカタログ操作部12とを統合しても良い。カタログ操作部12は、コード管理連携部14を利用する場合と、利用しない場合とに分散しても良い。記憶部20を管理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図2に示した管理装置1と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。図9は、操作制御プログラムを実行するコンピュータの一例を示す図である。
図9に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、操作制御プログラム205aおよび操作制御関連情報205bを記憶する。
CPU203は、操作制御プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、管理装置1の各機能部に対応する。操作制御関連情報205bは、データ情報21およびカタログ情報22に対応する。そして、例えばリムーバブルディスク211が、操作制御プログラム205a等の各情報を記憶する。
なお、操作制御プログラム205aについては、必ずしも最初からHDD(Hard Disk Drive)205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから操作制御プログラム205aを読み出して実行するようにしても良い。
1 管理装置
10 制御部
11 データ操作部
12 カタログ操作部
13 サービス操作部
14 コード管理連携部
20 記憶部
21 データ情報
22 カタログ情報

Claims (4)

  1. コンピュータが、
    所定のアプリケーションの実行環境が配置される領域を示すコンテナの起動方法を定義する際に、データ操作のインターフェースの定義に従って、前記アプリケーションが用いるデータをデータの保存場所に保存し、
    前記アプリケーションの実行環境だけのイメージをイメージの保存場所に保存し、
    コンテナ操作のインターフェースの定義に従って、前記アプリケーションの実行環境のイメージの情報に、前記コンテナの中で前記アプリケーションが用いるデータのデータ情報を付加した定義情報であって前記アプリケーションの実行環境のイメージの名称、前記イメージのバージョン、前記データを保存した保存場所および前記コンテナの中で前記データをマウントする場所を含む定義情報を、記憶部に登録
    前記イメージの名称および前記イメージのバージョンを受け付けると、前記記憶部から前記イメージの名称および前記イメージのバージョンに対応する前記定義情報を取得し、サービス操作のインターフェースの定義に従って、前記定義情報に基づいて、前記イメージのバージョンに対するコンテナを起動する
    処理を実行する
    処理を実行することを特徴とする操作制御方法。
  2. 前記記憶部に登録する処理は、アプリケーションの開発者によって実施されるコンテナ操作のインターフェースの定義に従って、前記コンテナ操作に対応する前記定義情報前記記憶部に登録し、
    前記コンテナを起動する処理は、ユーザによって実施されるサービス操作のインターフェースの定義に従って、前記コンテナを起動する
    ことを特徴とする請求項に記載の操作制御方法。
  3. 所定のアプリケーションの実行環境が配置される領域を示すコンテナの起動方法を定義する際に、データ操作のインターフェースの定義に従って、前記アプリケーションが用いるデータをデータの保存場所に保存する第1の操作部と、
    前記アプリケーションの実行環境だけのイメージをイメージの保存場所に保存する保存部と、
    コンテナ操作のインターフェースの定義に従って、前記アプリケーションの実行環境のイメージの情報に、前記コンテナの中で前記アプリケーションが用いるデータのデータ情報を付加した定義情報であって前記アプリケーションの実行環境のイメージの名称、前記イメージのバージョン、前記データを保存した保存場所および前記コンテナの中で前記データをマウントする場所を含む定義情報を、記憶部に登録する第2の操作部と、
    前記イメージの名称および前記イメージのバージョンを受け付けると、前記記憶部から前記イメージの名称および前記イメージのバージョンに対応する前記定義情報を取得し、サービス操作のインターフェースの定義に従って、前記定義情報に基づいて、前記イメージのバージョンに対するコンテナを起動する起動部と、
    を有することを特徴とする情報処理装置。
  4. 所定のアプリケーションの実行環境が配置される領域を示すコンテナの起動方法を定義する際に、データ操作のインターフェースの定義に従って、前記アプリケーションが用いるデータをデータの保存場所に保存し、
    前記アプリケーションの実行環境だけのイメージをイメージの保存場所に保存し、
    コンテナ操作のインターフェースの定義に従って、前記アプリケーションの実行環境のイメージの情報に、前記コンテナの中で前記アプリケーションが用いるデータのデータ情報を付加した定義情報であって前記アプリケーションの実行環境のイメージの名称、前記イメージのバージョン、前記データを保存した保存場所および前記コンテナの中で前記データをマウントする場所を含む定義情報を、記憶部に登録
    前記イメージの名称および前記イメージのバージョンを受け付けると、前記記憶部から前記イメージの名称および前記イメージのバージョンに対応する前記定義情報を取得し、サービス操作のインターフェースの定義に従って、前記定義情報に基づいて、前記イメージのバージョンに対するコンテナを起動する
    処理をコンピュータに実行させることを特徴とする操作制御プログラム。
JP2018045891A 2018-03-13 2018-03-13 操作制御方法、情報処理装置および操作制御プログラム Active JP7047497B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018045891A JP7047497B2 (ja) 2018-03-13 2018-03-13 操作制御方法、情報処理装置および操作制御プログラム
US16/278,835 US10810025B2 (en) 2018-03-13 2019-02-19 Operation control method, and apparatus for operation control, and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018045891A JP7047497B2 (ja) 2018-03-13 2018-03-13 操作制御方法、情報処理装置および操作制御プログラム

Publications (2)

Publication Number Publication Date
JP2019159825A JP2019159825A (ja) 2019-09-19
JP7047497B2 true JP7047497B2 (ja) 2022-04-05

Family

ID=67904513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018045891A Active JP7047497B2 (ja) 2018-03-13 2018-03-13 操作制御方法、情報処理装置および操作制御プログラム

Country Status (2)

Country Link
US (1) US10810025B2 (ja)
JP (1) JP7047497B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112114931B (zh) * 2019-06-21 2023-12-26 富联精密电子(天津)有限公司 深度学习程序配置方法、装置、电子设备及存储介质
JP7455601B2 (ja) * 2020-02-05 2024-03-26 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
US20230134535A1 (en) * 2020-04-16 2023-05-04 Nippon Telegraph And Telephone Corporation Information processing apparatus, information processing method, and information processing program
CN111596928B (zh) * 2020-05-19 2021-08-13 吉林大学 一种应用控制方法、装置及电子设备
CN111880832A (zh) * 2020-08-03 2020-11-03 上海嗨酷强供应链信息技术有限公司 一种基于docker容器化技术的镜像管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407154C (zh) 2004-04-29 2008-07-30 国际商业机器公司 在分布式网络体系结构中建模和动态部署服务的系统和方法
JP5227887B2 (ja) * 2009-05-21 2013-07-03 株式会社日立製作所 バックアップ管理方法
JP5487951B2 (ja) * 2009-12-22 2014-05-14 富士通株式会社 運用管理プログラム、運用管理装置および運用管理方法
JP6443059B2 (ja) 2015-01-13 2018-12-26 日本電気株式会社 情報処理装置、情報処理方法、および、プログラム
US10223074B2 (en) 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Adrian Mouat,Docker,株式会社オライリー・ジャパン,2017年02月07日,pp.19-84

Also Published As

Publication number Publication date
US20190286463A1 (en) 2019-09-19
US10810025B2 (en) 2020-10-20
JP2019159825A (ja) 2019-09-19

Similar Documents

Publication Publication Date Title
JP7047497B2 (ja) 操作制御方法、情報処理装置および操作制御プログラム
CN102460382B (zh) 标注虚拟应用进程
KR101031409B1 (ko) 동적으로 가상 머신을 생성하기 위한 방법, 제조물품 및 시스템
US11818224B2 (en) On demand resources
JP4592814B2 (ja) 情報処理装置
KR100671153B1 (ko) 디바이스 드라이버 설치방법
US9880824B2 (en) On demand resources
US20140149728A1 (en) Data driven hardware chips initialization via hardware procedure framework
KR20130069555A (ko) 가상 애플리케이션 확장 포인트
JP2011076605A (ja) 仮想マシン・イメージの実行方法及びシステム
US11675628B2 (en) Methods for operating storage driver in container environment and storage driver apparatuses
EP3719645B1 (en) Extension application mechanisms through intra-process operation systems
KR20120037381A (ko) 소프트웨어 컴포넌트 상태에 대한 접근 제어
CN107667343B (zh) 用于加载按需加载资源的系统和方法
US11573782B2 (en) Self updating agent
TW202238379A (zh) 組成模組化韌體的方法、裝置及電腦程式產品
US11748117B2 (en) Operating system partitioning of different users for single-user applications
US10922238B2 (en) Method for storing content, method for consulting content, method for managing content and content readers
Feiler et al. Understanding What SQLite Is
Subramanian From VMs to Containers
von Oven et al. Horizon Enterprise Edition
Bartlett A Docker Interactive Tutorial
Feasel et al. Installing and Configuring PolyBase
Both et al. Find the Simplicity
JP2021184208A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220307

R150 Certificate of patent or registration of utility model

Ref document number: 7047497

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150