(A)主たる実施形態
以下、本発明による通信システム、管理装置、管理プログラム、情報処理装置、及び情報処理プログラムの一実施形態を、図面を参照しながら詳述する。この実施形態では、本発明の情報処理装置及び情報処理プログラムをゲートウェイ装置に適用した例について説明する。
(A-1)主たる実施形態の構成
図1は、この実施形態の通信システム1の全体構成を示すブロック図である。
図1に示す通信システム1には、3台のゲートウェイ装置10(10-1~10-3)、5台のカメラ20(20-1~20-5)、アプリケーションサーバ30、及び管理装置40が配置されている。なお、通信システム1を構成する各装置の数は限定されないものである。
ゲートウェイ装置10-1~10-3は、中継装置の一例であり、上位側ネットワークNW1を介してアプリケーションサーバ30及び管理装置40と通信可能となっている。
ゲートウェイ装置10-1の配下には、ローカルネットワークNW2-1を介して、カメラ20-1~20-3が接続されている。また、ゲートウェイ装置10-2の配下には、ローカルネットワークNW2-2を介して、カメラ20-4が接続されている。さらに、ゲートウェイ装置10-3の配下には、ローカルネットワークNW2-3を介して、カメラ20-5が接続されている。
各カメラ20は、リアルタイムに撮像した映像データを符号化し、符号化したデータのパケット(パケット列)を、接続するゲートウェイ装置10に送信する。ゲートウェイ装置10は、カメラ20から受信したパケットを処理してアプリケーションサーバ30に送信する処理を行う。ゲートウェイ装置10が映像データのパケットを処理する際の処理内容については限定されないものである。例えば、ゲートウェイ装置10は、カメラ20から受信した映像データのパケットから復号映像を得て、復号映像を別の符号化方式で符号化したパケット列に変換する処理を行ったり、復号映像から人物の顔に関する特徴量等を得る処理を行い、その処理結果をアプリケーションサーバ30に送信するようにしてもよい。
以下、通信システム1を構成する各装置の内部構成について説明する。
図2は、各ゲートウェイ装置10のハードウェア構成の例について示した説明図である。ここでは、各ゲートウェイ装置10はハードウェア的には同様の構成であるものとして説明する。
図2に示すように、各ゲートウェイ装置10は、プロセッサ11、一次記憶部12、二次記憶部13、及び2つの物理IF部14、15を有している。
各ゲートウェイ装置10は、例えば、図2に示すようなハードウェア構成のコンピュータにプログラム(実施形態に係る情報処理プログラムを含む)をインストールすることにより実現するようにしてもよい。
一次記憶部12としては、例えば、DRAM等の半導体メモリを適用することができる。
二次記憶部13としては、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)等の大容量データ記録媒体を適用することができる。二次記憶部13には、当該ゲートウェイ装置10で実行する各プログラム(実施形態の情報処理プログラム)がインストールされている。ゲートウェイ装置10は起動すると、プロセッサ11の処理により、二次記憶部13に記録されているプログラムが一次記憶部12上に展開され、実行される。
物理IF部14は上位側ネットワークNW1と接続するためのインタフェースである。
物理IF部15は、下位側のローカルネットワークNW2と接続するためのインタフェースである。
図3は、各ゲートウェイ装置10のプロセッサ11により実行されるソフトウェアコンポーネントの構成図(概念図)である。
図3に示すように、ゲートウェイ装置10では、ホストOS110(例えば、LINUX(登録商標)系のOS)上に1又は複数のコンテナ140を起動(1又は複数のコンテナ140のプロセス150を起動)させ、各コンテナ140に、カメラ20から受信したパケットの処理等を実行させる構成となっている。
また、図3に示すように、ゲートウェイ装置10では、各コンテナ140(各プロセス150)の生成や制御を行うための要素として、コンテナ管理部115(コンテナ制御エンジン120及びコンテナデーモン130)が配置されている。
ここで、コンテナ制御エンジン120は、コンテナの制御について処理を行うための機能を提供するための処理部である。
またここで、コンテナデーモン130は、管理装置40(図1)から、コンテナの制御(生成/起動/停止/削除など)に関わる指示を受信し、コンテナ制御エンジン120に対して、コンテナの制御(生成/起動/停止/削除)に関わる指示を行う。
コンテナデーモン130は、管理装置40(図1)から、コンテナ制御エンジン120に関わる指示を受信し、コンテナ制御エンジン120に対して、コンテナに関わる処理、ネットワーク等に関わる構成の処理、メモリの使用量やCPUの使用率等に関わる処理について指示を行う。以下の説明において、コンテナデーモン130については、省略して記載する。
コンテナ制御エンジン120としては、例えば、LINUX系のOS上でコンテナを制御するソフトウェア(例えば、Docker(登録商標)やLXC(Linux Containers)、LXD(Linux Container Daemon))を適用することができる。この実施形態では、Dockerを用いてコンテナ制御エンジン120を実現しているものとして説明する。また、この実施形態では、コンテナ制御エンジン120が生成する各コンテナ140間は、仮想的なネットワークインタフェースを介して接続しているものとして説明する。
例えば、ゲートウェイ装置10-1における論理的なネットワーク構成としては、図5~図7のような構成が挙げられる。
図5~図7は、ゲートウェイ装置10-1内の論理的なネットワーク構成及び遷移の例について示したブロック図である。
図5に示すゲートウェイ装置10-1の仮想ネットワークには、2つの仮想ブリッジ201、202と、Proxyコンテナ300と、APLコンテナ301が設定されている。
Proxyコンテナ300及びAPLコンテナ301は、コンテナ制御エンジン120が生成したコンテナである。
仮想ブリッジ201、202は、例えば、コンテナ制御エンジン120の機能(例えば、DockerにおけるDocker0やbr0等に代表される仮想ブリッジ(ブリッジインターフェース等により仮想ネットワークを構成する機能)により設定することができる。なお、ゲートウェイ装置10において、物理IF部14、15を内部的な仮想ネットワークに接続(IPマスカレード等によるネットワークの識別情報の変換処理を行うネットワーク情報変換処理部を用いて接続)する具体的なソフトウェアの設定方式については限定されないものである。例えば、ゲートウェイ装置10では、仮想的にルータやネットワーク層の処理、トランスポート層の処理、ネットワーク層及びトランスポート層の処理等を実現するアプリケーションが実行するコンテナを適用するようにしてもよい。
なお、この実施形態では、1つのAPLコンテナに1種類のアプリケーションが実行するものとして説明する。また、この実施形態では、複数のアプリケーションが実行される場合、複数のAPLコンテナが実行するものとして説明する。
仮想ブリッジ201は、下位側(ローカルネットワークNW2-1)に接続された物理IF部15と、ゲートウェイ装置10-1内の仮想ネットワークとを接続する仮想ブリッジの機能を担っている。仮想ブリッジ201は、物理IF部15を介して下位側(ローカルネットワークNW2-1)から受信したパケットを、Proxyコンテナ300に転送(フォワード)する処理を行う。その際、仮想ブリッジ201は、IPマスカレード部201aの機能により転送するパケットのIPアドレス等を変換する処理を行う。IPマスカレード部201aに設定される変換テーブルの詳細については後述する。
APLコンテナ301は、コンテナ内で、アプリケーションが実行されるものある。ここで、コンテナは、従来技術に記載のように、オペレーティングシステム内のユーザ空間において、仮想的に1つの空間又は複数に分割された空間(論理的な区画)を有し、オペレーティングシステム内のカーネル空間を共用するものである(ここで、コンテナ(仮想的な空間)は、他の分割された空間と隔離された空間である)。この実施形態において、APLコンテナ301は、ローカルネットワークNW2-1側(カメラ20-1~20-3のいずれか)から、Proxyコンテナ300を介して受信したパケットに所定の処理を施して、上位側ネットワークNW1側(アプリケーションサーバ30)に送信する処理を行うアプリケーション(以下、「GetData」と呼ぶ)が実行される。
Proxyコンテナ300は、下位側(ローカルネットワークNW2-1)から受信したパケットをいずれかのAPLコンテナに振り分ける処理を行うことが可能なアプリケーションが実行されるコンテナである。
仮想ブリッジ202は、上位側(上位側ネットワークNW1)に接続された物理IF部14と、ゲートウェイ装置10-1内の仮想ネットワークとを接続する仮想ブリッジの機能を担っている。仮想ブリッジ202は、下位側のAPLコンテナ(GetDataのAPLコンテナ)から受信したパケットを、上位側(アプリケーションサーバ30)へ転送する処理を行う。その際、仮想ブリッジ202は、IPマスカレード部202aの機能により転送するパケットのIPアドレス等を変換する処理を行う。IPマスカレード部202aに設定される変換テーブルの詳細については後述する。
この実施形態では、1つのゲートウェイ装置10内に、1つのAPLコンテナに1種類のアプリケーションが実行するものとして説明する。また、この実施形態では、1つのゲートウェイ装置10内に、複数のアプリケーションが実行される場合、複数のAPLコンテナが実行するものとして説明する。また、図5では、ゲートウェイ装置10-1内に、1種類のアプリケーションが実行される1つのAPLコンテナが配置されているが、ゲートウェイ装置10内に異なるアプリケーションが実行されるように複数のAPLコンテナが配置されるようにしてもよい。さらに、図5では、ゲートウェイ装置10-1内に、GetDataアプリケーションについて、1つのバージョン(バージョン1.0)のAPLコンテナ301のみが配置されているが、同じ種類のアプリケーションについて複数のバージョンでそれぞれ異なるAPLコンテナを配置するようにしてもよい。例えば、図6では、ゲートウェイ装置10-1に、バージョン1.0のAPLコンテナ301と、バージョン2.0のAPLコンテナ302が配置されている状態について示している。
Proxyコンテナ300は、下位側(ローカルネットワークNW2-1)から受信したパケットを、設定に応じたAPLコンテナに振分(転送)する機能を担っている。この実施形態のProxyコンテナ300は、設定されたデータ(以下、「振分設定情報」と呼ぶ)に応じて受信したパケットを、いずれかのAPLコンテナに振分(転送)する処理を行うものとする。Proxyコンテナ300には、Proxy機能に対応するアプリケーションのプログラムが実行されている。Proxyコンテナ300に設定される振分設定情報の詳細については後述する。
また、後述の(B-4)項目で記載されるように、Proxyコンテナ300は、設定されたデータ(振分制御情報(ステータス))に応じて受信したパケットを、いずれかのAPLコンテナに振分(転送)する処理を行うこととしてもよい。
次に、ゲートウェイ装置10-1内の仮想的なネットワークの接続構成について説明する。
図5では、仮想ブリッジ201には、2つの仮想的なイーサネット(登録商標)ポートである仮想イーサネットポート201VE-1、201VE-2が設定されており、それぞれProxyコンテナ300、APLコンテナ301に接続されている。また、仮想ブリッジ202には、仮想イーサネットポート202VE-1が設定されており、APLコンテナ301に接続されている。さらに、図5に示す通り、APLコンテナ301には、仮想イーサネットポート301VE-1、301VE-2が設定されており、それぞれ仮想ブリッジ201、202に接続されている。さらにまた、図5に示される通り、Proxyコンテナ300には、仮想イーサネットポート300VE-1が設定されており仮想ブリッジ201と接続されている。
この実施形態では、各ブロードキャストドメイン(サブネットワーク)にネットワークアドレス(サブネットワークアドレス)が付与されているものとする。図5~図7では、説明を簡易とするため、A0、A1、A2、A3、A4、A5の6つのネットワークアドレス(ブロードキャストドメイン)が示されている。なお、図5~図7において、A0、A1、A2、A3、A4、A5は、それぞれIPv4等のアドレス体系におけるネットワークアドレスを示しているものとするがIPv6のアドレス体系としてもよい。
図5~図7では、カメラ20-1~20-3が配置されたブロードキャストドメインのネットワークアドレスをA0、物理IF部15が配置されたブロードキャストドメインのネットワークアドレスをA1、仮想ブリッジ201の上位側のブロードキャストドメイン(APLコンテナが設定されたブロードキャストドメイン)のネットワークアドレスをA2、仮想ブリッジ202の下位側のブロードキャストドメイン(APLコンテナが設定されたブロードキャストドメイン)のネットワークアドレスをA3、物理IF部14が配置されたブロードキャストドメインのネットワークアドレスをA4、アプリケーションサーバ30及び管理装置40が配置されたブロードキャストドメインのネットワークアドレスをA5と図示している。
また、図5では、説明を簡易とするため、各装置やインタフェース(仮想イーサネットポート)のIPアドレスを「ネットワークアドレス部-ホスト部」の形式で図示している。例えば、図5では、カメラ20-1のIPアドレスを「A0-1」と図示している。この場合「A0」がネットワークアドレス部で、「1」(10進数)がホスト部を示している。例えば、ネットワークアドレスA0が「192.168.1.0/24」(/24はサブネットマスク長)である場合、「A0-1」は、「192.168.1.1」となる。
図5では、カメラ20-1~20-3にはそれぞれIPアドレスA0-1~A0-3、物理IF部15にはIPアドレスA1-1、仮想ブリッジ201の上位側にはIPアドレスA2-1、Proxyコンテナ300(仮想イーサネットポート300VE-1)にはIPアドレスA2-2、APLコンテナ301の仮想イーサネットポート301VE-2にはIPアドレスA3-2、APLコンテナ301の仮想イーサネットポート301VE-1にはIPアドレスA2-3、仮想ブリッジ202の下位側にはIPアドレスA3-1、物理IF部14にはIPアドレスA4-1、アプリケーションサーバ30にIPアドレスA5-1、管理装置40にIPアドレスA5-2がそれぞれ割り当てられている。
図6では、図5の状態からGetData2.0が実行されるAPLコンテナ302が追加されている。また、図6では、仮想ブリッジ201に、APLコンテナ302と接続するための仮想イーサネットポート201VE-3が追加されている。さらに、図6では、仮想ブリッジ202に、APLコンテナ302と接続するための仮想イーサネットポート202VE-2が追加されている。さらにまた、図2では、APLコンテナ302に、仮想ブリッジ201と接続するための仮想イーサネットポート302VE-1と、仮想ブリッジ202と接続するための仮想イーサネットポート302VE-2が配置されている。そして、APLコンテナ302の仮想イーサネットポート302VE-2にはIPアドレスA3-3、APLコンテナ302の仮想イーサネットポート302VE-1にはIPアドレスA2-4がそれぞれ割り当てられている。
図7では、図6の状態からGetDataアプリケーションのバージョン1.0が実行されるAPLコンテナ301が削除されている。
次に、管理装置40の内部構成について説明する。
図4は、管理装置40の機能的構成について示したブロック図である。
管理装置40は、コンテナ制御処理部410、データ記憶部420、及びデータ編集受付手段460を有している。
管理装置40は、プロセッサやメモリ等を備えるコンピュータに、プログラム(実施形態に係る管理プログラムを含む)をインストールすることにより実現するようにしてもよい。
コンテナ制御処理部410は、各ゲートウェイ装置10に対してコンテナ制御エンジン120を介して、コンテナに関する制御処理の実行を指示する機能を担っている。コンテナ制御処理部410は、データ記憶部420に記憶されたデータを利用する。コンテナ制御処理部410は、各ゲートウェイ装置10においてコンテナ制御エンジン120がDockerエンジンにより構成されている場合、例えば、Docker APIを用いてコンテナ制御エンジン120を制御するようにしてもよい。
データ編集受付手段460は、データ記憶部420に記憶された各データの内容変更を受け付ける機能を担っている。データ編集受付手段460の具体的構成については限定されないものである。例えば、データ編集受付手段460は、入力デバイス(例えば、ディスプレイ、キーボード、マウス等)を用いてオペレータからの操作を受け付ける構成するようにしてもよいし、通信により外部からの指示を受け付ける構成としてもよい。
データ記憶部420は、コンテナ制御処理部410の処理で用いられる各種データが記憶される記憶手段である。
図4では、データ記憶部420には、ゲートウェイ装置10ごとのホスト管理情報430、各ゲートウェイ装置10に設定するコンテナの種類ごとのイメージ440、及び各ゲートウェイ装置10におけるアプリケーション(APLコンテナ)の種類及びバージョンを管理するためのバージョン管理情報450が登録されている。
この実施形態では、3つのゲートウェイ装置10-1~10-3が存在するので、データ記憶部420には、ゲートウェイ装置10-1~10-3のそれぞれに対応するホスト管理情報430-1~430-3が登録されている。また、図4に示すデータ記憶部420には、Proxyコンテナに対応するイメージ440-0、バージョン1.0のGetData(以下、「GetData1.0」とも呼ぶ)に対応するイメージ440-1、及びバージョン2.0のGetData(以下、「GetData2.0」とも呼ぶ)に対応するイメージ440-2が登録される。
イメージ440-0~440-2は、それぞれN0~N2層のイメージレイヤ441により構成されている。
図4では、Proxyコンテナ300に対応するイメージ440-0には、種々のコマンドやライブラリ(LinuxにおけるLibディレクトリやbinディレクトリの内容)のディレクトリ/ファイルが格納されたイメージレイヤ441-1、Proxy機能のアプリケーションプログラムのディレクトリ/ファイルが格納されたイメージ440-2、…、及び種々の環境変数等が格納されたイメージレイヤ441-N0が含まれている。
また、図4では、バージョン1.0のGetDataアプリケーションに対応するイメージ440-1には、種々のコマンドやライブラリ(LinuxにおけるLibディレクトリやbinディレクトリの内容)のディレクトリ/ファイルが格納されたイメージレイヤ441-1、バージョン1.0のGetDataアプリケーションのディレクトリ/ファイルが格納されたイメージ440-2、…、及び種々の環境変数等が格納されたイメージレイヤ441-N1が含まれている。
さらに、図4では、バージョン2.0のGetDataアプリケーションに対応するイメージ440-2には、種々のコマンドやライブラリのディレクトリ/ファイルが格納されたイメージレイヤ441-1、バージョン2.0のGetDataアプリケーションのディレクトリ/ファイルが格納されたイメージ440-2、…、種々の環境変数等が格納されたイメージレイヤ441-N2が含まれている。イメージ440-1、440-2については、少なくともGetDataアプリケーションのディレクトリ/ファイルが格納されたイメージ440-2の内容(プログラムのデータ)が異なっている(バージョンアップされている)ものとする。
次に、バージョン管理情報450の構成例について説明する。
図8は、バージョン管理情報450の構成及び遷移の例について示した説明図である。
図8に示すバージョン管理情報450では、アプリケーションの名称を示すAPL名をキー情報とし、APL名ごとに、リリースされているバージョン(バージョンナンバー)、バージョンごとのAPLイメージ名(イメージのファイル名)、及びホスト情報(当該バージョンのAPLコンテナが設定されているゲートウェイ装置10のホスト名(又はコンテナ名ともいう))が設定されている。
図8では、アプリケーションの名称(APL名)は、GetDataのみとなっているが複数種類のアプリケーションについてバージョン管理情報450に設定するようにしてもよい。図8では、ゲートウェイ装置10-1~10-3のホスト名はそれぞれHost-1~Host-3としている。
なお、管理装置40では、各ゲートウェイ装置10のホスト名から、名前の解決(例えば、hostsファイルやDNS等を用いてhost名からIPアドレスを取得する処理)が可能な状態であるものとして説明する。なお、ホスト情報ではホスト名ではなく、IPアドレスを直接設定するようにしてもよい。
例えば、図8(a)では、バージョン1.0のホスト情報にHost-1、Host-2、Host-3が記述されているため、GetDataについてバージョン1.0のみがリリースされており、バージョン1.0のAPLコンテナがゲートウェイ装置10-1~10-3において生成され、起動されている状態について示している。また、図8(b)では、図8(a)の状態からバージョン2.0のGetDataアプリケーションがリリースされたが、バージョン2.0のホスト情報は空欄であるため、いずれのゲートウェイ装置10-1~10-3にもバージョン2.0のAPLコンテナは生成されてなく、起動されてないことを示している。さらに、図8(c)の状態では、図8(b)の状態から、バージョン2.0のホスト情報にHost-1、Host-2、Host-3が記述されているため、ゲートウェイ装置10-1~10-3にもバージョン2.0のAPLコンテナが生成され、起動された状態について示している。さらにまた、図8(d)の状態では、図8(c)の状態から、バージョン1.0のホスト情報が空欄となっているため、ゲートウェイ装置10-1~10-3におけるバージョン1.0のGetDataアプリケーションのAPLコンテナが停止され、削除された状態について示している。
管理装置40(コンテナ制御処理部410)は、バージョン管理情報450の内容が変更されると、その内容に合わせて各ゲートウェイ装置10のAPLコンテナの状態が同期するように、各ゲートウェイ装置10(コンテナ制御エンジン120)を制御する。管理装置40のコンテナ制御処理部410は、データ編集受付手段460を介して、オペレータや外部のコンピュータから、バージョン管理情報450(アプリケーションごとのAPL名、バージョン、APLイメージ等の情報)の変更を受け付け、変更後のバージョン管理情報450の内容に従って、ゲートウェイ装置10への新しいバージョンのAPLコンテナのリリース等を行う。
次に、ホスト管理情報430の構成例について説明する。
図4に示すように、各ホスト管理情報430は、APLコンテナ管理情報431、Proxyコンテナ管理情報432、ネットワーク設定情報433、及び振分設定情報434を有している。
各ホスト管理情報430の構成は同様であるため、以下では、代表してゲートウェイ装置10-1に対応するホスト管理情報430-1の具体例について説明する。
まず、ゲートウェイ装置10-1のAPLコンテナ管理情報431の具体例について説明する。
図9~図15は、ホスト管理情報430-1を構成するAPLコンテナ管理情報431の構成及び遷移の例について示した説明図である。
APLコンテナ管理情報431は、アプリケーションの名称を示すAPL名(キー情報)ごとの情報が登録されている。図9~図15では、APL名(キー情報)が「GetData」となっているGetDataアプリケーションの情報について登録された例について示している。
ここで、図9~図15に記載される情報の概要は、次に記載される通りである。
図9は、APL名が「GetData」であり、バージョンが「1.0」の情報について記載されたものである。
図10は、APL名が「GetData」であり、バージョンが「2.0」の情報について追加されたものである。
図11は、APL名が「GetData」であり、バージョンが「2.0」の情報において、上位IFアドレスの情報と下位IFアドレスの情報について追加されたものである。
図12は、APL名が「GetData」であり、バージョンが「2.0」の情報において、スイッチの情報がOFFからONに遷移したことについて記載されたものである。
図13は、APL名が「GetData」であり、バージョンが「2.0」の情報において、ステータスの情報が停止中から正常動作中に遷移したことについて記載されたものである。
図14は、APL名が「GetData」であり、バージョンが「1.0」の情報において、スイッチの情報がONからOFFに遷移したことについて記載されたものである。
図15は、APL名が「GetData」であり、バージョンが「1.0」の情報について削除されたものである。
図9~図15に示すように、APLコンテナ管理情報431では、各APL名について、生成され、起動されているバージョン(APLコンテナ)ごとの情報が管理されている。さらに、APLコンテナ管理情報431では、各APL名のバージョンごとに、バージョンの変化に伴って設定する内容が変化する可変情報と、バージョンの変化に伴って設定する内容が変化しない固定情報と、各バージョンのAPLコンテナに設定されるネットワーク設定に関するネットワーク設定情報と、各バージョンのAPLコンテナを制御するための制御情報が設定されている。なお、ネットワーク設定情報は、可変情報の一部としてもよいが、この実施形態では、説明を簡易とするため可変情報とネットワーク設定情報は別カテゴリーであるものとして説明するものとする。可変情報及び固定情報を構成する各項目の情報は、図9~図15の例に限定されず、図9~図15に示す内容から一部の項目を削除したり他の項目を追加したりするようにしてもよい。
図9~図15において、可変情報には当該バージョン(バージョンナンバー)を示すバージョンの項目と、当該バージョンに対応するイメージ440のファイル名を示す「APLイメージ名」の項目が含まれている。なお、可変情報の項目は、バージョン管理情報450で管理されている項目と同期させるものとする。
図9~図15において、固定情報には、当該バージョンのAPLコンテナに設定するホスト名の項目と、当該バージョンのAPLコンテナで利用可能なメモリの最大サイズを示すメモリサイズの項目と、当該バージョンのAPLコンテナにおけるパケットの転送先(アプリケーションサーバ30の宛先アドレス及びポート番号)を示す送信先情報の項目が含まれている。
ネットワーク設定情報には、当該バージョンのAPLコンテナにおいて上位側の仮想イーサネットポートに設定するIPアドレスを示す上位側IFアドレスの項目と、当該バージョンのAPLコンテナにおいて下位側の仮想イーサネットポートに設定するIPアドレスを示す下位側IFアドレスの項目と、当該バージョンのAPLコンテナがパケットの転送先(アプリケーションサーバ30)にパケットを転送する際に設定する送信元のポート番号を示す送信元ポート番号の項目が含まれている。なお、バージョンごと(APLコンテナごと)に送信元ポート番号を変更する必要がない場合には、送信元ポート番号の項目は固定情報としてもよい。
制御情報の項目には、当該バージョンのAPLコンテナのスイッチの状態(ON又はOFFのスイッチの状態)を示すスイッチの項目と、当該バージョンのAPLコンテナの状態(例えば、正常起動中、異常状態(エラー発生中)、停止中等の状態)を示すステータスの項目が含まれている。
管理装置40(コンテナ制御処理部410)は、APLコンテナ管理情報431の内容が変更されると、その内容に合わせて各ゲートウェイ装置10のAPLコンテナの状態が同期するように、各ゲートウェイ装置10(コンテナ制御エンジン120)を制御する。例えば、あるAPLコンテナに対応するスイッチがOFFからONに遷移すると、管理装置40(コンテナ制御処理部410)は、ゲートウェイ装置10(コンテナ制御エンジン120)を制御して、当該APLコンテナを起動(活性化)させるように制御する。
また、管理装置40(コンテナ制御処理部410)は、各ゲートウェイ装置10のAPLコンテナのステータスを監視し、変化があった場合、APLコンテナ管理情報431のステータスの内容も更新する。
次に、ゲートウェイ装置10-1のProxyコンテナ管理情報432の構成の具体例について説明する。
図16は、ホスト管理情報430-1を構成するProxyコンテナ管理情報432の構成例について示した説明図である。
図16に示すように、Proxyコンテナ管理情報432では、バージョンの変化に伴って設定する内容が変化する可変情報と、バージョンの変化に伴って設定する内容が変化しない固定情報と、Proxyコンテナに設定されるネットワーク設定情報と、Proxyコンテナを制御するための制御情報が設定されている。なお、Proxyコンテナについて特にバージョンの管理等を行わない場合には、ホスト管理情報430で特にProxyコンテナ管理情報432を管理しない構成としてもよい。
可変情報には、現状のProxyコンテナのバージョンの数値を示すバージョンの項目と、当該バージョンに対応するイメージ440のファイル名を示す「イメージ名」の項目が含まれている。
固定情報には、当該バージョンのProxyコンテナに設定するホスト名の項目と、当該バージョンのProxyコンテナで利用可能なメモリの最大サイズを示すメモリサイズの項目とを示す送信先情報の項目が含まれている。
ネットワーク設定情報には、当該Proxyコンテナの仮想イーサネットポートに設定するIPアドレスを示すIFアドレスの項目が含まれている。
制御情報の項目の構成及び機能は、APLコンテナ管理情報431と同様であるため詳しい説明を省略する。
次に、ゲートウェイ装置10-1のネットワーク設定情報433の構成の具体例について説明する。
図17は、ホスト管理情報430-1を構成するネットワーク設定情報433の構成例について示した説明図である。
図17に示すように、ネットワーク設定情報433には、物理IF部15のアドレスを示す下位側物理IFアドレス、仮想ブリッジ201のアドレスを示す下位側仮想ブリッジアドレス、仮想ブリッジ202のアドレスを示す上位側仮想ブリッジアドレス、及び物理IF部14のアドレスを示す上位側物理IFアドレスが含まれている。
次に、ゲートウェイ装置10-1の振分設定情報434の構成及び遷移の具体例について説明する。
図18は、ホスト管理情報430-1を構成する振分設定情報434の構成例について示した説明図である。
図18に示す振分設定情報434には、APL名(キー情報)ごとに、ProxyコンテナがAPL名を有するコンテナに対して、振り分けの制御について許可とするか不許可とするかについて示す振分制御情報(ステータス)、Proxyコンテナに設定する振分ルールを記述した情報(以下、「振分ルール情報」と呼ぶ)が設定されている。図18では、GetDataアプリケーションの振分ルール情報が登録されている。図18に示す通り、ホスト管理情報430-1を構成する振分設定情報434には、バージョンごとに振り分けられているクライアントの情報(カメラ20のIPアドレス)を示す振分クライアント情報が登録されている。なお、振分クライアント情報は、各カメラ20のIPアドレスではなくホスト名(名前解決可能なホスト名)としてもよい。
ここで、振分制御情報(ステータス)は、ProxyコンテナがAPL名を有するコンテナに対して、振り分けの制御について許可とする場合、振分制御情報(ステータス)=「OK」とする。また、振分制御情報(ステータス)は、ProxyコンテナがAPL名を有するコンテナに対して、振り分けの制御について不許可とする場合、振分制御情報(ステータス)=「NG」とする。
図18(a)では、ゲートウェイ装置10-1にバージョン1.0のAPLコンテナが設定されており、配下のカメラ20-1~20-3(IPアドレスA0-1~A0-3)を送信元とするパケットが全て、バージョン1.0のAPLコンテナに振分られることを示している。
ここで、振分制御情報(ステータス)は、Proxyコンテナがバージョン1.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)であることを示している。
また、図18(b)では、図18(a)の状態から、ゲートウェイ装置10-1にバージョン2.0のAPLコンテナが生成され、起動されて、配下のカメラ20-1~20-3(IPアドレスA0-1~A0-3)を送信元とするパケットは全てバージョン1.0のAPLコンテナに振分られることを示している。
ここで、振分制御情報(ステータス)は、Proxyコンテナがバージョン1.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)である。振分制御情報(ステータス)は、Proxyコンテナがバージョン2.0のAPLコンテナに対して、振り分けの制御について不許可(振分制御情報(ステータス)=「NG」)であることを示している。
さらに、図18(c)では、図18(b)の状態から、配下のカメラ20-1(IPアドレスA0-1)を送信元とするパケットだけが、バージョン2.0のAPLコンテナ側へ振り分けられるように切り替わったことを示している。
ここで、振分制御情報(ステータス)は、Proxyコンテナがバージョン1.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)であることを示している。振分制御情報(ステータス)は、Proxyコンテナがバージョン2.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)であることを示している。
さらにまた、図18(d)では、図18(c)の状態から、配下のカメラ20-2、20-3(IPアドレスA0-2、A0-3)を送信元とするパケットについても、バージョン2.0のAPLコンテナ側へ振り分けられるように切り替わったことを示している。
ここで、振分制御情報(ステータス)は、Proxyコンテナがバージョン1.0のAPLコンテナに対して、振り分けの制御について不許可(振分制御情報(ステータス)=「NG」)であることを示している。振分制御情報(ステータス)は、Proxyコンテナがバージョン2.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)であることを示している。
また、図18(e)では、図18(d)の状態から、バージョン1.0のAPLコンテナが停止され、削除された状態について示している。
ここで、振分制御情報(ステータス)は、Proxyコンテナがバージョン1.0のAPLコンテナに対して、振り分けの制御について許可(振分制御情報(ステータス)=「OK」)であることを示している。
以上のように、管理装置40(コンテナ制御処理部410)は、各ゲートウェイ装置10に設定されたAPLコンテナの状態に応じて、各アプリケーションのバージョンごとのフィールドを追加・削除する処理(例えば、バージョンのフィールドを追加したり削除したりする処理)を行う。また、管理装置40(コンテナ制御処理部410)は、振分ルール情報(各アプリケーションにおける各バージョンの振分クライアント情報)の内容が更新されると、更新された振分ルール情報を、該当するゲートウェイ装置10のProxyコンテナに設定するように制御する。
次に、ゲートウェイ装置10-1の仮想ブリッジ201、202(IPマスカレード部201a、202a)に設定される変換テーブルの構成例について説明する。
図19は、下位側の仮想ブリッジ202(IPマスカレード部202a)に設定される上り方向のパケットに対するIPアドレス及びポート番号の変換テーブルの構成例について示した説明図である。
図19に示す変換テーブルは、5つの情報要素から構成される。1つ目の情報要素は、設定IDである。2つ目の情報要素は、下位側の仮想ブリッジ201(IPマスカレード部201a)が受信した上り方向における変換前パケットの送信元IPアドレス/ポート番号を示す「変換前送信元IPアドレス/ポート番号」である。3つ目の情報要素は、変換前パケットの宛先の送信元IPアドレス/ポート番号を示す「変換前送信元IPアドレス/ポート番号」である。4つ目の情報要素は、下位側の仮想ブリッジ201(IPマスカレード部201a)が送信する上り方向の変換後パケットの送信元IPアドレス/ポート番号を示す「変換後送信元IPアドレス/ポート番号」である。5つ目の情報要素は、変換後パケットの宛先の送信元IPアドレス/ポート番号を示す「変換後送信元IPアドレス/ポート番号」を1つの組とする設定情報が登録されている。図19では、設定IDを1とする1つの組の変換情報が登録されている。
図19に示す設定IDを1とする1つの組の変換情報では、変換前宛先IPアドレス/ポート番号がIPアドレスA1-1/50000(送信元IPアドレス/ポート番号については変換なし)となる上りパケットについて、変換後宛先IPアドレス/ポート番号をIPアドレスA2-2/50000に変換(Proxyコンテナ300に転送/フォワード)する内容となっている。
図20は、上位側の仮想ブリッジ201(IPマスカレード部201a)に設定される上り方向のパケットに対するIPアドレス及びポート番号の変換テーブルの構成例について示した説明図である。
図20に示す変換テーブルは、5つの情報要素から構成される。1つ目の情報要素は、設定IDである。2つ目の情報要素は、上位側の仮想ブリッジ202(IPマスカレード部202a)が受信した上り方向の変換前パケットの送信元IPアドレス/ポート番号を示す「変換前送信元IPアドレス/ポート番号」である。3つ目の情報要素は、変換前パケットの宛先の送信元IPアドレス/ポート番号を示す「変換前送信元IPアドレス/ポート番号」である。4つ目の情報要素は、上位側の仮想ブリッジ202(IPマスカレード部202a)が送信する上り方向の変換後パケットの送信元IPアドレス/ポート番号を示す「変換後送信元IPアドレス/ポート番号」である。5つ目の情報要素は、変換後パケットの宛先の送信元IPアドレス/ポート番号を示す「変換後送信元IPアドレス/ポート番号」を1つの組とする設定情報が登録されている。
図20(a)では、設定IDを1とする1つの組の変換情報が登録されている。図20(a)に示す設定IDが1の変換情報は、APLコンテナ301(バージョン1.0のGetDataアプリケーションのコンテナ)から、アプリケーションサーバ30を宛先として送信されたパケットの変換ルールについて定義した内容となっている。具体的には、図20(a)に示す設定IDが1の変換情報では、送信元IPアドレス/ポート番号がIPアドレスA3-2/50000で宛先IPアドレス/ポート番号がIPアドレスA5-1/50000のパケットを、送信元IPアドレス/ポート番号がIPアドレスA4-1/50000で宛先IPアドレス/ポート番号がIPアドレスA5-1/50000のパケットに変換する内容となっている。
図20(b)では、図20(a)の内容から、設定IDを2とする1組の変換情報が追加登録された状態となっている。図20(b)に示す設定IDが2の変換情報は、APLコンテナ302(バージョン2.0のGetDataアプリケーションのコンテナ)から、アプリケーションサーバ30を宛先として送信されたパケットの変換ルールについて定義した内容となっている。具体的には、図20(b)に示す設定IDが2の変換情報では、送信元IPアドレス/ポート番号がIPアドレスA3-3/50000で宛先IPアドレス/ポート番号がIPアドレスA5-1/50000のパケットを、送信元IPアドレス/ポート番号がIPアドレスA4-1/50000で宛先IPアドレス/ポート番号がIPアドレスA5-1/50001のパケットに変換する内容となっている。
図20(c)では、図20(b)の内容から、設定IDを1とする変換情報が削除された状態となっている。
(A-2)実施形態の動作
次に、以上のような構成を有するこの実施形態における通信システム1の動作を説明する。
以下では、図21及び図22に示すフローチャート(シナリオ)に沿って、通信システム1の動作の例について説明する。
図21、図22のフローチャートでは、ゲートウェイ装置10-1の内部におけるAPLコンテナ(GetData)をバージョン1.0からバージョン2.0にバージョンアップする過程について示している。
まず、前提としてゲートウェイ装置10-1の内部構成が図5のような状態(GetData1.0について生成され、起動されたAPLコンテナ301のみが設定された状態)で運用されているものとする(S101)。ゲートウェイ装置10-1の内部構成を図5の状態とする手順については限定されないものであり、例えば、オペレータの操作等により設定された構成であってもよい。
ステップS101の時点で管理装置40に設定されたホスト管理情報430-1(ゲートウェイ装置10-1に対応するデータ)の内容は以下のようになっているものとする。ステップS101の時点でホスト管理情報430-1の内容は、図9の内容となっているものとする。図9では、APLコンテナ管理情報431には、GetDataバージョン1.0のAPLコンテナ301の情報のみが保持されているものとする。また、ステップS101の時点では、ホスト管理情報430-1を構成するProxyコンテナ管理情報432の内容は、図16のような内容となっている。さらに、ステップS101の時点では、ホスト管理情報430-1を構成するネットワーク設定情報433の内容は、図17のような内容となっているものとする。さらにまた、ステップS101の時点では、ホスト管理情報430-1を構成する振分設定情報434の内容は、図18(a)のような内容となっているものとする。また、ステップS101の時点で、ゲートウェイ装置10-1の仮想ブリッジ201、202(IPマスカレード部201a、202a)に設定される変換テーブルの内容はそれぞれ、図19、図20(a)のような内容となっているものとする。さらに、ステップS101の時点で、管理装置40のデータ記憶部420には、イメージ440-2のデータは登録されていないものとする。さらにまた、ステップS101の時点で、管理装置40のデータ記憶部420を構成するバージョン管理情報450の内容は、図8(a)のような内容となっているものとする。図8(a)では、GetData1.0のみがリリースされており、GetData1.0のAPLコンテナがゲートウェイ装置10-1~10-3に生成され、起動されている状態について示している。
次に、管理装置40のデータ記憶部420に、イメージ440-2のデータ(ファイル名:GetDataImage_v2.0のデータ)が登録(アップロード)されたものとする(S102)。管理装置40のデータ記憶部420に、イメージ440-2のデータを登録する方式については限定されないものである。例えば、オペレータの操作(データ編集受付手段460に対する操作)によりデータ記憶部420にイメージ440-2のデータ登録を受け付けるようにしてもよいし、通信によりイメージ440-2のデータ登録を受け付けるようにしてもよい。また、データ記憶部420自体が管理装置40上に存在する必要はなく、ファイルサーバやクラウド上のストレージ等であってもよい。
次に、管理装置40が保持するバージョン管理情報450に、GetDataアプリケーションの新しいバージョン(2.0)に関するフィールド(列)の追加設定及び可変情報(バージョン及びAPLイメージ名)入力が行われ、バージョン管理情報450の内容が図8(b)の状態となったものとする(S103)。
図8(b)に示すバージョン管理情報450では、バージョン2.0の列において、バージョンに項目に2.0、APLイメージ名にGetDataImage_v2.0が設定されている。
バージョン管理情報450を構成する新しいバージョンの各項目については、例えば、オペレータの操作(データ編集受付手段460を介した操作)により入力受け付けるようにしてもよいし、通信により入力受け付けをするようにしてもよい。なお、バージョン2.0のAPLイメージ名については、コンテナ制御処理部410が、バージョンの内容(2.0)に基づいて、バージョン1.0のAPLイメージ名「GetDataImage_v1.0」の数値部分のみを置き換え(「1.0」の部分を「2.0」に置き換え)することにより自動設定を行うようにしてもよい。したがって、この場合、データ編集受付手段460が受け付けるのはバージョン(バージョンナンバー)だけとしてもよい。
この実施形態では、管理装置40のコンテナ制御処理部410は、バージョン管理情報450に新しいバージョンの情報(バージョン及びAPLイメージ名の情報)が設定されたことを契機(トリガ)に、各ゲートウェイ装置10に対するAPLコンテナのバージョンアップを開始するものとする。なお、管理装置40のコンテナ制御処理部410において、APLコンテナのバージョンアップ(この実施形態ではバージョン1.0から2.0への更新処理)を開始するトリガは上記に限定されない。例えば、管理装置40のコンテナ制御処理部410は、バージョン管理情報450に新しいバージョンの情報(バージョン及びAPLイメージ名の情報)が設定された後、所定のコマンド受付(例えば、データ編集受付手段460を介した受付)を契機にAPLコンテナのバージョンアップを開始するようにしてもよい。
GetData(APLコンテナ)のバージョンアップを開始すると、コンテナ制御処理部410は、新しいバージョン2.0のホスト情報を更新する(S104)。
具体的には、管理装置40のコンテナ制御処理部410は、バージョン1.0のホスト情報(Host-1~Host-3)を、バージョン2.0のホスト情報にコピーして図8(c)のような状態とする。これにより、管理装置40のコンテナ制御処理部410は、ゲートウェイ装置10-1~10-3(Host-1~Host-3)にバージョン2.0GetDataアプリケーションの実行の準備(APLコンテナの生成と起動の準備)を行うことになる。以下では、ゲートウェイ装置10-1に関わる動作(処理)について詳細説明を行うが、他のゲートウェイ装置10-2、10-3についても同様の動作(処理)であるため詳しい説明は省略する。
次に、コンテナ制御処理部410は、各ホスト管理情報430(各ゲートウェイ装置10)のAPLコンテナ管理情報431に、GetDataのバージョン2.0を示すフィールド(列)を追加し、一部のネットワーク設定情報以外の項目(送信元ポート番号)を入力する(S105)。
例えば、コンテナ制御処理部410は、図10に示すように、ホスト管理情報430-1のAPLコンテナ管理情報431に、GetDataのバージョン2.0を示すフィールド(列)を追加し、一部のネットワーク設定情報以外の項目を設定する。その際、コンテナ制御処理部410は、図10に示すように、バージョン2.0のAPLイメージ名については、バージョン管理情報450のAPLイメージ名(GetDataImage_v2.0)を設定する。
また、コンテナ制御処理部410は、図10に示すように、バージョン2.0のネットワーク設定情報を構成する送信元ポート番号については、バージョン1.0のポート番号(50000)をインクリメント(1加算)した番号(50001)を設定するようにしてもよい。なお、コンテナ制御処理部410は、バージョン2.0のネットワーク設定情報を構成する送信元ポート番号については任意の他の番号を設定するようにしてもよい。また、コンテナ制御処理部410は、図10に示すように、固定情報の各項目については、バージョン1.0の情報をそのままコピーして設定するようにしてもよい。さらに、コンテナ制御処理部410は、図10に示すように、制御情報については初期情報としてスイッチ=OFF、ステータス=停止中を設定する。
次に、コンテナ制御処理部410は、図10に記載されるホスト管理情報430-1のAPLコンテナ管理情報431から、GetDataにおけるバージョン2.0の列に関わる情報を取得する。さらに、コンテナ制御処理部410は、ゲートウェイ装置10-1~10-3(コンテナ制御エンジン120)に、イメージ440-2「GetDataImage_v2.0」のデータを、APLコンテナ管理情報431の内容(バージョン2.0のデータのみ)と共に送信してコンテナの生成について指示する(S107)。
次に、コンテナ制御処理部410は、各ゲートウェイ装置で生成されたAPLコンテナ(GetData2.0)に設定されたIPアドレス(アドレスA3-1)を取得して、各ホスト管理情報430を構成する各情報を更新する(S108)。
例えば、図6に示すように、ゲートウェイ装置10-1のAPLコンテナ302(GetData2.0のAPLコンテナ)において、下位側の仮想イーサネットポート302VE-1にIPアドレスA2-4が付与され、上位側の仮想イーサネットポート302VE-2にIPアドレスA3-3が付与されたものとする。
ステップS108の処理終了時点で、ゲートウェイ装置10-1内の論理的なネットワーク構成は、図6のような状態となる。
このとき、コンテナ制御処理部410は、ホスト管理情報430-1については以下のように更新する。コンテナ制御処理部410は、図11に示すように、ホスト管理情報430-1のAPLコンテナ管理情報431において、GetData2.0に対応するネットワーク設定情報(上位側IFアドレス、下位側IFアドレス)に、ゲートウェイ装置10-1から取得したIPアドレス(IPアドレスA3-3、IPアドレスA2-4)を設定する。
次に、コンテナ制御処理部410は、各ホスト管理情報430の内容に基づいて、各ゲートウェイ装置10を構成する上位側の仮想ブリッジ202(IPマスカレード部202a)の設定を更新する(S109)。
具体的には、コンテナ制御処理部410は、各ゲートウェイ装置10に追加したAPLコンテナ(GetData2.0のAPLコンテナ)に対応するIPマスカレードの設定を行う。例えば、コンテナ制御処理部410は、図11に記載されるホスト管理情報430-1のAPLコンテナ管理情報431から、GetDataにおけるバージョン2.0の列に関わる情報を取得する。さらに、コンテナ制御処理部410は、取得したホスト管理情報430-1の内容に基づいて、ゲートウェイ装置10-1の仮想ブリッジ202(IPマスカレード部202a)の設定を図20(b)のように変更する。図20(b)では、図20(a)の状態から、設定IDを2とする変換情報が追加設定されている。図20(b)に示す設定IDが2の変換情報は、APLコンテナ302(バージョン2.0のGetDataアプリケーションのコンテナ)から、アプリケーションサーバ30を宛先として送信されたパケットの変換ルールについて定義した内容となっている。
具体的には、図20(b)に示す設定IDが2の変換情報では、「変換前送信元IPアドレス/ポート番号」が、APLコンテナ管理情報431の上位側IFアドレス(IPアドレスA4-3)と送信元ポート番号(50001)を組み合わせた内容(IPアドレスA3-3/50001)となっている。また、図20(b)に示す設定IDが2の変換情報では、「変換前宛先IPアドレス/ポート番号」が、APLコンテナ管理情報431の送信先情報の内容(IPアドレスA5-1/50000)となっている。さらに、図20(b)に示す設定IDが2の変換情報では、「変換後送信元IPアドレス/ポート番号」が、ネットワーク設定情報433の上位側仮想ブリッジアドレス(IPアドレスA4-1)と、APLコンテナ管理情報431の送信元ポート番号(50001)を組み合わせた内容(IPアドレスA4-1/50001)になっている。さらにまた、図20(b)に示す設定IDが2の変換情報では、変換後宛先IPアドレス/ポート番号が、APLコンテナ管理情報431の送信先情報の内容(IPアドレスA5-1/50000)となっている。
次に、コンテナ制御処理部410は、各ホスト管理情報430(APLコンテナ管理情報431)におけるGetDataバージョン2.0のAPLコンテナのスイッチをONとして、各ゲートウェイ装置10におけるGetDataバージョン2.0のAPLコンテナの起動を開始させる(S110)。
ここで、APLコンテナが起動すると、GetDataバージョン2.0のアプリケーションを実行させるためのプロセスは、生成される。
例えば、コンテナ制御処理部410は、図12に示すように、ホスト管理情報430-1を構成するAPLコンテナ管理情報431のスイッチをONに変更し、ゲートウェイ装置10-1のコンテナ制御エンジン120を制御して、GetDataバージョン2.0のAPLコンテナ302の起動を開始させる処理を行う。
ここで、APLコンテナ302が起動すると、GetDataバージョン2.0のアプリケーションを実行させるためのコンテナ140のプロセス150(図3)は、生成される。
次に、コンテナ制御処理部410は、各ゲートウェイ装置10のコンテナ制御エンジン120の動作を監視し、GetDataバージョン2.0のAPLコンテナ302の起動が完了して正常動作を開始したことを確認した後、各ホスト管理情報430(APLコンテナ管理情報431)におけるGetDataバージョン2.0のAPLコンテナのステータスを正常動作中に変更する(S111)。
例えば、コンテナ制御処理部410は、ゲートウェイ装置10-1のコンテナ制御エンジン120の動作を監視し、GetDataバージョン2.0のAPLコンテナ302が正常起動したこと(コンテナ140のプロセス150(図3)が正常に生成されたこと)を確認した後、図13に示すように、ホスト管理情報430-1を構成するAPLコンテナ管理情報431のステータスを正常動作中に更新する。
次に、コンテナ制御処理部410は、図12に記載されるホスト管理情報430-1のAPLコンテナ管理情報431から、GetDataにおけるバージョン2.0の列に関わる情報を取得する。さらに、コンテナ制御処理部410は、取得したホスト管理情報430-1の内容(制御情報におけるスイッチ「ON」、ステータス「正常動作中」)に基づいて、各ホスト管理情報430(各ゲートウェイ装置10)の振分設定情報434に、GetData2.0のフィールド(列)を追加して、各ゲートウェイ装置10のProxyコンテナ300に設定を反映させる(S112)。
例えば、コンテナ制御処理部410は、図18(b)に示すように、ホスト管理情報430-1の振分設定情報434に、GetDataバージョン2.0のフィールド(列)を追加する更新を行い、ゲートウェイ装置10-1のProxyコンテナ300に更新後の振分設定情報434を反映させる処理を行う。
ここで、コンテナ制御処理部410は、図18(b)に示すように、ホスト管理情報430-1を構成する振分設定情報434(GetDataバージョン2.0の振分制御情報(ステータス))について、振分制御情報(ステータス)を「NG」とする。
次に、コンテナ制御処理部410は、各ホスト管理情報430を構成する振分設定情報434で、一部の端末(カメラ20)の振分先を、GetDataバージョン2.0のAPLコンテナ302に移行して、各ゲートウェイ装置10のProxyコンテナ300に反映し、正常に移行したことを確認する(S113)。
例えば、コンテナ制御処理部410は、図18(c)に示すように、ホスト管理情報430-1を構成する振分設定情報434(GetDataアプリケーションの振分クライアント情報)で、カメラ20-1(IPアドレスA0-1)のみを、バージョン2.0に移行する更新を行う。
ここで、コンテナ制御処理部410は、図18(c)に示すように、ホスト管理情報430-1を構成する振分設定情報434(GetDataバージョン1.0の振分制御情報(ステータス))について、振分制御情報(ステータス)を「NG」から「OK」へと更新を行う。
そして、コンテナ制御処理部410は、更新後の振分設定情報434の内容を、ゲートウェイ装置10-1のProxyコンテナ300に反映(コンテナ制御エンジン120を経由して反映)し、正常に移行したことを確認する。コンテナ制御処理部410が、カメラ20-1(IPアドレスA0-1)について、バージョン2.0に移行したことを確認する処理については限定されないものである。例えば、アプリケーションサーバ30のネットワークポートを監視して、カメラ20-1(IPアドレスA0-1)を送信元とするパケットが受信されていることを確認するようにしてもよい。また、ステップS113の処理(試験的に一部の端末のみをバージョンアップする処理)そのものを省略するようにしてもよい。
次に、コンテナ制御処理部410は、各ホスト管理情報430を構成する振分設定情報434で、全ての端末(カメラ20)の振分先を、GetDataバージョン2.0のAPLコンテナ302に移行して、各ゲートウェイ装置10のProxyコンテナ300に反映する処理を行う(S114)。
例えば、コンテナ制御処理部410は、図18(d)に示すように、ホスト管理情報430-1を構成する振分設定情報434(GetDataアプリケーションの振分クライアント情報)で、全てのカメラ20-1~20-3(IPアドレスA0-1~A0-3)を、バージョン2.0に移行する更新を行う。
ここで、コンテナ制御処理部410は、図18(d)に示すように、ホスト管理情報430-1を構成する振分設定情報434(GetDataバージョン1.0の振分制御情報(ステータス))について、振分制御情報(ステータス)を「OK」から「NG」へと更新を行う。
そして、コンテナ制御処理部410は、更新後の振分設定情報434の内容を、ゲートウェイ装置10-1のProxyコンテナ300に反映(コンテナ制御エンジン120を経由して反映)する。
以上のように図21のフローチャートの処理で、コンテナ制御処理部410は、各ゲートウェイ装置10に、GetDataバージョン2.0(新バージョン)のAPLコンテナ302を設定し、全ての端末(カメラ20)についてGetDataバージョン2.0のAPLコンテナ302への移行が完了する。
その後、コンテナ制御処理部410は、図22のフローチャートの処理により、GetDataバージョン1.0(旧バージョン)のAPLコンテナ301の停止と削除及び関連する設定を削除する処理を行う。図22のフローチャートの処理を開始するタイミングについては限定されないものであり、図21のフローチャートの最後のステップ終了後に続けて開始するようにしてもよいし、オペレータによる操作(データ編集受付手段460により受付けた操作)に応じて開始するようにしてもよいし、所定の時刻(例えば、図示しないタイマに設定された時刻)に開始するようにしてもよい。
まず、コンテナ制御処理部410は、図14に示すように、ホスト管理情報430-1のAPLコンテナ管理情報431に、GetDataのバージョン1.0を示すフィールド(列)における制御情報の制御情報について、スイッチ=OFFに設定する。さらに、コンテナ制御処理部410は、バージョン管理情報450において、GetDataバージョン1.0(旧バージョン)のホスト情報から各ゲートウェイ装置10の情報(Host-1~Host-3)を削除する(S201)。
具体的には、管理装置40のコンテナ制御処理部410は、図8(d)に示すように、バージョン管理情報450から、バージョン1.0のホスト情報(Host-1~Host-3)を削除する。これにより、管理装置40のコンテナ制御処理部410は、ゲートウェイ装置10-1~10-3(Host-1~Host-3)にバージョン1.0GetDataアプリケーションの終了の準備(APLコンテナの停止(削除)の準備)を行うことになる。
次に、コンテナ制御処理部410は、バージョン管理情報450の更新内容に基づいて、各ゲートウェイ装置10を構成する上位側の仮想ブリッジ202(IPマスカレード部202a)から、GetDataバージョン1.0(旧バージョン)のAPLコンテナ301に関する設定(IPマスカレードの変換情報)を削除する処理を行う(S202)。
例えば、コンテナ制御処理部410は、ホスト管理情報430-1の内容に基づいて、ゲートウェイ装置10-1の仮想ブリッジ202(IPマスカレード部202a)の設定を図20(c)のように変更する。図20(c)では、図20(b)の状態から、設定IDを1とする変換情報(GetDataバージョン1.0のAPLコンテナ301に対応する設定)が削除された状態となっている。
次に、コンテナ制御処理部410は、各ホスト管理情報430(各ゲートウェイ装置10)の振分設定情報434から、GetDataバージョン1.0のフィールド(列)を削除して、各ゲートウェイ装置10のProxyコンテナ300に設定を反映させる(S203)。
例えば、コンテナ制御処理部410は、図18(e)に示すように、ホスト管理情報430-1の振分設定情報434から、GetDataバージョン1.0のフィールド(列)を削除する更新を行い、ゲートウェイ装置10-1のProxyコンテナ300に更新後の振分設定情報434を反映させる処理を行う。
次に、コンテナ制御処理部410は、各ゲートウェイ装置10に対して、GetDataバージョン1.0のAPLコンテナ301の停止と削除を指示して実行させる処理を行う(S204)。
ここで、コンテナ制御処理部410は、ホスト管理情報430を構成するAPLコンテナ管理情報431におけるGetDataバージョン1.0の情報を用いて、ゲートウェイ装置10-1~10-3のコンテナ制御エンジン120を制御し、GetDataバージョン1.0のAPLコンテナ302の停止と削除の処理について行う。
またここで、APLコンテナ302が停止すると、GetDataバージョン1.0のアプリケーションを実行させるためのコンテナ140のプロセス150(図3)は、削除される。
なお、ホスト管理情報430-1を構成するAPLコンテナ管理情報431-1におけるGetDataバージョン1.0の情報は、図13におけるGetDataバージョン1.0に関わる情報である。
このとき、コンテナ制御処理部410は、各ゲートウェイ装置10に対して、仮想ブリッジ201、202で、GetDataバージョン1.0のAPLコンテナ301に接続する仮想イーサネットポートの削除も指示する。例えば、ゲートウェイ装置10-1では、図6の状態から、GetDataバージョン1.0のAPLコンテナ301、及び仮想ブリッジ201、202でAPLコンテナ301に接続する仮想イーサネットポート201VE-2、202VE-1の削除を実行させる。そうすると、ゲートウェイ装置10-1の内部ネットワークは図7の状態となる。
次に、コンテナ制御処理部410は、各ホスト管理情報430のAPLコンテナ管理情報431から、GetDataバージョン1.0に関する設定を削除する処理を行う(S205)。
例えば、コンテナ制御処理部410は、ゲートウェイ装置10-1に対するホスト管理情報430-1については以下のような処理を行う。コンテナ制御処理部410は、図15に示すように、ホスト管理情報430-1のAPLコンテナ管理情報431から、GetDataバージョン1.0に関するフィールド(列)を削除する処理を行う。
以上の処理により、通信システム1では、各ゲートウェイ装置10におけるAPLコンテナ(GetDataアプリケーション)の更新(バージョン1.0から2.0へのバージョンアップ)処理が完了する。なお、更新処理の後、コンテナ制御処理部410は、バージョン管理情報450から、GetDataバージョン1.0のフィールド(列)を削除するようにしてもよい。
また、管理装置40(コンテナ制御処理部410)では、図21のフローチャートの過程で、一部又は全部のゲートウェイ装置10について移行を中断して、切戻した状態(バージョン1.0のAPLコンテナ301のみに振り分ける状態)としてもよい。
例えば、管理装置40(コンテナ制御処理部410)は、ステップS112で正常にバージョン2.0に移行できなかったゲートウェイ装置10については、振分設定情報434の内容を変更して全てのカメラ20を送信元とするパケットを旧バージョン(1.0)のAPLコンテナ301側に戻して待機(移行処理を中断)するようにしてもよい。そして、管理装置40(コンテナ制御処理部410)は、その後のオペレータの操作等により、移行の原因が除去された後、オペレータの操作等を契機としてステップS112から動作を再開可能とするようにしてもよい。
(A-3)実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
第1の実施形態の管理装置40では、バージョン管理情報450を用いて、APLコンテナ(APLコンテナを構成するアプリケーションプログラム)のバージョンと、バージョン(バージョンナンバー)ごとのAPLイメージ名(イメージのファイル名)と、ゲートウェイ装置10ごとに設定されているAPLコンテナのバージョンが管理されている。また、第1の実施形態の管理装置40では、APLコンテナ管理情報431において、APL名をキー情報とし、少なくとも可変情報と固定情報に分けてバージョンごとのAPLコンテナに対する設定情報を管理している。
これにより、第1の実施形態の管理装置40では、バージョンアップ対象のアプリケーションについて新しいバージョンのAPLコンテナを導入する際に、新しいバージョンのイメージ(イメージのファイル)のアップロード、及びバージョン管理情報450に対する新しいバージョンに関する情報の登録(APL名を指定して、新しいバージョン及びアップロードしたAPLイメージ名の登録)を受け付けるだけで、各ゲートウェイ装置10に対する新しいバージョンのAPLコンテナの導入処理(例えば、図21、図22のフローチャートに示す処理)の実行を受け付けることができる。
特に、この実施形態の管理装置40では、各ゲートウェイ装置10のAPLコンテナに関する情報(APLコンテナ管理情報431)において、可変情報と固定情報を設定し、新バージョンの固定情報については旧バージョンの情報をそのままコピーし、新バージョンの可変情報についてはバージョン管理情報450の情報をコピーすることで自動的に新バージョンの情報入力を行うことができる。
すなわち、この実施形態の管理装置40では、APLコンテナをバージョンアップする際(アプリケーションを更新する際)に、各ゲートウェイ装置10のAPLコンテナに関する情報をオペレータが管理する必要がない。また、この実施形態の管理装置40では、APLコンテナをバージョンアップする際(アプリケーションを更新する際)に、オペレータは、バージョン管理情報450でAPL名を指定して新しいバージョン(バージョンナンバー)と、APLイメージ名(すなわち、APLコンテナ管理情報431における可変情報)の指定を行うだけであり、旧バージョン側の操作や新バージョンのAPLコンテナの詳細パラメータの指定を必要としない。すなわち、この実施形態の管理装置40では、APLコンテナをバージョンアップする際(アプリケーションを更新する際)のオペレータに対する負担や設定間違い等を抑制し、利便性を向上している。
また、この実施形態の管理装置40では、Proxyコンテナ管理情報432、ネットワーク設定情報433、及び振分設定情報434等、APLコンテナ以外の設定データについても管理することで、APLコンテナの周辺の動作環境についても同時に更新することができる。
(B)他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(B-1)上記の実施形態では、本発明の情報処理装置をゲートウェイ装置に適用する例について示したが、本発明の情報処理装置を適用する装置は上記の実施形態のゲートウェイ装置に限定されないものである。上記の実施形態のゲートウェイ装置では、映像データのパケット列を処理するGetDataアプリケーションが実行されるAPLコンテナを備える例について説明したが、その他の種類のアプリケーション(例えば、音声データのパケット列を処理するアプリケーション)に置き換えたり、その他のアプリケーションを追加したりしてもよい。
また、上記の実施形態のゲートウェイ装置では、映像データのパケット列を処理するGetDataアプリケーションが実行されるAPLコンテナを備える例について説明したが、アプリケーションの代わりにミドルウェアに代表されるソフトウェアに置き換えたり、更にミドルウェアに代表されるソフトウェアを追加したりしてもよい。
それゆえ、1つのゲートウェイ装置は、GetDataアプリケーションが実行されるAPLコンテナ、その他の種類のアプリケーションが実行されるコンテナ、ミドルウェアに代表されるソフトウェアが実行されるコンテナ(APLコンテナとその他の種類のアプリケーションが実行されるコンテナ、APLコンテナとソフトウェアが実行されるコンテナ、又はその他の種類のアプリケーションが実行されるコンテナとソフトウェアが実行されるコンテナ)を備えてもよい。
(B-2)上記の実施形態では、IPマスカレード部201a(図5~図7)は、仮想ブリッジ201内に構成されることについて記載したが、IPマスカレード部201aは、物理IF部15に接続され、仮想ブリッジ201に接続される構成でもよい。
また、上記の実施形態では、IPマスカレード部202a(図5~図7)は、仮想ブリッジ202内に構成されることについて記載したが、IPマスカレード部202aは、物理IF部14に接続され、仮想ブリッジ202に接続される構成でもよい。
つまり、本項目で記載されるIPマスカレード部201aとIPマスカレード部202aは、例えば、図6に記載される構成をベースにして記載すると、図23に記載される構成となる。
ここで、IPマスカレード部201aとIPマスカレード部202aは、ホストOS110のカーネル部におけるネットワーク管理部により構成される。
(B-3)上記の実施形態及び上記項目(B-2)のIPマスカレード部201aは、ネットワーク情報について変換する変換処理部の一例である。
また、上記の実施形態及び上記項目(B-2)のIPマスカレード部202aは、ネットワーク情報について変換する変換処理部の一例である。
ここで、変換処理部のIPマスカレード部201aは、ポートフォワード部201bに置き換えてもよい。ポートフォワード部201bは、物理IF部15で受信されたパケットを、受信されたパケットにおける変換前の宛先のポート番号と紐付けされた変換後のIPアドレス、ポード情報を宛先としたパケットに変換する。
つまり、本項目で記載されるポートフォワード部201bは、例えば、図6及び図23に記載される構成をベースにして記載すると、図24及び図25に記載される構成となる。ここで、ポートフォワード部201bは、カメラ20(20-1~20-3)から送信され、物理IF部15で受信されたパケットを、受信されたパケットにおける変換前の宛先のポート番号「50000」と紐付けされた変換後のIPアドレス「A2-2」、ポード情報「50000」を宛先としたパケットに変換する。
ここで、図25に記載されるポートフォワード部201bは、ホストOS110のカーネル部におけるネットワーク管理部により構成される。
(B-4)上記の実施形態では、Proxyコンテナ300は、設定されたデータ(以下、「振分設定情報」と呼ぶ)に応じて受信したパケットを、いずれかのAPLコンテナに振分(転送)する処理を行うことについて記載した。
ここで、Proxyコンテナ300は、設定されたデータ(振分制御情報(ステータス))(図18)に応じて受信したパケットを、いずれかのAPLコンテナに振分(転送)する処理を行うこととしてもよい。
一例として、Proxyコンテナ300は、GetDataのバージョン1.0に関わる振分制御情報(ステータス)が「OK」ならば、受信したパケットを、GetDataのバージョン1.0のAPLコンテナに振分(転送)する処理を行う。Proxyコンテナ300は、GetDataのバージョン2.0に関わる振分制御情報(ステータス)が「OK」ならば、受信したパケットを、GetDataのバージョン2.0のAPLコンテナに振分(転送)する処理を行う。
なお、Proxyコンテナ300は、GetDataのバージョン1.0に関わる振分制御情報(ステータス)が「NG」ならば、受信したパケットを、GetDataのバージョン1.0のAPLコンテナに振分(転送)しない。Proxyコンテナ300は、GetDataのバージョン2.0に関わる振分制御情報(ステータス)が「NG」ならば、受信したパケットを、GetDataのバージョン2.0のAPLコンテナに振分(転送)しない。