(57)【要約】【課題】機器間の通信効率の向上を図ること。【解決手段】仲介装置は、第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置にネットワークを介して接続され、前記第１の装置から送信されるデータを受信する受信部と、前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信部によって受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定部と、前記判定部によって送信が必要であると判定されたデータを、前記送信装置に送信する送信部と、を有する。【選択図】図３
2018157455.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置にネットワークを介して接続される仲介装置であって、
前記第１の装置から送信されるデータを受信する受信部と、
前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信部によって受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定部と、
前記判定部によって送信が必要であると判定されたデータを、前記送信装置に送信する送信部と、
を有することを特徴とする仲介装置。
【請求項２】
前記判定部は、ルール情報ごとに予め定められた期間において当該ルール情報に基づく判定を行う、
ことを特徴とする請求項１記載の仲介装置。
【請求項３】
前記受信部によって受信されたデータに適用されるルール情報に基づいて、前記第１の装置を制御する制御部、
を有することを特徴とする請求項１又は２記載の仲介装置。
【請求項４】
前記受信部によって受信されたデータを記憶する記憶部と、
前記記憶部に記憶されたデータに適用されるルール情報に指定された期間が経過すると、当該データを前記記憶部から削除する削除部、
を有することを特徴とする請求項１乃至３いずれか一項記載の仲介装置。
【請求項５】
前記ルール情報をネットワークを介して取得する取得部、
を有することを特徴とする請求項１乃至４いずれか一項記載の仲介装置。
【請求項６】
第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置と、前記送信装置にネットワークを介して接続される仲介装置とを含む情報処理システムであって、
前記第１の装置から送信されるデータを受信する受信部と、
前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信部によって受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定部と、
前記判定部によって送信が必要であると判定されたデータを、前記送信装置に送信する送信部と、
を有することを特徴とする情報処理システム。
【請求項７】
第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置と、前記送信装置にネットワークを介して接続される仲介装置に処理を実行させるプログラムとを含む情報処理システムであって、
前記プログラムは、
前記第１の装置から送信されるデータを受信する受信手順と、
前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信手順において受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定手順と、
前記判定手順において送信が必要であると判定されたデータを、前記送信装置に送信する送信手順と、
を前記仲介装置に実行させることを特徴とする情報処理システム。
【請求項８】
第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置にネットワークを介して接続される仲介装置に、
前記第１の装置から送信されるデータを受信する受信手順と、
前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信手順において受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定手順と、
前記判定手順において送信が必要であると判定されたデータを、前記送信装置に送信する送信手順と、
を実行させることを特徴とするプログラム。
【請求項９】
第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置にネットワークを介して接続される仲介装置によって用いられるルールデータのデータ構造であって、
前記仲介装置が前記第１の装置から受信したデータの内容に応じて前記送信装置への送信の要否の判定に用いられる情報を含む、
ことを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仲介装置、情報処理システム、プログラム及びデータ構造に関する。
【背景技術】
【０００２】
従来、機械同士が通信を介して情報をやり取りするＭ２Ｍ（Machine-to-Machine）や、家電や自動車等多種多様な機械がインターネットにつながり、お互いに情報をやり取りするＩｏＴ（Internet of Things）技術が既に知られている（例えば、特許文献１）。また、Ｍ２ＭやＩｏＴを実現するために、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）ネットワークで利用できる通信プロトコルＭＱＴＴ（Message Queueing Telemetry Transport）が知られている。ＭＱＴＴの「Ｍｅｓｓａｇｅ  Ｑｕｅｕｅｉｎｇ」とは、送信側が送るデータをデータ領域に一旦保持しながら、受信側の処理が完了するのを待たずに次の処理へ移る方式をいい、「Ｔｅｌｅｍｅｔｒｙ  Ｔｒａｎｓｐｏｒｔ」とは、遠隔測定用の通信を意味する。すなわち、ＭＱＴＴは、遠隔にあるセンサやデバイス等が収集したデータを、受信側の処理状況を気にせず効率よく送信することができるプロトコルである。ＭＱＴＴのヘッダサイズは２バイトであり、トラフィック量はＨＴＴＰの１０分の１になる。つまり、ＣＰＵ負荷、電力消費量を１０分の１に抑えることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＭＱＴＴを使用したサービスでは、ＭＱＴＴブローカに機器又はセンサ等のＭＱＴＴパブリッシャが直接接続する構成を採るため、ＭＱＴＴパブリッシャ同時接続数のスケーラビリティを確保する場合に、ＭＱＴＴブローカをサポートするサーバに掛かるコストが増大する問題があった。また、ＭＱＴＴパブリッシャから直接インターネット上のＭＱＴＴブローカまでの通信を行うため、セキュリティ面のリスクが増大するといった問題があった。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、機器間の通信効率の向上を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、仲介装置は、第１の装置から送信されるデータのうち、第２の装置から要求されているデータを前記第２の装置へ送信する送信装置にネットワークを介して接続され、前記第１の装置から送信されるデータを受信する受信部と、前記データの内容に応じて前記送信装置への送信の要否が定義されているルール情報のうち、前記受信部によって受信されたデータに適用されるルール情報に基づいて、当該データの送信の要否を判定する判定部と、前記判定部によって送信が必要であると判定されたデータを、前記送信装置に送信する送信部と、を有する。
【発明の効果】
【０００６】
機器間の通信効率の向上を図ることができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施の形態における情報処理システムの構成例を示す図である。
【図２】第１の実施の形態におけるゲートウェイ５００１のハードウェア構成例を示す図である。
【図３】第１の実施の形態におけるゲートウェイ５００１の機能構成例を示す図である。
【図４】第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第１の図である。
【図５】第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第２の図である。
【図６】第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第３の図である。
【図７】第１の実施の形態における情報処理システムにおいて実行されるルール集計・判定処理手順の一例を説明するためのシーケンス図である。
【図８】第１の実施の形態におけるＭＱＴＴトピックに適用されるルールの例を示す図である。
【図９】第１の実施の形態における情報処理システムにおいて実行されるルール共有処理手順の一例を説明するためのシーケンス図である。
【図１０】第２の実施の形態における情報処理システムの構成例を示す図である。
【発明を実施するための形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。
【０００９】
図１は、第１の実施の形態における情報処理システムの構成例を示す図である。図１において、情報処理システムは、端末装置１００１−１、１００１−２及び１００１−３、クラウド２０００、サーバ２００１、ルール共有サーバ２００２、ロードバランサ２００３、広域ネットワーク３０００、ファイアウォール４００１及び４００２、イントラネット５０００及び５１００、ゲートウェイ５００１及び５１０１、機器５００２−１及び５００２−２、センサ５００３−１、５００３−２、５００３−３及び５００３−４を含む。
【００１０】
端末装置１００１−１、１００１−２及び１００１−３（以下、それぞれを区別しない場合「端末装置１００１」という。）は、例えば、スマートフォン、テレビ会議装置等の端末装置である。当該端末装置では、必要な機能を実現するアプリケーションプログラムが動作している。以下、端末装置１００１−１、１００１−２及び１００１−３に処理を実行させるアプリケーションプログラムを、アプリ１００１−１、１００１−２及び１００１−３といい、それぞれを区別しない場合、アプリ１００１という。アプリ１００１は、ＭＱＴＴ（Message Queueing Telemetry Transport）サブスクライバ機能を有する。ＭＱＴＴサブスクライバ機能とは、ＭＱＴＴプロトコルを使用して、当該ＭＱＴＴサブスクライバが指定するＭＱＴＴトピックに関するメッセージの配信をＭＱＴＴブローカから受ける機能である。ＭＱＴＴブローカは、ＭＱＴＴパブリッシャから当該ＭＱＴＴパブリッシャが指定したＭＱＴＴトピックに関するメッセージを受信し、ＭＱＴＴサブスクライバへ当該メッセージを配信する機能を有する。なお、アプリ１００１は、ソリューション別に作成されており、例えば、会議室利用アプリ、広告配信アプリ等がある。情報処理システムの利用者は、アプリ１００１が提供するユーザインタフェースを介して、機器５００２−１やセンサ５００３−１から機器情報や状態等を取得し制御する。
【００１１】
クラウド２０００は、広域ネットワーク３０００と接続しているサーバコンピュータ群（データセンタ）であり、ロードバランサ２００３、サーバ２００１及びルール共有サーバ２００２を含む。ロードバランサ２００３は、アクセス負荷を分散させる目的で、広域ネットワーク３０００とサーバ２００１又はルール共有サーバ２００２との間に設置される。サーバ２００１は、ＭＱＴＴブローカ機能を有し、ゲートウェイ５００１又は５１０１が実現するＭＱＴＴパブリッシャからメッセージを受信し、アプリ１００１が実現するＭＱＴＴサブスクライバへメッセージを配信する。すなわち、アプリ１００１は、要求したメッセージをサーバ２００１から受信することができる。ルール共有サーバ２００２は、ＭＱＴＴトピックに適用されるルールを情報処理システムの利用者全体で共有するためのサーバである。ＭＱＴＴトピックに適用されるルールの詳細については後述する。
【００１２】
広域ネットワーク３０００は、例えば、インターネットであり、公開されたネットワークである。広域ネットワーク３０００は、専用回線ではなく、公衆回線であるため、セキュリティ対策をしない場合、改ざん、なりすまし、盗聴等の脅威を受ける可能性が有る。
【００１３】
ファイアウォール４００１及び４００２は、広域ネットワーク３０００からのセキュリティの脅威からイントラネット５０００又は５１００内を守るために設置される。
【００１４】
イントラネット５０００及び５１００は、企業等の組織内で運用されるネットワークやＭ２Ｍデバイスが接続されるローカルエリアネットワーク等を指す。イントラネット５０００及び５１００と広域ネットワーク３０００とは、ファイアウォール４００１又は４００２を介して接続される。イントラネット５０００及び５１００の内部では、ルータやＰＣ（Personal Computer）等様々な機器がネットワークを介して相互に接続されている。イントラネット５０００では、ゲートウェイ５００１、ゲートウェイ５００１が監視する機器５００２−１及び５００２−２（以下、それぞれを区別しない場合「機器５００２」という。）、センサ５００３−１等が接続される。イントラネット５１００では、ゲートウェイ５１０１、ゲートウェイ５１０１が監視するセンサ５００３−２、５００３−３及び５００３−４（以下、センサ５００３−１〜５００３−４のそれぞれを区別しない場合「センサ５００３」という。）等が接続される。
【００１５】
ゲートウェイ５００１及びゲートウェイ５１０１は、ＭＱＴＴパブリッシャ機能を有し、機器５００２又はセンサ５００３から受信するデータに基づき、ＭＱＴＴブローカへデータを送信する。なお、ＭＱＴＴサービスがイントラネット５０００又は５１００内で運用される場合は、ゲートウェイ５００１又はゲートウェイ５１０１がＭＱＴＴブローカ機能を有してもよい。
【００１６】
機器５００２は、例えば、ＭＦＰ（Multi-Function Peripheral）、ＩＷＢ（Interactive White Board）、ネットワーク照明機器、ネットワーク空調機器等である。センサ５００３は、例えば、人感センサ、温度センサ、椅子の着座センサ等のセンサである。
【００１７】
図２は、第１の実施の形態におけるゲートウェイ５００１のハードウェア構成例を示す図である。図２のゲートウェイ５００１は、それぞれバスＢで相互に接続されているＣＰＵ（Central Processing Unit）５０１１、ネットワークインタフェース５０１２、入出力インタフェース５０１３、補助記憶装置５０１４及びメモリ装置５０１５等を有する。
【００１８】
ゲートウェイ５００１での処理を実現するプログラムは、補助記憶装置５０１４に格納される。補助記憶装置５０１４は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１９】
メモリ装置５０１５は、プログラムの起動指示があった場合に、補助記憶装置５０１４からプログラムを読み出して格納する。ＣＰＵ５０１１は、メモリ装置５０１５に格納されたプログラムに従ってゲートウェイ５００１に係る機能を実行する。
【００２０】
ネットワークインタフェース５０１２は、アプリ１００１、クラウド２０００、機器５００２及びセンサ５００３等と通信を行うための有線又は無線のインタフェースである。
【００２１】
入出力インタフェース５０１３は、ＵＳＢ（Universal Serial Bus）機器、ハードウェアキー、状態通知用ＬＥＤ、液晶ディスプレイ等の様々な入出力装置との接続を行うためのインタフェースである。
【００２２】
なお、ゲートウェイ５１０１、サーバ２００１、ルール共有サーバ２００２、アプリ１００１が動作している端末装置も図２と同様のハードウェア構成を有していてもよい。
【００２３】
図３は、第１の実施の形態におけるゲートウェイ５００１の機能構成例を示す図である。図３に示されるゲートウェイ５００１は、システム監視部５０１、ユーザインタフェース５０２、証明書管理部５０３、通信部５０４、ＭＱＴＴパブリッシャ５０６、コマンド実行メカニズム５０７、スケジューラ５０８、通信プロトコル管理部５０９、ＭＱＴＴトピックルール管理部５１０、ＭＱＴＴトピック集計判定部５１１、ＭＱＴＴトピックリコメンド部５１２等を有する。これら各部は、ゲートウェイ５００１にインストールされた１以上のプログラムがＣＰＵ５０１１に実行させる処理により実現される。またゲートウェイ５００１は、データベース５０５を有する。データベース５０５は、メモリ装置５０１５又は補助記憶装置５０１４等を用いて実現可能である。
【００２４】
システム監視部５０１は、ゲートウェイ５００１のシステムのリソースの状態を監視して異常があればリブートやユーザインタフェース５０２を用いて管理者への通知を行う。システムのリソースとは、例えば、ＣＰＵ５０１１の処理能力及びメモリ装置５０１５の容量等である。
【００２５】
ユーザインタフェース５０２は、第１の実施の形態における情報処理システムのサービスの開始に伴うユーザの入力操作を受け付ける。例えば、ユーザインタフェース５０２は、情報処理システム設置時のネットワーク等の初期設定、クラウド２０００とゲートウェイ５００１のアクティベーション処理等を可能とする。
【００２６】
証明書管理部５０３は、ゲートウェイ５００１と、クラウド２０００、アプリ１００１、機器５００２及びセンサ５００３等との通信を暗号化し、相互に認証された状態でセキュアに通信するための情報（ＣＡ（Certification Authority）証明書、クライアント証明書、秘密鍵等）を補助記憶装置５０１４等を用いて管理する。
【００２７】
通信部５０４は、クラウド２０００、アプリ１００１、機器５００２及びセンサ５００３等との通信を行う。通信部５０４は、通信が正常に完了しなかった場合に当該通信の再試行等の機能を有する。
【００２８】
データベース５０５は、ゲートウェイ５００１が管理する機器５００２及びセンサ５００３の情報、機器５００２及びセンサ５００３と通信するためのデバイス通信定義情報、ユーザインタフェース５０２にアクセスできるようにログインするためのアカウント情報、クラウド２０００とのサービスを開通させるためのパスワード情報、クラウド２０００と通信するための宛先情報、定期実行するタスクのスケジュール情報、ＭＱＴＴトピックに適用されるルール情報、ＭＱＴＴトピックの集計判定結果、ＭＱＴＴトピックのリコメンド情報等を記憶する。デバイス通信定義情報、ＭＱＴＴトピックに適用されるルール情報、ＭＱＴＴトピックの集計判定結果及びＭＱＴＴトピックのリコメンド情報の詳細については後述する。
【００２９】
ＭＱＴＴパブリッシャ５０６は、機器５００２及びセンサ５００３等から送信されたデータに基づいて、ＭＱＴＴトピックルール管理部５１０で通知すると設定されたデータを、クラウド２０００内のサーバ２００１（ＭＱＴＴブローカ）へ送信する。ＭＱＴＴパブリッシャ５０６は、通信が正常に完了しなかった場合に当該通信の再試行等の機能を有する。
【００３０】
コマンド実行メカニズム５０７は、アプリ１００１がクラウド２０００を介して機器５００２又はセンサ５００３に対して発行したコマンドを実行する。当該コマンドは、通信部５０４にて受信されると、非同期処理のためＦＩＦＯ（First In First Out）方式でキューイングされる。キューから当該コマンドが取り出されると、コマンド実行メカニズム５０７は、機器５００２又はセンサ５００３に対して、当該コマンドの指示に基づき、情報取得、設定又は制御等を実行する。また、コマンド実行メカニズム５０７は、クラウド２０００を介して当該コマンドの実行結果をアプリ１００１に通知する。
【００３１】
スケジューラ５０８は、ゲートウェイ５００１と接続される機器５００２及びセンサ５００３の状態を監視するタスクを定期的に起動して、当該タスクに機器５００２及びセンサ５００３と通信を行わせ、クラウド２０００を介して機器５００２及びセンサ５００３から送信されたデータをアプリ１００１に通知させる。また、スケジューラ５０８は、ＭＱＴＴトピック集計判定部５１１に属するタスクを所定のタイミングで起動させる。所定のタイミングは、周期的であってもよい。
【００３２】
通信プロトコル管理部５０９は、機器５００２及びセンサ５００３との通信に必要な通信プロトコル情報を管理する。通信プロトコル情報は、通信ライブラリ及びデバイス通信定義情報を含む。
【００３３】
図４は、第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第１の図である。
【００３４】
図４では、通信プロトコル管理部５０９が、ボディ部がＪＳＯＮ（JavaScript Object Notation）であるＨＴＴＰ（Hypertext Transfer Protocol）又はＳＮＭＰ（Simple Network Management Protocol）によって、機器５００２又はセンサ５００３と通信可能であることを示す。各通信プロトコルによる通信は、当該通信プロトコルに対応した通信ライブラリを用いて実現される。通信ライブラリは、特定の通信プロトコルに特化した通信を実行するプログラムモジュールである。
【００３５】
各通信プロトコルで使用されるパラメータと、通信対象を示すデバイス及び通信目的を示すアクションとを含むデバイス通信定義情報は、通信プロトコルごとに定義される。例えば、テーブルＴ１に示されるデバイス通信定義情報は、通信対象が「プロジェクタ」であること、通信目的が「状態取得」であること及びＨＴＴＰ通信を行う際のパラメータを示す。すなわち、テーブルＴ１は、プロジェクタの状態の取得に利用される通信定義情報である。ＨＴＴＰ通信を行う際には、当該パラメータに基づいて、「メソッド」、「リソースＵＲＩ（Uniform Resource Identifier）」、「ヘッダ」及び「ボディ」が指定される。なお、デバイス通信定義情報は、データベース５０５に記憶されている。
【００３６】
また、図５は、第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第２の図である。図５では、ＨＴＴＰ＋ＪＳＯＮの通信プロトコルに対して、テーブルＴ２で示されるデバイス通信定義情報が追加された例が示されている。当該デバイス通信定義情報は、通信対象が「プロジェクタ」であること、通信目的が「機器情報取得」であること及びＨＴＴＰ通信を行う際のパラメータが、メソッドは「ＧＥＴ」、リソースＵＲＩが「／ｐｒｏｐｅｒｔｙ」、ヘッダ及びボディは「無し」であることを示す。当該デバイス通信定義情報が、通信ライブラリ「ＨＴＴＰ＋ＪＳＯＮ」に関連付けて追加される。当該追加により、ゲートウェイ５００１（通信プロトコル管理部５０９）は、更に、プロジェクタの機器情報を取得することができる。
【００３７】
なお、デバイス通信定義情報の追加は、アプリ１００１からの要求に基づき、クラウド２０００を介して、ゲートウェイ５００１の動作設定時又はコマンド実行要求時等に実行されてもよい。デバイス通信定義情報がアプリ１００１からゲートウェイ５００１への通信時に追加又は変更されることによって、ゲートウェイ５００１（通信プロトコル管理部５０９）は、ゲートウェイ５００１のファームウェアを更新せずに、デバイス通信定義情報を容易に拡張できる。
【００３８】
更に、図６は、第１の実施の形態においてゲートウェイ５００１が機器５００２又はセンサ５００３と通信するための仕組みを説明するための第３の図である。図６では、通信プロトコルＭＱＴＴ及びＺｉｇＢｅｅ（登録商標）のそれぞれに対応した通信プロトコルが追加された例が示されている。すなわち、使用可能な通信プロトコルの追加は、デバイス通信定義情報の追加では対応できないため、当該通信プロトコルに対応する通信ライブラリの追加（アドオン）が必要とされる。当該追加により、ゲートウェイ５００１（通信プロトコル管理部５０９）は、ＭＱＴＴ又はＺｉｇＢｅｅ（登録商標）によって通信する機器５００２及びセンサ５００３と通信することが可能となる。また当該追加は、通信プロトコルを実現するバイナリプログラムである通信ライブラリを動的に読み込むことで実行されるため、ゲートウェイ５００１をシャットダウンする必要がない。なおＺｉｇＢｅｅ（登録商標）に関して、ネットワークインタフェース５０１２がハードウェア仕様としてＺｉｇＢｅｅ（登録商標）に対応していることがＺｉｇＢｅｅ（登録商標）による通信を実行するために必要である。
【００３９】
図３に戻る。ＭＱＴＴトピックルール管理部５１０は、機器５００２及びセンサ５００３から送信されるＭＱＴＴトピックに係るデータをＭＱＴＴパブリッシャ５０６へ出力するか否かを指定し、当該データに基づいて機器５００２及びセンサ５００３を制御するルールを設定する。なお、ルール共有サーバ２００２から取得したルール（詳細は後述）がデータベース５０５に保存された場合であっても、ＭＱＴＴトピックルール管理部５１０が当該ルールを有効とするよう設定しない限り、当該ルールはＭＱＴＴトピック集計判定部５１１で使用されない。
【００４０】
ＭＱＴＴトピック集計判定部５１１は、ＭＱＴＴトピックルール管理部５１０がＭＱＴＴトピックに適用されるルールを有効とするよう設定すると、機器５００２及びセンサ５００３から送信されるＭＱＴＴトピックに係るデータに当該ルールが定義する処理手順を実行する。ＭＱＴＴトピック集計判定部５１１に属する各ルールが定義する処理手順を実行するタスクは、スケジューラ５０８から起動される。
【００４１】
ＭＱＴＴトピックリコメンド部５１２は、ルール共有サーバ２００２から送信される、ＭＱＴＴトピックに適用されるルールの使用頻度情報において、使用頻度の上位にランキングされているルールから、ゲートウェイ５００１が管理する機器５００２及びセンサ５００３の構成で利用可能なルールを抽出し、抽出結果をアプリ１００１へ送信する。ＭＱＴＴトピックリコメンド部５１２は、通信が正常に完了しなかった場合に当該通信の再試行等の機能を有する。
【００４２】
以下、情報処理システムにおいて実行される処理手順の一例について説明する。
【００４３】
図７は、第１の実施の形態における情報処理システムにおいて実行されるルール集計・判定処理手順の一例を説明するためのシーケンス図である。図７に示されるシーケンスにおいて、ＭＱＴＴトピックルール管理部５１０は、ステップＳ１０２以前に「会議室Ａ」ルール、ステップＳ１０４以前に「体育館」ルール、ステップＳ１０８以前に「応接室」ルールをそれぞれ有効とするよう設定している。
【００４４】
例えば、定期的に訪れるステップＳ１００において、センサ５００３は、ゲートウェイ５００１の通信部５０４へセンサデータを送信する。当該送信は、機器５００２又はセンサ５００３からの自発的な送信であってもよいし、ゲートウェイ５００１から機器５００２又はセンサ５００３へ問合せた結果による送信であってもよい。通信部５０４は、機器５００２又はセンサ５００３と通信する際に、当該通信に必要な通信ライブラリ等を通信プロトコル管理部５０９を介して利用する。
【００４５】
続いて、通信部５０４は、当該センサデータをデータベース５０５へ記憶させる（Ｓ１０１）。
【００４６】
ステップＳ１０２において、センサデータの受信と並行して、スケジューラ５０８は、事前に設定されたスケジュール情報に基づいて、ＭＱＴＴトピックに適用されるルールのうちのいずれかのルールに関するタスクを起動する。当該タスクは、ＭＱＴＴトピック集計判定部５１１に含まれる。スケジュール情報は、各ルールに関するタスクの起動タイミング及びタスクの実行期間を示す情報である。
【００４７】
図８は、第１の実施の形態におけるＭＱＴＴトピックに適用されるルールの例を示す図である。図８に示されるように、ＭＱＴＴトピックに適用されるルールは、「ルール名称」、「クラウド転送」、「共有範囲」、「履歴」、「リコメンド」、「ルール定義」及び「要求応答時間」を属性として有するデータ構造をとる。当該ルールは、ＭＱＴＴトピックごとに定義されるが、１対１で対応しなくてもよい。
【００４８】
「ルール名称」は、ルールを識別するための任意の文字列である。「クラウド転送」は、センサ５００３又は機器５００２から送信されたセンサデータをクラウド２０００へ送信するか否かを示す情報である。「共有範囲」は、情報処理システムのユーザ間で意図しないルールの共有が行われないようにするためのセキュリティ設定である。例えば、情報処理システムがある会社で運用されている場合、「共有範囲」として、アプリ１００１を使用する利用者の社内の利用者の間でのみルールが共有される「社内限定」、又はルールの共有に制限が無い「公開」等が設定される。
【００４９】
「履歴」は、センサデータがデータベース５０５に記憶される期間を示し、例えば、「履歴」には「１年間」〜「１０年間」等が設定され、センサデータを受信した時点から設定された期間が経過すると、ＭＱＴＴトピック集計判定部５１１により当該センサデータはデータベース５０５から削除される。情報処理システムの利用者又は管理者は、必要に応じてセンサデータが記憶される期間を設定することで、補助記憶装置５０１４の使用量を制御してコストの増大を防ぐことができる。
【００５０】
「リコメンド」は、情報処理システムの利用者の間でルールを共有するか否かを示す。「リコメンド」に「する」が設定されたルールは、アプリ１００１を介して、情報処理システムの利用者へ公開又は推薦される。なお、当該ルールは、ルール共有サーバ２００２から取得したルールでもよいし、情報処理システムの利用者が作成（後述）したルールでもよい。一方、「リコメンド」に「しない」が設定されたルールは、情報処理システムの利用者へ公開又は推薦されない。ルール共有サーバ２００２から取得したルールのうち、データベース５０５に保存されるルールをリコメンド情報という（詳細は後述のステップＳ２０４参照）。
【００５１】
「ルール定義」は、センサデータをどのように判断してどのように通知又は制御するかを具体的に定義したものである。「ルール定義」は、ルール共有サーバ２００２から取得したルールの「ルール定義」を選択して作成されてもよいし、予め設定されたセンサデータに関する条件及び処理手順が組み合わされて作成されてもよいし、又はプログラミングによってセンサデータに関する条件及び処理手順が組み合わされて作成されてもよい。
【００５２】
「要求応答時間」は、センサデータが変化してから「ルール定義」に基づく処理を実行するまでの許容可能な遅延時間を設定する。例えば、「会議室Ａ」ルールでは、１（ｍｉｎ）以下が設定されているため、入室検知、着座検知及び表示デバイス利用状況について、通信部５０４は、１分以下の間隔で当該センサデータを継続して取得する。当該センサデータを取得するトリガは、スケジューラ５０８による通信部５０４への指示でもよいし、センサ５００３の自発的な送信でもよい。取得した当該センサデータに「ルール定義」に定められた変化が検出された場合、ＭＱＴＴトピック集計判定部５１１は、「ルール定義」に定められた手順に基づいて処理を行う。
【００５３】
図８に示される「応接室」ルールの「ルール定義」を作成する例を説明する。ルール共有サーバ２００２から取得したルールに基づいて「ルール定義」を作成する場合、情報処理システムの利用者は、当該ルールに含まれる「ルール定義」から「人の存在検知：誰かいる→照明ＯＮ及び空調ＯＮ」「人の存在検知：誰もいない→照明ＯＦＦ及び空調ＯＦＦ」の２つをそのまま含む「ルール定義」を作成する。
【００５４】
予め設定されたセンサデータに関する条件及び処理手順を組み合わせて「ルール定義」を作成する場合、予め設定されたセンサデータに関する条件は「人の存在検知：誰かいる」「人の存在検知：誰もいない」であり、予め設定された処理手順は、「照明ＯＮ」「照明ＯＦＦ」「空調ＯＮ」「空調ＯＦＦ」である。情報処理システムの利用者は、これらのうち、「人の存在検知：誰かいる」「照明ＯＮ」「空調ＯＮ」を一つの組み合わせとし、また他の一つの組み合わせを「人の存在検知：誰もいない」「照明ＯＦＦ」「空調ＯＦＦ」として、「ルール定義」を作成する。
【００５５】
プログラミングによって「ルール定義」を作成する場合、例えば、センサデータの変数及び処理手順のＡＰＩ（Application Programming Interface）等が与えられ、情報処理システムの利用者は、任意のプログラミング言語でセンサデータの判定条件及び処理手順等を記述したプログラムを作成して、ルール定義を作成する。
【００５６】
なお、情報処理システムの利用者は、「ルール定義」以外のルールの属性、すなわち「ルール名称」、「クラウド転送」、「共有範囲」、「履歴」、「リコメンド」及び「要求応答時間」を決定して、当該「ルール定義」を含む新たなルールを作成してもよい。
【００５７】
図７に戻る。ステップＳ１０２では、例えば、スケジュール情報に基づいて、ＭＱＴＴトピック集計判定部５１１の「会議室Ａ」ルールに関するタスクが起動される。当該タスクは、当該ルールの「ルール定義」に基づいた集計及び判定を行う。（Ｓ１０３）。具体的には、ＭＱＴＴトピック集計判定部５１１は、当該「ルール定義」に含まれている「入室検知：あり→会議室予約システムを「利用中」に更新」に基づいて、入室検知を示すセンサデータが受信されると、会議室予約システムを「利用中」に更新する。また、ＭＱＴＴトピック集計判定部５１１は、当該「ルール定義」に含まれている「着座検知：あり→座っている人数と配置を記録」に基づいて、着座検知を示すセンサデータが受信されると、会議室予約システムを「利用中」に更新する。更に、ＭＱＴＴトピック集計判定部５１１は、当該「ルール定義」に含まれている「表示デバイス利用状況：通知受信→利用時間、操作種別を記録」に基づいて、表示デバイスが所定の通知を受信したことを示すセンサデータが受信されると、当該表示デバイスの利用時間及び操作種別を記録する。
【００５８】
なお、「会議室Ａ」ルールは、図８に示されるように「クラウド転送」に「しない」が設定されているため、ＭＱＴＴトピック集計判定部５１１は、受信されたセンサデータについて、ＭＱＴＴパブリッシャ５０６を介したクラウド２０００への送信は行わない。これにより、不要なセンサデータがＭＱＴＴパブリッシャからＭＱＴＴブローカへ送信されないようにすることができる。
【００５９】
また、ステップＳ１０４では、スケジュール情報に基づいて、ＭＱＴＴトピック集計判定部５１１の「体育館」ルールに関するタスクが起動される。当該タスクは、当該ルールの「ルール定義」に基づいた集計及び判定を行う。（Ｓ１０５）。具体的には、ＭＱＴＴトピック集計判定部５１１は、当該「ルール定義」に含まれている「利用検知：あり→予約で申請のあった設備をＯＮ（照明や空調等）」に基づいて、体育館の利用の検知を示すセンサデータが受信されると、予約で申請のあった設備の照明や空調等の電源を入れる。
【００６０】
ここで、ルール「体育館」では、図８に示されるように「クラウド転送」に「する」が設定されているため、ＭＱＴＴトピック集計判定部５１１は、当該センサデータをＭＱＴＴパブリッシャ５０６を介してクラウド２０００に送信する（Ｓ１０６、Ｓ１０７）。
【００６１】
更に、ステップＳ１０８では、スケジュール情報に基づいて、ＭＱＴＴトピック集計判定部５１１の「応接室」ルールに関するタスクが起動される。当該タスクは、当該ルールの「ルール定義」に基づいた集計及び判定を行う。（Ｓ１０９）。具体的には、ＭＱＴＴトピック集計判定部５１１は、当該「ルール定義」に含まれている「人の存在検知：あり→照明ＯＮ、空調ＯＮ」に基づいて、応接室における人の存在の検知を示すセンサデータが受信されると、応接室の照明及び空調の電源を入れる（Ｓ１１０）。また、ＭＱＴＴトピック集計判定部５１１は、「人の存在検知：なし→照明ＯＦＦ、空調ＯＦＦ」に基づいて、応接室における人の存在が検知されなくなったことを示すセンサデータが受信されると、応接室の照明及び空調の電源を切る（Ｓ１１０）。なお、応接室の照明及び空調は、機器５００２の一例である。すなわち、ステップＳ１０８〜Ｓ１１０では、ルールに基づいて機器５００２の制御も行われうることが示されている。
【００６２】
図９は、第１の実施の形態における情報処理システムにおいて実行されるルール共有処理手順の一例を説明するためのシーケンス図である。第１の実施の形態における情報処理システムのアプリ１００１のユーザとして、ルール提供者及びルール利用者が存在する。以下、ルール提供者が提供するルールが共有され、ルール利用者によって当該ルールが利用される処理手順を説明する。
【００６３】
ステップＳ２０１において、ルール提供者が利用するアプリ１００１−１は、クラウド２０００内のルール共有サーバ２００２に対してルール共有を行う。ルール共有では、ＭＱＴＴトピックに適用される１以上のルールがルール共有サーバ２００２に送信される。図８に示されるように、当該ルールは「ルール名称」、「クラウド転送」、「共有範囲」、「履歴」、「リコメンド」、「ルール定義」及び「要求応答時間」を含む。当該ルール共有により、ルール共有サーバ２００２は、送信されたＭＱＴＴトピックに適用される１以上のルールを記憶する。また、ルール共有サーバ２００２は、当該ルール共有によって記憶されたルールに対して、使用頻度に応じたランクを付与してもよい。使用頻度は、アプリ１００１−１から与えられてもよいし、ルール共有サーバ２００２が当該ルールの情報取得（Ｓ２０３で後述）を受ける頻度に基づいて算出されてもよい。なお、ルール共有サーバ２００２は、当該ルール共有を行った時点以前から記憶されているルールに対しても、使用頻度に応じたランクを任意の時点で更新してもよい。
【００６４】
続いて、ゲートウェイ５００１のスケジューラ５０８は、ＭＱＴＴトピックリコメンド部５１２を起動する（Ｓ２０２）。ＭＱＴＴトピックリコメンド部５１２は、起動されると、クラウド２０００内のルール共有サーバ２００２から、ステップＳ２０１において記憶されたルールを取得し、各ルールに対応付けられたランクが存在する場合はランクも取得する（Ｓ２０３）。ステップＳ２０３において、ＭＱＴＴトピックリコメンド部５１２は、ランクの高いルールを優先して取得してもよい。ルール共有サーバ２００２から取得したルールには当該ゲートウェイ５００１で利用できないルールも含まれているため、ＭＱＴＴトピックリコメンド部５１２は、当該ルールから当該ゲートウェイ５００１で利用できるルールのみを抽出して、データベース５０５に保存する（Ｓ２０４）。例えば、取得したルールが入室検知に関するものであり、ゲートウェイ５００１に接続されるセンサ５００３に入室検知を行うセンサが含まれていない場合、当該ルールはゲートウェイ５００１で利用できないルールと判定されてもよい。また、例えば、ＭＱＴＴトピックリコメンド部５１２は、ゲートウェイ５００１に接続される機器５００２又はセンサ５００３の情報、すなわち、機器の可能な処理又はセンサの種別等、に基づいて、取得したルールからゲートウェイ５００１で利用できるルールを抽出してもよい。ステップＳ２０４でデータベース５０５に保存されたルールを、リコメンド情報という。ステップＳ２０１〜Ｓ２０４は、ルール共有のための事前準備であり、ステップＳ２０１は、複数回行われてもよく、ステップＳ２０２〜Ｓ２０４は、定期的に行われてもよい。
【００６５】
ステップＳ２０５において、ルール利用者が利用するアプリ１００１−２は、ゲートウェイ５００１のＭＱＴＴトピックリコメンド部５１２へリコメンド情報の取得要求を送信する。続いて、ＭＱＴＴトピックリコメンド部５１２は、データベース５０５から、ステップＳ２０４で保存されたリコメンド情報を読み出して（Ｓ２０６）、当該リコメンド情報をアプリ１００１−２に送信する（Ｓ２０７）。当該リコメンド情報に基づき、アプリ１００１−２が動作する端末装置の表示画面等にルールが表示されてもよい。なお、ＭＱＴＴトピックリコメンド部５１２は、ランクの高いルールを含むリコメンド情報を優先してアプリ１００１−２に送信してもよい。ステップＳ２０７においてリコメンド情報を送信する前に、ＭＱＴＴトピックリコメンド部５１２は、当該ルールの「共有範囲」に基づいて、アプリ１００１−２が「共有範囲」に含まれるか否かを確認する。例えば、図８に示される「居室」ルールにおいては、「共有範囲」が「社内」であるため、当該アプリ１００１−２が「社内」に含まれる場合、ＭＱＴＴトピックリコメンド部５１２は、当該リコメンド情報を当該アプリ１００１−２へ送信する。一方、当該アプリ１００１−２が「社内」に含まれない場合、ＭＱＴＴトピックリコメンド部５１２は、当該リコメンド情報を当該アプリ１００１−２へ送信しない。アプリ１００１が「社内」に含まれるか含まれないかの判別は、例えば、ルール利用者が、アプリ１００１の起動の際「社内」として使用する場合は認証情報の入力を必須として、当該認証情報が入力済であるか否かを示す情報をリコメンド情報の取得要求に含めることによって行われてもよい。
【００６６】
続いて、アプリ１００１−２は、ルール変更・追加要求をゲートウェイ５００１のＭＱＴＴトピックルール管理部５１０に送信する（Ｓ２０８）。当該ルール変更・追加要求には、ステップＳ２０７で取得したリコメンド情報に基づき、アプリ１００１−２が動作する端末装置の表示画面等に表示されたルールから、ルール利用者が選択したルールが含まれる。また当該ルール変更・追加要求には、当該リコメンド情報に基づいて取得したルールの一部をアプリ１００１−２にて変更を加えたルールが含まれてもよい。
【００６７】
なお、図９に示されるシーケンスを、ゲートウェイ５００１以外のゲートウェイ５１０１等他のゲートウェイで同様に実行することで、使用頻度の高いＭＱＴＴトピックに関するルールを複数のゲートウェイ間で共有することができる。
【００６８】
上述したように、第１の実施の形態によれば、情報処理システムは、機器５００２又はセンサ５００３から送信されるＭＱＴＴトピックに関するセンサデータにルールを適用することにより、不要なセンサデータをＭＱＴＴパブリッシャからＭＱＴＴブローカへ送信しないようにすることができる。すなわち、不要な通信を実行しないことにより、当該通信に係るコスト及びセキュリティリスクを減少させる。その結果、情報処理システムは、機器間の通信効率の向上を図ることができる。
【００６９】
また、第１の実施の形態によれば、情報処理システムは、ルール共有サーバ２００２を介して、ＭＱＴＴトピックに関するルールを効率的に情報処理システムの利用者又は複数のゲートウェイ間で共有できる。その結果、情報処理システムは、機器間の通信の利便性の向上を図ることができる。
【００７０】
なお、情報処理システムの構成は、図１に示したものに限定されない。例えば、当該情報処理システムに含まれる機器は、機器５００２又はセンサ５００３に限られない。機器は、ネットワーク家電、自動販売機、医療機器、産業機械、電源装置、空調システム、ガス・水道・電気等の計量システム等に通信機能を持たせた機器であってもよい。例えば、産業機械としては、加工装置、検査装置、搬送装置、ピッキング装置等が挙げられる。また、これら機器の周辺に設置され機器の状態を把握するための撮像装置や集音装置が情報処理システムに含まれてもよい。産業機械は、当該機器の識別情報、当該機器の稼働状況や異常動作の有無、消耗品の交換時期に関する情報、当該機器による検査結果等を、数値データ、テキストデータ又は画像データ等の種々のデータ形式を用いてゲートウェイ（ＭＱＴＴパブリッシャ）８０を経由してサーバ（ＭＱＴＴブローカ）８９に送信する。また、例えば、医療機器としては、眼底検査装置、Ｘ線検査装置、血圧計、体脂肪計、視力計、ペースメーカ等が挙げられる。医療機器は、当該機器の識別情報、当該機器の稼働状況や異常動作の有無、当該機器による測定結果等を、数値データ、テキストデータ又は画像データ等の種々のデータ形式を用いてゲートウェイ（ＭＱＴＴパブリッシャ）８０を経由してサーバ（ＭＱＴＴブローカ）８９に送信する。
【００７１】
図１０は、第２の実施の形態における情報処理システムの構成例を示す図である。図１０において、情報処理システムは、施設９１及び施設９２、ファイアウォール９３及びファイアウォール９４、インターネット９５を含む。アプリ（ＭＱＴＴサブスクライバ）９０は、例えばスマートフォン、テレビ会議装置等の端末装置で動作するアプリケーションソフトウェアであり、ＭＱＴＴサブスクライバ機能を有する。施設９１は、ゲートウェイ（ＭＱＴＴパブリッシャ）８０、産業機械８１、撮像装置８２、集音装置８３を含む。ゲートウェイ（ＭＱＴＴパブリッシャ）８０は、有線又は無線ＬＡＮ等を介して産業機械８１、撮像装置８２、集音装置８３と通信可能である。またゲートウェイ（ＭＱＴＴパブリッシャ）８０はファイアウォール９３を経由してインターネット９５上にあるサーバ（ＭＱＴＴブローカ）８９、ルール共有サーバ８８及びアプリ（ＭＱＴＴサブスクライバ）９０と通信可能である。施設９２は、ゲートウェイ機能付き機器（ＭＱＴＴパブリッシャ）８４、医療機器８５、ネットワーク家電８６、自動販売機８７を含む。ゲートウェイ機能付き機器（ＭＱＴＴパブリッシャ）８４は、ゲートウェイの機能に加えて機器５００２としての機能も併せ持つ機器である。ゲートウェイ機能付き機器（ＭＱＴＴパブリッシャ）８４は、有線又は無線ＬＡＮ等を介して医療機器８５、ネットワーク家電８６、自動販売機８７と通信可能である。またゲートウェイ機能付き機器（ＭＱＴＴパブリッシャ）８４はファイアウォール９４を経由してインターネット９５上にあるサーバ（ＭＱＴＴブローカ）８９、ルール共有サーバ８８及びアプリ（ＭＱＴＴサブスクライバ）９０と通信可能である。なお、サーバ（ＭＱＴＴブローカ）８９、ルール共有サーバ８８は、それぞれ複数のサーバから構成されてもよい。
【００７２】
また、ゲートウェイ５００１は、複数の装置によって構成されてもよい。
【００７３】
なお、第１及び第２の実施の形態において、機器５００２又はセンサ５００３は、第１の装置の一例である。端末装置１００１は、第２の装置の一例である。センサデータは、データの一例である。サーバ２００１は、送信装置の一例である。広域ネットワーク３０００は、ネットワークの一例である。ゲートウェイ５００１は、仲介装置の一例である。通信部５０４又は通信プロトコル管理部５０９は、受信部の一例である。ＭＱＴＴトピックに適用されるルールは、ルール情報又はルールデータの一例である。ＭＱＴＴトピック集計判定部５１１は、判定部、制御部又は削除部の一例である。ＭＱＴＴパブリッシャ５０６は、送信部の一例である。データベース５０５は、記憶部の一例である。ＭＱＴＴトピックリコメンド部５１２は、取得部の一例である。
【００７４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７５】
８０          ゲートウェイ（ＭＱＴＴパブリッシャ）
８１          産業機械
８２          撮像装置
８３          集音装置
８４          ゲートウェイ機能付き機器（ＭＱＴＴパブリッシャ）
８５          医療機器
８６          ネットワーク家電
８７          自動販売機
８８          ルール共有サーバ
８９          サーバ（ＭＱＴＴブローカ）
９０          アプリ（ＭＱＴＴサブスクライバ）
９１          施設
９２          施設
９３          ファイアウォール
９４          ファイアウォール
９５          インターネット
５０１        システム監視部
５０２        ユーザインタフェース
５０３        証明書管理部
５０４        通信部
５０５        データベース
５０６        ＭＱＴＴパブリッシャ
５０７        コマンド実行メカニズム
５０８        スケジューラ
５０９        通信プロトコル管理部
５１０        ＭＱＴＴトピックルール管理部
５１１        ＭＱＴＴトピック集計判定部
５１２        ＭＱＴＴトピックリコメンド部
１００１−１  アプリ
１００１−２  アプリ
１００１−３  アプリ
２０００      クラウド
２００１      サーバ
２００２      ルール共有サーバ
２００３      ロードバランサ
３０００      広域ネットワーク
４００１      ファイアウォール
４００２      ファイアウォール
５０００      イントラネット
５００１      ゲートウェイ
５１００      イントラネット
５１０１      ゲートウェイ
５００２−１  機器
５００２−２  機器
５００３−１  センサ
５００３−２  センサ
５００３−３  センサ
５００３−４  センサ
Ｂ            バス
５０１１      ＣＰＵ
５０１２      ネットワークインタフェース
５０１３      入出力インタフェース
５０１４      補助記憶装置
５０１５      メモリ装置
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２０１６−０５２１１９号公報
【図１】
2018157455.tif 000003
【図２】
2018157455.tif 000004
【図３】
2018157455.tif 000005
【図４】
2018157455.tif 000006
【図５】
2018157455.tif 000007
【図６】
2018157455.tif 000008
【図７】
2018157455.tif 000009
【図８】
2018157455.tif 000010
【図９】
2018157455.tif 000011
【図１０】
2018157455.tif 000012