(57)【特許請求の範囲】
【請求項１】
コンテナの実行に必要な情報であるイメージを管理する第１の手段と、
所定のバージョンのイメージに対応するコンテナの起動を依頼する第２の手段と、
前記第２の手段からの依頼に応じて、前記第１の手段が管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示する第３の手段と、
イメージの登録を依頼する、登録依頼手段と、
前記依頼されたイメージを前記第１の手段に登録する、登録手段と、
を備え、
前記登録依頼手段は、前記登録手段にイメージの登録を依頼する際、登録するイメージのバージョン情報を通知し、
前記登録手段は、前記第１の手段が要求するインターフェイスに適合するように、前記通知されたバージョン情報を前記登録するイメージを識別するための第１の情報に変換する、制御装置。
【請求項２】
前記第１の手段は、前記第１の情報に対応するイメージの登録が完了すると、前記第１の情報に応じた第２の情報を、前記登録したイメージの識別子として前記登録手段に通知する、請求項１の制御装置。
【請求項３】
前記登録手段は、前記第１の手段から通知された第２の情報を、前記登録依頼手段に通知する、請求項２の制御装置。
【請求項４】
前記登録依頼手段は、登録を依頼したイメージのバージョン情報と前記通知された第２の情報を対応付けて、イメージ管理情報を生成する、請求項３の制御装置。
【請求項５】
前記第２の手段は、前記第３の手段にコンテナの起動を依頼する際、前記イメージ管理情報を参照し、前記起動するコンテナのイメージに対応する第２の情報を前記第３の手段に通知する、請求項４の制御装置。
【請求項６】
前記第３の手段は、コンテナの作成をコンテナマネージャに指示する際、前記コンテナマネージャが要求するインターフェイスに適合するように、前記通知された第２の情報を変換する、請求項５の制御装置。
【請求項７】
仮想化環境下にて、ネットワークサービスを実現するＮＦＶＯ（NFV-Orchestrator）と、
仮想機能インスタンスのリソース管理と制御を行うＶＩＭ（Virtualized Infrastructure Manager）と、
コンテナの実行に必要な情報であるイメージを管理するリポジトリと、
を含む通信システムにおいて、
前記ＮＦＶＯが、登録するイメージのバージョン情報を通知して前記イメージの登録を前記ＶＩＭに依頼するステップと、
前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが要求するインターフェイスに適合するように、前記通知されたバージョン情報を前記登録するイメージを識別するための情報に変換して、前記依頼されたイメージを前記リポジトリに登録するステップと、
前記ＮＦＶＯが、所定のバージョンのイメージに対応するコンテナの起動を前記ＶＩＭに依頼するステップと、
前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示するステップと、
を含む、コンテナの起動方法。
【請求項８】
仮想化環境下にて、ネットワークサービスを実現するＮＦＶＯ（NFV-Orchestrator）と、
仮想機能インスタンスのリソース管理と制御を行うＶＩＭ（Virtualized Infrastructure Manager）と、
コンテナの実行に必要な情報であるイメージを管理するリポジトリと、
を含む制御装置に搭載されたコンピュータに実行させるプログラムであって、
前記ＮＦＶＯが、登録するイメージのバージョン情報を通知して前記イメージの登録を前記ＶＩＭに依頼する処理と、
前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが要求するインターフェイスに適合するように、前記通知されたバージョン情報を前記登録するイメージを識別するための情報に変換して、前記依頼されたイメージを前記リポジトリに登録する処理と、
前記ＮＦＶＯが、所定のバージョンのイメージに対応するコンテナの起動を前記ＶＩＭに依頼する処理と、
前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示する処理と、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、コンテナの起動方法及びプログラムに関する。特に、ネットワーク機能仮想化管理オーケストレーションに係る制御装置、コンテナの起動方法及びプログラムに関する。
【背景技術】
【０００２】
サーバ上のハイパーバイザ（ＨｙｐｅｒＶｉｓｏｒ：ＨＶ）等の仮想化レイヤ（Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｌａｙｅｒ）上に実装した仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）によりネットワーク機器等の機能をソフトウェア的に実現するＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）が知られている（例えば、非特許文献１参照）。【０００３】
図７は、仮想化環境のネットワーク構成の概略を示す図である。図７を参照すると、ＶＮＦ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ）２２はサーバ上の仮想マシン（ＶＭ）で動作するアプリケーション等に対応し、ネットワーク機能をソフトウェア的に実現する。ＶＮＦ２２ごとにＥＭ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅｒ：要素管理）２３（ＥＭＳ（Ｅｌｅｍｅｎｔ  Ｍａｎａｇｅ  Ｓｙｓｔｅｍ）ともいう）という管理機能が設けられる。【０００４】
ＮＦＶＩ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎｓ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）２１は、コンピューティング、ストレージ、ネットワーク機能等、物理マシン（Ｐｈｙｓｉｃａｌ  Ｍａｃｈｉｎｅ；ＰＭ）のハードウェア資源をハイパーバイザ等の仮想化レイヤで仮想化した仮想化コンピューティング、仮想化ストレージ、仮想化ネットワーク等の仮想化ハードウェア資源として柔軟に扱えるようにした基盤である。【０００５】
ＮＦＶ−ＭＡＮＯ（ＮＦＶ  Ｍａｎａｇｅｍｅｎｔ  ＆  Ｏｒｃｈｅｓｔｒａｔｉｏｎ）１０のＮＦＶオーケストレータ（ＮＦＶ  Ｏｒｃｈｅｓｔｒａｔｏｒ：ＮＦＶＯ）１１は、ＮＦＶＩ２１のリソースのオーケストレーション、及び、ネットワークサービス（Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ：ＮＳ）インスタンスのライフサイクル管理（ＮＳインスタンスのインスタンシエーション（Ｉｎｓｔａｎｔｉａｔｉｏｎ）、スケーリング（Ｓｃａｌｉｎｇ）、ターミネーション（Ｔｅｒｍｉｎａｔｉｏｎ）、更新（Ｕｐｄａｔｅ）等）を行う。【０００６】
ＶＮＦマネージャ（ＶＮＦ  Ｍａｎａｇｅｒ：ＶＮＦＭ）１２は、ＶＮＦインスタンスのライフサイクル管理（例えばインスタンシエーション（ｉｎｓｔａｎｔｉａｔｉｏｎ）、更新（ｕｐｄａｔｅ）、クエリ（ｑｕｅｒｙ）、スケーリング（ｓｃａｌｉｎｇ）、停止（ｔｅｒｍｉｎａｔｉｏｎ）等）およびイベント通知を行う。【０００７】
仮想化インフラストラクチャマネージャ（Ｖｉｒｔｕａｌｉｚｅｄ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  Ｍａｎａｇｅｒ：ＶＩＭ）１３は、ＮＦＶＩ２１のコンピューティング、ストレージ、ネットワークのリソース管理、ＮＦＶＩ２１の障害監視、ＮＦＶＩ２１のリソース監視等を行う。【０００８】
ＯＳＳ／ＢＳＳ３０のうちＯＳＳ（Ｏｐｅｒａｔｉｏｎｓ  Ｓｕｐｐｏｒｔ  Ｓｙｓｔｅｍｓ）は、例えば通信事業者（キャリア）がサービスを構築し、運営していくために必要なシステム（機器やソフトウェア、仕組みなど）を総称したものである。ＢＳＳ（Ｂｕｓｉｎｅｓｓ  Ｓｕｐｐｏｒｔ  ｓｙｓｔｅｍｓ）は、例えば通信事業者（キャリア）が利用料などの課金、請求、顧客対応などのために使う情報システム（機器やソフトウェア、仕組みなど）の総称である。【０００９】
図７に示すネットワークシステムでは、ＶＮＦ２２のインスタンシエーションに必要なイメージファイルはＶＩＭ１３が管理する。ＶＩＭ１３は、イメージファイルをＮＦＶＩ２１に提供することで、ＶＮＦ２２のインスタンシエーションを行う。仮想化環境のネットワークシステムでは、非特許文献１の「7.2.2 VNF software image management」に記載されたソフトウェアイメージ管理インターフェイス（VNF software image management interface）により、対象となるソフトウェアバージョンを指定できることが定められている。より具体的には、非特許文献１の「B.2.1 On-board VNF Package flow」の「Figure B.2: VNF Package on-boarding message flow」を参照すると、送信元からの要求に従い、ＮＦＶＯ１１が、ソフトウェアイメージ管理インターフェイスを用いて、ＶＩＭ１３にイメージファイルを提供している。なお、上記ソフトウェア管理インターフェイス（VNF software image management interface）は、非特許文献２の７．２章では、「Software Image Management Interface」と記載されている。【００１０】
上記図７を用いた説明は、物理マシン（ＰＭ）に搭載された仮想化機能（ハイパーバイザ）により仮想マシン（ＶＭ）を作り出す仮想化技術である。近年では、上記仮想マシン（ＶＭ）を用いた仮想化技術に加え、コンテナを用いた仮想化技術が注目されている。コンテナ型の仮想化技術では、コンテナごとにオペレーティングシステム（ＯＳ；Operating System）を必要とせず、物理マシン（ＰＭ）上でコンテナが利用可能になるまでの時間が短い等の様々な利点が存在する。【００１１】
コンテナ型の仮想化技術では、コンテナエンジンと呼ばれるソフトウェアが用いられる（物理マシン又は仮想マシンにコンテナエンジンがインストールされる）。近年では、アプリケーション（仮想サーバ）のイメージに関するスタック管理機能を備えたＤｏｃｋｅｒがオープンソースとして公開され、コンテナエンジンとして使用されることが多い。【００１２】
Ｄｏｃｋｅｒには、アプリケーションが導入された実行環境そのものを実行イメージとして管理する機能が備わっており、当該イメージを管理するＤｏｃｋｅｒリポジトリ（Ｄｏｃｋｅｒレジストリとも称される）の仕様が非特許文献３にて公開されている。【００１３】
また、ＯｐｅｎＳｔａｃｋにおいて、Ｄｏｃｋｅｒコンテナを扱えるようにするためのフレームワークが「Ｍａｇｎｕｍ」と称され検討されている。Ｍａｇｎｕｍは、ＯｐｅｎＳｔａｃｋによるＡＰＩ（Application Programming Interface）であり、Ｄｏｃｋｅｒによる仮想化環境をコマンドで構築し、操作することができる。【００１４】
例えば、図８を参照すると、Ｄｏｃｋｅｒにより、Ｄｏｃｋｅｒイメージを生成し、リポジトリ（Repository）に登録するためのコマンド（docker.build）や、Ｄｏｃｋｅｒイメージを起動するためのコマンド（magnum.pod-create）が提供される。なお、Ｍａｇｎｕｍによるインターフェイス等が、非特許文献４にて公開されている。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】ETSI GS NFV-MAN 001 V1.1.1 (2014-12)  Network Functions Virtualisation (NFV); Management and Orchestration （２０１６年６月１４日検索）＜http://www.etsi.org/deliver/etsi_gs/NFV-MAN/001_099/001/01.01.01_60/gs_NFV-MAN001v010101p.pdf＞
【非特許文献２】ETSI GS NFV-IFA 005 V2.1.1 (2016-04)  Network Functions Virtualisation (NFV); Management and Orchestration Or-Vi reference point - Interface and Information Model Specification （２０１６年６月１４日検索）＜http://www.etsi.org/deliver/etsi_gs/NFV-IFA/001_099/005/02.01.01_60/gs_nfv-ifa005v020101p.pdf＞
【非特許文献３】The Docker commands （２０１６年６月１４日検索）＜https://docs.docker.com/engine/reference/commandline/＞
【非特許文献４】Developer Quick-Start （２０１６年６月１４日検索）＜http://docs.openstack.org/developer/magnum/dev/dev-quickstart.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１６】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【００１７】
非特許文献１が想定する仮想機能インスタンス（ＶＮＦ、仮想サーバ）は、ハイパーバイザを用いた仮想マシン（ＶＭ）により実現されることを想定している。換言すれば、非特許文献１では、他の仮想化技術（Ｖｉｒｔｕａｌｉｚａｔｉｏｎ技術）の１つであるコンテナ型の仮想化技術は想定されていない。その結果、ＶＩＭには、コンテナを管理する機能が備わっておらず、コンテナ型の仮想化技術を用いることができない。【００１８】
より具体的には、非特許文献１に規定された仕様により実装されたＶＩＭは、コンテナを管理するために必要なイメージのスタック管理機能（リポジトリ管理）と、Ｄｏｃｋｅｒのａｌｌｏｃａｔｅ実行機能と、を備えていないので、コンテナ型の仮想化技術を用いることができない。つまり、非特許文献１には、ＶＩＭがハイパーバイザを用いて仮想マシン（ＶＭ）を構築するための手段が示されているが、ＶＩＭがコンテナを管理する機能が規定されていない。その結果、仮想化手段としてコンテナを用いることができないという問題が生じる。【００１９】
本発明は、仮想化手段としてのコンテナを使用可能とする、制御装置、コンテナの起動方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の第１の視点によれば、コンテナの実行に必要な情報であるイメージを管理する第１の手段と、所定のバージョンのイメージに対応するコンテナの起動を依頼する第２の手段と、前記第２の手段からの依頼に応じて、前記第１の手段が管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示する第３の手段と、を備える、制御装置が提供される。【００２１】
本発明の第２の視点によれば、仮想化環境下にて、ネットワークサービスを実現するＮＦＶＯ（NFV-Orchestrator）と、仮想機能インスタンスのリソース管理と制御を行うＶＩＭ（Virtualized Infrastructure Manager）と、コンテナの実行に必要な情報であるイメージを管理するリポジトリと、を含む通信システムにおいて、前記ＮＦＶＯが、所定のバージョンのイメージに対応するコンテナの起動を前記ＶＩＭに依頼するステップと、前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示するステップと、を含む、コンテナの起動方法が提供される。【００２２】
本発明の第３の視点によれば、仮想化環境下にて、ネットワークサービスを実現するＮＦＶＯ（NFV-Orchestrator）と、仮想機能インスタンスのリソース管理と制御を行うＶＩＭ（Virtualized Infrastructure Manager）と、コンテナの実行に必要な情報であるイメージを管理するリポジトリと、を含む制御装置に搭載されたコンピュータに実行させるプログラムであって、前記ＮＦＶＯが、所定のバージョンのイメージに対応するコンテナの起動を前記ＶＩＭに依頼する処理と、前記ＮＦＶＯからの依頼に応じて、前記ＶＩＭが、前記リポジトリが管理するイメージに基づき、前記所定のバージョンのイメージに対応するコンテナの作成を指示する処理と、を実行させる、プログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００２３】
本発明の各視点によれば、仮想化手段としてのコンテナを使用可能とすることに寄与する、制御装置、コンテナの起動方法及びプログラムが、提供される。
【図面の簡単な説明】
【００２４】
【図１】第１の実施形態に係る制御装置の構成の一例を示すブロック図である。
【図２】第１の実施形態に係る制御装置の動作の一例を示すフローチャートである。
【図３】第２の実施形態に係る通信システムの一構成例を示す図である。
【図４】第２の実施形態に係る制御装置のハードウェア構成の一例を示すブロック図である。
【図５】第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【図６】第３の実施形態に係る通信システムの一構成例を示す図である。
【図７】仮想化環境のネットワーク構成の概略を示す図である。
【図８】コンテナ型の仮想化技術を説明するための図である。
【発明を実施するための形態】
【００２５】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００２６】
図１は、第１の実施形態に係る制御装置１００の構成の一例を示すブロック図である。図１を参照すると、制御装置１００は、コンテナイメージを管理する第１の手段１０１と、ＮＦＶＯのサブモジュールである第２の手段１０２と、ＶＩＭのサブモジュールである第３の手段１０３と、を備える。
【００２７】
第１の手段１０１は、コンテナの実行に必要な情報であるイメージを管理する。第１の手段１０１は、例えば、当該イメージを管理するリポジトリである。
【００２８】
第２の手段１０２は、コンテナの起動を第３の手段１０３に依頼する。具体的には、第２の手段１０２は、所定のバージョンのイメージに対応するコンテナの起動を第３の手段１０３に依頼する。
【００２９】
第３の手段１０３は、第２の手段１０２からの依頼に応じて、第１の手段１０１が管理するイメージに基づき、所定のバージョンのイメージに対応するコンテナの作成を、例えば、コンテナマネージャに指示する。
【００３０】
上記制御装置１００の動作は、図２に示すフローチャートのとおりとなる。
【００３１】
初めに、コンテナの実行に必要なイメージが用意される。用意されたイメージは、第１の手段１０１に登録され、管理される（ステップＳ０１）。
【００３２】
次に、第２の手段１０２が、所定のバージョンのイメージに対応するコンテナの起動を第３の手段１０３に依頼する（ステップＳ０２）。
【００３３】
最後に、第３の手段１０３が、第２の手段１０２からの依頼に応じて、第１の手段１０１が管理するイメージに基づき、所定のバージョンのイメージに対応するコンテナの作成を、例えば、コンテナマネージャに指示する（ステップＳ０３）。
【００３４】
以上のように、第１の実施形態に係る制御装置１００は、コンテナを管理するために必要なイメージのスタック管理機能（リポジトリ管理機能；第１の手段１０１）と、Ｄｏｃｋｅｒの割り当て実行機能（ａｌｌｏｃａｔｅ実行機能；第３の手段１０３）と、を備える。その結果、第１の実施形態に係る制御装置１００は、ＶＩＭにおいて仮想化手段としてのコンテナを使用することを可能とする。
【００３５】
［第２の実施形態］
第２の実施形態について、図面を用いてより詳細に説明する。
【００３６】
図３は、第２の実施形態に係る通信システムの一構成例を示す図である。図３を参照すると、通信システムは、制御装置１０と、Ｄｏｃｋｅｒサーバ１５と、物理マシン１６と、を含む。
【００３７】
制御装置１０は、ネットワーク機能仮想化管理オーケストレーション装置（ＮＦＶ−ＭＡＮＯ）である。
【００３８】
Ｄｏｃｋｅｒサーバ１５は、Ｍａｇｎｕｍ２２１が実装されたサーバである。
【００３９】
物理マシン１６には、Ｄｏｃｋｅｒ２３１が実装されている。Ｄｏｃｋｅｒ２３１は、Ｍａｇｎｕｍ２２１からの指示に基づき、コンテナを起動しコンテナ内でアプリケーションを実行することで、仮想機能インスタンス（ＶＮＦ、仮想サーバ）を提供する。
【００４０】
制御装置１０は、ＮＦＶオーケストレータ（ＮＦＶＯ）１１と、ＶＮＦマネージャ（ＶＮＦＭ）１２と、仮想化インフラストラクチャマネージャ（ＶＩＭ）１３と、リポジトリ１４と、を含んで構成される。
【００４１】
リポジトリ１４は、物理マシン１６のＤｏｃｋｅｒ２３１にて使用されるコンテナイメージを管理するＤｏｃｋｅｒリポジトリである。リポジトリ１４は、上述の第１の手段１０１に相当する。
【００４２】
ＮＦＶＯ１１は、仮想化環境下にて、ネットワークサービスを実現する。ＮＦＶＯ１１は、ネットワークサービス（Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ：ＮＳ）インスタンスのライフサイクル管理等を行う。ＮＦＶＯ１１は、イメージ登録依頼部２０１と、コンテナ起動依頼部２０２と、を含む。
【００４３】
イメージ登録依頼部２０１は、コンテナイメージをリポジトリ１４に登録するようにＶＩＭ１３に依頼する機能を備える。より具体的には、イメージ登録依頼部２０１は、非特許文献１に規定された上述のソフトウェアイメージ管理インターフェイスを用いて、コンテナイメージをリポジトリ１４に登録するようにＶＩＭ１３に依頼する。その際、イメージ登録依頼部２０１は、コンテナイメージのバージョンを指定して、コンテナイメージの登録をＶＩＭ１３に依頼する。また、イメージ登録依頼部２０１は、ＶＩＭ１３から取得するコンテナイメージの識別子（ＩＤ；Identifier）とバージョン情報を対応付けて、イメージ管理情報を生成し、記憶する。なお、イメージ管理情報は、コンテナ起動依頼部２０２が参照可能に構成される。
【００４４】
コンテナ起動依頼部２０２は、所定のバージョンのイメージに対応するコンテナの起動を、ＶＩＭ１３に依頼する機能を備える。より具体的には、コンテナ起動依頼部２０２は、イメージ登録依頼部２０１が記憶したイメージ管理情報（コンテナイメージのバージョン情報と識別子の対応関係）に基づき、起動するコンテナのバージョンに対応するイメージの識別子（ＩＤ）を特定する。
【００４５】
コンテナ起動依頼部２０２は、当該特定した識別子（ＩＤ）によりコンテナイメージを指定し、コンテナの起動をＶＩＭ１３に依頼する。その際、コンテナ起動依頼部２０２は、非特許文献１の「7.3.3 Virtualised resources management」に規定された仮想化リソース管理インターフェイス（Virtualised Resources Management Interface）を用いて、コンテナの起動をＶＩＭ１３に依頼する。コンテナ起動依頼部２０２は、上述の第２の手段１０２に相当する。なお、上記仮想化リソース管理インターフェイス（Virtualised Resources Management Interface）は、非特許文献２の７．３．１章では、「Virtualised Compute Resources Management Interface」と記載されている。
【００４６】
ＶＮＦＭ１２は、仮想機能インスタンスのライフサイクル管理等を行う。
【００４７】
ＶＩＭ１３は、仮想機能インスタンスのリソース管理と制御を行う。ＶＩＭ１３は、イメージ登録部２１１と、コンテナ起動部２１２と、を含む。
【００４８】
イメージ登録部２１１は、ＮＦＶＯ１１からのコンテナイメージ登録依頼を処理する手段である。イメージ登録部２１１は、コンテナイメージのバージョン情報を含む上記登録依頼を取得すると、当該バージョン情報を、Ｄｏｃｋｅｒのリポジトリ管理のインターフェイスに適合する情報に変換する。具体的には、イメージ登録部２１１は、コンテナイメージのバージョン情報をＴａｇ情報（Ｔａｇとも称する）に変換する。
【００４９】
その後、イメージ登録部２１１は、Ｔａｇを指定し、当該Ｔａｇを登録するようにリポジトリ１４に依頼する。具体的には、イメージ登録部２１１は、Ｔａｇを指定し、Ｄｏｃｋｅｒイメージを登録するためのコマンド（docker.build）をリポジトリ１４に発行する。
【００５０】
このように、イメージ登録部２１１は、コンテナイメージのＴａｇ情報を登録するコンテナイメージと対応付けて管理するようにリポジトリ１４に指示する。
【００５１】
リポジトリ１４は、上記イメージ登録部２１１からの要求を処理すると、登録したＴａｇに対応する識別子（ＩＤ）をイメージ登録部２１１に通知する。
【００５２】
その後、イメージ登録部２１１は、コンテナイメージの登録が完了した旨をＮＦＶＯ１１に応答する。その際、イメージ登録部２１１は、リポジトリ１４から通知された上記識別子（ＩＤ）も併せてＮＦＶＯ１１に通知する。さらに、イメージ登録部２１１は、リポジトリ１４に通知したＴａｇ情報と、リポジトリから通知された識別子（ＩＤ）と、を対応付けて記憶する。当該記憶された対応関係は、コンテナ起動部２１２により参照可能に構成される。
【００５３】
コンテナ起動部２１２は、コンテナ起動依頼部２０２からの依頼に基づき、所定のバージョンのイメージに対応するコンテナの作成を、Ｍａｇｎｕｍ２２１に指示する。コンテナ起動部２１２は、上述の第３の手段１０３に相当する。
【００５４】
具体的には、コンテナ起動部２１２は、コンテナ起動依頼部２０２から取得した識別子（ＩＤ）を、Ｍａｇｎｕｍ２２１のインターフェイスに適合するように変換する。具体的には、コンテナ起動部２１２は、上記識別子（ＩＤ）を、ＪＳＯＮ（JavaScript （登録商標） Object Notation）形式のＴａｇに変換する。その後、コンテナ起動部２１２は、コンテナを起動するためのコマンド（magnum.pod-create）において、起動するコンテナイメージに対応するＴａｇを指定し、コンテナの起動をＭａｇｎｕｍ２２１に指示する。
【００５５】
次に、通信システムをなす各装置のハードウェアついて説明する。
【００５６】
図４は、第２の実施形態に係る制御装置１０のハードウェア構成の一例を示すブロック図である。制御装置１０は、情報処理装置（コンピュータ）により構成可能であり、図４に例示する構成を備える。例えば、制御装置１０は、内部バスにより相互に接続される、ＣＰＵ（Central Processing Unit）４１、メモリ４２、入出力インターフェイス４３及び通信手段であるＮＩＣ（Network Interface Card）４４等を備える。
【００５７】
なお、図４に示す構成は、制御装置１０のハードウェア構成を限定する趣旨ではない。制御装置１０は、図示しないハードウェアを含んでもよい。あるいは、制御装置１０に含まれるＣＰＵ等の数も図４の例示に限定する趣旨ではなく、例えば、複数のＣＰＵが制御装置１０に含まれていてもよい。
【００５８】
メモリ４２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）である。
【００５９】
入出力インターフェイス４３は、図示しない表示装置や入力装置のインターフェイスとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
【００６０】
なお、上記制御装置１０の各処理モジュールは、例えば、メモリ４２に格納されたプログラムをＣＰＵ４１が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段があればよい。
【００６１】
図３に図示するＤｏｃｋｅｒサーバ１５及び物理マシン１６のハードウェア構成も上記制御装置１０の構成と基本的に同じであり、当業者にとって明らかなものであるため、その説明を省略する。
【００６２】
次に、第２の実施形態に係る通信システムの動作について説明する。
【００６３】
図５は、第２の実施形態に係る通信システムの動作の一例を示すシーケンス図である。
【００６４】
ＯＳＳ等からコンテナイメージの登録に係る要求を受け付けたＮＦＶＯ１１は、コンテナイメージをＶＩＭ１３に提供する。具体的には、ＮＦＶＯ１１は、バージョンを指定しつつ、当該バージョンに対応するイメージの登録をＶＩＭ１３に依頼する（ステップＳ１０１）。
【００６５】
ＶＩＭ１３は、ＮＦＶＯ１１から指定されたバージョン情報を、Ｄｏｃｋｅｒリポジトリにおけるリポジトリ管理のインターフェイス（docker.buildコマンド）に適合するＴａｇ情報（Ｔａｇ）に変換する（ステップＳ１０２）。
【００６６】
ＶＩＭ１３は、コンテナイメージをリポジトリ１４に提供しつつ、上記バージョン情報（バージョン文字列）が変換されたＴａｇによるコンテナイメージの登録をリポジトリ１４に対して要求する（ステップＳ１０３）。
【００６７】
リポジトリ１４は、当該要求を処理し、コンテナイメージを登録する。リポジトリ１４は、コンテナイメージの登録が完了すると、その旨及び登録したＴａｇに対応する識別子（ＩＤ）をＶＩＭ１３に応答する（ステップＳ１０４）。
【００６８】
ＶＩＭ１３は、リポジトリ１４にコンテナイメージの登録が完了した旨を、ＮＦＶＯ１１に応答する（ステップＳ１０５）。その際、ＶＩＭ１３は、上記識別子（ＩＤ）をＮＦＶＯ１１に通知する。
【００６９】
その後、ＮＦＶ Ｏ１１は、コンテナイメージのバージョン情報と当該バージョン情報に対応する識別子（ＩＤ）を対応付けてイメージ管理情報を生成し、記憶する（ステップＳ１０６）。
【００７０】
上記ステップＳ１０１〜Ｓ１０６の処理により、コンテナイメージをリポジトリ１４に登録する処理が完了する。
【００７１】
次に、コンテナを起動する際の動作について説明する。
【００７２】
ＯＳＳ等からコンテナの起動に係る要求を受け付けたＮＦＶＯ１１は、バージョンを指定しつつ、当該バージョンに対応するイメージのコンテナを起動することを、ＶＩＭ１３に依頼する（ステップＳ２０１）。具体的には、ＮＦＶＯ１１は、上記ステップＳ１０６にて生成したイメージ管理情報を参照し、起動しようとするコンテナのバージョンに対応するイメージの識別子（ＩＤ）を特定する。ＮＦＶＯ１１は、特定した識別子（ＩＤ）を用いて、コンテナの起動をＶＩＭ１３に要求する。
【００７３】
ＶＩＭ１３は、ＮＦＶＯ１１からの要求に応じて、Ｍａｇｎｕｍ２２１のインターフェイスに適合するように、指定された識別子（ＩＤ）を変換する（ステップＳ２０２）。
【００７４】
その後、ＶＩＭ１３は、Ｍａｇｎｕｍ２２１のインターフェイスを用いて、コンテナの起動をＭａｎｇｕｍ２２１に指示する（ステップＳ２０３）。その際、ＶＩＭ１３は、上記識別子（ＩＤ）を変換したＴａｇを指定し、所定のコマンド（magnum.pod-create）をＭａｇｎｕｍ２２１に発行する。上記コマンドによりＭａｎｇｕｍ２２１が動作し、指定されたＴａｇに対応するコンテナイメージがリポジトリ１４から引き出され、所望のコンテナが起動する。
【００７５】
コンテナの起動が完了すると、Ｍａｇｎｕｍ２２１から肯定応答（ＡＣＫ；ACKnowledgement）がＶＩＭ１３に送信され（ステップＳ２０４）、ＶＩＭ１３からＮＦＶＯ１１に対し、コンテナ起動依頼に対する肯定応答が送信される（ステップＳ２０５）。
【００７６】
上記ステップＳ２０１〜Ｓ２０５の処理により、物理マシン１６にコンテナを起動する処理が完了する。
【００７７】
以上のように、第２の実施形態に係る制御装置１０は、Ｄｏｃｋｅｒリポジトリ（リポジトリ１４）やＭａｇｎｕｍ２２１が要求するインターフェイスに適合するように、バージョン情報や識別子（ＩＤ）を変換する。その結果、仮想化手段してのコンテナが使用可能となる。即ち、制御装置１０は、Ｄｏｃｋｅｒリポジトリのイメージスタック管理機能と連携し、非特許文献１等で定められているソフトウェアイメージ管理インターフェイスに従い、対象となるソフトウェアバージョンを指定してコンテナを起動することを可能とする。
【００７８】
［第３の実施形態］
第３の実施形態について、図面を用いてより詳細に説明する。
【００７９】
上記第２の実施形態では、コンテナマネージャとしてＭａｇｎｕｍを利用すること、コンテナエンジンとしてＤｏｃｋｅｒを利用することを説明した。しかし、これらは例示であって、コンテナマネージャやコンテナエンジンを限定する趣旨ではない。
【００８０】
図６に示すように、他の汎用的なソフトウェア、フレームワークを用いることが可能である。この場合、制御装置１０は、リポジトリ１４にコンテナイメージを登録する際やコンテナを起動する際には、コンテナマネージャ２２１ａ等のインターフェイスに適合するように、バージョン情報、識別子（ＩＤ）を変換すればよい。
【００８１】
具体的には、イメージ登録部２１１は、コンテナエンジン２３１ａのリポジトリであるリポジトリ１４が要求するインターフェイスに適合するように、イメージ登録依頼部２０１から通知されたバージョン情報を登録するコンテナイメージを識別するための第１の情報に変換する。リポジトリ１４は、当該第１の情報に対応するイメージの登録が完了すると、第１の情報に応じた第２の情報を登録したイメージの識別子としてイメージ登録部２１１に通知する。当該第２の情報は、イメージ登録依頼部２０１に転送され、イメージ管理情報として、バージョン情報と対応付けられて管理される。コンテナ起動依頼部２０２は、コンテナ起動部２１２にコンテナの起動を依頼する際、イメージ管理情報を参照し、起動するコンテナのイメージに対応する第２の情報をコンテナ起動部２１２に通知する。コンテナ起動部２１２は、第２の情報を第１の情報に変換し、当該変換した情報をコンテナマネージャ２２１ａに通知し、コンテナの起動を指示する。
【００８２】
第３の実施形態によれば、汎用的なコンテナエンジン、コンテナマネージャが使用されたとしても、仮想化手段してのコンテナが使用可能となる。
【００８３】
上記第１〜第３の実施形態にて説明した通信システムの構成及び動作は例示であって、種々の変形が可能である。
【００８４】
例えば、図３に示す通信システムでは、リポジトリ１４がＶＩＭ１３に直接接続されている例を示したが、リポジトリ１４はＤｏｃｋｅｒサーバ１５の内部に配置されていてもよい。あるいは、Ｄｏｃｋｅｒサーバ１５に実装されたＭａｇｎｕｍ２２１は、制御装置１０と同一のサーバに実装されていてもよい。
【００８５】
上記実施形態では、ＮＦＶＯ１１とＶＩＭ１３の間の情報交換により、コンテナイメージの登録とコンテナを起動する場合を説明したが、ＶＮＦＭ１２を経由して、上記機能が実現されてもよい。
【００８６】
また、上記実施形態では、コンテナ内で実行されるアプリケーションを仮想機能インスタンス（ＶＮＦ；仮想サーバ）とする場合を説明したが、ＶＩＭ１３は、仮想マシン（ＶＭ）上で実現されるＶＮＦのリソースを管理してもよい。この場合には、ＶＩＭ１３は、コンテナイメージを登録するリポジトリ１４と、仮想マシン（ＶＭ）のイメージを登録するリポジトリ（図３等に図示せず）と、を管理する。
【００８７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
上述の第１の視点に係る制御装置のとおりである。
［付記２］
イメージの登録を依頼する、登録依頼手段と、
前記依頼されたイメージを前記第１の手段に登録する、登録手段と、
をさらに備える、付記１の制御装置。
［付記３］
前記登録依頼手段は、前記登録手段にイメージの登録を依頼する際、登録するイメージのバージョン情報を通知し、
前記登録手段は、前記第１の手段が要求するインターフェイスに適合するように、前記通知されたバージョン情報を前記登録するイメージを識別するための第１の情報に変換する、付記２の制御装置。
［付記４］
前記第１の手段は、前記第１の情報に対応するイメージの登録が完了すると、前記第１の情報に応じた第２の情報を、前記登録したイメージの識別子として前記登録手段に通知する、付記３の制御装置。
［付記５］
前記登録手段は、前記第１の手段から通知された第２の情報を、前記登録依頼手段に通知する、付記４の制御装置。  
［付記６］
前記登録依頼手段は、登録を依頼したイメージのバージョン情報と前記通知された第２の情報を対応付けて、イメージ管理情報を生成する、付記５の制御装置。
［付記７］
前記第２の手段は、前記第３の手段にコンテナの起動を依頼する際、前記イメージ管理情報を参照し、前記起動するコンテナのイメージに対応する第２の情報を前記第３の手段に通知する、付記６の制御装置。
［付記８］
前記第３の手段は、コンテナの作成をコンテナマネージャに指示する際、前記コンテナマネージャが要求するインターフェイスに適合するように、前記通知された第２の情報を変換する、付記７の制御装置。
［付記９］
上述の第２の視点に係るコンテナの起動方法のとおりである。
［付記１０］
上述の第３の視点に係るプログラムのとおりである。
なお、付記９の形態及び付記１０の形態は、付記１の形態と同様に、付記２の形態〜付記８の形態に展開することが可能である。
【００８８】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００８９】
１０、１００  制御装置
１１  ＮＦＶＯ
１２  ＶＮＦＭ
１３  ＶＩＭ
１４  リポジトリ
１５  Ｄｏｃｋｅｒサーバ
１６  物理マシン
２１  ＮＦＶＩ
２２  ＶＮＦ
２３  ＥＭＳ
３０  ＯＳＳ／ＢＳＳ
４１  ＣＰＵ
４２  メモリ
４３  入出力インターフェイス
４４  ＮＩＣ
１０１  第１の手段
１０２  第２の手段
１０３  第３の手段
２０１  イメージ登録依頼部
２０２  コンテナ起動依頼部
２１１  イメージ登録部
２１２  コンテナ起動部
２２１  Ｍａｇｎｕｍ
２２１ａ  コンテナマネージャ
２３１  Ｄｏｃｋｅｒ
２３１ａ  コンテナエンジン
【図１】
0006763429.tif 000002
【図２】
0006763429.tif 000003
【図３】
0006763429.tif 000004
【図４】
0006763429.tif 000005
【図５】
0006763429.tif 000006
【図６】
0006763429.tif 000007
【図７】
0006763429.tif 000008
【図８】
0006763429.tif 000009