以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●第1の実施形態●
●システム構成
図1は、第1の実施形態に係る遠隔機器管理システムのシステム構成の一例を示す図である。遠隔機器管理システム1は、クラウド上の管理システム3を用いて、遠隔地に存在する機器500を管理するシステムである。遠隔機器管理システム1は、管理システム3、ローカルネットワーク7およびファイアウォール9を含む。ローカルネットワーク7は、インターネットを介して管理システム3と接続されている。ローカルネットワーク7と管理システム3は、ファイアウォール9をインターフェースとして接続されている。
ローカルネットワーク7は、オフィス、会議室、倉庫、工場または特定の生産ライン等のネットワーク環境において形成される通信ネットワークである。ローカルネットワーク7は、例えば、インターネットを経由しない社内LAN(Local Area Network)である。ローカルネットワーク7は、仲介装置30、MFP(Multi-Function Peripheral:複合機)500a、PJ(Projector:プロジェクタ)500b、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)500c、PC(Personal Computer:パソコン)500d、センサデバイス500e(例:外部と通信可能な、電子天秤・気圧計・加速度計・電流計・温度計・光度計・人感センサ・カメラ・照度計)を含む。MFP500a、PJ500b、IWB500c、PC500d、センサデバイス500eは、管理システム3における遠隔管理の対象となる管理対象機器である。なお、以下の説明で使用する機器500は、これらの管理対象機器の総称である。
ファイアウォール9は、管理システム3(インターネット)からの特定のパケットのみをローカルネットワーク7内に通過させる機能を有する。これにより、ファイアウォール9は、ローカルネットワーク7への意図しないまたは不正なアクセスをブロックすることが可能となる。また、ファイアウォール9は、仲介装置30からのパケットを管理システム3に転送する機能を有する。
管理システム3は、ローカルネットワーク7内に存在する仲介装置30および機器500を管理するためのシステムである。管理システム3は、遠隔機器管理装置10および複数の管理者端末90(90a、90b、90c、以下区別する必要のないときは管理者端末90と称する。)を含む。
遠隔機器管理装置10は、複数のローカルネットワーク7に存在する仲介装置30および機器500の情報を管理するためのサーバコンピュータである。遠隔機器管理装置10は、ファイアウォ-ル9を介して仲介装置30と接続され、ローカルネットワーク7内の機器500を、仲介装置30を介して遠隔管理する。管理の一例として、遠隔機器管理装置10は、MFP500aから、トナー残量・印刷枚数等の状態に関する情報を取得することが可能である。また、遠隔機器管理装置10は、MFP500aに蓄積されたドキュメントデータの印刷を実行させるための指示が可能である。また、遠隔機器管理装置10は、PJ500b、IWB500c、およびPC500dに対して、電源のONまたはOFFを制御することが可能である。さらに、遠隔機器管理装置10は、センサデバイス500eに対して、当該センサデバイス500eによって取得された情報を取得することが可能である。なお、遠隔機器管理装置10は、一台のサーバコンピュータによって構成されてもよく、複数のサーバコンピュータによって構成されてもよい。
管理者端末90は、仲介装置30の設置担当者または機器500の保守担当者等の遠隔機器管理システム1の管理者が使用するノートPC等の端末である。管理者端末90は、遠隔機器管理装置10によって管理される機器500の機器情報を、Webブラウザ等を用いて表示させることで、遠隔機器管理システム1の管理者に管理対象の機器500の情報を提供する。また、複数の管理者端末90は、異なる拠点からそれぞれ遠隔機器管理装置10へアクセスすることができる。遠隔機器管理装置10は、例えば、ローカルネットワーク7の使用環境や機器500の種別に応じて、提供するアプリケーションの内容を設定することができ、管理者端末90ごとに提供するアプリケーションを管理している。なお、管理者端末90は、例えば、タブレット端末、携帯電話、スマートフォン、ウェアラブル端末またはディスクトップPC等であってもよい。
また、管理者端末90は、ローカルネットワーク7内において、仲介装置30と直接通信可能な構成であってもよい。例えば、仲介装置30の設置担当者が現場で仲介装置30の設置作業を行う場合、設置担当者が使用する管理者端末90は、仲介装置30とローカルネットワーク7内で直接通信を行うことで、仲介装置30の設置作業を円滑に行うことができる。
仲介装置30は、遠隔機器管理装置10と、ローカルネットワーク7における機器500との間の通信を仲介する装置である。仲介装置30は、遠隔機器管理装置10からファイアウォール9を超えて、ローカルネットワーク7内にメッセージを送信するために常時セッションを維持するための責務を持ち、ローカルネットワーク7内のセキュリティを担保しつつ遠隔機器管理装置10と監視対象の機器500との双方向の通信を実現する。仲介装置30は、機器500およびファイアウォール9と、有線または無線LAN等を介して通信可能である。仲介装置30は、遠隔機器管理装置10からの指示を受けて機器500にアクセスしたり、機器500からのアラート通知を遠隔機器管理装置10に送信したり、予め設定されたスケジュールに基づき機器500の情報取得通知や死活監視(例えば、機器500が通信可能であるかどうか等)を行う。仲介装置30は、単体として機能するボックス型(箱型)の通信装置であってもよく、MFP500a等の機器に内蔵されていてもよい。
また、仲介装置30は、インターネット上にある遠隔機器管理装置10と、ファイアウォール9を経由して通信可能である。すなわち、仲介装置30は、ファイアウォール(をインターフェースとするローカルネットワーク7)内に位置し、管理システム3を構成する遠隔機器管理装置10は、ファイアウォール(をインターフェースとするローカルネットワーク7)外に位置するといえる。
機器500(MFP500a、PJ500b、IWB500c、PC500dおよびセンサデバイス500e)は、ローカルネットワーク7内に位置し、かつファイアウォール(をインターフェースとするローカルネットワーク7)内に位置する。機器500は、管理システム3によるメンテナンスやカウンタ検針等が行われる管理対象の機器である。また、機器500は、人感センサ等のネットワーク機能を備えていない端末に、ネットワーク機能を備えた機器を取り付けてもよい。
なお、管理システム3は、遠隔機器管理装置10と管理者端末90の機能を一台の装置によって実行される構成であってもよい。また、図1は、管理システム3が、一つのローカルネットワーク7内に位置する複数の機器500を遠隔管理する例を示すが、管理システム3が、複数のローカルネットワーク7内のそれぞれに位置する機器500を遠隔管理する構成にしてもよい。また、図1は、一台の仲介装置30が一つのローカルネットワーク7内に位置する例を示すが、一つのローカルネットワーク内に二台以上の仲介装置30が位置する構成にしてもよい。この場合、仲介装置30ごとに担う機能を分担してもよい。
●概略
ここで、第1の実施形態に係る遠隔機器管理システムの構成の概略に説明する。なお、図2は、第1の実施形態に係る遠隔機器管理システムの概略を簡略的に説明したものであり、遠隔機器管理システム1が実現する機能等の詳細は、後述する図面等を用いて説明する。
図2は、第1の実施形態に係る遠隔機器管理システムの概略の一例を示す図である。図2に示す遠隔機器管理システム1は、機器500との通信に用いる通信プロトコルの拡張を柔軟に行うことができるシステムである。遠隔機器管理システム1は、機器500との通信に用いる通信プロトコルの種類に依らずに、ローカルネットワーク7内に存在する機器500と、管理システム3とのファイアウォール9を介した通信を行うことができる。図2に示す遠隔機器管理システム1には、ローカルネットワーク7内に、遠隔機器管理装置10による管理対象(監視対象)である5台の機器500(機器1~機器5)が設けられている。
ここで、仲介装置30は、通常同一のローカルネットワーク7に存在する機器500に対しては、同列に管理対象として通信することができる。一方で、仲介装置30は、TCP/IP(Transmission Control Protocol/Internet Protocol)ネットワークまたはHTTP(HyperText Transfer Protocol)/SNMP(Simple Network Management Protocol)等の標準プロトコルをサポートしていない機器に対しては、通信できないケースがある。そこで、図2に示すように、仲介装置30は、既存のファームウエアによって利用可能な通信プロトコルに加えて、それぞれの機器500との通信に用いる通信プロトコルに対応するプラグインモジュールがインストールされている。これにより、仲介装置30は、HTTP/SNMP等の標準プロトコルをサポートしていない機器(例えば、機器4および機器5)との通信を行うことができる。
従来の遠隔機器管理システムは、仲介装置30が利用できない通信プロトコルに対応する機器500と通信できるようにするために、仲介装置30のファームウエアを更新しなければならなかった。仲介装置30のファームウエアを更新した場合、機器500との通信に用いる通信プロトコルを追加するたびにシステム全体の改修が必要となるため、システムを復旧させるまでの手続きが必要となり、結果的に通信プロトコルの拡張に時間を要していた。
そこで、第1の実施形態に係る遠隔機器管理システム1は、仲介装置30が遠隔機器管理装置10に登録された後に、仲介装置30と遠隔機器管理装置10との間で通信セッションが確立される。遠隔機器管理システム1は、この確立された通信セッションを常時接続可能な状態に維持しておくことで、遠隔機器管理装置10から仲介装置30へプラグインの設定要求が送信され、機器500との通信に用いる通信プロトコルに対応するプラグイン(プラグインモジュール)を、仲介装置30にダウンロードおよびインストールさせる。
また、仲介装置30は、通信プロトコル拡張用のネットワークI/Fを備えており、遠隔機器管理装置10から送信されたプラグインモジュールをネットワークI/Fとして設定することで、機器500との通信に用いる通信プロトコルを拡張させることができる。そして、遠隔機器管理システム1は、拡張された通信プロトコルを用いて、遠隔機器管理装置10と機器500との仲介装置30を介した通信を行う。これにより、遠隔機器管理システム1は、管理対象の機器500の通信に用いる通信プロトコルに依らずに、管理対象の機器500と遠隔機器管理装置10とのファイアウォール9を介した通信を行うことができる。
●ハードウエア構成
続いて、第1の実施形態に係る各装置のハードウエア構成について説明する。遠隔機器管理システム1を構成する各装置は、一般的なコンピュータの構成を有する。ここでは、一般的なコンピュータのハードウエア構成例について説明する。
図3は、第1の実施形態に係るコンピュータのハードウエア構成の一例を示す図である。なお、図3に示すコンピュータ1000のハードウエア構成は、各実施形態において同様の構成を有していてもよく、必要に応じて構成要素が追加または削除されてもよい。コンピュータ1000は、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003、ストレージ1004、キーボード1005、ディスプレイインターフェース(I/F)1006、メディアインターフェース(I/F)1007、ネットワークインターフェース(I/F)1008およびバス1009等を有する。
CPU1001は、ROM1002やストレージ1004等に格納されたプログラムやデータをRAM1003上に読み出し、処理を実行することで、コンピュータ1000の各機能を実現する演算装置である。例えば、仲介装置30は、本発明に係るプログラムをCPU1001で実行することで、本発明に係る通信方法を実現する。
ROM1002は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。ROM1002は、例えば、フラッシュROM等により構成される。ROM1002は、多種の用途に対応したSDK(Software Development Kit)がインストールされており、SDKのアプリケーションを用いて、コンピュータ1000の機能やネットワーク接続等を実現することが可能である。
RAM1003は、CPU1001のワークエリア等として用いられる揮発性のメモリである。ストレージ1004は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスである。ストレージ1004は、例えば、OS(Operation System)、アプリケーションプログラムおよび各種データ等を記憶する。
キーボード1005は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。入力手段は、キーボード1005のみならず、例えば、マウス、タッチパネルまたは音声入力装置等であってもよい。ディスプレイI/F1006は、LCD(Liquid Crystal Display)等のディスプレイ1006aに対するカーソル、メニュー、ウィンドウ、文字または画像等の各種情報の表示を制御する。ディスプレイ1006aは、入力手段を備えたタッチパネルディスプレイであってもよい。
メディアI/F1007は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア1007aに対するデータの読み出しまたは書き込み(記憶)を制御する。
ネットワークI/F1008は、コンピュータ1000をネットワークに接続し、他のコンピュータや、電子機器等とデータの送受信を行うためのインターフェースである。ネットワークI/F1008は、例えば、有線または無線LAN(Local Area Network)等の通信インターフェースである。また、ネットワークI/F1008は、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation)、Zigbee(登録商標)、EnOcean、BLE(Bluetooth(登録商標)Low Energy)、NFC(Near Field Communication)、ミリ波無線通信、赤外線通信、QRコード(登録商標)、可視光、環境音または超音波等の通信インターフェースを備えてもよい。
バスライン1009は、上記の各構成要素に共通に接続され、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU1001、ROM1002、RAM1003、ストレージ1004、キーボード1005、ディスプレイI/F1006、メディアI/F1007およびネットワークI/F1008は、バスライン1009を介して相互に接続されている。
なお、第1の実施形態に係る各装置のハードウエア構成は、必要に応じて構成要素が追加または削除されてもよい。例えば、遠隔機器管理装置10は、キーボード1005等の入力手段およびディスプレイ1006aを備えていない構成であってもよい。また、機器500は、各機器の種別に応じた機能やサービスを提供するためのモジュール等を備える構成であってもよい。
●機能構成
続いて、第1の実施形態に係る遠隔機器管理システムの機能構成について説明する。まず、図4を用いて、管理システム3を構成する遠隔機器管理装置10および管理者端末90の機能構成を説明する。図4は、第1の実施形態に係る管理システムの機能構成の一例を示す図である。図4に示す遠隔機器管理装置10により実現される機能は、仲介装置通信部11、コマンド管理部12、判断部13、プラグイン管理部14、通信管理部15、Webサーバ部16、記憶・読出部17および記憶部100を含む。
仲介装置通信部11は、仲介装置30との間で各種データ(情報)をやり取りする機能である。仲介装置通信部11は、ローカルネットワーク7の内部に位置する仲介装置30との間のファイアウォ-ル9を経由した通信を制御する。仲介装置通信部11は、仲介装置30から遠隔機器管理装置10に対して常時通信(常時接続)可能なように通信セッション(WebSocket等)を維持しておき、仲介装置30との間で、各種データ(情報)を送受信する。また、仲介装置通信部11は、仲介装置30から送信された遠隔機器管理装置10へのポーリングを受信し、当該ポーリングに対する応答を仲介装置30へ送信する。本実施形態において、仲介装置30へのプラグインモジュールの登録時には常時通信(常時接続)可能な通信セッションを維持するが、その他の状況においては、どちらの方法をとってもよい。
仲介装置通信部11は、例えば、Webサーバ部16によって発行されたコマンドを、仲介装置30へ送信する。仲介装置通信部11から送信されるコマンドは、例えば、仲介装置30または機器500に対する所定の要求を示す要求情報の一例である。仲介装置30と遠隔機器管理装置10との間で常時通信(接続)可能な通信セッション(WebSocket等)が確立されていない場合、遠隔機器管理装置10は、Webサーバ部16によって発行されたコマンドを、未送信または送信完了といったステータスでコマンドの送信状態を管理する。また、仲介装置通信部11は、仲介装置30へ送信したコマンドに対する応答、または機器500から自発的に送信された機器500のステータスを示す状態情報等の機器情報を、仲介装置30から受信する。受信された情報は、Webサーバ部16に送信され、Webクライアントを用いて管理者端末90に表示される。仲介装置通信部11は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。
コマンド管理部12は、Webサーバ部16によって発行されたコマンドを管理する機能である。コマンド管理部12は、例えば、Webサーバ部16によって生成されたコマンド、および仲介装置30または機器500によるコマンドの実行結果を管理する。コマンド管理部12は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
判断部13は、管理(監視)対象の機器500から送信される機器情報に基づいて、機器500の状態を判断する機能である。判断部13は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
プラグイン管理部14は、遠隔機器管理システム1において利用可能なプラグイン(プラグインモジュール)を管理する機能である。プラグイン管理部14は、例えば、仲介装置30に設定するためのプラグイン(プラグインモジュール)、および既に仲介装置30にインストールされているプラグイン(プラグインモジュール)の情報を管理する。プラグイン管理部14は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。プラグイン管理部14は、管理手段の一例である。
通信管理部15は、ローカルネットワーク7に存在する仲介装置30および機器500との通信を管理する機能である。通信管理部15は、例えば、遠隔機器管理システム1において利用可能な通信プロトコルの情報を管理する。また、通信管理部15は、通信プロトコルのそれぞれにおいて定義された通信パラメータの情報を管理する。通信管理部15は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
Webサーバ部16は、Webアプリケーションのサーバ部としての機能を担う機能である。Webサーバ部16は、Webクライアント部91からの要求をHTTPS(HyperText Transfer Protocol Secure)等の通信プロトコルを利用してWebAPI(Web Application Programming Interface)で受け付け、要求に従った処理を行ってWebクライアント部91へ応答する。利用される通信プロトコルは、これに限られず、FTP(File Transfer Protocol)、HTTPまたはSNMP等のプロトコルを用いてもよい。
また、Webサーバ部16は、遠隔機器管理装置10から仲介装置30または機器500との通信が必要な場合に、仲介装置30または機器500に送信するコマンドを発行(生成)する。発行されるコマンドは、仲介装置30へのプラグインの更新要求、機器500のステータスを示す状態情報等の機器情報の取得または電源のON/OFF等の制御命令である。これらのコマンドは、仲介装置30または機器500に対する所定の要求を示す要求情報の一例である。Webサーバ部16は、仲介装置通信部11によって受信されたコマンド結果を、Webクライアント部91の画面上にリアルタイムに通知するためにWebSocket等の機能を有していてもよい。Webサーバ部16は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。
記憶・読出部17は、記憶部100に各種データを記憶し、記憶部100から各種データを読み出す機能である。記憶・読出部17および記憶部100は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。また、記憶部100は、図3に示したROM1002またはストレージ1004によって実現される。さらに、記憶部100は、仲介装置30に関する各種情報を記憶・管理する仲介装置管理テーブル110、プラグイン(プラグインモジュール)に対応する通信プロトコルに関する情報を記憶・管理する通信プロトコル管理テーブル130a、仲介装置30と機器50との間の通信に用いるプラグイン(プラグインモジュール)を記憶・管理するプラグイン管理テーブル150aを記憶している。仲介装置管理テーブル110、通信プロトコル管理テーブル130aおよびプラグイン管理テーブル150aの詳細は、後述する。
続いて、管理者端末90の機能構成について説明する。図4に示す管理者端末90により実現される機能は、Webクライアント部91、受付部92、仲介装置通信部93および表示制御部94を含む。
Webクライアント部91は、Webアプリケーションのクライアント部としての役割を担う機能である。Webクライアント部91は、Webブラウザで動作するHTML(Hyper Text Markup Language)、またはJavaScript(登録商標)、CSS(Cascading Style Sheets)といった言語で記述されたプログラムが実行されることによって実現される。Webクライアント部91は、例えば、後述するプラグイン一覧画面900(図19参照)を、管理者端末90のディスプレイ1006aに表示させる。また、Webクライアント部91は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。
受付部92は、図3に示したキーボード1005等の入力手段に対するユーザ入力を受け付ける機能である。受付部92は、例えば、Webクライアント部91によってディスプレイ1006aに表示された表示画面に示される各種項目に対する選択を受け付ける。受付部92は、例えば、図3に示したキーボード1005およびCPU1001で実行されるプログラム等によって実現される。
仲介装置通信部93は、ローカルネットワーク7内において、仲介装置30との間で各種データ(情報)をやり取りする機能である。仲介装置通信部93は、例えば、HTTPまたはSNMP等の通信プロトコルを用いて、仲介装置30と通信を行う。仲介装置通信部93は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。
表示制御部94は、図3に示したディスプレイ1006aに各種画面情報を表示させる機能である。表示制御部94は、例えば、ユーザによる入力操作を受け付ける操作画面等を、ディスプレイ1006aに表示させる。表示制御部94は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
続いて、図5を用いて、ローカルネットワーク7に属する各装置の機能構成を説明する。図5は、第1の実施形態に係る仲介装置および機器の機能構成の一例を示す図である。図5に示す仲介装置30により実現される機能は、管理装置通信部31、機器通信部32、受付部33、表示制御部34、機器情報管理部35、通信管理部36、プラグイン管理部37、記憶・読出部38および記憶部300を含む。
管理装置通信部31は、遠隔機器管理装置10との間で各種データ(情報)をやり取りする機能である。管理装置通信部31は、例えば、プラグイン設定情報の更新要求、またはプラグイン情報および通信プロトコル情報を含む設定要求情報を、遠隔機器管理装置10から受信する。また、管理装置通信部31は、例えば、遠隔機器管理装置10から送信された機器500に対して所定の処理の実行を要求するコマンドを受信する。さらに、管理装置通信部31は、例えば、遠隔機器管理装置10から送信されたコマンドに対する応答(処理の実行結果)を、遠隔機器管理装置10へ送信する。また、管理装置通信部31は、仲介装置30または機器500のステータスを示す状態情報等の装置情報または機器情報を、遠隔機器管理装置10へ送信する。管理装置通信部31は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。管理装置通信部31は、受信手段の一例である。また、管理装置通信部31は、送信手段の一例である。
機器通信部32は、機器500との間で各種データ(情報)をやり取りする機能である。機器通信部32は、プラグイン管理部37によって管理されるプラグイン(プラグインモジュール)、および通信管理部36によって管理される動作種別、通信プロトコルおよびパラメータ等の通信定義を用いて、機器500と通信を行う。また、機器通信部32は、例えば、管理装置通信部31によって受信されたコマンドを、機器500へ送信する。さらに、機器通信部32は、例えば、機器500から送信された、コマンドに対する応答を受信する。機器通信部32は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。機器通信部32は、通信手段の一例である。
受付部33は、図3に示したキーボード1005等の入力手段に対するユーザ入力を受け付ける機能である。受付部33は、例えば、図3に示したディスプレイ1006aに表示される所定の表示画面に対する入力操作によって、プラグイン設定情報に示されるプラグインの更新要求を受け付ける。受付部33は、例えば、図3に示したキーボード1005およびCPU1001で実行されるプログラム等によって実現される。受付部33は、受付手段の一例である。
表示制御部34は、図3に示したディスプレイ1006aに各種画面情報を表示させる機能である。表示制御部34は、例えば、ユーザによる入力操作を受け付ける操作画面等を、ディスプレイ1006aに表示させる。表示制御部34によって表示される表示画面は、例えば、仲介装置30をローカルネットワーク7に設置するために必要な設定を行うためのUI(user interface)である。仲介装置30は、表示制御部34によって表示されるUIを用いて、遠隔機器管理装置10と通信するためのIPアドレス、サブネットマスクもしくはデフォルトゲートウェイ等のパラメータ、および遠隔機器管理装置10のURL(Uniform Resource Locator)もしくはプロキシサーバ(認証サーバ)等の設定を行う。また、仲介装置30は、表示制御部34によって表示されるUIを用いて、遠隔機器管理装置10との疎通確認、および通信を開始するための手続きを実行する。表示制御部34は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。表示制御部34は、表示制御手段の一例である。
機器情報管理部35は、仲介装置30と通信可能な機器500に関する機器情報を管理する機能である。機器情報管理部35は、例えば、機器500へ機器情報の取得要求を送信するタスクスケジュールを管理する。また、機器情報管理部35は、例えば、機器500から送信された機器500の状態を示す状態情報に基づいて、機器500の状態を管理する。
さらに、機器情報管理部35は、仲介装置30のリソース状態を管理する。機器情報管理部35は、例えば、仲介装置30のメモリ不足、ストレージ不足、または書き込みエラー等の障害(異常)の兆候を検知する。また、機器情報管理部35は、例えば、予め設定されたスケジュールに基づいて、定期的にリソース状態の監視結果を含む仲介装置30の状態情報を生成する。機器情報管理部35は、例えば、図3に示したCPU1001により実行されるプログラム等によって実現される。
通信管理部36は、ローカルネットワーク7に属する機器500と通信するための通信定義を管理する機能である。通信管理部36は、例えば、管理装置通信部31によって受信された設定要求情報に基づいて、特定の機器500との通信定義を設定・管理する。通信管理部36は、例えば、通信定義として、機器500との通信に用いる動作種別、通信プロトコルおよび通信パラメータを管理する。例えば、動作種別は、機器500の識別子(シリアル番号)の取得、機器500の状態情報の取得、遠隔機器管理装置10との疎通確認、管理対象(監視対象)の機器500の追加または削除等である。通信プロトコルは、HTTP、SNMPまたはICMP(Ping)等の標準プロトコルのみならず、ModBusまたは独自プロトコル等の既存のファームウエアに組み込まれている通信プロトコル以外の通信プロトコルも含む。パラメータは、各通信プロトコルに共通なものとしてタイムアウト時間またはリトライ回数があり、HTTP特有なパラメータとしてメソッド、リソースURI(Uniform Resource Identifier)、ヘッダまたはボディ、SNMP特有なパラメータとしてOID(オブジェクト識別子)、バージョン、コマンド種別、またはコミュニティ名等がある。
また、通信管理部36は、遠隔機器管理装置10とのファイアウォール9を介した通信セッションを管理する。通信管理部36は、遠隔機器管理装置10から送信されるコマンドを受信するため、常時接続(通信)可能な通信セッション(WebSocket等)が維持されているかを監視する。そして、通信管理部36は、常時通信可能な通信セッションが切断されている場合には、通信セッションの再接続を行う。通信管理部36は、例えば、図3に示したCPU1001により実行されるプログラム等によって実現される。通信管理部36は、設定手段の一例である。
プラグイン管理部37は、仲介装置30にインストールされているプラグイン(プラグインモジュール)を管理する機能である。プラグイン管理部37は、例えば、既に仲介装置30に組み込まれている(インストールされている)ファームウエアに機能追加したバイナリを管理する。また、プラグイン管理部37は、例えば、どのバージョンのどのプラグインモジュールがいつプラグインされたのかを管理する。さらに、プラグイン管理部37は、新たなプラグインモジュールのインストール、並びにインストールされたプラグインモジュールの更新および削除を行う。プラグイン管理部37は、例えば、図3に示したCPU1001により実行されるプログラム等によって実現される。
記憶・読出部38は、記憶部300に各種データを記憶し、記憶部300から各種データを読み出す機能である。記憶・読出部38および記憶部300は、例えば、図3に示したROM1002、ストレージ1004およびCPU1001で実行されるプログラム等により実現される。記憶部300は、機器管理テーブル310、通信プロトコル管理テーブル330a、およびプラグイン管理テーブル350aを記憶している。機器管理テーブル310、通信プロトコル管理テーブル330aおよびプラグイン管理テーブル350aの詳細は、後述する。
続いて、機器500の機能構成について説明する。図5に示す機器500により実現される機能は、通信部501、機器情報生成部502、コマンド実行部503、記憶・読出部504および記憶部600を含む。
通信部501は、仲介装置30との間で各種データ(情報)をやり取りする機能である。通信部501は、HTTPまたはSNMP等の通信プロトコルを用いて、仲介装置30と通信を行う。また、通信部501は、シリアル通信であってもよい。通信部501は、例えば、図3に示したネットワークI/F1008およびCPU1001で実行されるプログラム等により実現される。
機器情報生成部502は、機器500のステータスを示す状態情報等の機器情報を生成する機能である。機器情報生成部502は、例えば、仲介装置30からの要求に応じて、仲介装置30へ送信するための状態情報を生成する。状態情報は、機器500のリソース状態を示す情報や稼働状態に関する情報を含むログ情報等の機器情報である。機器情報生成部502は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
コマンド実行部503は、遠隔機器管理装置10によって発行された機器500への所定の処理の命令であるコマンドを実行する機能である。コマンドは、例えば、機器500のステータスを示す状態情報等の機器情報の取得または電源のON/OFF等の制御命令である。コマンド実行部503は、例えば、図3に示したCPU1001で実行されるプログラム等により実現される。
記憶・読出部504は、記憶部600に各種データを記憶し、記憶部600から各種データを読み出す機能である。記憶・読出部504および記憶部600は、例えば、図3に示したROM1002、ストレージ1004およびCPU1001で実行されるプログラム等により実現される。記憶部600は、仲介装置30を識別するための仲介装置識別情報610を記憶している。仲介装置識別情報610は、例えば、仲介装置30のIPアドレスである。
○通信定義○
ここで、図6および図7を用いて、機器500との通信に用いる通信定義について説明する。図6は、第1の実施形態に係る機器との通信に用いる通信定義の概略モデルの一例を示す図である。図6に示す通信定義は、仲介装置30の通信管理部36によって管理されるものであり、機器500との間で通信される各種情報のデータ構造を概略的に示したものである。遠隔機器管理装置10の監視対象(管理対象)である機器500(管理対象機器)は、機器500の種別を示すモデル名、機器500の機器識別子であるシリアルNo、機器500を識別するための機器ID、機器500のステータスを示す状態情報、および遠隔機器管理装置10が機器500を管理対象とするかを示す管理対象情報を送信する。遠隔機器管理装置10は、機器500から送信されるモデル名およびシリアルNoを用いて、機器500を特定することができる。また、機器IDは、モデル名とシリアルNoを含む。なお、機器IDは、モデル名とシリアルNoとは異なる情報であり、機器IDを用いて機器500が特定される構成であってもよい。
また、図6に示す通信定義は、動作定義として、機器種別ごとに複数の動作種別を有している。動作種別とは、例えば、機器500の機器識別子(シリアルNo)の取得、状態情報の取得、仲介装置30との疎通確認、管理対象の機器500の追加または削除等である。
さらに、図6に示す通信定義は、異なる通信プロトコルの間で共通して用いられる通信プロトコル共通定義とプラグインとを、通信プロトコルを識別するための通信プロトコルIDによって関連づけている。プラグインには、例えば、通信プロトコルID,仲介装置30にインストールされたプラグインモジュールを識別するためのモジュール名、プラグインモジュールのインストールパス、プラグインモジュールのバージョンを識別するためのバージョン名、プラグインモジュールを設定または最後に更新した日時を示す最終更新日時等が含まれる。仲介装置30は、設定したプラグイン(プラグインモジュール)のバージョンや設定(更新)日時を記録しておくことで、機器500との通信に不具合があった際の障害解析の負荷を低減させることができる。また、通信プロトコル共通定義には、通信プロトコルID、通信プロトコル名、リトライ回数、タイムアウト時間等が含まれる。機器500において使用できる通信プロトコルは、ICMP(Ping)、SNMPまたはHTTP(ボディ部はJSON(Java(登録商標)Script Object Notation))等の標準プロトコルに限られず、ModBusまたは機器独自のプロトコルである独自プトロコル等も含まれる。
図6に示す通信定義における各通信プロトコルは、一つにつき一回の通信を意味する。つまり、機器500は、一つの動作種別に対して複数回の通信を行う構成とすることができる。図6に示す通信定義は、動作種別(目的)と通信プロトコル(手段)を分離しているので、ある状態取得(COLLECT)という動作目的をHTTPで実現したり、HTTPとSNMPといった複数のプロトコルの組み合わせで実現したり、独自プロトコルで実現したりすることができる。
また、図6に示す通信定義は、通信プロトコル共通定義に、各通信プロトコルに特有の実装パラメータ(通信プロトコル実装)を関連づけている。例えば、HTTP特有なパラメータとして、メソッド、リソースURI、ヘッダ、ボディ等を含む。また、SNMP特有なパラメータは、例えば、OID(オブジェクト識別子)、バージョン、コマンド種別(Get/GetBulk)、コミュニティ名等を含む。さらに、ModBusまたは独自のプロトコルのパラメータとして、パラメータ名、データ型、パラメータ値の許容範囲等を設定することで、標準プロトコルとは異なるプロトコルについても使用することができる。これにより、図6に示す通信定義は、通信プロトコルを拡張する場合に、通信プロトコル共通定義を継承することで、HTTP、SNMP,Ping等の既に仲介装置30のファームウエアに組み込まれている通信プロトコル以外の通信プロトコルについても機能拡張することができる。
また、機器500と動作種別(目的)は、1対多の関係にあるので、図6に示す通信定義は、通信したい目的が増えた場合にも動作種別を追加することで対応することができる。例えば、機器500の状態情報を取得したいだけでなく、機器500のプロパティ情報を取得したい場合、通信定義にプロパティ取得という動作種別を定義すればよい
図7は、図6に示した通信定義の具体例を示す。機器1との通信に用いる通信定義には、ファームウエアに組み込まれたHTTP、SNMPおよびPingの通信プロトコルが定義されている。一方、機器2との通信に用いる通信定義には、独自に定義されたプロトコル(独自プロトコル1)が定義されている。独自プロトコル1には、独自定義として、コマンド種別(GET_STATE)が定義されている。また、独自プロトコル1を動作させるためのプラグインとし、プラグインモジュールのモジュール名、バージョンが示されている。これにより、仲介装置30および機器500は、動的に機能追加して独自プロトコル1で通信できるようになる。図6に示す通信定義は、使用される言語がJava言語であれば、OSGiフレームワーク等を利用してプラグインを行う仕組みを利用することができる。
○仲介装置管理テーブル○
図8は、第1の実施形態に係る仲介装置管理テーブルの一例を示す図である。仲介装置管理テーブル110は、遠隔機器管理装置10の記憶部100に記憶・管理されている。仲介装置管理テーブル110は、遠隔機器管理装置10とファイアウォール9を介して通信可能な仲介装置30に関する各種情報を記憶している。
仲介装置管理テーブル110は、仲介装置名、登録番号、仲介装置30が設置されたローカルネットワーク7を識別するためのネットワーク識別情報の一例であるネットワーク名、仲介装置30の宛先を示す宛先情報の一例であるIPアドレス、および仲介装置30と通信可能な機器500を識別するための機器IDを関連づけて記憶している。仲介装置管理テーブル110において関連づけられている仲介装置名、登録番号、ネットワーク名、IPアドレスおよび機器IDは、仲介装置設定情報を構成する。遠隔機器管理装置10は、仲介装置管理テーブル110を用いて、仲介装置30の宛先情報(IPアドレス)と、仲介装置30と通信可能な機器500を特定することができる。なお、仲介装置名および登録番号は、仲介装置識別情報の一例である。
○通信プロトコル管理テーブル○
図9は、第1の実施形態に係る通信プロトコル管理テーブルの一例を示す図である。通信プロトコル管理テーブル130aは、遠隔機器管理装置10の記憶部100に記憶・管理されている。通信プロトコル管理テーブル130aは、遠隔機器管理装置10によって利用可能な通信プロトコルに関する各種情報を記憶している。
通信プロトコル管理テーブル130aは、通信プロトコル名、通信プロトコルを識別するための通信プロトコルID、リトライ回数、タイムアウト時間およびパラメータ定義に基づいて設定された値を示す実装パラメータ情報を関連づけて記憶している。実装パラメータ情報には、パラメータ名、データ型、パラメータの許容範囲(例えば、数値であれば、「0~30」)等の情報が含まれる。通信プロトコル管理テーブル130aにおいて関連づけられている通信プロトコル名、通信プロトコルID、リトライ回数、タイムアウト時間および実装パラメータ情報は、通信プロトコル情報を構成する。なお、通信プロトコル名および通信プロトコルIDは、通信プロトコル識別情報の一例である。
○プラグイン管理テーブル○
図10は、第1の実施形態に係るプラグイン管理テーブルの一例を示す図である。プラグイン管理テーブル150aは、遠隔機器管理装置10の記憶部100に記憶・管理されている。プラグイン管理テーブル150aは、遠隔機器管理装置10にアップロードされたプラグインモジュールに関する各種情報を記憶している。
プラグイン管理テーブル150aは、プラグインモジュールを識別するためのプラグインID、通信プロトコルを識別するための通信プロトコルID、モジュール名、バージョンおよび最終更新日時の情報を関連づけて記憶している。プラグイン管理テーブル150aに関連づけられているプラグインID、通信プロトコルID、モジュール名、バージョンおよび最終更新日時は、プラグイン情報を構成する。プラグイン情報に示される最終更新日時は、プラグイン情報を設定した日時を示す時間情報の一例である。また、プラグイン情報に示されるプラグイン情報に示されるバージョンは、バージョン情報の一例である。
○機器管理テーブル○
図11は、第1の実施形態に係る機器管理テーブルの一例を示す図である。機器管理テーブル310は、仲介装置30の記憶部300に記憶・管理されている。機器管理テーブル310は、仲介装置30と通信可能に接続され、遠隔機器管理装置10による管理対象(監視対象)となる機器500に関する各種情報を記憶している。
機器管理テーブル310は、機器500のモデル名、シリアルNo、機器500を識別するための機器ID、状態情報およびプラグインIDを関連づけて記憶している。仲介装置30は、機器管理テーブル310に含まれるモデル名およびシリアルNoを用いて、機器500を特定することができる。機器IDは、モデル名とシリアルNoを含む。なお、機器IDは、モデル名とシリアルNoとは別のものであり、仲介装置30は、機器IDを用いて機器500を特定する構成であってもよい。モデル名およびシリアルNo、または機器IDは、機器特定情報の一例である。なお、機器500を特定するための機器特定情報は、これに限られず、例えば、機器500のMAC(Media Access Control)アドレスまたは機器名等であってもよい。仲介装置30は、機器特定情報に関連づけられたプラグインIDを用いて、機器500との通信に用いるプラグインモジュールを特定する。
○通信プロトコル管理テーブル○
図12は、第1の実施形態に係る通信プロトコル管理テーブルの一例を示す図である。通信プロトコル管理テーブル330aは、仲介装置30の記憶部300に記憶・管理されている。通信プロトコル管理テーブル330aは、機器500との通信に利用可能な通信プロトコルに関する各種情報を記憶・管理している。
通信プロトコル管理テーブル330aは、通信プロトコル名、通信プロトコルを識別するための通信プロトコルID、リトライ回数、タイムアウト時間およびパラメータ定義に基づいて設定された値を示す実装パラメータ情報を関連づけて記憶している。実装パラメータ情報には、パラメータ名、データ型、パラメータの許容範囲(例えば、数値であれば、「0~30」)等の情報が含まれる。通信プロトコル管理テーブル330において関連づけられている通信プロトコル名、通信プロトコルID、リトライ回数、タイムアウト時間および実装パラメータ情報は、通信プロトコル情報を構成する。なお、通信プロトコル名および通信プロトコルIDは、通信プロトコル識別情報の一例である。
○プラグイン管理テーブル○
図13は、第1の実施形態に係るプラグイン管理テーブルの一例を示す図である。プラグイン管理テーブル350aは、仲介装置30の記憶部300に記憶・管理されている。プラグイン管理テーブル350aは、仲介装置30に設定・登録(インストール)されているプラグイン(プラグインモジュール)に関する各種情報を記憶している。
プラグイン管理テーブル350aは、プラグインモジュールを識別するためのプラグインID、通信プロトコルを識別するための通信プロトコルID、モジュール名、バージョンおよび最終更新日時の情報を関連づけて記憶している。プラグイン管理テーブル350aに関連づけられているプラグインID、通信プロトコルID、モジュール名、バージョンおよび最終更新日時は、プラグイン情報を構成する。プラグイン情報に示される最終更新日時は、プラグイン情報を設定した日時を示す時間情報の一例である。また、プラグイン情報に示されるプラグイン情報に示されるバージョンは、バージョン情報の一例である。仲介装置30は、プラグインIDに関連づけられた通信プロトコルIDを用いて、機器500との通信に用いる通信プロトコルを特定する。
●第1の実施形態の処理および動作
○遠隔機器管理装置と仲介装置の通信セッションの確立処理○
○仲介装置の登録番号の発行処理
続いて、図14乃至図16を用いて、ローカルネットワーク7内に新たに設置された仲介装置30を、遠隔機器管理装置10に登録する処理について説明する。まず、図14を用いて、仲介装置30の設置担当者(管理者)が、新たに設置する仲介装置30の登録番号を発行する処理について説明する。図14は、第1の実施形態に係る遠隔機器管理システムにおける仲介装置の登録番号の発行処理の一例を示すシーケンス図である。図14に示す処理は、遠隔機器管理装置10に登録する仲介装置30がなりすまし等の不正な装置でないことを担保するために、データ照合のための登録番号を発行する処理である。
まず、ステップS11において、管理者端末90のWebクライアント部91は、仲介装置30の登録番号発行要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザの入力操作によって、仲介装置30の登録番号発行要求を受け付ける。そして、Webクライアント部91は、受付部92によって受け付けられた登録番号発行要求を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10のWebサーバ部16は、登録番号発行要求を受信する。
ステップS12において、遠隔機器管理装置10の通信管理部15は、Webサーバ部16によって登録番号発行要求を受信された場合、仲介装置30の新たな登録番号を発行する。ここで、仲介装置30の通信管理部15は、発行した登録番号を、仲介装置管理テーブル110に記憶させる。
ステップS13において、遠隔機器管理装置10のWebサーバ部16は、通信管理部15によって発行された登録番号の情報を含む登録番号通知を、管理者端末90へ送信する。これにより、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信された登録番号通知を受信する。管理者端末90のWebクライアント部91は、受信した登録番号通知に示される登録番号を管理者端末90のディスプレイ1006aに表示させる等の方法によって、管理者端末90を使用する設置担当者(管理者)に発行された登録番号を提示する。これによって、仲介装置30の設置担当者は、仲介装置30を登録する際の登録番号を把握することができる。
○仲介装置の登録処理
続いて、図15を用いて、図14に示した処理によって発行された登録番号を用いて、遠隔機器管理装置10に新たな仲介装置30を登録する処理について説明する。図15は、第1の実施形態に係る遠隔機器管理システムおける、遠隔機器管理装置への仲介装置の登録処理の一例を示すシーケンス図である。
まず、ステップS21において、仲介装置30の通信管理部36は、仲介装置30が設置されたローカルネットワーク7のネットワーク情報を設定する。具体的には、仲介装置30は、表示制御部34によって仲介装置30のディスプレイ1006aに表示された所定の入力画面に対する入力操作を受け付けることによって、ネットワーク情報の設定を行う。ここで、ネットワーク情報は、仲介装置30が設置されたローカルネットワーク7を識別するためのネットワーク名、仲介装置30のIPアドレスおよび仲介装置30と通信可能な機器500を識別するための機器IDを含む。
ステップS22において、仲介装置30の受付部33は、遠隔機器管理装置10によって発行された仲介装置30の登録番号の入力を受け付ける。この場合、仲介装置30の設置担当者は、表示制御部34によって仲介装置30のディスプレイ1006aに表示された所定の入力画面に対して、図14に示した処理によって取得された登録番号を入力する。
ステップS23において、仲介装置30の管理装置通信部31は、新たに設置した仲介装置30の遠隔機器管理装置10への登録を要求する仲介装置登録要求を、遠隔機器管理装置10へ送信する。ここで、仲介装置登録要求には、通信管理部36によって設定されたネットワーク情報、および受付部33によって受け付けられた登録番号を含む仲介装置識別情報が含まれる。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信された仲介装置登録要求を受信する。
ステップS24において、遠隔機器管理装置10の通信管理部15は、仲介装置通信部11によって受信された仲介装置登録要求に基づいて、仲介装置管理テーブル110に対して、仲介装置設定情報を登録する。具体的には、通信管理部15は、受信された仲介装置登録要求に含まれる登録番号を検索キーとして、仲介装置管理テーブル110を検索することにより、対応する登録番号が存在するかを照合する。そして、対応する登録番号が存在する場合、通信管理部15は、受信された仲介装置登録要求に含まれる仲介装置識別情報およびネットワーク情報を、仲介装置設定情報として仲介装置管理テーブル110に記憶させる。一方で、対応する登録番号が存在しない場合、通信管理部15は、仲介装置通信部11を介して、要求された仲介装置が登録できない旨を示す通知を、仲介装置30へ送信する。これにより、遠隔機器管理システム1は、仲介装置30の設置担当者によって入力されたデータ(登録番号)と遠隔機器管理装置10に記憶されたデータ(登録番号)とを照合することで、遠隔機器管理装置10に登録する仲介装置30がなりすまし等の不正な装置ではないことを担保することができる。なお、以下は、仲介装置管理テーブル110に対応する登録番号が存在し、通信管理部15によって仲介装置設定情報が登録された場合について説明する。
ステップS25において、遠隔機器管理装置10の仲介装置通信部11は、通信管理部15によって仲介装置30が登録されたことを通知するための登録結果通知を、仲介装置30へ送信する。この登録結果通知には、通信管理部15によって登録された仲介装置設定情報の内容が含まれる。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信された登録結果通知を受信する。
そして、ステップS26において、仲介装置30の管理装置通信部31と遠隔機器管理装置10の仲介装置通信部11は、セッションの確立処理を行い、通信セッションを確立させる。この場合、仲介装置30の管理装置通信部31と遠隔機器管理装置10の仲介装置通信部11は、WebSocket等の常時通信可能な通信セッションを確立する。そのため、遠隔機器管理装置10は、仲介装置30を介して、仲介装置30と通信可能な機器500へ各種コマンドを送信することが可能となる。遠隔機器管理システム1は、確立したセッションを利用して、遠隔機器管理装置10から仲介装置30へ、プラグインモジュールの追加・削除・更新処理を行うことができる。
また、図16は、第1の実施形態に係る遠隔機器管理システムにおける、遠隔機器管理装置と仲介装置との間の通信セッションの状態遷移の概略の一例を示す図である。遠隔機器管理装置10は、仲介装置30の登録が完了した場合、仲介装置30へ接続要求を送信する。そして、仲介装置30は、接続確認のメッセージを遠隔機器管理装置10へ送信することで、遠隔機器管理装置10との間の通信セッションを確立させる。その後、仲介装置30は、定期的に遠隔機器管理装置10との疎通確認を行い、通信セッションが切断された場合、通信エラーのメッセージを遠隔機器管理装置10へ送信する。そして、遠隔機器管理装置10は、仲介装置30との間における通信セッションが切断された場合、再度接続要求を仲介装置30へ送信することで、再度仲介装置30との間における通信セッションを確立させる。このように、遠隔機器管理装置10は、登録した仲介装置30に対して、通信エラーで通信セッションが切断されるたびに、再接続を試みるので、仲介装置30との間の通信セッションを常に維持することができる。
これにより、遠隔機器管理システム1は、遠隔機器管理装置10に登録された仲介装置30と遠隔機器管理装置10との通信セッションを維持することで、仲介装置30への新たなプラグインモジュールの導入処理を行うことができる。
○プラグイン設定情報の更新処理
続いて、図17乃至図20を用いて、仲介装置30に設定されたプラグイン設定情報の更新処理について説明する。まず、図17を用いて、クラウド経由で仲介装置30に設定されたプラグイン設定情報を更新する処理について説明する。なお、プラグイン設定情報の更新には、新たなプラグインモジュールの登録、登録されたプラグインモジュールのバージョンの更新、および登録されたプラグインモジュールの削除が含まれる。以下の説明においては、プラグイン設定情報の更新処理によって仲介装置30に新たなプラグインモジュールが登録される場合について説明する。図17は、第1の実施形態に係る遠隔機器管理システムにおけるプラグイン設定情報の更新処理の一例を示すシーケンス図である。図17は、機器500の保守担当者が管理者端末90を用いて、仲介装置30へ新たなプラグインモジュールの登録を行う例である。
ステップS31において、管理者端末90のWebクライアント部91は、プラグイン登録要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザ(例えば、保守担当者)の入力操作によって、新たなプラグインモジュールの登録要求を受け付ける。Webクライアント部91は、受付部92によって受け付けられたプラグイン登録要求を、遠隔機器管理装置10へ送信する。ここで、プラグイン登録要求には、登録するプラグインモジュールの実体を示すプラグイン情報、および当該プラグインモジュールを用いて通信を行う通信プロトコルを示す通信プロトコル情報を含む。プラグイン情報には、登録するプラグインモジュールのモジュール名、バージョン、最終更新日事の情報が含まれる。通信プロトコル情報には、通信プロトコル名、パラメータ定義、リトライ回数、タイムアウト時間および実装パラメータ情報等が含まれる。これにより、遠隔機器管理装置10のWebサーバ部16は、プラグイン登録要求を受信する。
ステップS32において、遠隔機器管理装置10のプラグイン管理部14は、Webサーバ部16によってプラグイン登録要求が受信された場合、新たに登録するプラグインモジュールを識別するためのプラグイン識別情報としてのプラグインIDを発行する。また、通信管理部15は、Webサーバ部16によって受信されたプラグイン登録要求に含まれる通信プロトコル情報を識別するための通信プロトコルIDを発行する。
ステップS33において、遠隔機器管理装置10のプラグイン管理部14は、プラグイン管理テーブル150aに、ステップS32によって発行されたプラグインIDに関連づけて、Webサーバ部16によって受信されたプラグイン情報を登録する。また、通信管理部15は、通信プロトコル管理テーブル130aに、ステップS32によって発行された通信プロトコルIDに関連づけて、Webサーバ部16によって受信された通信プロトコル情報を登録する。
ステップS34において、遠隔機器管理装置10のWebサーバ部16は、プラグイン管理部14によって発行されたプラグインIDを、管理者端末90へ送信する。これにより、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信されたプラグインIDを受信する。
ステップS35において、管理者端末90のWebクライアント部91は、受信したプラグインIDを、管理者端末90のディスプレイ1006aに表示させる。これにより、遠隔機器管理システム1は、新たなプラグインモジュールの登録要求を行った保守担当者に対して、登録するプラグイン識別情報であるプラグインIDを提示させることができる。なお、プラグインモジュールの実体を示すプラグイン情報が既に遠隔機器管理装置10に登録されている場合、ステップS31~ステップS35の処理は、省略されてもよい。
ステップS36において、管理者端末90のWebクライアント部91は、プラグイン設定情報の更新要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザ(例えば、保守担当者)の入力操作によって、プラグイン設定情報の更新要求を受け付ける。Webクライアント部91は、受付部92によって受け付けられたプラグイン設定情報の更新要求を、遠隔機器管理装置10へ送信する。ここで、プラグイン設定情報は、仲介装置30に設定されるプラグインモジュールに関する情報である。また、プラグイン設定情報の更新要求には、ステップS35の処理によって保守担当者へ提示されたプラグインIDが含まれる。これにより、遠隔機器管理装置10のWebサーバ部16は、管理者端末90から送信されたプラグイン設定情報の更新要求を受信する。
ステップS37において、遠隔機器管理装置10の仲介装置通信部11は、Webサーバ部16によって受信されたプラグイン設定情報の更新要求を、仲介装置30へ送信する。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信されたプラグイン設定情報の更新要求を受信する。
ステップS38において、仲介装置30の管理装置通信部31は、プラグイン設定情報の更新要求を受信した場合、プラグイン設定情報の取得要求を、遠隔機器管理装置10へ送信する。ここで、プラグイン設定情報の取得要求には、受信したプラグイン設定情報の更新要求に含まれるプラグインIDが含まれる。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信されたプラグイン設定情報の取得要求を受信する。
ステップS39において、遠隔機器管理装置10のプラグイン管理部14は、仲介装置通信部11によって受信されたプラグイン設定情報の取得要求に含まれるプラグインIDを検索キーとして、プラグイン管理テーブル150aを検索することにより、対応するプラグインIDに関連づけられた通信プロトコルIDおよびプラグイン情報を取得する。また、遠隔機器管理装置10の通信管理部15は、プラグイン管理部14によって取得された通信プロトコルIDを検索キーとして、通信プロトコル管理テーブル130aを検索することにより、対応する通信プロトコルIDに関連づけられた通信プロトコル情報を取得する。
ステップS40において、遠隔機器管理装置10の仲介装置通信部11は、プラグイン管理部14によって取得されたプラグイン情報および通信プロトコルID、並びに通信管理部15によって取得された通信プロトコル情報を、仲介装置30へ送信する。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信されたプラグイン情報、通信プロトコルIDおよび通信プロトコル情報を受信する。
ステップS41において、仲介装置30は、管理装置通信部31によってプラグイン情報および通信プロトコル情報が受信された場合、プロトコル設定情報を更新する。具体的には、プラグイン管理部14は、管理装置通信部31によって受信されたプラグイン情報および通信プロトコルIDを、ステップS37において受信されたプラグイン設定情報の更新要求に含まれるプラグインIDと関連づけてプラグイン管理テーブル350aに記憶する。また、通信管理部15は、管理装置通信部31によって受信された通信プロトコルIDおよび通信プロトコル情報を、通信プロトコル管理テーブル330に記憶する。これにより、仲介装置30は、遠隔機器管理装置10から送信されたプラグイン情報に基づいて設定された通信定義に対応するプラグイン設定情報を更新することができる。
なお、仲介装置30は、更新されたプラグイン設定情報を、表示制御部34によって仲介装置30のディスプレイ1006aに表示させてもよい。また、仲介装置30は、更新されたプラグイン設定情報を遠隔機器管理装置10へ送信し、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信された、更新されたプラグイン設定情報を、管理者端末90のディスプレイ1006aに表示させてもよい。これにより、仲介装置30の設置担当者または機器500の保守担当者等のシステム管理者に、仲介装置30に設定されたプラグイン設定情報を知らせることができる。
また、ステップS31に示したように、遠隔機器管理システム1は、通信プロトコルのパラメータ定義の設定についても、プラグインモジュールの登録時に行う。パラメータ定義に必要な情報は、パラメータ名、データ型、パラメータ値の許容範囲(例えば、数値であれば、0~30等)である。仲介装置30は、パラメータ定義に基づいて決定されるパラメータ値を設定することで、設定されたパラメータで機器500と通信を行うことができる。
続いて、図18を用いて、仲介装置30に表示されたUI経由で仲介装置30に設定されたプラグイン設定情報を更新する場合について説明する。図18は、第1の実施形態に係る遠隔機器管理システムにおけるプラグイン設定情報の更新処理の一例を示すシーケンス図である。なお、図18の例では、仲介装置30の設置担当者が、新たに仲介装置30に登録するプラグインモジュールのプラグインIDを予め把握しているものとして説明する。また、図18の例では、新たに仲介装置30に登録するプラグインモジュールが、遠隔機器管理装置10に予め登録されているものとして説明する。
ステップS51において、仲介装置30の受付部33は、新たに登録するプラグインモジュールのプラグインIDの入力を受け付ける。具体的には、仲介装置30の受付部33は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザ(例えば、設置担当者)の入力操作によって、新たなプラグインIDの入力を受け付ける。
ステップS52において、仲介装置30の管理装置通信部31は、受付部33によってプラグインIDの入力を受け付けた場合、プラグイン設定情報の取得要求を、遠隔機器管理装置10へ送信する。ここで、プラグイン設定情報の取得要求には、受付部33によって受け付けられたプラグインIDが含まれる。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信されたプラグイン設定情報の取得要求を受信する。
ステップS53において、遠隔機器管理装置10のプラグイン管理部14は、仲介装置通信部11によって受信されたプラグイン設定情報の取得要求に含まれるプラグインIDを検索キーとして、プラグイン管理テーブル150aを検索することにより、対応するプラグインIDに関連づけられた通信プロトコルIDおよびプラグイン情報を取得する。また、遠隔機器管理装置10の通信管理部15は、プラグイン管理部14によって取得された通信プロトコルIDを検索キーとして、通信プロトコル管理テーブル130aを検索することにより、対応する通信プロトコルIDに関連づけられた通信プロトコル情報を取得する。
ステップS54において、遠隔機器管理装置10の仲介装置通信部11は、プラグイン管理部14によって取得されたプラグイン情報および通信プロトコルID、並びに通信管理部15によって取得された通信プロトコル情報を、仲介装置30へ送信する。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信されたプラグイン情報、通信プロトコルIDおよび通信プロトコル情報を受信する。
ステップS55において、仲介装置30は、管理装置通信部31によってプラグイン情報および通信プロトコル情報が受信された場合、プロトコル設定情報を更新する。具体的には、プラグイン管理部14は、管理装置通信部31によって受信されたプラグイン情報および通信プロトコルIDを、ステップS37において受信されたプラグイン設定情報の更新要求に含まれるプラグインIDと関連づけてプラグイン管理テーブル350aに記憶する。また、通信管理部15は、管理装置通信部31によって受信された通信プロトコルIDおよび通信プロトコル情報を、通信プロトコル管理テーブル330aに記憶する。
ステップS56において、仲介装置30の表示制御部34は、更新されたプラグイン設定情報を、仲介装置30のディスプレイ1006aに表示させる。これにより、仲介装置30の設置担当者は、表示されたプラグイン設定情報を確認することで、要求したプラグインがインストールされたかどうかを確認することができる。
また、遠隔機器管理装置10は、利用可能なプラグインが新しいバージョンに更新された場合、仲介装置30にインストールされているプラグインモジュールのバージョンと比較する。そして、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30にインストールされているプラグインモジュールが最新でなければ、仲介装置30へ通知する。これにより、遠隔機器管理装置10は、仲介装置30への機能追加または障害対策用のモジュールの導入を行うことができ、より安定して機器500と通信できるようになる。
なお、更新したプラグイン設定情報は、仲介装置30の設置担当者(管理者)が使用する管理者端末90に表示されてもよい。この場合、管理者端末90の仲介装置通信部93は、仲介装置30から送信された、更新されたプラグイン設定情報を受信する。そして、管理者端末90の表示制御部94は、更新されたプラグイン設定情報を、管理者端末90のディスプレイ1006aに表示させる。
ここで、遠隔機器管理装置10に登録された利用可能なプラグインモジュールの一覧が管理者端末90のディスプレイ1006aに表示される場合の画面例を説明する。図19は、第1の実施形態に係る管理システムに表示されるプラグイン一覧画面の一例を示す図である。図19に示すプラグイン一覧画面900には、利用可能なプラグインモジュールに関する情報は一覧で表示されるプラグイン情報表示領域910、新たなプラグインモジュールを遠隔機器管理装置10へ登録する場合に押下される登録ボタン911、仲介装置30に設定されたプラグイン設定情報を更新する場合に押下される更新ボタン913、プラグイン情報表示領域910に表示されたプラグインモジュールを削除する場合に押下される削除ボタン915が含まれている
管理者端末90は、図19に示すプラグイン一覧画面900を用いて、遠隔機器管理装置10へのプラグインモジュールの新規登録、遠隔機器管理装置10に登録されたプラグインモジール一覧の確認、遠隔機器管理装置10に登録されたプラグインモジュールのバージョンアップまたは削除といった処理を行うことができる。
また、図19に示すプラグイン一覧画面900は、プラグイン情報表示領域910に、仲介装置30に登録されたプラグインモジュールの情報を表示させてもよい。この場合、管理者端末90は、図19に示すプラグイン一覧画面900を用いて、仲介装置30へのプラグインモジュールの新規登録、仲介装置30に登録されたプラグインモジール一覧の確認、仲介装置30に登録されたプラグインモジュールのバージョンアップまたは削除といった処理を行うことができる。すなわち、この場合、管理者端末90は、図19に示すプラグイン一覧画面900を用いて、図17に示したようなプラグイン設定情報の更新処理を行うことができる。
なお、図19に示したプラグイン一覧画面900は、仲介装置30のディスプレイ1006aに表示される構成であってもよい。この場合、プラグイン情報表示領域910に表示されるプラグインモジュールは、仲介装置30にインストールされたプラグインモジュールの情報である。仲介装置30は、図19に示したプラグイン一覧画面900を用いて、図18に示したようなプラグイン設定情報の更新処理を行う。これにより、仲介装置30の設定担当者(管理者)は、例えば、普段使用している仲介装置30の設置用の画面からプラグインIDを指定して、プラグインモジュールの追加、更新または削除を行うことができる。
続いて、図20を用いて、仲介装置30に設定された通信プロトコルに実装させる通信パラメータを設定する処理について説明する。図20は、第1の実施形態に係る遠隔機器管理システムにおける実装パラメータの設定処理の一例を示すシーケンス図である。
ステップS71において、管理者端末90のWebクライアント部91は、実装パラメータ設定要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザの入力操作によって、パラメータを設定する通信プロトコルを識別するための通信プロトコルID、および実装するパラメータの値を含む実装パラメータ情報の入力を受け付ける。そして、Webクライアント部91は、受付部92によって受け付けられた実装パラメータ設定要求を、遠隔機器管理装置10へ送信する。ここで、実装パラメータ設定要求には、受付部92によって受け付けられた通信プロトコルIDおよび実装パラメータ情報、並びに仲介装置識別情報が含まれる。これにより、遠隔機器管理装置10のWebサーバ部16は、実装パラメータ設定要求を受信する。
ステップS72において、遠隔機器管理装置10の記憶・読出部17は、Webサーバ部16によって実装パラメータ設定要求が受信された場合、記憶部100に記憶された仲介装置管理テーブル110を読み出す。ステップS73において、遠隔機器管理装置10の通信管理部15は、Webサーバ部16によって受信された実装パラメータ設定要求に含まれる仲介装置識別情報を検索キーとして、仲介装置管理テーブル110を検索することにより、対応する仲介装置識別情報が関連づけられた仲介装置設定情報を取得する。
ステップS74において、遠隔機器管理装置10の仲介装置通信部11は、取得された仲介装置設定情報に含まれる宛先情報が示す仲介装置30へ、実装パラメータ設定要求を送信する。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信された実装パラメータ設定要求を受信する。
ステップS75において、仲介装置30の通信管理部36は、管理装置通信部31によって受信された実装パラメータ設定要求に含まれる実装パラメータ情報および通信プロトコルIDを関連づけて、通信プロトコル管理テーブル330aに設定する。
ステップS76において、仲介装置30の管理装置通信部31は、実装パラメータ情報の設定結果を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信された設定結果を受信する。これにより、仲介装置30は、図17または図18に示したプラグイン設定情報の登録時に定義したパラメータ定義に基づいて、通信プロトコルのパラメータの値を設定することができる。
なお、図20に示した処理は、プラグインモジュールを追加した状態で行わないと、不明なパラメータ定義となる。この場合は、実装パラメータ設定要求を受信した仲介装置30は、遠隔機器管理装置10へエラーを通知する。そして、管理者端末90は、エラー通知画面を表示させることで、保守担当者に対して、プラグインモジュールの登録を促す。
○機器との通信処理○
○機器制御要求の送信処理
続いて、図21乃至図23を用いて、上記で説明したプラグイン登録処理によって仲介装置30に設定・登録されたプラグインモジュールに基づく遠隔機器管理装置と機器500との通信処理について説明する。上記で説明したように、仲介装置30は、独自のプロトコルやファームウエアに組み込まれていない通信プロトコルに対応するプラグインモジュールを遠隔機器管理装置10からインストールすることで、機器500との間の通信を標準プロトコルに限られずに行うことができる。
まず、図21を用いて、遠隔機器管理装置10から機器500へ送信される機器制御要求に応じた通信処理について説明する。図21は、第1の実施形態に係る遠隔機器管理システムにおける遠隔機器管理装置から機器に対する制御処理の一例を示すシーケンス図である。
ステップS101において、管理者端末90のWebクライアント部91は、機器500に対する所定の制御を要求する機器制御要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によってディスプレイ1006aに表示された所定の設定画面に対する入力操作によって、機器500の制御要求を受け付ける。受付部92は、例えば、制御対象の機器500の機器ID等の機器特定情報が指定されることで、特定の機器500に対する制御要求を受け付ける。そして、Webクライアント部91は、受付部92によって受け付けられた情報に基づいて、機器制御要求を、遠隔機器管理装置10へ送信する。機器制御要求には、制御対象の機器500の機器ID、またはモデル名およびシリアルNo等の機器特定情報が含まれる。ここでは、機器制御要求には機器500の機器IDが含まれる。これにより、遠隔機器管理装置10のWebサーバ部16は、管理者端末90から送信された機器制御要求を受信する。
ステップS102において、遠隔機器管理装置10の記憶・読出部17は、Webサーバ部16によって機器制御要求が受信された場合、記憶部100に記憶された仲介装置管理テーブル110を読み出す。ステップS103において、遠隔機器管理装置10の通信管理部15は、Webサーバ部16によって受信された機器制御要求に含まれる機器IDを検索キーとして、仲介装置管理テーブル110を検索することにより、対応する機器IDが関連づけられた仲介装置識別情報を取得する。
ステップS104において、遠隔機器管理装置10の仲介装置通信部11は、通信管理部15によって取得された仲介装置識別情報によって識別される仲介装置30へ、機器制御要求を送信する。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信された機器制御要求を受信する。
ステップS105において、仲介装置30の記憶・読出部38は、管理装置通信部31によって機器制御要求が受信された場合、記憶部300に記憶された機器管理テーブル310、通信プロトコル管理テーブル330a、およびプラグイン管理テーブル350aを読み出す。ステップS106において、仲介装置30のプラグイン管理部37は、管理装置通信部31によって受信された機器制御要求に含まれる機器IDを検索キーとして、機器管理テーブル310を検索することにより、対応する機器IDに関連づけられたプラグインIDを取得する。
ステップS107において、仲介装置30の通信管理部36は、プラグイン管理部37によって取得されたプラグインIDを検索キーとして、プラグイン管理テーブル350aを検索することにより、対応するプラグインIDが関連づけられたプラグイン情報を取得する。また、通信管理部36は、取得したプラグイン情報に含まれる通信プロトコルIDを検索キーとして、通信プロトコル管理テーブル330aを検索することにより、対応する通信プロトコルIDが関連づけられた通信プロトコル情報を取得する。
ステップS108において、仲介装置30の機器通信部32は、プラグイン管理部37によって取得されたプラグイン情報に示されるプラグインモジュールを用いて、機器制御要求を機器500へ送信する。この場合、機器制御要求は、通信管理部36によって取得された通信プロトコル情報に示される通信プロトコル、および実装パラメータ情報に示されるパラメータを用いて送信される。これにより、機器500の通信部501は、仲介装置30から送信された機器制御要求を受信する。
ステップS109において、機器500のコマンド実行部503は、通信部501によって受信された機器制御要求に示される所定の制御を実行する。
ステップS110において、機器500の通信部501は、コマンド実行部503による制御結果を示す制御結果通知を、仲介装置30へ送信する。これにより、仲介装置30の機器通信部32は、機器500から送信された制御結果通知を受信する。この場合、仲介装置30は、ステップS108において機器制御要求を送信したプラグインモジュール、通信プロトコル、および通信パラメータを用いて、制御結果通知を受信する。
ステップS111において、仲介装置30の管理装置通信部31は、機器通信部32によって受信された制御結果通知を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10の仲介装置通信部11は、送信した機器制御要求に対する応答となる制御結果通知を、仲介装置30から受信する。これにより、遠隔機器管理システム1は、仲介装置30に設定された通信定義に基づいて、遠隔機器管理装置10による機器500の制御を行うことができる。
なお、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信された制御結果通知に示される内容を、管理者端末90のディスプレイ1006aに表示させてもよい。これにより、遠隔機器管理システム1は、機器500の保守担当者等のシステム管理者に、機器500の制御結果を知らせることができる。
○機器情報の取得処理
次に、図22を用いて、仲介装置30からの要求によって機器500の機器情報を取得する処理について説明する。図22は、第1の実施形態に係る遠隔機器管理システムにおける機器情報取得処理の一例を示すシーケンス図である。図22は、予め指定した時刻または一定間隔で、仲介装置30が機器500の機器情報を定期的に取得して遠隔機器管理装置10に通知する場合の処理を説明する。
ステップS201において、仲介装置30の記憶・読出部38は、記憶部300に記憶された機器管理テーブル310、通信プロトコル管理テーブル330a、およびプラグイン管理テーブル350aを読み出す。ステップS202において、仲介装置30のプラグイン管理部37は、機器管理テーブル310に含まれる、機器情報取得要求を送信先となる機器500の機器IDに関連づけられたプラグインIDを取得する。
ステップS203において、仲介装置30の通信管理部36は、プラグイン管理部37によって取得されたプラグインIDを検索キーとして、プラグイン管理テーブル350aを検索することにより、対応するプラグインIDが関連づけられたプラグイン情報を取得する。また、通信管理部36は、取得したプラグイン情報に含まれる通信プロトコルIDを検索キーとして、通信プロトコル管理テーブル330aを検索することにより、対応する通信プロトコルIDが関連づけられた通信プロトコル情報を取得する。
ステップS204において、仲介装置30の機器通信部32は、プラグイン管理部37によって取得されたプラグイン情報に示されるプラグインモジュールを用いて、機器情報取得要求を機器500へ送信する。この場合、機器情報取得要求は、通信管理部36によって取得された通信プロトコル情報に示される通信プロトコル、および実装パラメータ情報に示されるパラメータを用いて送信される。これにより、機器500の通信部501は、仲介装置30から送信された機器情報取得要求を受信する。
ステップS205において、機器500の機器情報生成部502は、機器500のステータスを示す状態情報等の機器情報を生成する。状態情報は、機器500のリソース状態を示す情報や稼働状態に関する情報を含むログ情報等の機器情報である。
ステップS206において、機器500の通信部501は、機器情報生成部502によって生成された機器情報を、仲介装置30へ送信する。これにより、仲介装置30の機器通信部32は、送信した機器情報取得要求に対する応答となる機器情報を受信する。この場合、仲介装置30は、ステップS204において機器情報取得要求を送信したプラグインモジュール、通信プロトコルおよびパラメータを用いて、機器情報を受信する。
ステップS207において、仲介装置30の管理装置通信部31は、機器通信部32によって受信された機器情報を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信された機器情報を受信する。なお、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信された機器情報に示される内容を、管理者端末90のディスプレイ1006aに表示させる等の方法によって、管理者端末90を使用する管理者に機器情報を提示してもよい。これにより、遠隔機器管理システム1は、機器500の保守担当者等のシステムの管理者に、機器500の状態を知らせることができる。
○機器情報の通知処理
次に、図23を用いて、機器500から自発的に機器情報を通知する場合の処理について説明する。機器500は、故障等の異常を検知した場合、異常状態を管理者へ知らせるための所定のイベント通知を送信する。図23は、第1の実施形態に係る遠隔機器管理システムにおける機器から遠隔機器管理装置への機器情報の通知処理の一例を示すシーケンス図である。
ステップS301において、機器500の記憶・読出部504は、記憶部600に記憶された仲介装置識別情報610を読み出す。ステップS302において、機器500の通信部501は、記憶・読出部504によって読み出された仲介装置識別情報610によって識別される仲介装置30へ、イベント通知を送信する。このイベント通知には、機器500の機器情報生成部502によって生成された、機器500の状態を示す状態情報等の機器情報が含まれる。これにより、仲介装置30の機器通信部32は、機器500から送信されたイベント通知を受信する。
ステップS303において、仲介装置30の管理装置通信部31は、機器通信部32によって受信されたイベント通知を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信されたイベント通知を受信する。
なお、管理者端末90のWebクライアント部91は、遠隔機器管理装置10から送信されたイベント通知に示される内容を、管理者端末90のディスプレイ1006aに表示させてもよい。これにより、遠隔機器管理システム1は、機器500の保守担当者等のシステム管理者に、機器500から通知された機器500の状態を知らせることができる。
●第1の実施形態の効果
以上説明したように、第1の実施形態に係る遠隔機器管理システムは、仲介装置30が利用できない特定の通信プロトコルを拡張するためのプラグインモジュールに関する情報であるプラグイン設定情報を、遠隔機器管理装置10から仲介装置30へ送信する。そして、仲介装置30は、受信されたプラグイン設定情報を用いて、特定の通信プロトコルに対応する通信定義を設定し、設定された通信定義に基づいて、特定の機器500と通信を行う。これにより、遠隔機器管理システム1は、機器500との通信に用いる通信プロトコルの拡張を柔軟に行うことができる。
●第2の実施形態●
続いて、第2の実施形態に係る遠隔機器管理システムについて説明する。第1の実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。第2の実施形態に係る遠隔機器管理システムは、アカウント(ユーザグループ)と通信プロトコル共通定義との間に通信プロトコル利用許諾という概念を設けた構成である。
●機能構成
図24は、第2の実施形態に係る管理システムの機能構成の一例を示す図である。第1の実施形態と異なる点は、遠隔機器管理装置10の記憶部100に、利用許諾管理テーブル170が記憶されている点である。利用許諾管理テーブル170の詳細は、後述する。
●通信定義
図25は、第2の実施形態に係る機器の通信定義の概略モデルの一例を示す図である。図25に示す通信定義は、図6に示した通信定義に加えて、アカウント(ユーザグループ)と通信プロトコル共通定義との間に通信プロトコル利用許諾という概念を設けた構成である。通信プロトコル利用許諾には、アカウントを識別するためのアカウントID、アカウントIDによって識別されるアカウントによって利用可能な通信プロトコルを識別するための通信プロトコルIDが含まれる。通信プロトコル共通定義とアカウント(ユーザグループ)は、通信プロトコル利用許諾に含まれるアカウントIDおよび通信プロトコルIDによって関連づけられている。これによって、第2の実施形態に係る遠隔機器管理システムは、独自に追加した通信プロトコルを、アカウントごとに共有するか否かを設定することができる。
●利用許諾管理テーブル
図26は、第2の実施形態に係る利用許諾管理テーブルの一例を示す図である。図26に示す利用許諾管理テーブル170は、遠隔機器管理装置10の記憶部100に記憶・管理されている。利用許諾管理テーブル170は、アカウントおよびユーザごとに利用可能な通信プロトコルに関する各種情報を記憶している。
利用許諾管理テーブル170は、システム管理を行うアカウントを識別するためのアカウントID、アカウントIDによって識別されるアカウントを利用可能なユーザを識別するためのユーザID、アカウントIDによって識別されるアカウントによって利用可能な通信プロトコルを識別するための通信プロトコルIDを関連づけて記憶している。ユーザIDは、ユーザ識別情報の一例である。
利用許諾管理テーブル170を用いることで、管理者は、新規にプラグイン(プラグインモジュール)を登録する場合に、利用許諾するアカウントIDを指定することができる。また、遠隔機器管理装置10は、アカウントに対して新規に登録されたプラグインに対応する通信プロトコルの利用を許諾することで、相互に必要なプラグインを共有することができ、効率よく機器500からの情報取得・設定等の通信を実現することができる。
●第2の実施形態の効果
以上説明したように、第2の実施形態に係る遠隔機器管理システムは、利用可能な通信プロトコルをアカウント(ユーザグループ)単位で管理することで、独自に定義を追加した通信プロトコルのプラグインを共有するか否かを設定することができる。
●第3の実施形態●
次に、第3の実施形態に係る遠隔機器管理システムについて説明する。第1の実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。第3の実施形態に係る遠隔機器管理システムは、機器500との通信定義において、一つの通信プロトコル共通定義が複数のプラグインモジュールと関連づけられたシステムである。また、第3の実施形態に係る遠隔機器管理システムにおいて、遠隔機器管理装置10は、記憶部100に、通信プロトコル管理テーブル130aおよびプラグイン管理テーブル150aに変えて、通信プロトコル管理テーブル130bおよびプラグイン管理テーブル150bを記憶している。さらに、第3の実施形態に係る遠隔機器管理システムにおいて、仲介装置30は、記憶部300に、通信プロトコル管理テーブル330aおよびプラグイン管理テーブル350aに変えて、通信プロトコル管理テーブル330bおよびプラグイン管理テーブル350bを記憶している。
●通信プロトコル管理テーブル
図27は、第3の実施形態に係る通信プロトコル管理テーブルの一例を示す図である。図27に示す通信プロトコル管理テーブル130bは、通信プロトコル情報として、通信プロトコル管理テーブル130aに含まれる項目に加え、遠隔機器管理システムにおちて利用可能なプラグインモジュールを識別するためのプラグインIDを関連づけて記憶している。図27に示すように、HTTPの通信プロトコルは、例えば、プラグインIDが異なる2つの通信プロトコル情報を有する(No.1とNo.2)。また、図27に示すように、「独自プロトコル」は、例えば、プラグインIDが異なる3つの通信プロトコル情報を有する(No.5~No.7)。
●プラグイン管理テーブル
図28は、第3の実施形態に係るプラグイン管理テーブルの一例を示す図である。図28に示すプラグイン管理テーブル150bは、各プラグイン情報のうち、異なるプラグインIDに関連づけられた同一の通信プロトコルIDが存在する(例えば、No.1とNo.5とNo.7、No.2とNo.6)。これにより、第3の実施形態に係る遠隔機器管理システムは、一つの通信プロトコルが複数のプラグインモジュールとの関連を持てるので(通信プロトコル共通定義:プラグイン=1:多)、例えば、ある独自プロトコルが複数のファイル(プラグイン)が必要な場合にも対応することができる。
●通信プロトコル管理テーブル
図29は、第1の実施形態に係る通信プロトコル管理テーブルの一例を示す図である。図29に示す通信プロトコル管理テーブル330bは、仲介装置30の記憶部300に記憶・管理されている。通信プロトコル管理テーブル330bの内容は、遠隔機器管理装置10に記憶された通信プロトコル管理テーブル130bと同様である。
●プラグイン管理テーブル
図30は、第3の実施形態に係るプラグイン管理テーブルの一例を示す図である。図30に示すプラグイン管理テーブル350bは、仲介装置30の記憶部300に記憶・管理されている。プラグイン管理テーブル350bの内容は、遠隔機器管理装置10に記憶されたプラグイン管理テーブル150bと同様である。
●実装パラメータの設定処理
続いて、第3の実施形態に係る遠隔機器管理システムにおいて、仲介装置30に設定された通信プロトコルに実装させる通信パラメータを設定する処理について説明する。図31は、第3の実施形態に係る遠隔機器管理システムにおける実装パラメータの設定処理の一例を示すシーケンス図である。
ステップS81において、管理者端末90のWebクライアント部91は、実装パラメータ設定要求を、遠隔機器管理装置10へ送信する。具体的には、管理者端末90の受付部92は、Webクライアント部91によって管理者端末90のディスプレイ1006aに表示された所定の設定画面に対するユーザの入力操作によって、パラメータを設定する通信プロトコルを識別するための通信プロトコルID、および実装するパラメータの値を含む実装パラメータ情報の入力を受け付ける。そして、Webクライアント部91は、受付部92によって受け付けられた実装パラメータ設定要求を、遠隔機器管理装置10へ送信する。ここで、実装パラメータ設定要求には、受付部92によって受け付けられた通信プロトコルIDおよび実装パラメータ情報、並びに仲介装置識別情報が含まれる。これにより、遠隔機器管理装置10のWebサーバ部16は、実装パラメータ設定要求を受信する。
ステップS82において、遠隔機器管理装置10の記憶・読出部17は、Webサーバ部16によって実装パラメータ設定要求が受信された場合、記憶部100に記憶された仲介装置管理テーブル110およびプラグイン管理テーブル150bを読み出す。ステップS83において、遠隔機器管理装置10の通信管理部15は、Webサーバ部16によって受信された実装パラメータ設定要求に含まれる仲介装置識別情報を検索キーとして、仲介装置管理テーブル110を検索することにより、対応する仲介装置識別情報が関連づけられた仲介装置設定情報を取得する。
ステップS84において、遠隔機器管理装置10の通信管理部15は、Webサーバ部16によって受信された実装パラメータ設定要求に含まれる通信プロトコルIDを検索キーとして、プラグイン管理テーブル150bを検索することにより、対応する通信プロトコルIDが関連づけられたプラグインIDを取得する。
ステップS84において、遠隔機器管理装置10の仲介装置通信部11は、取得された仲介装置設定情報に含まれる宛先情報が示す仲介装置30へ、実装パラメータ設定要求を送信する。ここで、遠隔機器管理装置10から送信される実装パラメータ設定要求には、Webサーバ部16によって受信された通信プロトコルIDおよび実装パラメータ情報、並びに通信管理部15によって取得されたプラグインIDが含まれる。これにより、仲介装置30の管理装置通信部31は、遠隔機器管理装置10から送信された実装パラメータ設定要求を受信する。
ステップS86において、仲介装置30の通信管理部36は、管理装置通信部31によって受信された実装パラメータ設定要求に含まれる、プラグインID、通信プロトコルIDおよび実装パラメータ情報を関連づけて、通信プロトコル管理テーブル330bに設定する。
ステップS87において、仲介装置30の管理装置通信部31は、実装パラメータ情報の設定結果を、遠隔機器管理装置10へ送信する。これにより、遠隔機器管理装置10の仲介装置通信部11は、仲介装置30から送信された設定結果を受信する。これにより、仲介装置30は、管理システム3からの要求に応じて、複数のプラグインモジュールに関連づけられた通信プロトコルのパラメータの値を設定することができる。
●第3の実施形態の効果
以上説明したように、第3の実施形態に係る遠隔機器管理システムは、通信プロトコル共通定義に対して複数のプラグイン情報を関連づけることによって、独自に定義した通信プロトコルが、対応するプラグインモジュール以外のプラグインモジュールに依存する場合においても、関連づけられた複数のプラグイン情報を用いて機器500と通信を行うことができる。
●その他の実施形態●
図32は、その他の実施形態に係る遠隔機器管理システムのシステム構成の一例を示す図である。図32に示す遠隔機器管理システム2において、上記で説明した遠隔機器管理システム1と異なる点は、仲介装置30と通信を行う機器500の種類が異なること、すなわち管理対象の機器500の使用環境が異なることである。機器700は、産業機械700a、撮像装置700b、集音装置700c、医療機器700d、立体物造形装置700e等を含む。
産業機械700aは、加工装置、検査装置、搬送装置、ピッキング装置等である。産業機械700aは、機器の識別情報や、稼働状況、異常動作の有無、消耗品の交換時期に関する情報、機器による検査結果等の機器情報を、管理システム3(遠隔機器管理装置10)へ送信する。産業機械700aは、データ形式または画像形式等の種々の情報伝達手段を用いて、機器情報を管理システム3(遠隔機器管理装置10)へ送信する。
撮像装置700bと集音装置700cは、例えば、産業機械700aの周辺に設置され、産業機械700aの状態を把握するための装置である。医療機器700dは、眼底検査装置、X線検査装置、血圧計、体脂肪計、視力計、ペースメーカ等である。医療機器700dは、機器の識別情報や、機器の稼働状況、異常動作の有無、機器による測定結果等の機器情報を、管理システム3(遠隔機器管理装置10)へ送信する。医療機器700dは、データ形式または画像形式等の種々の情報伝達手段を用いて、機器情報を管理システム3(遠隔機器管理装置10)へ送信する。
立体物造形装置700eは、CAD(Computer Aided Design)データ等の立体物の形状を示す3Dデータを受信し、そのデータに基づいて成形材の層を堆積させることにより立体物を造形する3Dプリンタ等によって構成される。立体物造形装置700eは、造形方式として、材料押出堆積法(FDM(Fused Deposition Modeling))、マテリアルジェッティング、バインダジェッティング、粉末焼結積層造形(SLS(Selective Laser Sintering))、光造形法(SLA(Stereolithography))等を採用する。立体物造形装置700eは、当該機器の識別情報、当該機器の稼働状況、異常動作の有無または当該機器に装着された消耗品の状態等を、数値データ、テキストデータまたは画像データ等の種々のデータ形式を用いて仲介装置30を経由して管理システム3(遠隔機器管理装置10)へ送信する。
図32に示す遠隔機器管理システム2において、仲介装置30は、遠隔機器管理装置10とファイアウォール9を介して接続されている。仲介装置30は、機器700内に設けてあるファームウエアを、インターネット接続を利用して更新するファームウエア更新機能を備えていてもよい。
図32の例において、遠隔機器管理システム2は、複数の機器700と一台の仲介装置30を含む構成を示しているが、更に他の機器を含んで構成してもよい。例えば、一台の仲介装置30では処理負荷が大きくなる場合、機器700のファームウエア更新のための機能と機器700の遠隔管理を集中的に行う機能を複数の仲介装置に分けて割り当てる構成にしてもよい。
なお、遠隔機器管理システム2における管理対象の機器700は、これに限られない。機器700は、例えば、家庭用電化製品(家電)、自動販売機、電源装置、空調システムまたはガス・水道・電気等の計量システム等に通信機能を持たせた機器であってもよい。
●まとめ●
以上説明したように、本発明の一実施形態に係る仲介装置は、ローカルネットワーク7内に存在する機器500と、ローカルネットワーク7とファイアウォール9を介して接続された管理システム3との通信を仲介する仲介装置30であって、仲介装置30が利用できない特定の通信プロトコルを拡張するためのプラグインモジュールに関するプラグイン情報(プラグインの一例)を、管理システム3から受信する。そして、仲介装置30は、受信されたプラグイン情報を用いて、特定の通信プロトコルに対応する通信定義を設定し、設定された通信定義に基づいて、特定の機器500との通信を行う。これにより、仲介装置30は、機器500との通信に用いる通信プロトコルの拡張を柔軟に行うことができる。
また、本発明の一実施形態に係る仲介装置は、管理システム3と接続されている通信セッションを介して、プラグインの設定要求を、管理システム3から受信し、受信された設定要求に示されるプラグインの転送要求を、管理システム3へ送信する。そして、仲介装置30は、送信した転送要求に対する応答として、仲介装置30が利用できない特定の通信プロトコルを拡張するためのプラグインモジュールに関するプラグイン情報(プラグインの一例)を、管理システム3から受信する。これにより、仲介装置30は、管理システム3との間で確立されたWebSocket等の常時通信可能な通信セッションを用いて、管理システム3から新たなプラグインモジュールをインストールすることができる。
さらに、本発明の一実施形態に係る仲介装置は、通信定義として、受信されたプラグイン情報(プラグインの一例)と当該プラグイン情報に対応する特定の通信プロトコルを示す通信プロトコル情報とを関連づけて設定する。そして、仲介装置30は、設定されたプラグイン情報に示されるプラグインモジュールの更新要求を受け付け、受け付けられた更新要求に示されるプラグインモジュールを更新する。これにより、仲介装置30は、管理システム3から送信されたプラグイン情報に基づいて設定された通信定義に対応する通信定義を設定することができる。
また、本発明の一実施形態に係る仲介装置において、通信プロトコル情報は、異なる通信プロトコルの間で共通する通信プロトコル共通定義を含み、通信定義は、通信プロトコル共通定義に複数のプラグイン情報が関連づけられている。これにより、仲介装置30は、独自に定義された通信プロトコルが、対応するプラグインモジュール以外のプラグインモジュールに依存する場合においても、関連づけられた複数のプラグイン情報を用いて機器500と通信を行うことができる。
さらに、本発明の一実施形態に係る仲介装置は、プラグイン情報を設定した日時を示す時間情報を、当該プラグイン情報に関連づけて記憶する。これにより、仲介装置30は、機器50との通信に不具合が生じた場合の障害解析に掛かる負担を低減させることができる。
また、本発明の一実施形態に係る仲介装置において、プラグイン情報は、当該プラグイン情報に示されるプラグインモジュールのバージョンを示すバージョン情報を含む。そして、仲介装置30は、設定されたプラグイン情報をディスプレイ1006a(表示部の一例)に表示させる。これにより、仲介装置30は、機能追加または障害対策用のモジュールの導入を行うことができ、より安定して機器500と通信することができる。
さらに、本発明の一実施形態に係る仲介装置において、通信プロトコル情報は、特定の機器500との通信に用いる特定の通信プロトコルのパラメータを示すパラメータ情報を含む。これにより、仲介装置30は、運用時にパラメータを細かく調整することができる。
また、本発明の一実施形態に係る仲介装置において、通信定義は、通信の目的を示す動作種別と通信プロトコルとが分離されている。これにより、仲介装置30は、動作種別が同じで通信プロトコルのみを切り替えることができるので、より機器500との通信に意味づけをすることができる。
さらに、本発明の一実施形態に係る仲介装置において、通信定義は、機器500を特定するための機器特定情報に複数の動作種別が関連づけられている。これにより、仲介装置30は、機器500に対して通信したい目的が増えた場合においても動作種別を追加することで対応することができる。
また、本発明の一実施形態に係る遠隔機器管理システムは、仲介装置30と、管理システム3とを備え、管理システム3は、プラグインにユーザを識別するためのユーザ識別情報を関連づけて管理し、仲介装置30は、管理システム3によって管理されるプラグインを、管理システム3から受信する。これにより、遠隔機器管理システム1は、他のアカウントとプラグインを共有することで、アカウントごとに同様のプラグインを実装しなくても機器500との通信を行うことができる。
さらに、本発明の一実施形態に係る通信方法は、ローカルネットワーク7内に存在する機器500と、ローカルネットワーク7とファイアウォール9を介して接続された管理システム3との通信を仲介する仲介装置30が実行する通信方法であって、仲介装置30が利用できない特定の通信プロトコルを拡張するためのプラグインモジュールに関するプラグイン設定情報(プラグインの一例)を、管理システム3から受信する受信ステップと、
受信されたプラグイン設定情報を用いて、特定の通信プロトコルに対応する通信定義を設定する設定ステップと、設定された通信定義に基づいて、特定の機器500との通信を行う通信ステップと、を実行する。これにより、本発明の一実施形態に係る通信方法は、機器500との通信に用いる通信プロトコルの拡張を柔軟に行うことができる。
●補足●
なお、各実施形態の機能は、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムにより実現でき、各実施形態の機能を実行するためのプログラムは、電気通信回線を通じて頒布することができる。
また、各実施形態の機能を実行するためのプログラムは、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、フラッシュメモリ、フレキシブルディスク、CD(Compact Disc)-ROM、CD-RW(Re-Writable)、DVD-ROM、DVD-RAM、DVD-RW、ブルーレイディスク、SDカード、MO(Magneto-Optical disc)等の装置可読な記録媒体に格納して頒布することもできる。
さらに、各実施形態の機能の一部または全部は、例えばFPGA(Field Programmable Gate Array)等のプログラマブル・デバイス(PD)上に実装することができ、またはASICとして実装することができ、各実施形態の機能をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(Very High Speed Integrated Circuits Hardware Description Language)、Verilog-HDL等により記述されたデータとして記録媒体により配布することができる。
これまで本発明の一実施形態に係る仲介装置、遠隔機器管理システム、通信方法およびプログラムについて説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。