(57)【要約】【課題】更新されたコンテナイメージに関するデータ配信時の送信容量を低減する。【解決手段】配信データ作成サーバ３は、複数のレイヤで構成されるコンテナイメージのうち更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する更新部分探索部３３２と、更新部分探索部３３２によって探索された更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成するバイナリパッチファイル作成部３３３と、を有する。【選択図】図２
2019028635.tif 000002
【特許請求の範囲】
【請求項１】
複数のレイヤで構成されるコンテナイメージのうち更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する更新部分探索部と、
前記更新部分探索部によって探索された前記更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する作成部と、
を有することを特徴とする配信データ作成装置。
【請求項２】
各コンテナイメージをそれぞれハッシュ化したハッシュ値と、各コンテナイメージに対応するバイナリパッチファイルと、を対応付けて記憶する記憶部と、
コンテナイメージの配信時に、配信先が有するコンテナイメージをハッシュ化した値を取得し、前記記憶部が記憶するハッシュ値のうち、取得したハッシュ値に一致するハッシュ値があった場合に、該ハッシュ値に対応するバイナリパッチファイルを配信先に送信する管理部と、
をさらに有することを特徴とする請求項１に記載の配信データ作成装置。
【請求項３】
前記記憶部は、各コンテナイメージを構成する各レイヤの特徴をそれぞれ表す値と、各レイヤの識別情報とを対応付けて記憶し、
前記更新部分探索部は、前記更新されたコンテナイメージの各レイヤについて特徴を表す値をそれぞれ取得し、前記記憶部が記憶する前記特徴を表す値のうち、取得した前記特徴を表す値と異なる値に対応するレイヤを前記更新レイヤとして探索することを特徴とする請求項２に記載の配信データ作成装置。
【請求項４】
配信データ作成装置が実行する配信データ作成方法であって、
複数のレイヤで構成されるコンテナイメージのうち更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する工程と、
前記探索する工程において探索された前記更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する工程と、
を含んだことを特徴とする配信データ作成方法。
【請求項５】
複数のレイヤで構成されるコンテナイメージのうち更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索するステップと、
前記探索するステップにおいて探索された前記更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成するステップと、
をコンピュータに実行させるための配信データ作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信データ作成装置、配信データ作成方法及び配信データ作成プログラムに関する。
【背景技術】
【０００２】
エッジアーキテクチャにおいてエッジの端末と、複数のレイヤによって構成されるコンテナイメージを管理する配信サーバ（例えばクラウド）とをつなぐネットワーク（ＮＷ）は、貧弱であることが多い。このため、ＮＷを有効活用するために、配信効率の良い転送手法が求められている。
【０００３】
そこで、従来、レイヤごとに配信管理を行い、変更があったレイヤのみ転送することで配信負荷を削減する方法が提案されている（例えば、非特許文献１参照）。この方法によれば、コンテナイメージを更新し、別のサーバへと転送する場合に、更新されたレイヤのみを転送することによって、配信時の送信容量を抑えることができる。
【０００４】
また、従来、コンテナイメージ全体を一つのバイナリファイルとして見たときに、更新前のファイルと更新後のファイルとのバイナリの差分のみを転送することで配信負荷を削減する方法が提案されている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】About  images,  containers,  and  storage  drivers，［平成２９年７月２０日検索］，インターネット＜ＵＲＬ：https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#sharing-promotes-smaller-images＞
【非特許文献２】清原  良三，栗原  まり子，三井  聡，古宮  章裕，  “組込み  SW  の特性に基づいたバージョン間差分抽出方式”，  情報処理学会研究報告高度交通システム  (ITS)  2004.114  (2004-ITS-019)  (2004):  P9-16.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の変更があったレイヤのみ転送する方法では、レイヤの容量が大きい場合、イメージの更新ごとに膨大な通信が発生してしまうという問題がある。また、コンテナイメージの各レイヤは、バイナリファイルとしてまとめられているため、従来の差分のみを転送する方法では、レイヤ内での差分を求めるために、バイナリ差分配信を行う必要があり大きなコストがかかるという問題がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、更新されたコンテナイメージに関するデータ配信時の送信容量を低減する配信データ作成装置、配信データ作成方法及び配信データ作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係る配信データ作成装置は、複数のレイヤで構成されるコンテナイメージのうち更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する更新部分探索部と、更新部分探索部によって探索された更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する作成部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、更新されたコンテナイメージに関するデータ配信時の送信容量を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係る配信システムの構成の一例を示す図である。
【図２】図２は、図１に示す配信データ作成サーバの構成の一例を示す図である。
【図３】図３は、図２に示すレイヤ対応テーブルのデータ構成の一例を示す図である。
【図４】図４は、図２に示すパッチファイル対応テーブルのデータ構成の一例を示す図である。
【図５】図５は、図１に示す配信データ作成サーバがコンテナイメージを受信した際の処理手順を示すシーケンス図である。
【図６】図６は、図２に示す配信データ作成サーバがコンテナイメージを配信する際の処理手順を示すシーケンス図である。
【図７】図７は、プログラムが実行されることにより、配信データ作成サーバが実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１２】
［実施の形態］
［配信システムの概要］
まず、図１を用いて、実施の形態に係る配信システムの構成について説明する。図１は、実施の形態に係る配信システムの構成の一例を示す図である。
【００１３】
図１に示すように、配信システム１は、コンテナイメージ作成サーバ２、配信データ作成サーバ３及び複数のエッジ装置４が、ネットワークＮを介して接続する構成を有する。なお、図１に示すエッジ装置４の数は、あくまで一例である。
【００１４】
配信システム１は、エッジコンピューティングにおいて、アプリケーションの基となるコンテナイメージを各エッジ装置４に配信するシステムである。コンテナイメージは、複数のレイヤによって構成される。
【００１５】
コンテナイメージ作成サーバ２は、例えば、データセンタ等に設けられたサーバ装置である。コンテナイメージ作成サーバ２は、技術者による操作を受け付けることによって、各アプリケーションに対応するコンテナイメージを作成、更新する。コンテナイメージ作成サーバ２は、作成、更新されたコンテナイメージと、該コンテナイメージをハッシュ化した値と、コンテナイメージのバージョン情報とを、配信データ作成サーバ３に送信する。
【００１６】
配信データ作成サーバ３は、コンテナイメージの配信のために必要なデータを作成し、該作成したデータを、コンテナイメージの配信先（例えば、エッジ装置４）に送信するサーバ装置である。配信データ作成サーバ３は、例えば、クラウドサーバであってもよい。この配信データ作成サーバ３は、更新されたコンテナイメージと、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する。
【００１７】
この際、配信データ作成サーバ３は、更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行う。そして、配信データ作成サーバ３は、該探索した更新レイヤ内の変更部分を探索する。配信データ作成サーバ３は、探索した更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する。なお、配信データ作成サーバ３は、送信対象のコンテナイメージが新たに作成されたものである場合には、コンテナイメージを配信先に送信する。
【００１８】
エッジ装置４は、例えば、アプリケーションを使用するサーバ装置、パーソナルコンピュータ、スマートフォン等の情報端末である。エッジ装置４は、使用するアプリケーションについて、コンテナイメージ作成サーバ２からバージョンアップの情報を受けた場合に、配信データ作成サーバ３に、このアプリケーションのコンテナイメージの送信要求を行う。この際、エッジ装置４は、コンテナイメージの送信要求とともに、要求するコンテナイメージをハッシュ化した値を、配信データ作成サーバ３に送信する。
【００１９】
ネットワークＮは、例えば、有線又は無線のＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）及びＶＰＮ（Virtual  Private  Network）等の任意の種類のネットワークである。
【００２０】
［配信データ作成サーバの構成］
次に、配信データ作成サーバ３の構成について説明する。図２は、図１に示す配信データ作成サーバ３の構成の一例を示す図である。配信データ作成サーバ３は、図１に示すように、通信部３１、記憶部３２及び制御部３３を有する。
【００２１】
通信部３１は、ネットワークＮ等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部３１は、例えば、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮやインターネットなどの電気通信回線を介した他の装置と制御部３３（後述）との間の通信を行う。
【００２２】
例えば、通信部３１は、ネットワークＮを介して、コンテナイメージ作成サーバ２から、作成、更新されたコンテナイメージと、該コンテナイメージをハッシュ化した値と、コンテナイメージのバージョン情報とを受信する。通信部３１は、ネットワークＮを介して、エッジ装置４から、コンテナイメージの送信要求と、要求するコンテナイメージをハッシュ化した値と、を受信する。そして、通信部３１は、制御部３３が作成したバイナリパッチファイル、或いは、コンテナイメージを、配信先のエッジ装置４に送信する。
【００２３】
記憶部３２は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、配信データ作成サーバ３を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部３２は、コンテナイメージ群３２１、パッチファイル群３２２、レイヤ対応テーブル３２３及びパッチファイル対応テーブル３２４を記憶する。
【００２４】
コンテナイメージ群３２１は、コンテナイメージ作成サーバ２が作成した各コンテナイメージである。パッチファイル群３２２は、更新された各コンテナイメージについて、制御部３３（後述）が作成した各バイナリパッチファイルである。
【００２５】
レイヤ対応テーブル３２３は、各コンテナイメージを構成する各レイヤの特徴をそれぞれ表す値と、各レイヤの識別情報とを対応付けたテーブルデータである。各レイヤの特徴をそれぞれ表す値は、例えば、各レイヤを所定のハッシュ関数を用いてハッシュ化したハッシュ値である。このレイヤ対応テーブル３２３は、更新部分探索部３３２（後述）による更新レイヤの探索の際に参照される。なお、各レイヤのハッシュ値は、コンテナイメージ作成サーバ２が計算し、配信データ作成サーバ３にコンテナイメージとともに送信したものである。或いは、各レイヤのハッシュ値は、コンテナイメージ作成サーバ２から受信したコンテナイメージから、配信データ作成サーバ３が計算したものであってもよい。
【００２６】
図３は、図２に示すレイヤ対応テーブル３２３のデータ構成の一例を示す図である。図３に示すように、レイヤ対応テーブル３２３は、各コンテナイメージの識別情報、それぞれのコンテナイメージを構成する各レイヤの識別情報及び各レイヤのハッシュ値が登録される。図３の例では、コンテナイメージ「Ａ」については、レイヤ「Ｌａ１」，「Ｌａ２」が、コンテナイメージ「Ａ」を構成するレイヤとして登録される。そして、図３の例では、このレイヤ「Ｌａ１」，「Ｌａ２」に対応するハッシュ値として、「Ｈ（Ｌａ１）」，「Ｈ（Ｌａ２）」が登録される。なお、コンテナイメージの更新に伴い、内容が更新されたレイヤについては、該更新に応じて、対応するハッシュ値も変更される。
【００２７】
パッチファイル対応テーブル３２４は、更新された各コンテナイメージの識別情報と、更新された各コンテナイメージをそれぞれハッシュ化したハッシュ値と、更新されたコンテナイメージに対して制御部３３（後述）が作成したバイナリパッチファイルの識別情報と、を対応付けたテーブルデータである。このパッチファイル対応テーブル３２４は、差分管理部３３１（後述）によるエッジ装置４への更新されたコンテナイメージに関する情報送信の際に参照される。なお、各コンテナイメージのハッシュ値は、コンテナイメージ作成サーバ２が計算し、配信データ作成サーバ３にコンテナイメージとともに送信したものである。或いは、各コンテナイメージは、コンテナイメージ作成サーバ２から受信したコンテナイメージから、配信データ作成サーバ３が計算したものであってもよい。
【００２８】
図４は、図２に示すパッチファイル対応テーブル３２４のデータ構成の一例を示す図である。図４に示すように、パッチファイル対応テーブル３２４は、各コンテナイメージの識別情報、更新されたコンテナイメージ対して制御部３３（後述）が作成したバイナリパッチファイルの識別情報及び各コンテナイメージのハッシュ値が登録される。図４の例では、コンテナイメージ「Ａ」については、パッチファイル「ａ」及びハッシュ値「Ｈａ」が登録される。そして、図４の例では、コンテナイメージ「Ｂ」については、パッチファイル「ｂ」及びハッシュ値「Ｈｂ」が登録される。なお、更新されたコンテナイメージについては、該更新に応じて、対応するハッシュ値も変更される。
【００２９】
制御部３３は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部３３は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部３３は、差分管理部３３１（管理部）、更新部分探索部３３２及びバイナリパッチファイル作成部３３３（作成部）を有する。
【００３０】
差分管理部３３１は、他の装置との間で送受信するデータ、及び、配信データ作成サーバ３内の各機能部間で入出力するデータを管理する。具体的には、差分管理部３３１は、コンテナイメージ作成サーバ２から送信されたコンテナイメージとハッシュ値とを記憶部３２に記録し、保管する。また、差分管理部３３１は、更新部分探索部３３２及びバイナリパッチファイル作成部３３３に、更新されたコンテナイメージと、更新前の前回のコンテナイメージを送信する。そして、差分管理部３３１は、バイナリパッチファイル作成部３３３が作成したバイナリパッチファイルを記憶部３２に記録し、保管する。
【００３１】
また、差分管理部３３１は、コンテナイメージの送信要求を、例えばエッジ装置４から受けた場合、該当するコンテナイメージ或いはコンテナイメージのバイナリパッチファイルを、エッジ装置４に送信する。
【００３２】
この場合、差分管理部３３１は、コンテナイメージの配信時に、配信先のエッジ装置４が有するコンテナイメージをハッシュ化した値を取得する。そして、差分管理部３３１は、記憶部３２のパッチファイル対応テーブル３２４が記憶するハッシュ値のうち、取得したハッシュ値に一致するハッシュ値があった場合に、該ハッシュ値に対応するバイナリパッチファイルを、通信部３１を介して、配信先のエッジ装置４に配信する。
【００３３】
これに対し、差分管理部３３１は、取得したハッシュ値に一致するハッシュ値が記憶部３２のパッチファイル対応テーブル３２４が記憶するハッシュ値の中にない場合、配信を要求されたコンテナイメージを、エッジ装置４に配信する。したがって、差分管理部３３１は、配信先から送信されたハッシュ値と、記憶部３２に記憶されたハッシュ値とを比較して、適切なバイナリパッチファイルを配信している。
【００３４】
更新部分探索部３３２は、更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する。
【００３５】
具体的には、更新部分探索部３３２は、更新されたコンテナイメージの各レイヤについて特徴を表す値、すなわち各レイヤのハッシュ値をそれぞれ取得する。そして、更新部分探索部３３２は、記憶部３２が記憶するレイヤ対応テーブル３２３を参照し、レイヤ対応テーブル３２３のハッシュ値のうち、取得したハッシュ値と異なる値に対応するレイヤを更新レイヤとして探索する。そして、更新部分探索部３３２は、該探索した更新レイヤについて更新前の内容と更新後の内容とを比較して、更新レイヤ内の変更部分を探索する。更新部分探索部３３２は、探索結果として、探索した更新レイヤと、この更新レイヤ内の変更部分と、をバイナリパッチファイル作成部３３３に出力する。
【００３６】
バイナリパッチファイル作成部３３３は、更新部分探索部３３２によって探索された更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算して、更新に必要なバイナリパッチファイルを作成する。
【００３７】
この場合、バイナリパッチファイル作成部３３３は、更新部分探索部３３２から出力された更新レイヤの変更部分について、バイナリパッチファイルを作成する。すなわち、バイナリパッチファイル作成部３３３は、小さく特定された変更部分に対するバイナリパッチファイルを作成するため、更新レイヤ全体に対してバイナリパッチファイルを作成する場合と比して、バイナリパッチファイルのサイズを小さくすることができる。バイナリパッチファイル作成部３３３は、作成したバイナリパッチファイルを差分管理部３３１に出力する。
【００３８】
［コンテナイメージ受信時の処理］
次に、配信データ作成サーバ３における処理のうち、コンテナイメージ受信時の処理について説明する。図５は、図１に示す配信データ作成サーバ３がコンテナイメージを受信した際の処理手順を示すシーケンス図である。
【００３９】
図５に示すように、コンテナイメージ作成サーバ２は、コンテナイメージの更新を実行し（ステップＳ１）、配信データ作成サーバ３の差分管理部３３１にコンテナイメージのバージョン情報を送信する（ステップＳ２）。この際、コンテナイメージ作成サーバ２は、更新したコンテナイメージのバージョン情報とともに、更新したコンテナイメージを送信する。そして、コンテナイメージ作成サーバ２は、更新したコンテナイメージとともに、該コンテナイメージのハッシュ値を、差分管理部３３１に送信してもよい。
【００４０】
差分管理部３３１は、更新されたコンテナイメージと、該コンテナイメージのハッシュ値とを記憶部３２に記録し、保管する（ステップＳ３）。具体的には、差分管理部３３１は、記憶部３２のうち、コンテナイメージ群３２１に、更新されたコンテナイメージを含め、パッチファイル対応テーブル３２４の、更新されたコンテナイメージに対応するハッシュ値欄のハッシュ値を新たなハッシュ値に更新する。なお、このハッシュ値は、更新されたコンテナイメージを基に差分管理部３３１が計算してもよい。
【００４１】
続いて、差分管理部３３１は、更新部分探索部３３２及びバイナリパッチファイル作成部３３３に、最新の更新されたコンテナイメージ、及び、更新前の前回のコンテナイメージを出力する（ステップＳ４，Ｓ５）。
【００４２】
更新部分探索部３３２は、更新されたコンテナイメージについて、更新前のコンテナイメージと比して内容が更新された更新レイヤの探索を行い、該探索した更新レイヤ内の変更部分を探索する（ステップＳ６）。この際、更新部分探索部３３２は、更新されたコンテナイメージの各レイヤのハッシュ値をそれぞれ取得する。そして、更新部分探索部３３２は、記憶部３２のレイヤ対応テーブル３２３を参照し、レイヤ対応テーブル３２３のハッシュ値のうち、取得したハッシュ値と異なる値に対応するレイヤを更新レイヤとして探索する。続いて、更新部分探索部３３２は、該探索した更新レイヤについて更新前の内容と更新後の内容とを比較して、更新レイヤ内の変更部分を探索する。
【００４３】
更新部分探索部３３２は、探索結果として更新範囲、すなわち、探索した更新レイヤと、この更新レイヤ内の変更部分と、をバイナリパッチファイル作成部３３３に出力する（ステップＳ７）。そして、バイナリパッチファイル作成部３３３は、更新部分探索部３３２によって探索された更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算して、更新に必要なバイナリパッチファイルの作成を行う（ステップＳ８）。
【００４４】
そして、バイナリパッチファイル作成部３３３は、作成したバイナリパッチファイルを差分管理部３３１に出力する（ステップＳ９）。差分管理部３３１は、バイナリパッチファイル作成部３３３が作成したバイナリパッチファイルを記憶部３２に記録し、保管する（ステップＳ１０）。この際、差分管理部３３１は、パッチファイル対応テーブル３２４に、バイナリパッチファイルの識別情報を、該バイナリパッチファイルが対応するコンテナイメージに対応させて登録する。これによって、パッチファイル対応テーブル３２４は、バイナリパッチファイルの識別情報及びハッシュ値が、更新されたコンテナイメージに対応付けて記憶する。
【００４５】
［コンテナイメージ配信時の処理］
次に、配信データ作成サーバ３における処理のうち、コンテナイメージ配信時の処理について説明する。図６は、図２に示す配信データ作成サーバ３がコンテナイメージを配信する際の処理手順を示すシーケンス図である。
【００４６】
図６に示すように、コンテナイメージ作成サーバ２がコンテナイメージの更新通知、及び、該更新したコンテナイメージのハッシュ値を、配信対象のエッジ装置４に送信する（ステップＳ２１）。続いて、エッジ装置４は、配信データ作成サーバ３に、この更新されたコンテナイメージのハッシュ値と、要求するコンテナイメージの識別情報等とを送信し、更新されたコンテナイメージの配信を要求する（ステップＳ２２）。
【００４７】
配信データ作成サーバ３では、差分管理部３３１が、このエッジ装置４からの配信要求を受けて、パッチファイル対応テーブル３２４に保管済みのハッシュ値を参照する（ステップＳ２３）。差分管理部３３１は、エッジ装置４から送信されることで取得したハッシュ値と、参照したパッチファイル対応テーブル３２４のハッシュ値とを比較する。そして、差分管理部３３１は、パッチファイル対応テーブル３２４のハッシュ値のうち、取得したハッシュ値に一致するハッシュ値があるか否かを判定する（ステップＳ２４）。
【００４８】
差分管理部３３１は、パッチファイル対応テーブル３２４のハッシュ値のうち、取得したハッシュ値に一致するハッシュ値がないと判定した場合（ステップＳ２４：Ｎｏ）、該当のコンテナイメージをエッジ装置４に配信する（ステップＳ２５）。配信データ作成サーバ３内に配信対象のコンテナイメージに対応するバイナリパッチファイルがないためである。
【００４９】
一方、差分管理部３３１は、パッチファイル対応テーブル３２４のハッシュ値のうち、取得したハッシュ値に一致するハッシュ値があると判定した場合（ステップＳ２４：Ｙｅｓ）について説明する。この場合、差分管理部３３１は、パッチファイル対応テーブル３２４から、このハッシュ値に対応するバイナリパッチファイルの識別情報を取得する。そして、差分管理部３３１は、該取得した識別情報を有するバイナリパッチファイルをパッチファイル群３２２から検索する（ステップＳ２６）。そして、差分管理部３３１は、検索したバイナリパッチファイルを、更新されたコンテナイメージに該当するバイナリパッチファイルとして、配信先のエッジ装置４に配信する（ステップＳ２７）。
【００５０】
エッジ装置４では、配信データ作成サーバ３から配信されたバイナリパッチファイル及びエッジ装置４自身が保持するコンテナイメージ、或いは、配信されたコンテナイメージを使用し、新たなコンテナイメージを作成することによって（ステップＳ２８）、コンテナイメージの更新或いは作成が完了する。
【００５１】
［実施の形態の効果］
上述したように、本実施の形態に係る配信データ作成サーバ３は、コンテナイメージの更新があった場合、更新されたコンテナイメージの中から、更新レイヤの探索を行い、さらに、更新レイヤ内の変更部分の探索を行う。そして、配信データ作成サーバ３は、探索された前記更新レイヤ内の変更部分について、更新前のコンテナイメージとのバイナリ差分を計算してバイナリパッチファイルを作成する。
【００５２】
このように、配信データ作成サーバ３は、バイナリ差分を求める範囲を小さくすることによって、配信対象であるバイナリパッチファイルのサイズを小さくしている。したがって、配信データ作成サーバ３によれば、更新されたコンテナイメージに関するデータ配信時の送信容量を低減することができる。また、配信データ作成サーバ３は、バイナリ差分を求める範囲を小さくすることによって、パッチファイル作成の時間を短縮することも可能になる。言い換えると、配信データ作成サーバ３は、バイナリパッチファイルのために、従来実行していたバイナリファイルの全探索を実行することがないため、バイナリパッチファイルの作成に要する時間及びリソースを低減することができる。もちろん、配信データ作成サーバ３側、すなわち、クラウド側で、更新前後のコンテナイメージの差分を求めることによってコストを低減することができる。
【００５３】
さらに、配信データ作成サーバ３は、コンテナメージの更新時に、各更新に対するコンテナイメージのハッシュ値と、バイナリバッチファイルとを対応付けて保管する。そして、配信データ作成サーバ３は、イメージ配信時に、配信先から送信されたコンテナイメージのハッシュ値と、各ハッシュ値を比較することによって、該当するパッチファイルを配信先に正確に配信することができる。
【００５４】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５５】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５６】
［プログラム］
図７は、プログラムが実行されることにより、配信データ作成サーバ３実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５７】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５８】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、配信データ作成サーバ３の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、配信データ作成サーバ３における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００５９】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６０】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００６１】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００６２】
１  配信システム
２  コンテナイメージ作成サーバ
３  配信データ作成サーバ
４  エッジ装置
３１  通信部
３２  記憶部
３３  制御部
３２１  コンテナイメージ群
３２２  パッチファイル群
３２３  レイヤ対応テーブル
３２４  パッチファイル対応テーブル
３３１  差分管理部
３３２  更新部分探索部
３３３  バイナリパッチファイル作成部
【図１】
2019028635.tif 000003
【図２】
2019028635.tif 000004
【図３】
2019028635.tif 000005
【図４】
2019028635.tif 000006
【図５】
2019028635.tif 000007
【図６】
2019028635.tif 000008
【図７】
2019028635.tif 000009