(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】通信システム、検査装置、検査方法、及びプログラム
(51)【国際特許分類】
G06F 21/50 20130101AFI20241029BHJP
【FI】
G06F21/50
(21)【出願番号】P 2023510124
(86)(22)【出願日】2021-04-01
(86)【国際出願番号】 JP2021014231
(87)【国際公開番号】W WO2022208857
(87)【国際公開日】2022-10-06
【審査請求日】2023-09-22
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】白石 将浩
(72)【発明者】
【氏名】長山 弘樹
(72)【発明者】
【氏名】鷲尾 知暁
(72)【発明者】
【氏名】宮島 麻美
【審査官】塩澤 如正
(56)【参考文献】
【文献】国際公開第2014/203728(WO,A1)
【文献】特開2015-043208(JP,A)
【文献】特開2015-232820(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/50
(57)【特許請求の範囲】
【請求項1】
ブローカレス型の出版/購読型モデルにより複数のノード間で通信を行う通信システムであって、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに
異常が発生したと見做して前記一のアプリケーションに対する検査指示を受け付ける検査管理部と、
前記検査指示に基づいて、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替える
ための検査用コマンドを前記ノードに送信する検査指示出力部と、
を有する通信システム。
【請求項2】
前記検査管理部は、
前記通信システムのネットワーク構成を表す構成情報と、予め作成された検査リストとをユーザに提示し、前記ユーザから、前記一のアプリケーションに対する検査指示を受け付ける、請求項1に記載の通信システム。
【請求項3】
前記構成情報は、
前記通信の送受信に関する前記ノード間の関係性を表す第1の関係性情報と、所属ドメイン及び出版側若しくは購読側のいずれであるかに関する前記ノード間の関係性を表す第2の関係性情報と、出版及び購読されるトピックに関する前記ノード間の関係性を表す第3の関係性情報とを用いて、IPアドレス及びポート番号により前記第1の関係性情報と前記第2の関係性情報を関連付けるとともに、前記出版/購読型モデルで利用される識別子により前記第2の関係性情報と前記第3の関係性情報とを関連付けた情報である、請求項2に記載の通信システム。
【請求項4】
ブローカレス型の出版/購読型モデルにより通信を行う複数のノードと接続される検査装置であって、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに
異常が発生したと見做して前記一のアプリケーションに対する検査指示を受け付ける検査管理部と、
前記検査指示に基づいて、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替える
ための検査用コマンドを前記ノードに送信する検査指示出力部と、
を有する検査装置。
【請求項5】
前記検査管理部は、
前記複数のノードで構成される通信システムのネットワーク構成を表す構成情報と、予め作成された検査リストとをユーザに提示し、前記ユーザから、前記一のアプリケーションに対する検査指示を受け付ける、請求項4に記載の検査装置。
【請求項6】
前記構成情報は、
前記通信の送受信に関する前記ノード間の関係性を表す第1の関係性情報と、所属ドメイン及び出版側若しくは購読側のいずれであるかに関する前記ノード間の関係性を表す第2の関係性情報と、出版及び購読されるトピックに関する前記ノード間の関係性を表す第3の関係性情報とを用いて、IPアドレス及びポート番号により前記第1の関係性情報と前記第2の関係性情報を関連付けるとともに、前記出版/購読型モデルで利用される識別子により前記第2の関係性情報と前記第3の関係性情報とを関連付けた情報である、請求項5に記載の検査装置。
【請求項7】
ブローカレス型の出版/購読型モデルにより通信を行う複数のノードと接続される検査装置が、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに
異常が発生したと見做して前記一のアプリケーションに対する検査指示を受け付ける検査管理手順と、
前記検査指示に基づいて、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替える
ための検査用コマンドを前記ノードに送信する検査指示出力手順と、
を実行する検査方法。
【請求項8】
コンピュータを、請求項4乃至6の何れか一項に記載の検査装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Pub/Sub通信を行う通信システムにおけるPub側の冗長化構成を検査する技術に関する。
【背景技術】
【0002】
近年、スマートファクトリーの実現に向け、情報NW(ネットワーク)上の機器とコントロールNW上の機器とを繋ぐことから進められている。今後、機器の相互接続、1対多、多対1の通信を軽量・柔軟に行う通信モデルの普及が想定される。
【0003】
上記のような軽量・柔軟に行う通信モデルとしてPublish/Subscribe通信(以降、Pub/Sub通信)モデルが提案されている。Pub/Sub通信では、eventと呼ばれるメッセージを作成して送信(配信)する側のクライアントであるPublisherと、メッセージを受信(購読)する側のクライアントであるSubscriberが存在する。
【0004】
Pub/Sub通信には、「空間的分離」、「時間的分離」、「非同期処理」という3つの性質がある。「空間的分離」により、PublisherとSubscriberは互いの存在を知る必要がない。「時間的分離」により、PublisherとSubscriberが同時にネットワーク上に存在しなくてもデータの送受信が可能である。また、「非同期処理」により、eventの送信、受信はPublisherもしくはSubscriberのその他の処理と非同期で処理することができる。
【0005】
Pub/Sub通信モデルには、ブローカ型とブローカレス型がある。ブローカ型の構成は、空間的分離、時間的分離、及び非同期処理の性質を担うブローカと呼ばれる機能をPubとSubの間に配置した構成である。ブローカレス型の構成は、全てのノード(PubとSub)が空間的分離、時間的分離、及び非同期処理の性質を担う機能を持った分散構成である。各ノードに、DDS(Data Distribution Service)と呼ばれる機能を配備することで、上記のブローカレス型の構成を実現することができる。なお、Pub/Sub通信モデルは出版/購読型モデルとも呼ばれる。
【先行技術文献】
【非特許文献】
【0006】
【文献】What's in the DDS Standard, インターネット<URL:https://www.dds-foundation.org/omg-dds-standard/>
【発明の概要】
【発明が解決しようとする課題】
【0007】
DDSを用いたPub/Sub通信を行う通信システムでは、DDSの基本的な機能によりPubを冗長化することが可能であり、例えば、冗長化構成の複数のPubのうちいずれのPubを優先的なPub(以降、優先Pub)と扱うかを切り替えることができる。
【0008】
しかしながら、例えば、何等かの理由によって実際には優先Pubが想定通りに切り替わらない事態もあり得る。このため、優先Pubが想定通りに切り替わることを事前に検査しておくことが望ましい。
【0009】
本発明は上記の点に鑑みてなされたものであり、Pub/Sub通信を行う通信システムにおいて、Pub側の冗長化構成を検査する技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
開示の技術によれば、ブローカレス型の出版/購読型モデルにより複数のノード間で通信を行う通信システムであって、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに対する検査指示を受け付ける検査管理部と、
前記一のアプリケーションに対して異常を挿入することで、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替えることを検査する検査指示出力部と、
を有する通信システムが提供される。
【発明の効果】
【0011】
開示の技術によれば、Pub/Sub通信を行う通信システムにおいて、Pub側の冗長化構成を検査する技術が提供される。
【図面の簡単な説明】
【0012】
【
図1】DDSを用いたPub/Sub通信を説明するための図である。
【
図2】DDSが組み込まれるシステム構成例を示す図である。
【
図3】複数ノードを有するシステムの構成例を示す図である。
【
図5】実施例におけるシステム構成例を示す図である。
【
図7】実施例における構成管理部の構成例を示す図である。
【
図8】実施例における対処部の構成例を示す図である。
【
図9】実施例におけるDDS操作機能部の構成例を示す図である。
【
図10】実施例における処理フローを示す図である。
【
図11】装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0014】
以下で説明する実施形態では、本発明を、DDSを用いたPub/Sub通信を行う通信システムに適用する例を説明するが、本発明は、DDSを用いたPub/Sub通信に限らずに適用可能である。
【0015】
(DDSを用いたPub/Sub通信について)
まず、本実施の形態の前提となるDDS、及びDDSを用いたPub/Sub通信について説明する。
【0016】
本実施の形態では、前述したブローカレス型の構成を採用しており、DDSが、ブローカに相当する機能を担うことにより、ブローカレス型を実現している。
【0017】
ここで、DDSにおける配送範囲管理について説明する。DDSではノードが持つNW I/Fに配送用NWを追加する。利用者が設定した配送範囲はこの配送用NWとDDS内部のフィルタにより動作し、Pub又はSubとして機能するアプリケーションに適切なデータの送受信を可能にする。
【0018】
具体的には、データバスと利用者が設定する配送範囲をもとに、DDSではノードの中で利用できるNW I/Fにマルチキャストアドレスを付与し、配送用NWを整備する。配送範囲指定時にノードが既存で持つIPアドレスを利用したユニキャストで配信するか、新たに付与したマルチキャストアドレスを活用するかについても設定でき、物理的なデータ流通範囲を定めることを可能にしている。
【0019】
図1に配送範囲の一例を示す。
図1の例では、配送範囲として、ドメインAとドメインBが設定されている。また、ドメインA内において、トピック[い]についての配送範囲とトピック[ろ]についての配送範囲が設定されている。また、トピック[い]の配送範囲内において、キー[II]の配送範囲が設定されている。
【0020】
(DDSが組み込まれるシステム構成例について)
DDSは、ノード(コンピュータ、通信装置などと呼んでもよい)においてミドルウェアとして機能するプログラムである。DDSにおける通信に必要な大元となる処理プログラムはライブラリとして用意されている。アプリケーション(「APP」と記述する)が送信するデータの定義(型、サイズ、名称、QoS、など)をパラメータとして有する通信プログラム生成用データ定義ファイルから、このライブラリを利用することで、DDSのプログラムを生成することができる。DDSの生成自体は既存技術である。
【0021】
図2は、DDSが組み込まれるシステム構成例を示す図である。
図2は、物理的には、センサや制御バルブが接続された複数のノード(コンピュータ)が、論理的なバス型のネットワークに接続された構成を示している。
【0022】
ノード1、2にはそれぞれセンサが接続されており、Publishするデータを生成するAPPと、DDSが搭載されている。ノード2、3にはそれぞれ制御バルブが接続されており、Subscribeしたデータを活用するAPPと、DDSが搭載されている。
【0023】
図2の例は、DDSにより、冗長化QoS設定のあるPub/Sub構成を実現した例を示している。具体的には、ノード1のDDSにより主Pubと副1Pubが構成され、ノード2のDDSにより副2Pubが構成されている。また、ノード3のDDSにより第1Subと第2Subが構成され、ノード4のDDSにより第3Subが構成されている。
【0024】
なお、
図2の例では、APPがpythonで記述され、DDSがC++で記述されている例を示しているが、これらは一例であり、どのようなプログラミング言語で記述されていてもよい。また、Pub/Sub構成の変更をする場合、QoSなど一部動的に変更できるものと、プロセスの再起動(プログラムの修正を含む)を必要とするものとがある。
【0025】
以下、本実施の形態に係る技術の一例として、実施例について説明する。
【0026】
(本実施例においてベースとなるシステム構成例)
次に、本実施例においてベースとなる通信システムの例について説明する。本実施例においてベースとなる通信システムでは、1つのノードは複数のドメインに所属してよい。また、1つのノードに複数のPub/Subが存在してよい。なお、ここでのPubとはPublishするデータを生成するアプリケーションであり、SubとはSubscribeしたデータを活用するアプリケーションである。Pub/Sub通信に係る機能はDDSが担う。
【0027】
また、1つのノードにPub/Subの両方が存在してもよく、1つのノードに複数のドメインに跨るPub/Subが存在してもよい。また、1つのAPPに複数のPub又は複数のSubが存在してもよい。また、同一APPにおける各Pub、各Subは識別可能である。また、本実施例における通信システムでは、通信は平文である。
【0028】
図3に、本実施例においてベースとなる通信システムの構成例を示す。
図3に示すように、この通信システムは、ノード10~18、L2SW(レイヤ2スイッチ)20、21、L3SW(レイヤ3スイッチ)30、パケット分析装置40、検知部50を有する。
【0029】
図3の例において、ノード10、11、12、15、16、17はドメインD1に属し、ノード12、13、17、18はドメインD2に属している。例えば、ノード10の「DDS_D1」のD1のように、そのノードが属するドメインが示されている。ノード12とノード17は、ドメインD1とドメインD2の両方に属している。
【0030】
例えば、ノード10において、「Pub1(APPい)」は、トピック[い]のデータをPublishするアプリケーションであり、Pub/Sub通信においてPub1(Publisher1)として機能する。ノード10において、Pub1(APPい)とPub2(APPい)として、2つのPubが存在する。これは、APPとしては1つであるが、DDSの機能により、2つのPubとして機能することを示している。ノード15において示されるように、Subについても同様である。
【0031】
また、ノード11は、Pub3とSub4として、PubとSubの両方を備えている。ノード12、14には複数のPubとして機能する複数のAPPが存在し、ノード17、18には複数のSubとして機能する複数のAPPが存在する。
【0032】
また、
図3に示す通信システムにおいては、Pub1(APPい)~Pub4(APPい)が存在し、「APPい」のPubが冗長化されている。同様に、Pub5(APPろ)~Pub6(APPろ)が存在し、「APPろ」のPubも冗長化されている。
【0033】
また、L3SW30の先にはインターネット55が接続されており、各ノードはインターネット55と通信することが可能である。また、L2SW20、21には、パケット分析装置40が接続されており、パケット分析結果に基づいて、検知部50が異常検知を行うことが可能である。
【0034】
(本実施例の概要)
例えば、或るトピックに関して、第1Pub、第2Pub、第3Pubの3つで冗長化されており、第1Sub~第3Subの各Subが第1Pubを優先Pubと扱っている場合を考える。この場合、各Subには第1Pub~第3Pubの各々からデータが配信されるが、第1Pubから配信されたデータのみがSub側のAPPに渡される。
【0035】
本実施例においては、第1Pubに異常などが発生した場合、各Subは、優先Pubを第2Pub又は第3Pubに切り替えることができるものとする。なお、異常とはPubの故障の他、例えば、Pubが第三者に乗っ取られた結果、不正な内容のデータ(例えば、Subに対する攻撃を目的とするデータなど)を送信しているような場合や不正な状態となっている場合なども含まれるものとする。
【0036】
図4に、上記の優先Pubの切り替えの様子を示す。
図4の例では、優先Pubである第1Pubに異常が発生した場合に、優先Pubを第3Pubに切り替える様子を表している。この切り替えにより、各Subでは第3Pubから配信されたデータがAPPに渡されるようになる。
【0037】
本実施例では、疑似的な異常を挿入等することにより、上記の優先Pubの切り替えが正しく行われることを検査することができる仕組みが提供される。これにより、例えば、「冗長化構成を組んだつもりが実際の異常時には優先Pubが切り替わらなかった」などいった事態の発生を防止することが可能となる。
【0038】
(本実施例におけるシステム構成例)
図5に、本実施例における通信システムの構成例を示す。
図5に示すように、
図3に示したベースとなる通信システムに対して、各ノードにDDS操作機能部が備えられ、また、構成管理部60、対処部70を有する。DDS操作機能部は対処部70からの指示に応じて優先Pubを切り替える機能を実現する。
図5では、ノード10~18がそれぞれDDS操作機能部101~109を備えている例を示している。以降、ノードを区別しない場合は、DDS操作機能部100と表記する。
【0039】
構成管理部60は通信システムの構成情報(NW構成情報)を管理し、対処部70は検査指示に応じて優先Pubの切り替え検査を実行する。
図5の例では検知部50が存在するが、優先Pubの切り替え検査時には検知部50は不要である。実際の運用時には、検知部50による異常検知に応じて優先Pubの切り替えが行われる。なお、検知部50、構成管理部60、対処部70はパケット分析装置40が有していてもよいし、パケット分析装置40とは異なる装置が有していてもよい。本実施例では、パケット分析装置40が検知部50、構成管理部60、対処部70を有しているものとする。
【0040】
(構成管理について)
優先Pubの切り替え検査を行うためには通信システムの構成情報が管理されている必要がある。これは、通信システム上の検査箇所(例えば、疑似的な異常を発生させるPubなど)を指定する必要があるためである。このような構成情報な任意の方法で作成及び管理されればよいが、本実施例では、ノード間を流れる通信(トラヒック)から作成できる複数の関係性情報を組み合わせることで、構成情報を作成及び管理するものとする。
【0041】
関係性情報としては、NWの水平軸のトポロジを表す「IP関係レイヤ」、「参加者関係レイヤ」、「Pub/Sub関係レイヤ」の3つを作成する。IP関係レイヤと参加者関係レイヤが関連付けられ、参加者関係レイヤとPub/Sub関係レイヤが関連付けられるため、結局3つの全てのレイヤが関連付けられることなり、これら3つのレイヤを合成することで、NWの垂直軸のトポロジを表す「合成レイヤ」が得られる。この合成レイヤを複数世代分保持することで、構成情報が管理される。なお、世代とは、例えば、或る時間区切り、イベントの区切りなどで分けた区分を指す。ただし、複数世代分保持することは必須ではなく、例えば、最新の1世代分のみを保持してもよい。
【0042】
図6に、IP関係レイヤ、参加者関係レイヤ、Pub/Sub関係レイヤ、合成レイヤの一例を示す。
図6に示すように、IP関係レイヤはIPアドレスを頂点、IPレベルのデータの送受信関係を枝とするグラフ構造で表される。IP関係レイヤにおいて、頂点間に枝がある場合はその頂点が表すIPアドレスを持つノード間でデータの送受信関係があることを表している。なお、1つのノードが複数のIPアドレスを持つことがある(例えば、ユニキャスト用のIPアドレスに加えて、マルチキャスト用のIPアドレスを持つことがある。)。参加者関係レイヤはノードが持つGUIDを1つの記号(三角形又は逆三角形の記号)で表しており、各記号は各GUIDが属するドメインとPub又はSubのいずれであるかを表している。Pub/Sub関係レイヤはノードが持つGUIDを頂点、同一トピックに属するか否かの関係を枝としており、各GUIDが属するトピックの関係性を表している。なお、参加者関係レイヤも上記の記号(三角形又は逆三角形の記号)を頂点とするグラフ構造で表される。
図6の例では参加者関係レイヤを表すグラフ構造には枝がないが、例えば、同一ドメインに属する頂点同士を枝で繋いで表現されてもよい。
【0043】
Pub/Sub関係レイヤはデータ配信としての通信から取得される情報で作成可能であり、参加者関係レイヤはDDS動作用通信から取得される情報で作成可能である。一方で、IP関係レイヤはデータ配信としての通信とDDS動作用通信の両方から取得される情報で作成可能である。なお、DDS動作用通信とは、ノードがPub/Sub通信に参加するときに行う通信、他のノードを探索するときに行う通信、配信内容を合意するときに行う通信などのことである。
【0044】
IP関係レイヤにおいて、1つの頂点には、ノードが持つIPアドレスを含む5タプル(src/dst IPアドレス、src/dst port番号、protocol番号)が対応付けられている。参加者関係レイヤにおいては、1つの記号(三角形又は逆三角形の記号)にはGUIDとport番号が対応付けられている。Pub/Sub関係レイヤにおいては、1つの頂点にはGUIDとトピック名が対応付けられている。GUIDとはDDSで利用される識別子であり、IPアドレスやport番号等から生成される。なお、1つのノードが複数のGUIDを持つことがある(例えば、1つのノードがPubとSubの両方として機能する場合、1つのノードが複数のドメインや複数のトピックに属する場合など)。
【0045】
したがって、IP関係レイヤと参加者関係レイヤをport番号で関連付けることが可能であり、参加者関係レイヤとPub/Sub関係レイヤをGUIDで関連付けることが可能である。これらの関連付けにより3つのレイヤを合成することで、Pub/Sub通信を行う通信システムのNW構成情報として合成レイヤが得られる。この合成レイヤは、例えば、複数世代分保持される。
【0046】
ここで、合成レイヤにおいて、ある1つのノードに着目した場合、このノードにはIP関係レイヤの1以上の頂点(IPアドレスを含む5タプル)が対応し、これら1以上の頂点の各々に対して参加者関係レイヤの1以上の頂点(port番号及びGUID)が関連付けられる。また、参加者関係レイヤの1以上の頂点の各々に対して、Pub/Sub関係レイヤの0以上の頂点(GUID及びトピック名)が関連付けられる。すなわち、合成レイヤでは、各ノードに対して、当該ノードを頂点とするツリー構造(最上位の階層をIPアドレス、次の階層をport番号、その次の階層をGUID、最後の階層をトピック名とするツリー構造)が得られ、このツリー構造が垂直軸トポロジを表す。
【0047】
(本実施例における各部の構成例)
本実施例では、上記の構成情報を利用して検査箇所に疑似的な異常を挿入等することにより、優先Pubの切り替えが正しく行われることを検査することができる仕組みが提供される。
【0048】
図7は、構成管理部60の構成例を示す。
図7に示すように、構成管理部60は、可視化部610、関係性記録部620を有する。関係性記録部620には、少なくとも1世代の構成情報(IP関係レイヤ、参加者関係レイヤ、Pub/Sub関係レイヤ、合成レイヤ)が記録されている。なお、構成情報は、予め作成され、関係性記録部620に記録されているものとする。これら各部の動作などについては、後述するシーケンスのところで説明される。
【0049】
図8は、対処部70の構成例を示す。
図8に示すように、対処部70は、検査管理部710、検査指示出力部720、検査リスト記録部730を有する。これら各部の動作などについては、後述するシーケンスのところで説明される。
【0050】
図9は、DDS操作機能部100の構成例を示す。
図9に示すように、DDS操作機能部100は、切替部110を有する。切替部110の動作については、後述するシーケンスのところで説明される。
【0051】
本実施例では、上記の各部により、検査箇所に疑似的な異常を挿入等することにより、優先Pubの切り替えが正しく行われることを検査する。
【0052】
(本実施例のシーケンス例)
次に、
図10のシーケンス図を参照して、本実施例における通信システムの動作例について説明する。
【0053】
検査管理部710は、通信システムの構成確認を可視化部610に依頼する(S101)。可視化部610は、この構成確認に応じて、関係性記録部620から現在の構成情報(つまり、最新の世代の構成情報)を検索し、その検索結果として当該構成情報を取得する(S102~S103)。そして、可視化部610は、取得した構成情報の可視化情報を作成し、検査管理部710に提示する(S104~S105)。可視化情報とは、構成情報が表す通信システム構成を、例えばディスプレイ上などに可視化表示するための情報である。これにより、ユーザは、通信システム構成(つまり、Pub/Subのデータ送受信関係や所属ドメイン、トピック、Pubの冗長化構成など)を確認することができる。
【0054】
検査管理部710は、検査リストを検査リスト記録部730から検索し、その検索結果として検査リストを取得する(S106~S107)。検査リストとは、検査可能な検査箇所のリストである。このような検査リストは、システムの設計書をもとに作成する、あるいは検査実施前までの通信情報をもとに抽出した情報をもとに作成する、といった方法で作成され得るが、本実施例では作成の方法は限定せず、予め作成されていればよい。なお、検査箇所は、例えば、検査対象となる優先PubのIDや名称、所属ドメイン、トピック、QoS情報、このPubを有するノードのIPアドレスなどの組で表される。
【0055】
その後、検査管理部710は、検査対象となる検査箇所の指示待ち状態となる(S108)。例えばユーザなどは、可視化された構成情報と検査リストからどのPubを検査対象とするかを決定することができる。
【0056】
ユーザなどにより検査箇所の指定及び検査指示が行われ、これを受け付けると、検査管理部710は、当該検査箇所の検査指示依頼を検査指示出力部720に送信する(S109~S110)。ここで指定された検査箇所が、異常が発生したと見做される優先Pubである。なお、検査指示の際には、検査種別(例えば、Pubが停止したことを示す「停止」、Pubの設定が変更されたことを示す「修正」など)が指定されてもよく、また、検査種別が「修正」の場合はその変更内容が指定されてもよい。例えば、Pubが故障等により停止した場合の検査を行いたい場合は検査種別「停止」が指定され、Pubが第三者に乗っ取られ不正なデータを送信している場合や不正な状態となっている場合の検査を行いたい場合は検査種別「修正」が指定され、その変更内容として不正なデータを送信する内容や不正な状態を表す内容が指定される。
【0057】
不正な状態の具体例を挙げると、例えば、或るノードのPubはドメインAのトピック「い」に所属して温度データを送信していることが正常状態であるとする。このとき、当該ノードのPubをドメインBに所属している内容に修正した場合、このPubは不正な状態になっていると言える。
【0058】
ただし、上記の検査種別は一例であって、様々な種別の検査が可能であってもよい。例えば、新たなPubがPub/Sub通信に参加した際の検査を行うような検査種別が存在してもよい。
【0059】
検査指示出力部720は、検査指示依頼を受信すると、検査箇所のPubから他のPub(以降、切替先Pub)に優先Pubを切り替えるためのコマンド(以降、検査用コマンド)を検査リスト記録部730から検索し、その検索結果として当該検査用コマンドを取得する(S111~S112)。なお、切替先Pubは検査箇所のPubと冗長化構成をとっているPubの中から決定されるが、この際、予め1つのPubが決められていてもよいし、何等かのルールに従って決定されてもよい。また、検査用コマンドは予め検査リスト記録部730に記録されているが、例えば、検査種別に応じて検査用コマンドが検索及び取得されてもよいし、検査種別の他に検査対象のPubやその所属ドメイン、トピック等に応じて検査用コマンドが検索及び取得されてもよい。
【0060】
続いて、検査指示出力部720は、上記の検査用コマンドを切替部110に送信する(S113)。なお、検査指示出力部720は、切替先Pubと、この切替先Pubからのデータを受信するSubの両方の切替部110に対して検査用コマンドを送信する。ただし、切替先Pubとこの切替先Pubからのデータを受信するSubとでは、検査用コマンドの内容が異なっていてもよい。
【0061】
そして、切替部110は、上記の検査用コマンドを受信すると、DDSへ検査用コマンドを実行する(S114)。なお、このとき、必要に応じてプロセスの再起動なども行う。これにより、検査対象のPub(現在の優先Pub)から切替先Pubへ優先Pubが切り替わるか否かが検査される。
【0062】
(ハードウェア構成例)
本実施の形態におけるDDS操作機能部100を有するノードと、検知部50、構成管理部60及び対処部70を有するパケット分析装置40は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現することができる。
【0063】
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0064】
図11は、上記コンピュータのハードウェア構成例を示す図である。
図11のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008などを有する。
【0065】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0066】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、上記の各部に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)などを表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。なお、ノード又はパケット分析装置40において、表示装置1006、入力装置1007のいずれか又は両方を備えないこととしてもよい。
【0067】
(実施の形態の効果)
本実施の形態に係る技術によれば、Pub/Sub通信を行う通信システムにおけるPub側の冗長化構成を検査することが可能となる。
【0068】
(実施の形態のまとめ)
本明細書には、少なくとも下記各項の通信システム、検査装置、検査方法、及びプログラムが開示されている。
(第1項)
ブローカレス型の出版/購読型モデルにより複数のノード間で通信を行う通信システムであって、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに対する検査指示を受け付ける検査管理部と、
前記一のアプリケーションに対して異常を挿入することで、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替えることを検査する検査指示出力部と、
を有する通信システム。
(第2項)
前記検査管理部は、
前記通信システムのネットワーク構成を表す構成情報と、予め作成された検査リストとをユーザに提示し、前記ユーザから、前記一のアプリケーションに対する検査指示を受け付ける、第1項に記載の通信システム。
(第3項)
前記構成情報は、
前記通信の送受信に関する前記ノード間の関係性を表す第1の関係性情報と、所属ドメイン及び出版側若しくは購読側のいずれであるかに関する前記ノード間の関係性を表す第2の関係性情報と、出版及び購読されるトピックに関する前記ノード間の関係性を表す第3の関係性情報とを用いて、IPアドレス及びポート番号により前記第1の関係性情報と前記第2の関係性情報を関連付けるとともに、前記出版/購読型モデルで利用される識別子により前記第2の関係性情報と前記第3の関係性情報とを関連付けた情報である、第2項に記載の通信システム。
(第4項)
ブローカレス型の出版/購読型モデルにより通信を行う複数のノードと接続される検査装置であって、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに対する検査指示を受け付ける検査管理部と、
前記一のアプリケーションに対して異常を挿入することで、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替えることを検査する検査指示出力部と、
を有する検査装置。
(第5項)
前記検査管理部は、
前記複数のノードで構成される通信システムのネットワーク構成を表す構成情報と、予め作成された検査リストとをユーザに提示し、前記ユーザから、前記一のアプリケーションに対する検査指示を受け付ける、第4項に記載の検査装置。
(第6項)
前記構成情報は、
前記通信の送受信に関する前記ノード間の関係性を表す第1の関係性情報と、所属ドメイン及び出版側若しくは購読側のいずれであるかに関する前記ノード間の関係性を表す第2の関係性情報と、出版及び購読されるトピックに関する前記ノード間の関係性を表す第3の関係性情報とを用いて、IPアドレス及びポート番号により前記第1の関係性情報と前記第2の関係性情報を関連付けるとともに、前記出版/購読型モデルで利用される識別子により前記第2の関係性情報と前記第3の関係性情報とを関連付けた情報である、第5項に記載の検査装置。
(第7項)
ブローカレス型の出版/購読型モデルにより通信を行う複数のノードと接続される検査装置が、
1以上の前記ノード上で冗長化された1以上のアプリケーションであって、出版側として機能する1以上のアプリケーションのうち、購読側で優先的に扱われる一のアプリケーションに対する検査指示を受け付ける検査管理手順と、
前記一のアプリケーションに対して異常を挿入することで、前記購読側で優先的に扱われるアプリケーションを、前記1以上のアプリケーションのうち、前記一のアプリケーションとは異なる他のアプリケーションに切り替えることを検査する検査指示出力手順と、
を実行する検査方法。
(第8項)
コンピュータを、第4項乃至第6項の何れか一項に記載の検査装置として機能させるプログラム。
【0069】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0070】
10~18 ノード
20、21 L2SW
30 L3SW
40 パケット分析装置
50 検知部
55 インターネット
60 構成管理部
70 対処部
100 DDS操作機能部
110 切替部
610 可視化部
620 関係性記録部
710 検査管理部
720 検査指示出力部
730 検査リスト記録部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置