(57)【要約】【課題】イメージ定義ファイルの最適化を行い、コンテナイメージを軽量化する。【解決手段】レイヤ最適化装置１０は、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する。そして、レイヤ最適化装置１０は、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。そして、レイヤ最適化装置１０は、処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。【選択図】図２
2019028690.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類部と、
前記分類部によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合部と、
前記分類部によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置部と
を有することを特徴とするレイヤ最適化装置。
【請求項２】
前記イメージ定義ファイルの入力を受け付けるとともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付ける受付部と、
前記分類部は、前記各処理を、事前に設定されたカテゴリごとに分類し、さらに、前記タグの設定の有無に応じて分類することを特徴とする請求項１に記載のレイヤ最適化装置。
【請求項３】
前記分類部は、前記各処理が分類されたカテゴリに対して、事前に設定されたカテゴリに応じた点数を付与し、前記タグが設定された処理が分類されたカテゴリに対しては、前記タグに応じた点数をさらに付与し、
前記配置部は、前記分類部によって付与された点数が高いカテゴリほど上位のレイヤとなるように配置することを特徴とする請求項２に記載のレイヤ最適化装置。
【請求項４】
レイヤ最適化装置によって実行されるレイヤ最適化方法であって、
アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類工程と、
前記分類工程によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合工程と、
前記分類工程によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置工程と
を含んだことを特徴とするレイヤ最適化方法。
【請求項５】
アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類ステップと、
前記分類ステップによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合ステップと、
前記分類ステップによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置ステップと
をコンピュータに実行させるためのレイヤ最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムに関する。
【背景技術】
【０００２】
従来、エッジコンピューティングにおけるエッジ端末上で動作するアプリケーションの元となるコンテナイメージが知られている。クラウドなどで管理するコンテナイメージを様々なエッジサーバに配信する。このようなコンテナイメージは、あるＯＳ（Operating  System）に対してアプリケーション実行に必要なミドルウェアやライブラリ、アプリケーションの実行ファイルなどをインストールして、イメージ化したものである。
【０００３】
コンテナイメージの定義手段として、レイヤにわけて構成させる方法がある。レイヤはイメージ定義ファイルで定義したイメージを作成するための手順ごとに一つのレイヤとなり、これらを積み重ねていくことで、一つのコンテナイメージとする方法がある（例えば、非特許文献１参照）。また、例えば、イメージの転送を行う場合にレイヤごとの転送が可能であり、エッジサーバに転送済のイメージに変更が生じた際に、差分があるレイヤのみ転送する方法がある。一方、イメージのレイヤ情報を統合して一つの大きなレイヤとして管理する方法も存在する（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Dockerfile  reference”、［online］、Docker、［平成29年7月18日検索］、インターネット＜https://docs.docker.com/engine/reference/builder/＞
【非特許文献２】“Squash  an  image’s  layers(-squash)  Experimental  Only”、［online］、Docker、［平成29年7月18日検索］、インターネット＜https://docs.docker.com/engine/reference/commandline/build/#squash-an-images-layers-squash-experimental-only＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、コンテナイメージを軽量化することができないという課題があった。例えば、従来の技術では、コンテナイメージを複数のレイヤに分割することでイメージの作成や配信の効率化を行うが、レイヤには上位と下位の関係が存在し下位レイヤは上位レイヤに依存しないため上位レイヤでの処理を下位レイヤは意識しない。そのため上位レイヤで削除されるファイルが下位レイヤに残った状態となることがある。
【０００６】
具体例を挙げて説明すると、例えば、レイヤごとに操作が独立であるため、あるレイヤ１でファイルＡをイメージ内に保存し、その上位レイヤ２で保存したファイルＡを削除したとしても、レイヤ１にはファイルＡの情報が残り、最終的な実行時にはファイルＡは削除されているにも関わらずイメージサイズにはファイルＡの容量が加算される。
【０００７】
なお、レイヤを不必要に増加させた場合イメージサイズが増加し、レイヤを過剰に統合する場合、更新時に本来必要の無いミドルウェアの転送などが必要となってしまう。１つのレイヤに統合すべき処理、分割すべき処理の判断はこれまで開発者の経験やスキルに依存していた。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明のレイヤ最適化装置は、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類部と、前記分類部によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合部と、前記分類部によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置部とを有することを特徴とする。
【０００９】
また、本発明のレイヤ最適化方法は、レイヤ最適化装置によって実行されるレイヤ最適化方法であって、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類工程と、前記分類工程によって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合工程と、前記分類工程によって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置工程とを含んだことを特徴とする。
【００１０】
また、本発明のレイヤ最適化プログラムは、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する分類ステップと、前記分類ステップによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する統合ステップと、前記分類ステップによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する配置ステップとをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、イメージ定義ファイルの最適化を行い、コンテナイメージを軽量化することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、第一の実施の形態に係る配信システムの構成の一例を示す図である。
【図２】図２は、第一の実施の形態に係るレイヤ最適化装置の構成例を示すブロック図である。
【図３】図３は、カテゴリ情報記憶部に記憶される情報の一例を示す図である。
【図４】図４は、レイヤ最適化処理の一例を説明する図である。
【図５】図５は、タグを設定した場合におけるレイヤ最適化処理の一例を説明する図である。
【図６】図６は、第一の実施の形態に係るレイヤ最適化装置による処理を説明するフローチャートである。
【図７】図７は、レイヤ最適化プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願に係るレイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係るレイヤ最適化装置、レイヤ最適化方法およびレイヤ最適化プログラムが限定されるものではない。
【００１４】
［第一の実施の形態］
以下の実施の形態では、第一の実施の形態に係る配信システムの構成、レイヤ最適化装置の構成、レイヤ最適化装置における処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【００１５】
［配信システムの構成］
まず、図１を用いて、第一の実施の形態に係る配信システムについて説明する。図１は、第一の実施の形態に係る配信システムの構成の一例を示す図である。第一の実施の形態に係る配信システムは、レイヤ最適化装置１０、配信サーバ２０および複数のエッジ端末３０Ａ、３０Ｂを有し、各装置は通信網４０を介して接続されている。なお、複数のエッジ端末３０Ａ、３０Ｂについて、特に区別なく説明する場合には、エッジ端末３０と記載する。また、図１に示す各装置の数は、あくまで一例であり、これに限られるものではない。
【００１６】
レイヤ最適化装置１０は、イメージ定義ファイルの入力を受け付けると、イメージ更新時の転送容量の削減とイメージ全体のイメージサイズの削減のため、主に更新頻度にもとづきイメージ定義ファイルにおける処理をカテゴリ分けし、更新頻度の高いカテゴリほど上位のレイヤに配置する。また、レイヤ最適化装置１０は、同一のカテゴリにある処理はレイヤを分割することなく、同一レイヤに統合する。
【００１７】
配信サーバ２０は、エッジコンピューティングにおけるエッジ端末３０上で動作するアプリケーションの元となるコンテナイメージをエッジ端末３０に配信する。コンテナイメージとは、アプリケーション実行環境を内包するイメージファイルであり、例えば、アプリケーション開発者により、イメージ定義ファイルを用いて作成される。また、コンテナイメージは、複数のレイヤから構成される。各レイヤは、イメージ定義ファイルで定義される。
【００１８】
エッジ端末３０Ａ、３０Ｂは、例えば、エッジコンピューティングアーキテクチャにおいてエッジサーバとして用いられる装置であり、アプリケーションを動作させる装置である。エッジ端末３０Ａ、３０Ｂは、配信サーバ２０から配信されたコンテナイメージを受信し、受信したコンテナイメージを基にアプリケーションを動作させる。なお、エッジアーキテクチャにおいてエッジ端末３０Ａ、３０Ｂは、データセンタ内と比較しリソース（ディスクやネットワーク帯域）が貧弱であることが多い。そのため、ディスクを有効活用するためにはコンテナイメージを小さくする必要があり、ネットワークを有効活用するためには配信効率の良いコンテナイメージフォーマットを保つ必要がある。
【００１９】
第一の実施の形態に係るレイヤ最適化装置１０では、イメージ定義ファイルの最適化を行うことで、イメージサイズの削減と、イメージ更新時の別サーバへの転送容量の削減との両立を自動で行うことを可能にした。このため、これまでアプリ開発者のコンテナイメージ構成に関する深い知識に基づいて行われていた最適化を自動で行うことができる。
【００２０】
［レイヤ最適化装置の構成］
次に、図２を用いて、図１に示したレイヤ最適化装置１０の構成を説明する。図２は、第一の実施の形態に係るレイヤ最適化装置の構成例を示すブロック図である。図２に示すように、このレイヤ最適化装置１０は、通信処理部１１、入力部１２、出力部１３、制御部１４および記憶部１５を有する。以下にレイヤ最適化装置１０が有する各部の処理を説明する。なお、レイヤ最適化装置１０の各機能の一部または全てを、配信サーバ２０が保持してもよい。
【００２１】
通信処理部１１は、接続される装置との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部１１は、最適化されたイメージ定義ファイルに基づいて作成されたコンテナイメージを配信サーバ２０に送信する。
【００２２】
入力部１２は、キーボードやマウスなどの入力デバイスであり、ユーザから各種情報の入力操作を受け付ける。出力部１３は、ディスプレイなどの出力デバイスであり、各種情報を出力する。
【００２３】
また、記憶部１５は、制御部１４による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、カテゴリ情報記憶部１５ａを有する。例えば、記憶部１５は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００２４】
カテゴリ情報記憶部１５ａは、後述する分類部１４ｂによって分類されるカテゴリに関する情報を記憶する。ここで、図３を用いて、カテゴリ情報記憶部１５ａに記憶される情報について説明する。図３は、カテゴリ情報記憶部に記憶される情報の一例を示す図である。図３に例示するように、カテゴリ情報記憶部１５ａは、カテゴリを識別する情報である「カテゴリ」と、タグの設定の有無を示す「タグ」と、各カテゴリに分類された処理を識別する情報である「処理」と、各カテゴリに付与された「点数」とを対応付けて記憶する。
【００２５】
図３に例示するように、カテゴリ情報記憶部１５ａは、カテゴリ「カテゴリａ」、タグ「無」、処理「処理Ａ、処理Ｂ」および点数「１０」を対応付けて記憶する。これは、「カテゴリａ」に分類され、タグが設定されていない処理が「処理Ａ」と「処理Ｂ」であり、点数「１０」が付与されたことを意味する。
【００２６】
制御部１４は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、受付部１４ａ、分類部１４ｂ、統合部１４ｃおよび配置部１４ｄを有する。ここで、制御部１４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路やＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路である。
【００２７】
受付部１４ａは、イメージ定義ファイルの入力を受け付ける。また、受付部１４ａは、イメージ定義ファイルの入力とともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付けてもよい。なお、受付部１４ａは、タグの設定を受け付ける場合には、該タグに対応する点数も受け付ける。なお、以下の例では、タグに付与された点数が「１」である場合を例にして説明する。
【００２８】
分類部１４ｂは、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する。例えば、分類部１４ｂは、事前に設定されたカテゴリとして、「ディストリビューション定義」に関するカテゴリａ、「ミドルウェアパッケージ取得」に関するカテゴリｂ、「アプリケーションビルド」に関するカテゴリｃ、および「環境変数等設定」に関するカテゴリｄのうち、いずれかに各処理を分類する。なお、上記４つのカテゴリに分類するための条件については、どのように設定してもよく、ここでは詳しい説明を省略する。
【００２９】
また、分類部１４ｂは、タグが設定されている場合には、各処理を、事前に設定されたカテゴリごとに分類し、さらに、タグの設定の有無に応じて分類する。つまり、イメージ定義ファイルの各処理にタグを付与することで、上記４つのカテゴリ以外のカテゴリに分類することができ、イメージ定義ファイルの最適化に反映することが可能である。なお、分類部１４ｂは、各処理が分類されたカテゴリおよびタグの有無をカテゴリ情報記憶部１５ａに格納する。
【００３０】
また、分類部１４ｂは、各処理が分類されたカテゴリに対して、事前に設定されたカテゴリに応じた点数を付与し、タグが設定された処理が分類されたカテゴリに対しては、タグに応じた点数をさらに付与する。そして、分類部１４ｂは、付与した点数をカテゴリ情報記憶部１５ａに格納する。
【００３１】
例えば、カテゴリａには、点数「１０」、カテゴリｂには、点数「８」、カテゴリｃには、点数「４」、カテゴリｄには、点数「１」が設定されているものとする。この場合には、分類部１４ｂは、カテゴリａに対して、点数「１０」を付与し、カテゴリｂに対して、点数「８」を付与し、カテゴリｃに対して、点数「４」を付与し、カテゴリｄに対して、点数「１」を付与する。なお、点数が高く設定されているカテゴリほど更新頻度が低いことを意味している。つまり、カテゴリａが最も更新頻度が低い処理に関するカテゴリであり、カテゴリｄが最も更新頻度が高い処理に関するカテゴリである。
【００３２】
また、例えば、分類部１４ｂは、タグが付与された処理をカテゴリｂに分類した場合には、点数「８」を付与するとともに、タグに対応する点数「１」をさらに加算し、カテゴリｂ（タグ設定有）に対して合計の点数「９」を付与する。
【００３３】
統合部１４ｃは、分類部１４ｂによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、統合部１４ｃは、分類部１４ｂによって付与された点数が同一の処理が同一レイヤとなるように各処理を統合する。
【００３４】
配置部１４ｄは、分類部１４ｂによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。例えば、配置部１４ｄは、分類部１４ｂによって付与された点数が高いカテゴリほど上位のレイヤとなるように配置する。
【００３５】
ここで、図４を用いて、レイヤ最適化処理の一例を説明する。図４は、レイヤ最適化処理の一例を説明する図である。図４に示すように、イメージ定義ファイルには、処理Ａ〜処理Ｆが含まれているものとする。そして、分類部１４ｂは、処理Ａおよび処理Ｂをカテゴリａに分類し、処理Ｃおよび処理Ｅをカテゴリｂに分類し、処理Ｄをカテゴリｃに分類し、処理Ｆをカテゴリｄに分類する。
【００３６】
そして、統合部１４ｃは、分類部１４ｂによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、図４の例では、統合部１４ｃは、カテゴリａに分類された処理Ａおよび処理Ｂがレイヤ１となるように統合し、カテゴリｂに分類された処理Ｃおよび処理Ｅがレイヤ２となるように各処理を統合する。
【００３７】
そして、配置部１４ｄは、分類部１４ｂによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。つまり、図４の例では、配置部１４ｄは、例えば、更新頻度が最も高いカテゴリｄに対応するレイヤ４が最上位のレイヤとなるように配置し、その次に、レイヤ３、レイヤ２の順に配置し、更新頻度が最も低いカテゴリａに対応するレイヤ１が最下位のレイヤとなるように配置する。
【００３８】
また、図５を用いて、タグを設定した場合におけるレイヤ最適化処理の一例を説明する。図５は、タグを設定した場合におけるレイヤ最適化処理の一例を説明する図である。図５に示すように、イメージ定義ファイルには、処理Ａ〜処理Ｆが含まれており、処理Ｃにはタグが設定されているものとする。そして、分類部１４ｂは、処理Ａおよび処理Ｂをカテゴリａに分類し、処理Ｃをカテゴリｂ（タグ設定有）に分類し、処理Ｅをカテゴリｂ（タグ設定無）に分類し、処理Ｄをカテゴリｃに分類し、処理Ｆをカテゴリｄに分類する。
【００３９】
そして、統合部１４ｃは、分類部１４ｂによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。例えば、図５の例では、統合部１４ｃは、カテゴリａに分類された処理Ａおよび処理Ｂがレイヤ１となるように各処理を統合する。
【００４０】
そして、配置部１４ｄは、分類部１４ｂによって処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。つまり、図５の例では、配置部１４ｄは、例えば、更新頻度が最も高いカテゴリｄに対応するレイヤ５が最上位のレイヤとなるように配置し、その次に、レイヤ４、レイヤ３、レイヤ２の順に配置し、更新頻度が最も低いカテゴリａに対応するレイヤ１が最下位のレイヤとなるように配置する。
【００４１】
このように、レイヤ最適化装置１０は、予め設定したカテゴリに各処理を分類し、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合することで、レイヤが不必要に増加することを防ぎ、イメージサイズの削減を実現することが可能である。また、レイヤ最適化装置１０は、更新頻度が高いカテゴリほど上位のレイヤとなるように配置するので、上位レイヤのイメージ更新時に上位のレイヤのイメージのみ転送すればよく、別サーバへの転送容量を削減することができる。
【００４２】
［レイヤ最適化装置の処理の流れ］
次に、図６を用いて、第一の実施の形態に係るレイヤ最適化装置１０の処理の流れを説明する。図６は、第一の実施の形態に係るレイヤ最適化装置による処理を説明するフローチャートである。
【００４３】
図６に示すように、レイヤ最適化装置１０の受付部１４ａがユーザからのイメージ定義ファイルの入力を受け付けると（ステップＳ１０１肯定）、分類部１４ｂは、イメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する（ステップＳ１０２）。なお、受付部１４ａは、イメージ定義ファイルの入力とともに、該イメージ定義ファイルに含まれる処理に対するタグの設定を受け付けてもよい。また、分類部１４ｂは、タグが設定されている場合には、各処理を、事前に設定されたカテゴリごとに分類し、さらに、タグの設定の有無に応じて分類する。
【００４４】
そして、分類部１４ｂは、カテゴリごとに点数を計算する（ステップＳ１０３）。例えば、分類部１４ｂは、カテゴリに対して、カテゴリに応じた点数を付与し、タグが設定された処理が分類されたカテゴリに対しては、タグに応じた点数をさらに付与する。
【００４５】
そして、統合部１４ｃは、分類部１４ｂによって同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する（ステップＳ１０４）。そして、配置部１４ｄは、点数が高いカテゴリほど下位のレイヤとなるように配置する（ステップＳ１０５）。
【００４６】
［第一の実施の形態の効果］
このように、第一の実施の形態に係るレイヤ最適化装置１０は、アプリケーションの元となるコンテナイメージを定義するイメージ定義ファイルに含まれる各処理を、事前に設定されたカテゴリごとに分類する。そして、レイヤ最適化装置１０は、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合する。そして、レイヤ最適化装置１０は、処理が分類されたカテゴリを、更新頻度が高いカテゴリほど上位のレイヤとなるように配置する。このため、イメージ定義ファイルの最適化を行い、コンテナイメージを軽量化することが可能である。
【００４７】
つまり、レイヤ最適化装置１０は、予め設定したカテゴリに各処理を分類し、同一カテゴリに分類された処理が同一レイヤとなるように各処理を統合することで、レイヤが不必要に増加することを防ぎ、イメージサイズの削減を実現することが可能である。また、レイヤ最適化装置１０は、更新頻度が高いカテゴリほど上位のレイヤとなるように配置するので、上位レイヤのイメージ更新時に上位のレイヤのイメージのみ転送すればよく、別サーバへの転送容量を削減することができる。
【００４８】
このように、レイヤ最適化装置１０では、イメージ定義ファイルの最適化を行うことで、イメージサイズの削減と、イメージ更新時の別サーバへの転送容量の削減との両立を自動で行うことを可能にした。このため、これまでアプリ開発者のコンテナイメージ構成に関する深い知識に基づいて行われていた最適化を自動で行うことができる。
【００４９】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５０】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５１】
［プログラム］
図７は、レイヤ最適化プログラムを実行するコンピュータを示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１０６１に接続される。
【００５３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、レイヤ最適化装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００５４】
また、上述した実施の形態の処理で用いられるデータは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００５５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク、ＷＡＮを介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００５６】
１０  レイヤ最適化装置
１１  通信処理部
１２  入力部
１３  出力部
１４  制御部
１４ａ  受付部
１４ｂ  分類部
１４ｃ  統合部
１４ｄ  配置部
１５  記憶部
１５ａ  カテゴリ情報記憶部
２０  配信サーバ
３０Ａ、３０Ｂ  エッジ端末
【図１】
2019028690.tif 000003
【図２】
2019028690.tif 000004
【図３】
2019028690.tif 000005
【図４】
2019028690.tif 000006
【図５】
2019028690.tif 000007
【図６】
2019028690.tif 000008
【図７】
2019028690.tif 000009