(57)【要約】【課題】よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる中継装置、中継方法及びコンピュータプログラムを提供することである。【解決手段】実施形態の中継装置は、パブリッシュ・サブスクライブ型のメッセージング方式に基づいて、１以上のパブリッシャから受信されたメッセージを指定されたトピックに基づいて１以上のサブスクライバに配信する装置である。前記中継装置は、記憶部と、中継部と、を持つ。記憶部は、前記トピックのパブリッシャを示すトピック管理情報を予め記憶している。中継部は、前記トピック管理情報において前記トピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信した前記メッセージを前記トピックのサブスクライバである受信装置に送信する。【選択図】図２
2020092318.tif 000002
【特許請求の範囲】
【請求項１】
パブリッシュ・サブスクライブ型のメッセージング方式に基づいて、１以上のパブリッシャから受信されたメッセージを指定されたトピックに基づいて１以上のサブスクライバに配信する中継装置であって、
前記トピックのパブリッシャを示すトピック管理情報を予め記憶している記憶部と、
前記トピック管理情報において前記トピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信した前記メッセージを前記トピックのサブスクライバである受信装置に送信する中継部と、
を備える中継装置。
【請求項２】
前記送信装置を前記トピックのパブリッシャとすることを要求する通信装置の認証処理を行う認証部と、
前記通信装置が前記認証部によって認証された場合に、前記送信装置を前記トピックのパブリッシャとして前記トピック管理情報に登録するトピック設定部と、
をさらに備える、
請求項１に記載の中継装置。
【請求項３】
前記トピック設定部は、前記トピックが予め前記トピック管理情報に登録されている場合に、前記送信装置を前記トピックのパブリッシャとして前記トピック管理情報に登録する、
請求項２に記載の中継装置。
【請求項４】
前記通信装置は前記送信装置である、
請求項１又は２に記載の中継装置。
【請求項５】
前記トピック管理情報は前記トピックのサブスクライバをさらに示し、
前記受信装置を前記トピックのサブスクライバとすることを要求する通信装置の認証処理を行う認証部と、
前記通信装置が前記認証部によって認証された場合に、前記受信装置を前記トピックのサブスクライバとして前記トピック管理情報に登録するトピック設定部と、
をさらに備える、
請求項１に記載の中継装置。
【請求項６】
前記トピック設定部は、前記トピックが予め前記トピック管理情報に登録されている場合に、前記受信装置を前記トピックのサブスクライバとして前記トピック管理情報に登録する、
請求項５に記載の中継装置。
【請求項７】
前記通信装置は前記受信装置である、
請求項５又は６に記載の中継装置。
【請求項８】
前記通信装置は前記送信装置、前記受信装置、前記中継装置とは異なる装置である、
請求項２、３、５及び６のいずれか一項に記載の中継装置。
【請求項９】
前記送信装置から受信されたメッセージに付加された改竄検知情報に基づいて前記メッセージに対する改竄を検知する改竄検知部をさらに備え、
前記中継部は、改竄されていないメッセージを前記受信装置に送信する、
請求項１から８のいずれか一項に記載の中継装置。
【請求項１０】
前記記憶部は、前記送信装置から受信されるメッセージの受信順序を示す順序管理情報をさらに記憶し、
前記中継部は、前記メッセージに付加された前記メッセージの送信順序を示す情報と、前記順序管理情報が示す受信順序とが等しい場合に、前記メッセージを前記受信装置に送信する、
請求項１から９のいずれか一項に記載の中継装置。
【請求項１１】
前記中継部は、前記メッセージに付加された前記メッセージの送信順序を示す情報と、前記順序管理情報が示す受信順序とが等しくない場合、その旨を通知する機能を有する、
請求項１から１０のいずれか一項に記載の中継装置。
【請求項１２】
パブリッシュ・サブスクライブ型のメッセージング方式に基づいて、１以上のパブリッシャから受信されたメッセージを指定されたトピックに基づいて１以上のサブスクライバに配信する中継方法であって、
前記トピックのパブリッシャを示すトピック管理情報を予め記憶するステップと、
前記トピック管理情報において前記トピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信した前記メッセージを前記トピックのサブスクライバである受信装置に送信するステップと、
を有する中継方法。
【請求項１３】
パブリッシュ・サブスクライブ型のメッセージング方式に基づいて、１以上のパブリッシャから受信されたメッセージを指定されたトピックに基づいて１以上のサブスクライバに配信する中継装置として機能するコンピュータに、
前記トピックのパブリッシャを示すトピック管理情報を予め記憶するステップと、
前記トピック管理情報において前記トピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信した前記メッセージを前記トピックのサブスクライバである受信装置に送信するステップと、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、中継装置、中継方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
プラント等でリアルタイムに発生する各種センサデータをクラウドサーバに送信する際に用いられる通信方式の一つとして、ＭＱＴＴ（Message Queueing Telemetry Transport）等のパブリッシュ・サブスクライブ型のメッセージング方式が知られている（以下「Ｐｕｂ／Ｓｕｂ型通信」という。）。Ｐｕｂ／Ｓｕｂ型通信は、ブローカ（Ｂｒｏｋｅｒ：仲介者）がパブリッシャ(Ｐｕｂｌｉｓｈｅｒ：発行者)から受信したメッセージを対応するトピックに登録し、トピックに登録されたメッセージをそのトピックに対して配信を申し込んでいた１以上のサブスクライバ(Ｓｕｂｓｃｒｉｂｅｒ：購読者)に配信する通信モデルである。このようなＰｕｂ／Ｓｕｂ型通信では、パブリッシャはメッセージの配信を必要とする個々のサブスクライバを意識することなく複数のサブスクライバに効率的にメッセージを配信することができる。
【０００３】
しかしながら、従来のＰｕｂ／Ｓｕｂ型通信のセキュリティは必ずしも十分でなく、メッセージの誤配信や改竄等が行われる可能性があった。例えば、不正やトピックによってメッセージが意図しないサブスクライバに配信されてしまったり、不正なサブスクライバによって改竄されてしまう可能性があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５１６０１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる中継装置、中継方法及びコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の中継装置は、パブリッシュ・サブスクライブ型のメッセージング方式に基づいて、１以上のパブリッシャから受信されたメッセージを指定されたトピックに基づいて１以上のサブスクライバに配信する装置である。前記中継装置は、記憶部と、中継部と、を持つ。記憶部は、前記トピックのパブリッシャを示すトピック管理情報を予め記憶している。中継部は、前記トピック管理情報において前記トピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信した前記メッセージを前記トピックのサブスクライバである受信装置に送信する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図。
【図２】第１の実施形態の中継装置１０の機能構成の具体例を示す図。
【図３】第１の実施形態におけるトピック管理情報の具体例を示す図。
【図４】第１の実施形態におけるトピック管理情報の具体例を示す図。
【図５】第１の実施形態における送信装置２０の機能構成の具体例を示す図。
【図６】第１の実施形態における受信装置３０の機能構成の具体例を示す図。
【図７】第１の実施形態の通信システム１００がＰｕｂ／Ｓｕｂ型通信によってメッセージを送受信する処理の具体例を示すシーケンス図。
【図８】第１の実施形態の通信システム１００がＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図。
【図９】第２の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図。
【図１０】第２の実施形態の中継装置１０ａの機能構成の具体例を示す図。
【図１１】第２の実施形態における順序管理情報の具体例を示す図。
【図１２】第２の実施形態において送信装置２０ａから送信されるメッセージフォーマットの具体例を示す図。
【図１３】第２の実施形態の送信装置２０ａの機能構成の具体例を示す図。
【図１４】第２の実施形態の通信システム１００ａがＰｕｂ／Ｓｕｂ型通信によってメッセージを送受信する処理の具体例を示すシーケンス図。
【図１５】第２の実施形態の通信システム１００ａがＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図。
【図１６】第３の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図。
【図１７】第３の実施形態の中継装置１０ｂの機能構成の具体例を示す図。
【図１８】第３の実施形態の管理装置４０の機能構成の具体例を示す図。
【図１９】第３の実施形態の通信システム１００ｂにおけるトピックの設定処理の具体例を示すシーケンス図。
【図２０】第４の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図。
【図２１】第４の実施形態における中継装置１０ｃの機能構成の具体例を示す図。
【図２２】第４の実施形態における送信装置２０ｃの機能構成の具体例を示す図。
【図２３】第４の実施形態の通信システム１００ｃがＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図。
【発明を実施するための形態】
【０００８】
以下、実施形態の中継装置、中継方法及びコンピュータプログラムを、図面を参照して説明する。
【０００９】
（第１の実施形態）
図１は、第１の実施形態におけるパブリッシュ・サブスクライブ型（以下「Ｐｕｂ／Ｓｕｂ型」という。）通信システムの構成例を示す図である。図１に示す通信システム１００は、第１の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの一例である。通信システム１００は、中継装置１０、送信装置２０、及び受信装置３０を備える。中継装置１０はネットワークＮ１を介して送信装置２０と通信可能に接続され、ネットワークＮ２を介して受信装置３０と通信可能に接続される。なお、中継装置１０が送信装置２０及び受信装置３０と通信可能に接続される限りにおいて、通信システム１００のネットワーク構成は図１と異なる構成であってもよい。
【００１０】
中継装置１０は、Ｐｕｂ／Ｓｕｂ型通信におけるブローカとして機能する通信装置である。具体的には、中継装置１０は、ＭＱＴＴ（Message Queueing Telemetry Transport）等のＰｕｂ／Ｓｕｂ型メッセージング方式に基づいて、送信装置２０が送信したメッセージを対応する受信装置３０に中継する機能（以下「中継機能」という。）を有する。
【００１１】
送信装置２０は、Ｐｕｂ／Ｓｕｂ型通信におけるパブリッシャとして機能する通信装置である。具体的には、送信装置２０は、中継装置１０のメッセージング方式に則って、配信対象のメッセージをブローカである中継装置１０に送信する機能を有する。例えば、送信装置２０は、登録先のトピックを示す情報（以下「トピック情報」という。）を付加したメッセージを中継装置１０に送信する。なお、図１は、３台の送信装置２０−１、２０−２、２０−３を備える通信システム１００を示しているが、中継装置１０に接続される送信装置２０の数は少なくとも１以上であればよく、３未満であってもよいし、４以上であってもよい。
【００１２】
受信装置３０は、Ｐｕｂ／Ｓｕｂ型通信におけるサブスクライバとして機能する通信装置である。具体的には、受信装置３０は、中継装置１０のメッセージング方式に則って、ブローカである中継装置１０から購読対象のメッセージを受信する機能を有する。なお、図１は、３台の受信装置３０−１、３０−２、３０−３を備える通信システム１００を示しているが、中継装置１０に接続される受信装置３０の数は少なくとも１以上であればよく、３未満であってもよいし、４以上であってもよい。
【００１３】
このように構成される実施形態の通信システム１００において、中継装置１０は、上記の中継機能に加えて、トピックの設定者を認証する機能（以下「認証機能」という。）を有することにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。なお、ここでいうトピックの設定とは、トピックに対するパブリッシャ又はサブスクライバの対応づけを意味する。以下、実施形態の中継装置１０の構成について詳細に説明する。
【００１４】
図２は、第１の実施形態の中継装置１０の機能構成の具体例を示す図である。中継装置１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、プログラムを実行する。中継装置１０は、プログラムの実行によって第１通信部１０１、第２通信部１０２、第３通信部１０３、第４通信部１０４、トピック管理情報記憶部１０５、メッセージ中継部１０６、認証部１１１及びトピック設定部１１２を備える装置として機能する。なお、中継装置１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００１５】
第１通信部１０１、第２通信部１０２、第３通信部１０３及び第４通信部１０４は中継装置１０を送信装置２０及び受信装置３０と通信可能に接続する通信インタフェースである。第１通信部１０１及び第２通信部１０２は、中継装置１０を送信装置２０と通信可能に接続する。第３通信部１０３及び第４通信部１０４は、中継装置１０を受信装置３０と通信可能に接続する。
【００１６】
中継装置１０は第１通信部１０１及び第３通信部１０３を介してトピックの設定に関する通信を行い、第２通信部１０２及び第４通信部１０４を介してメッセージの送受信に関する通信を行う。なお、第１通信部１０１、第２通信部１０２、第３通信部１０３及び第４通信部１０４は、中継装置１０が送信装置２０及び受信装置３０と通信可能である限りにおいて適宜集約又は分散されてもよい。
【００１７】
トピック管理情報記憶部１０５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。トピック管理情報記憶部１０５はトピック管理情報を記憶する。トピック管理情報は、Ｐｕｂ／Ｓｕｂ型通信におけるトピックに関する設定情報である。トピック管理情報は、メッセージの送受信に先立って予めトピック管理情報記憶部１０５に記録される。
【００１８】
図３及び図４は、第１の実施形態におけるトピック管理情報の具体例を示す図である。図３は、本実施形態の通信システム１００のように、パブリッシャとして機能する通信装置（ここでは送信装置２０）と、サブスクライバとして機能する通信装置（ここでは受信装置３０）とが異なる装置として構成されている場合におけるトピック管理情報を示している。この場合、トピック管理情報は、例えば図３に示すトピック管理テーブルＴ１としてトピック管理情報記憶部１０５に記憶される。
【００１９】
トピック管理テーブルＴ１は、パブリッシャ又はサブスクライバとして機能する通信装置のＩＰ（Internet Protocol）アドレスと、各通信装置が配信するメッセージのトピックと、の組み合わせごとに１つのレコードを有し、各レコードはＩＰアドレス、トピックＩＤ及びアクセス権の各値を持つ。
【００２０】
トピックＩＤは、対応するＩＰアドレスを持つ通信装置に対応づけられるトピックの識別情報である。アクセス権は、対応するＩＰアドレスを持つ通信装置が、対応するトピックに関して与えられる権限を表す。例えば、トピック管理テーブルＴ１のレコードＲ１は、“１９２．１６８．１．１０２”のＩＰアドレスを持つ通信装置がトピック“ｐｌａｎｔＢ”についてメッセージを配信（“ｐｕｂｌｉｓｈ”）可能であることを表している。また、例えば、トピック管理テーブルＴ１のレコードＲ２は、“１９２．１６８．２．１０２”のＩＰアドレスを持つ通信装置がトピック“ｐｌａｎｔＢ”についてメッセージを購読（“ｓｕｂｓｃｒｉｂｅ”）可能であることを表している。
【００２１】
なお、Ｐｕｂ／Ｓｕｂ型通信によってメッセージを送受信する通信装置は、必ずしもパブリッシャ又はサブスクライバのいずれかとして機能するものである必要はなく、パブリッシャ及びサブスクライバとして機能するものであってもよい。例えば、この場合のトピック管理情報は、図４に示すトピック管理テーブルＴ２のように設定される。
【００２２】
図２の説明に戻る。メッセージ中継部１０６は、トピック管理情報に基づいてメッセージを中継する機能を有する。具体的には、メッセージ中継部１０６は、送信装置２０から受信したメッセージを、そのメッセージに含まれているトピック情報が示すトピックに登録するとともに、トピックに登録されているメッセージを、そのトピックに対応づけられている受信装置３０に送信する。
【００２３】
認証部１１１は、トピックの設定要求（以下「トピック設定要求」という。）を受け付けるとともに、要求元の通信装置（ここでは送信装置２０又は受信装置３０）認証する機能（以下「認証機能」という。）を有する。なお、ここでいうトピックの設定とは、トピック管理情報の新規生成や、既存のトピック管理情報に対する設定の追加、変更、削除等を意味する。
【００２４】
また、上記の認証機能は、要求元の通信装置について上記設定資格の有無を判定することができればどのような方法で実現されてもよい。例えば、認証部１１１は、要求元の通信装置からユーザ名及びパスワード、秘密鍵、証明書等の資格情報を取得し、取得した資格情報に基づいて上記設定資格の有無を判定してもよい。また、認証部１１１は、要求元の通信装置を図示しない他の装置に依頼し、その認証結果に基づいて要求元の通信装置を認証してもよい。
【００２５】
具体的には、認証部１１１は、トピック設定要求の受け付けとともに、トピック管理情報に対する設定内容を示す情報（以下「設定要求情報」という。）を要求元の通信装置から取得する。一方で、認証部１１１は、トピック設定要求の受け付けに応じて要求元の通信装置の認証処理を行い、認証に成功した場合に設定要求情報をトピック設定部１１２に出力する。
【００２６】
トピック設定部１１２は、トピックの設定機能を有する。具体的には、トピック設定部１１２は、認証部１１１が出力する設定要求情報を取得し、取得した設定要求情報が示す設定内容をトピック管理情報に反映させる。
【００２７】
図５は、第１の実施形態における送信装置２０の機能構成の具体例を示す図である。送信装置２０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、プログラムを実行する。送信装置２０は、プログラムの実行によって第１通信部２１、第２通信部２２、メッセージ送信部２３及びトピック設定要求部２４を備える装置として機能する。なお、送信装置２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００２８】
第１通信部２１及び第２通信部２２は送信装置２０を中継装置１０と通信可能に接続する通信インタフェースである。送信装置２０は第１通信部２１を介してトピックの設定に関する通信を行い、第２通信部２２を介してメッセージの送信に関する通信を行う。なお、第１通信部２１及び第２通信部２２は、送信装置２０が中継装置１０と通信可能である限りにおいて適宜集約又は分散されてもよい。
【００２９】
メッセージ送信部２３は、Ｐｕｂ／Ｓｕｂ型通信におけるパブリッシャとして、ブローカである中継装置１０に対してメッセージを送信する機能を有する。具体的には、メッセージ送信部２３は、送信するメッセージに関するトピック情報（例えばトピックＩＤ）を予め記憶しており、トピック情報をメッセージに付加して中継装置１０に送信する。なお、メッセージ送信部２３は、送信する全てのメッセージに同じトピック情報を付加してもよいし、メッセージに応じて異なるトピック情報を付加してもよい。
【００３０】
トピック設定要求部２４は、送信装置２０をパブリッシャとするトピック設定要求を中継装置１０に通知する機能を有する。トピック設定要求部２４は、トピック設定要求の通知とともに、トピックの設定に関する資格情報と設定要求情報とを中継装置１０に送信する。
【００３１】
図６は、第１の実施形態における受信装置３０の機能構成の具体例を示す図である。受信装置３０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、プログラムを実行する。受信装置３０は、プログラムの実行によって第１通信部３１、第２通信部３２、メッセージ受信部３３及びトピック設定要求部３４を備える装置として機能する。なお、受信装置３０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００３２】
第１通信部３１及び第２通信部３２は受信装置３０を中継装置１０と通信可能に接続する通信インタフェースである。受信装置３０は第１通信部３１を介してトピックの設定に関する通信を行い、第２通信部３２を介してメッセージの受信に関する通信を行う。なお、第１通信部３１及び第２通信部３２は、受信装置３０が中継装置１０と通信可能である限りにおいて適宜集約又は分散されてもよい。
【００３３】
メッセージ受信部３３は、Ｐｕｂ／Ｓｕｂ型通信におけるサブスクライバとして、予め購読が申し込まれているトピックのメッセージを、ブローカである中継装置１０から受信する機能を有する。
【００３４】
トピック設定要求部３４は、送信装置２０をサブスクライバとするトピック設定要求を中継装置１０に通知する機能を有する。トピック設定要求部３４は、トピック設定要求の通知とともに、トピックの設定に関する資格情報と設定要求情報とを中継装置１０に送信する。
【００３５】
図７は、第１の実施形態の通信システム１００がＰｕｂ／Ｓｕｂ型通信によってメッセージを送受信する処理の具体例を示すシーケンス図である。なお、ここで説明するメッセージの送受信処理は、従来のＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信処理と同様である。
【００３６】
まず、送信装置２０において配信すべきメッセージが発生した場合、送信装置２０は、発生したメッセージをＰｕｂ／Ｓｕｂ型通信のプロトコルに則って中継装置１０に送信する（ステップＳ１０１）。具体的には、送信装置２０は、送信するメッセージに関するトピック情報（例えばトピックＩＤ）を予め記憶しており、そのトピック情報をメッセージに付加して中継装置１０に送信する。ここで、予め送信装置２０に記憶されているトピック情報は全てのメッセージに共通の１つのトピックを示すものであってもよいし、メッセージに応じて異なる複数のトピックを示すものであってもよい。また、送信装置２０は、１つのメッセージに対して１つのトピックを示すトピック情報を付加してもよいし、複数のトピックを示すトピック情報を付加してもよい。送信されたメッセージは中継装置１０によって受信される。
【００３７】
中継装置１０では、メッセージ中継部１０６が、受信されたメッセージの送信元である送信装置２０がトピック管理情報に設定されているか否かを判定する（ステップＳ１０２）。例えば、メッセージ中継部１０６は、受信されたメッセージに付加されている送信元のＩＰアドレスを取得し、そのＩＰアドレスがパブリッシャとしてトピック管理情報に設定されているか否かを判定する。ここで、送信元の送信装置２０がトピック管理情報に設定されている場合（ステップＳ１０２−ＹＥＳ）、メッセージ中継部１０６は受信されたメッセージの登録先として指定されているトピックがトピック管理情報に設定されているか否かを判定する（ステップＳ１０３）。
【００３８】
具体的には、メッセージ中継部１０６は、受信されたメッセージに付加されているトピック情報に基づいて、そのメッセージの登録先として指定されているトピックを識別し、そのトピックがトピック管理情報において送信元の送信装置２０に対応づけられているか否かを判定する。ここで、受信されたメッセージの登録先として指定されているトピックがトピック管理情報に設定されている場合（ステップＳ１０３−ＹＥＳ）、メッセージ中継部１０６は、トピック情報によって指定されたトピックに受信されたメッセージを登録するとともに、トピックに登録されているメッセージを、そのトピックに対応づけられている受信装置３０に転送する（ステップＳ１０４）。このような一連の処理の流れにより、中継装置１０は１以上の送信装置２０から送信されたメッセージを対応する１以上の受信装置３０に中継する。
【００３９】
例えば、トピック管理情報が図３のように設定されている場合、ＩＰアドレス“１９２．１６８．１．１０２”を持つ送信装置２０が送信したメッセージは、送信元の送信装置２０と同じトピック“ｐｌａｎｔＢ”に対応づけられたＩＰアドレスを持つ受信装置３０に送信される。具体的には、ＩＰアドレス“１９２．１６８．１．１０２”を持つ送信装置２０が送信したメッセージは、ＩＰアドレス“１９２．１６８.２．１０１”を持つ受信装置３０と、ＩＰアドレス“１９２．１６８.２．１０２”を持つ受信装置３０と、に送信される。
【００４０】
一方、ステップＳ１０２において、送信元の送信装置２０がトピック管理情報に設定されていない場合（ステップＳ１０２−ＮＯ）、又はステップＳ１０３において、受信されたメッセージの登録先として指定されているトピックがトピック管理情報に設定されていない場合（ステップＳ１０３−ＮＯ）、メッセージ中継部１０６はメッセージの転送を行わずに廃棄する（ステップＳ１０５）。
【００４１】
このような一連の処理の流れでメッセージを中継することにより、中継装置１０は正当な送信装置２０から送信されたメッセージを受信装置３０に中継し、不正な送信装置２０から送信されたメッセージが受信装置３０に中継されないようにすることができる。これは、以下で説明するトピックの設定処理により、メッセージの送受信に先立って正当な送信装置２０だけがトピック管理情報に設定されているためである。
【００４２】
図８は、第１の実施形態の通信システム１００がＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図である。ここでは、パブリッシャ、サブスクライバの順にトピックの設定処理が行われる場合について説明するが、トピックの設定処理は必ずしもこの順序で行われる必要はない。例えば、トピックの設定処理は、サブスクライバ、パブリッシャの順に行われてもよい。
【００４３】
［パブリッシャの設定］
まず、送信装置２０が中継装置１０に対してトピック設定要求を通知する（ステップＳ１１１）。このとき、送信装置２０は、中継装置１０に対して認証のための資格情報とともに設定要求情報を送信する。中継装置１０は、トピック設定要求を受け付けるとともに、要求元の送信装置２０から資格情報及び設定要求情報を受信する。
【００４４】
中継装置１０では、認証部１１１が、受信された資格情報に基づいて要求元の送信装置２０の認証処理を行い（ステップＳ１１２）、その認証結果を要求元の送信装置２０に応答する（ステップＳ１１３）。
【００４５】
続いて、トピック設定部１１２が、要求元の送信装置２０の認証結果を判定し（ステップＳ１１４）、その判定結果に応じてトピックの設定処理を行う（ステップＳ１１５）。具体的には、要求元の送信装置２０の認証に成功した場合（ステップＳ１１４−ＯＫ）、トピック設定部１１２は受信されている設定要求情報の示す設定内容をトピック設定情報に反映する。
【００４６】
例えば、ステップＳ１１１において、ＩＰアドレス“１９２．１６８．１．１０２”を持つ送信装置２０が、自身をトピック“ｐｌａｎｔＢ”のパブリッシャとして設定することを中継装置１０に対して要求したとする。この場合、ステップＳ１１５では、図３に示すレコードＲ１がトピック管理テーブルＴ１に追加される。一方、要求元の送信装置２０の認証に失敗した場合（ステップＳ１１４−ＮＧ）、トピック設定部１１２はトピックの設定を行わない。
【００４７】
［サブスクライバの設定］
まず、受信装置３０が中継装置１０に対してトピック設定要求を通知する（ステップＳ１２１）。このとき、受信装置３０は、中継装置１０に対して認証のための資格情報とともに設定要求情報を送信する。中継装置１０は、トピック設定要求を受け付けるとともに、要求元の資格情報及び設定要求情報を受信する。
【００４８】
中継装置１０では、認証部１１１が、受信された資格情報に基づいて要求元の受信装置３０の認証処理を行い（ステップＳ１２２）、その認証結果を要求元の受信装置３０に応答する（ステップＳ１２３）。
【００４９】
続いて、トピック設定部１１２が、要求元の受信装置３０の認証結果を判定し（ステップＳ１２４）、その判定結果に応じてトピックの設定処理を行う（ステップＳ１２５）。具体的には、要求元の受信装置３０の認証に成功した場合（ステップＳ１２４−ＯＫ）、トピック設定部１１２は受信されている設定要求情報に基づいてトピックの設定を行う。
【００５０】
例えば、ステップＳ１２１において、ＩＰアドレス“１９２．１６８．２．１０２”を持つ受信装置３０が、自身をトピック“ｐｌａｎｔＢ”のサブスクライバとして設定することを中継装置１０に対して要求したとする。この場合、ステップＳ１２５では、図３に示すレコードＲ２がトピック管理テーブルＴ１に追加される。一方、要求元の受信装置３０の認証に失敗している場合（ステップＳ１２４−ＮＧ）、トピック設定部１１２はトピックの設定を行わない。
【００５１】
なお、図８では、パブリッシャの設定（ステップＳ１１１〜Ｓ１１５）と、サブスクライバの設定（ステップＳ１２１〜Ｓ１２５）との両方が行われる場合におけるトピックの設定処理の流れを説明したが、トピックの設定処理は必ずしもパブリッシャ及びサブスクライバの両方について行われる必要はない。例えば、トピックの設定処理は、必要に応じてパブリッシャ又はサブスクライバのいずれか一方について行われてもよい。
【００５２】
また、図８では、簡単のためトピック設定要求とともに設定要求情報が送信される場合について説明したが、設定要求情報は必ずしもトピック設定要求とともに送信される必要はない。例えば、設定要求情報は、認証の成功が通知された後で送信されてもよい。
【００５３】
また、トピック設定部１１２は、設定要求情報が示すトピックがトピック管理テーブルに含まれていない場合、設定を要求されているトピックが不正であると判定し、トピック設定要求を破棄してもよい。
【００５４】
このように構成された第１の実施形態の通信システム１００では、中継装置１０がＰｕｂ／Ｓｕｂ型通信におけるトピックの設定に関する認証機能を備えることにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。
【００５５】
具体的には、第１の実施形態の通信システム１００は、トピックの設定時においてパブリッシャ又はサブスクライバの認証を行うことで、不正なトピックが設定されることを抑制することができる。また、第１の実施形態の通信システム１００は、予め設定されたアクセス権に基づいてトピックに対するメッセージの登録を行うことにより、メッセージ送受信時の通信負荷を増大させることなく、不正なメッセージが配信されることを抑制することができる。
【００５６】
（第２の実施形態）
図９は、第２の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図である。図９に示す通信システム１００ａは、第２の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの一例である。通信システム１００ａは、中継装置１０に代えて中継装置１０ａを備える点、送信装置２０に代えて送信装置２０ａを備える点で第１の実施形態の通信システム１００と異なる。
【００５７】
図１０は、第２の実施形態の中継装置１０ａの機能構成の具体例を示す図である。中継装置１０ａは、トピック設定部１１２及びメッセージ中継部１０６に代えてトピック設定部１１２ａ及びメッセージ中継部１０６ａを備える点、順序管理情報記憶部１０７及び改竄検知部１０８をさらに備える点で第１の実施形態の中継装置１０と異なる。その他の機能部は第１の実施形態と同様のため、これらの機能部については図２と同じ符号を付すことにより説明を省略する。
【００５８】
順序管理情報記憶部１０７は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。順序管理情報記憶部１０７は順序管理情報を記憶する。順序管理情報は、通信システム１００ａにおいて送受信されるメッセージの順序管理に用いられる情報である。順序管理情報は、メッセージの送受信が開始される前に初期化され、メッセージの送受信に応じて更新される。例えば、順序管理情報は、トピック設定部１１２ａによってトピックの設定時に更新され、メッセージ中継部１０６ａによってメッセージの中継時に更新される。
【００５９】
図１１は、第２の実施形態における順序管理情報の具体例を示す図である。例えば、順序管理情報は図１１に示す順序管理テーブルＴ３として順序管理情報記憶部１０７に記憶される。順序管理テーブルＴ３は、送信装置２０ａと、その送信装置２０ａが配信するメッセージのトピックとの組み合わせごとに１つのレコードを有し、各レコードは、送信装置２０ａのＩＰアドレス、トピックＩＤ及びシーケンス番号の各値を持つ。シーケンス番号は、対応するトピックについて、対応する送信装置２０ａから受信されたメッセージの順序を表す値であり、メッセージが受信されるごとに所定のルールで増加する値であればどのような値であってもよい。
【００６０】
例えば、シーケンス番号は、メッセージが受信されるごとに１ずつインクリメントされる数値であってもよいし、過去に受信したメッセージのデータサイズの累積和であってもよい。シーケンス番号は、送信装置２０ａと、その送信装置２０ａが配信するメッセージのトピックとの組み合わせごとに管理される。
【００６１】
図１０の説明に戻る。改竄検知部１０８は、受信されたメッセージの改竄を検知する機能を有する。具体的には、改竄検知部１０８は、受信されたメッセージに付加された改竄検知コード（改竄検知情報）を用いてそのメッセージが改竄されているか否かを判定する。改竄検知コードは、送信時のメッセージデータによってのみ得られる（可能性が十分に高い）データであればどのような方法で生成されてもよい。例えば、改竄検知コードの生成には、ＭＡＣ（Message Authentication Code：メッセージ認証コード）関数やＭＩＣ（Message Integrity Code：メッセージ完全性コード）、ハッシュ関数等を用いることができる。
【００６２】
中継装置１０ａが送信装置２０ａから受信するメッセージには、送信装置２０ａが送信時のメッセージデータを用いて生成した改竄検知コードが付加されており、改竄検知部１０８は、受信されたメッセージに付加されている改竄検知コードと、受信されたメッセージデータを用いて送信装置２０ａと同様の方法で生成した改竄検知コードと、の比較によりメッセージデータに対する改竄の有無を判定する。
【００６３】
図１２は、第２の実施形態において送信装置２０ａから送信されるメッセージフォーマットの具体例を示す図である。図１２に示すメッセージＭは送信装置２０ａから送信されるメッセージの具体例であり、例えば、実データが格納されるペイロード部Ｍ１と、ペイロード部Ｍ１に送信元識別子、メッセージ長、トピックＩＤ、シーケンス番号を付加するヘッダ部Ｍ２と、ペイロード部Ｍ１に改竄検知コードを付加するフッタ部Ｍ３と、で構成される。この場合、少なくともペイロード部Ｍ１を含むメッセージデータを用いて生成された改竄検知コードがフッタ部Ｍ３として付加される。なお、ここでのシーケンス番号は、送信装置２０ａにおけるメッセージの送信順序を表す。
【００６４】
この場合、改竄検知部１０８は、フッタ部Ｍ３に付加された改竄検知コードの生成方法を予め記憶しており、受信されたメッセージデータを用いて送信装置２０ａと同様の方法で改竄検知コードを生成する。例えば、フッタ部Ｍ３に付加される改竄検知コードが、ペイロード部Ｍ１及びヘッダ部Ｍ２のメッセージデータを用いて生成される場合、改竄検知部１０８は、受信されたメッセージデータのペイロード部Ｍ１及びヘッダ部Ｍ２のデータを用いて改竄検知コードを生成する。そして、改竄検知部１０８は、受信された改善検知コードと生成した改竄検知コードとを比較し、両者が等しい場合に改竄無しと判定し、両者が異なる場合に改竄有りと判定する。
【００６５】
改竄検知部１０８は、改竄無しと判定した場合には、受信されたメッセージをメッセージ中継部１０６ａに出力し、改竄有りと判定した場合には、受信されたメッセージを破棄する。なお、改竄検知部１０８は、改竄有りと判定した場合には、その旨を通知する動作を行うように構成されてもよい。
【００６６】
図１０の説明に戻る。メッセージ中継部１０６ａは、改竄検知部１０８から出力されたメッセージを受信装置３０に中継する点では第１の実施形態におけるメッセージ中継部１０６と同様であるが、この中継の際に、メッセージの順序確認を行う点で第１の実施形態におけるメッセージ中継部１０６と異なる。具体的には、メッセージ中継部１０６ａは、受信されたメッセージに付加されているシーケンス番号と、自装置で管理されているシーケンス番号との比較によってメッセージが正しい順序で受信されているか否かを判定する。メッセージ中継部１０６ａは、受信順序が正しい場合にメッセージを中継するように構成されてもよいし、受信順序の不整合が検知された場合には、その旨を通知する動作を行うように構成されてもよい。
【００６７】
トピック設定部１１２ａは、送信装置２０ａ及び受信装置３０のトピック設定要求に応じてトピックの設定を行う点では第１の実施形態におけるトピック設定部１１２と同様であるが、この設定の際に、順序管理情報（具体的にはシーケンス番号）を初期化する点で第１の実施形態におけるトピック設定部１１２と異なる。例えば、図１１の例の場合、トピック設定部１１２ａは、トピックの設定に応じて、シーケンス番号ｘ、ｙ、ｚをそれぞれ初期値に初期化する。なお、初期値には‘０’や‘１’等の予め定められた値が用いられてもよいし、初期化のタイミングでランダムに決定されてもよい。初期値がランダムに決定される場合、トピック設定部１１２ａは決定した初期値を送信装置２０ａに通知し、送信装置２０ａは通知された初期値でメッセージ送信を開始する。
【００６８】
図１３は、第２の実施形態の送信装置２０ａの機能構成の具体例を示す図である。送信装置２０ａは、メッセージ送信部２３に代えてメッセージ送信部２３ａを備える点で第１の実施形態の送信装置２０と異なる。その他の機能部は第１の実施形態と同様のため、これらの機能部については図５と同じ符号を付すことにより説明を省略する。
【００６９】
メッセージ送信部２３ａは、Ｐｕｂ／Ｓｕｂ型通信におけるパブリッシャとして、ブローカである中継装置１０に対してメッセージを送信する点では第１の実施形態におけるメッセージ送信部２３と同様であるが、送信するメッセージにシーケンス番号及び改竄検知コードを付加する点で第１の実施形態におけるメッセージ送信部２３と異なる。
【００７０】
図１４は、第２の実施形態の通信システム１００ａがＰｕｂ／Ｓｕｂ型通信によってメッセージを送受信する処理の具体例を示すシーケンス図である。図１４に示すシーケンス図は、中継装置１０ａがトピック判定処理（ステップＳ１０３）とメッセージ転送処理（ステップＳ１０４）との間で改竄判定処理（ステップＳ２０１）及び順序判定処理（ステップＳ２０２）を行う点、メッセージ廃棄処理（ステップＳ１０５）とともに改竄検知通知（ステップＳ２０３）を行う点で、第１の実施形態におけるメッセージの送受信処理（図７参照）と異なる。その他の処理は第１の実施形態と同様であるため、その他の同様の処理については図７と同じ符号を付すことにより説明を省略する。
【００７１】
また、ここでは、中継装置１０ａが、メッセージの改竄が検出されていない場合、かつ正しい順序でメッセージが受信されている場合に受信装置３０にメッセージを転送し、メッセージの改竄が検出された場合、又は正しい順序でメッセージが受信されていない場合にはメッセージの転送を行わずにその旨を通知する例を示したが、改竄の検出結果又は順序判定の結果に基づいてどのような処理を行うかは任意に変更されてよい。例えば、中継装置１０ａは、改竄の検出結果又は順序判定の結果によらずメッセージを転送し、改竄が検出された場合にのみその旨を通知するように構成されてもよい。
【００７２】
図１５は、第２の実施形態の通信システム１００ａがＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図である。図１５に示すシーケンス図は、中継装置１０ａがパブリッシャについてトピックの設定を行った（ステップＳ１１５）後にシーケンス番号を初期化する（ステップＳ３０１）点で、第１の実施形態におけるトピックの設定処理（図８参照）と異なる。その他の処理は第１の実施形態と同様であるため、その他の同様の処理については図８と同じ符号を付すことにより説明を省略する。
【００７３】
このように構成された第２の実施形態の通信システム１００ａでは、中継装置１０ａがＰｕｂ／Ｓｕｂ型通信におけるトピックの設定に関する認証機能を備えることにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。さらに、第２の実施形態の通信システム１００ａでは、中継装置１０ａが、受信したメッセージに対する改竄の有無を検知する機能と、受信したメッセージの受信順序を確認する機能と、を持つことにより、さらにセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。
【００７４】
（第３の実施形態）
図１６は、第３の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図である。図１６に示す通信システム１００ｂは、第２の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの一例である。通信システム１００ｂは、中継装置１０、送信装置２０及び受信装置３０に代えて中継装置１０ｂ、送信装置２０ｂ及び受信装置３０ｂを備える点、管理装置４０をさらに備える点で第１の実施形態の通信システム１００と異なる。
【００７５】
中継装置１０ｂは、管理装置４０のトピック設定要求に応じてトピックの設定処理を行う点で第１の実施形態の中継装置１０と異なる。送信装置２０ｂは第１通信部２１及びトピック設定要求部２４を備えない点で第１の実施形態の送信装置２０と異なる。受信装置３０ｂは第１通信部３１及びトピック設定要求部３４を備えない点で第１の実施形態の受信装置３０と異なる。
【００７６】
管理装置４０は、第１の実施形態における送信装置２０及び受信装置３０に代えて中継装置１０ｂにトピックの設定を要求する装置である。管理装置４０はネットワークＮ３を介して中継装置１０ｂと通信可能に接続される。なお、管理装置４０が中継装置１０ｂと通信可能に接続される限りにおいて、通信システム１００ｂのネットワーク構成は図１６と異なる構成であってもよい。
【００７７】
すなわち、第３の実施形態における通信システム１００ｂは、第１の実施形態ではパブリッシャ（送信装置２０）及びサブスクライバ（受信装置３０）が有していた、ブローカ（中継装置１０）に対するトピックの設定要求機能を、パブリッシャ及びサブスクライバとは異なる管理装置４０に持たせた点で第１の実施形態における通信システム１００と異なる。一方、第３の実施形態におけるメッセージの送受信処理は第１の実施形態と同様である（図７参照）。そのため、以下では、トピックの設定処理についてのみ説明し、メッセージの送受信処理についての説明を省略する。
【００７８】
図１７は、第３の実施形態の中継装置１０ｂの機能構成の具体例を示す図である。中継装置１０ｂは、第３通信部１０３を備えない点、認証部１１１に代えて認証部１１１ｂを備える点で第１の実施形態の中継装置１０と異なる。認証部１１１ｂは、第１の実施形態における認証部１１１と同様の認証機能を有するものの、認証の対象が管理装置４０である点で第１の実施形態における認証部１１１と異なる。その他の機能部については第１の実施形態の中継装置１０と同様である。そのため、第１の実施形態と同様の機能部については図２と同じ符号を付すことにより説明を省略する。
【００７９】
図１８は、第３の実施形態の管理装置４０の機能構成の具体例を示す図である。管理装置４０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、プログラムを実行する。管理装置４０は、プログラムの実行によって第１通信部４１、第２通信部４２、第１トピック設定要求部４３及び第２トピック設定要求部４４を備える装置として機能する。なお、管理装置４０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００８０】
第１通信部４１及び第２通信部４２は管理装置４０を中継装置１０ｂと通信可能に接続する通信インタフェースである。管理装置４０は第１通信部４１を介してパブリッシャのトピック設定に関する通信を行い、第２通信部４２を介してサブスクライバのトピック設定に関する通信を行う。なお、第１通信部４１及び第２通信部４２は、管理装置４０が中継装置１０ｂと通信可能である限りにおいて適宜集約又は分散されてもよい。
【００８１】
第１トピック設定要求部４３は、第１の実施形態の送信装置２０におけるトピック設定要求部２４と同様の機能部であり、送信装置２０ｂをパブリッシャとするトピック設定要求を中継装置１０ｂに通知する機能を有する。すなわち、第１トピック設定要求部４３は、トピック設定要求部２４と同様に、トピック設定要求の通知とともに、パブリッシャのトピック設定に関する資格情報と設定要求情報とを中継装置１０ｂに送信する。
【００８２】
第２トピック設定要求部４４は、第１の実施形態の受信装置３０におけるトピック設定要求部３４と同様の機能部であり、受信装置３０ｂをサブスクライバとするトピック設定要求を中継装置１０ｂに通知する機能を有する。すなわち、第２トピック設定要求部４４は、トピック設定要求部３４と同様に、トピック設定要求の通知とともに、サブスクライバのトピック設定に関する資格情報と設定要求情報とを中継装置１０ｂに送信する。
【００８３】
図１９は、第３の実施形態の通信システム１００ｂにおけるトピックの設定処理の具体例を示すシーケンス図である。図１９に示すシーケンス図は、第１の実施形態におけるトピックの設定処理（図８参照）において送信装置２０及び受信装置３０が実行した処理の一部を管理装置４０に実行させるようにしたものであり、各処理の内容は第１の実施形態と同様である。そのため、図１９に示す各処理については、図８において対応する同様の処理と同じ符号を付すことにより各処理の説明を省略する。
【００８４】
このように構成された第３の実施形態の通信システム１００ｂでは、中継装置１０ｂがＰｕｂ／Ｓｕｂ型通信におけるトピックの設定に関する認証機能を備えることにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。さらに、第３の実施形態の通信システム１００ｂでは、中継装置１０ｂに対するトピックの設定要求を管理装置４０が行うため、既存の送信装置及び受信装置を変更することなく第３の実施形態の通信システム１００ｂを構成することができる。
【００８５】
（第４の実施形態）
図２０は、第４の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの構成例を示す図である。図２０に示す通信システム１００ｃは、第４の実施形態におけるＰｕｂ／Ｓｕｂ型通信システムの一例である。通信システム１００ｃは、中継装置１０及び送信装置２０に代えて中継装置１０ｃ及び送信装置２０ｃを備える点で第３の実施形態の通信システム１００ｂと異なる。
【００８６】
図２１は、第４の実施形態における中継装置１０ｃの機能構成の具体例を示す図である。中継装置１０ｃは、第３通信部１０３を備えない点、第１通信部１０１を介して管理装置４０と通信する点で第２の実施形態の中継装置１０ａと異なる。
【００８７】
図２２は、第４の実施形態における送信装置２０ｃの機能構成の具体例を示す図である。送信装置２０ｃは、第１通信部２１及びトピック設定要求部２４を備えない点で第２の実施形態の送信装置２０ａと異なる。
【００８８】
すなわち、第４の実施形態の通信システム１００ｃは、第３の実施形態の通信システム１００ｂに対して、第２の実施形態の通信システム１００ａにおけるメッセージの送受信に関する構成を追加したものであるということができる。すなわち、第４の実施形態におけるメッセージの送受信処理は第２の実施形態と同様である（図１４参照）。そのため、以下では、トピックの設定処理についてのみ説明し、メッセージの送受信処理についての説明を省略する。
【００８９】
図２３は、第４の実施形態の通信システム１００ｃがＰｕｂ／Ｓｕｂ型通信によるメッセージの送受信に先立って行うトピックの設定処理の具体例を示すシーケンス図である。図２３に示すシーケンス図は、中継装置１０ｃがパブリッシャについてトピックの設定を行った（ステップＳ１１５）後にシーケンス番号を初期化する（ステップＳ３０１）点で、第３の実施形態におけるトピックの設定処理（図１９参照）と異なる。その他の処理は第３の実施形態と同様であるため、その他の同様の処理については図１９と同じ符号を付すことにより説明を省略する。
【００９０】
このように構成された第４の実施形態の通信システム１００ｃでは、中継装置１０ｃがＰｕｂ／Ｓｕｂ型通信におけるトピックの設定に関する認証機能を備えることにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。さらに、第４の実施形態の通信システム１００ｃでは、中継装置１０ｃが、受信したメッセージに対する改竄の有無を検知する機能と、受信したメッセージの受信順序を確認する機能と、を持つことにより、さらにセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。さらに、第４の実施形態の通信システム１００ｃでは、中継装置１０ｃに対するトピックの設定要求を管理装置４０が行うため、さらにセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。
【００９１】
（変形例）
メッセージの送受信処理に先立って行われるトピックの設定処理は、その設定処理によって設定されるトピックに関連するメッセージ送受信が開始される前のタイミングであれば任意のタイミングで実行されてよい。例えば、これらの設定処理は、送信装置及び受信装置、又は管理装置のそれぞれの起動時において実行されてもよいし、ユーザの実行指示に応じて実行されてもよい。また、これらの設定処理は、関連するメッセージの送受信が行われる直前に実行されてもよい。
【００９２】
トピック管理情報と順序管理情報とは必ずしも異なる情報として記憶される必要はない。例えば、トピック管理テーブルＴ１又はＴ２と、順序管理テーブルＴ３とは、１つのテーブルに統合されてもよい。
【００９３】
ネットワークＮ１、Ｎ２及びＮ３は、例えばＬＡＮ（Local Area Network）などのローカルな通信回線であっても良いし、インターネットや専用回線などの広域な有線通信回線であってもよい。また、ネットワークＮ１、Ｎ２及びＮ３は、３Ｇ（3rd Generation）、４Ｇ（4th Generation）、５Ｇ（5th Generation）、ＬＰＷＡ（Low-Power Wide-Area Network）などの広域な無線通信回線を用いてもよい。
【００９４】
トピック管理テーブルに登録される各機器の識別情報には、各機器の識別が可能な情報であればＩＰアドレス以外の情報が用いられてもよい。例えば、トピック管理テーブルには、各機器のＭＡＣ（Media Access Control）アドレスが用いられてもよい。
【００９５】
メッセージ中継部は、不正な順序でメッセージが受信された場合、その旨を他の装置（例えば送信装置）に通知するように構成されてもよいし、その旨をログファイル等に記録する、又は監視画面等に表示するように構成されてもよい。
【００９６】
トピック判定処理（ステップＳ１０３）、改竄検知処理（ステップＳ２０１）、順序判定処理（ステップＳ２０２）の各処理は、必ずしも図１４に示す順序で行われる必要はなく、任意の順序で行われてよい。
【００９７】
改竄検知部は、シーケンス番号も含めた改ざん検知を行う場合、必ずしもメッセージの順序判定処理を行う必要はない。一方、順序判定処理を行う場合、改竄検知部はパケットロスを検知したことに応じて送信装置に再送を指示してもよい。
【００９８】
例えば、実施形態の通信システムは、プラント等の監視制御システムにおいて多様なセンサデータを収集する手段として適用することができる。この場合、送信装置はセンサデータを一定周期で取得して中継装置へ送信する機能を有してもよい。また、受信装置はセンサデータを利用するアプリケーションの実行により、センサデータの記憶、表示又は分析を行う機能を有してもよい。また、センサデータは、例えば、監視制御対象の温度、湿度、濃度、水位、水量、流量、圧力、回転数、重量、電圧、電流等の計測値や、運転中、停止中、異常発生、故障発生等の動作状態や異常状態などを示す情報であってもよいし、画像、映像、音声、テキスト等のマルチメディアデータであってもよい。
【００９９】
以上説明した少なくともひとつの実施形態によれば、トピックのパブリッシャを示すトピック管理情報を予め記憶している記憶部と、トピック管理情報においてトピックのパブリッシャとして予め設定されている送信装置からメッセージを受信し、受信したメッセージをトピックのサブスクライバである受信装置に送信する中継部と、を持つことにより、よりセキュリティの高いＰｕｂ／Ｓｕｂ型通信を実現することができる。
【０１００】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０１】
１００，１００ａ，１００ｂ，１００ｃ…通信システム、１０，１０ａ，１０ｂ，１０ｃ…中継装置、１０１…第１通信部、１０２…第２通信部、１０３…第３通信部、１０４…第４通信部、１０５…トピック管理情報記憶部、１０６，１０６ａ…メッセージ中継部、１０７…順序管理情報記憶部、１０８…改竄検知部、１１１，１１１ｂ…認証部、１１２，１１２ａ…トピック設定部、２０，２０ａ，２０ｂ，２０ｃ…送信装置、２１…第１通信部、２２…第２通信部、２３，２３ａ…メッセージ送信部、２４…トピック設定要求部、３０，３０ｂ…受信装置、３１…第１通信部、３２…第２通信部、３３…メッセージ受信部、３４…トピック設定要求部、４０…管理装置、４１…第１通信部、４２…第２通信部、４３…第１トピック設定要求部、４４…第２トピック設定要求部
【図１】
2020092318.tif 000003
【図２】
2020092318.tif 000004
【図３】
2020092318.tif 000005
【図４】
2020092318.tif 000006
【図５】
2020092318.tif 000007
【図６】
2020092318.tif 000008
【図７】
2020092318.tif 000009
【図８】
2020092318.tif 000010
【図９】
2020092318.tif 000011
【図１０】
2020092318.tif 000012
【図１１】
2020092318.tif 000013
【図１２】
2020092318.tif 000014
【図１３】
2020092318.tif 000015
【図１４】
2020092318.tif 000016
【図１５】
2020092318.tif 000017
【図１６】
2020092318.tif 000018
【図１７】
2020092318.tif 000019
【図１８】
2020092318.tif 000020
【図１９】
2020092318.tif 000021
【図２０】
2020092318.tif 000022
【図２１】
2020092318.tif 000023
【図２２】
2020092318.tif 000024
【図２３】
2020092318.tif 000025