(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
図1は、本発明の実施形態の監視システムの構成を示すブロック図である。
【0012】
本実施形態の監視システムは、監視サーバ100、クライアント端末200及び監視装置300を有する。
【0013】
監視サーバ100、クライアント端末200及び監視装置300は、ネットワーク400によって接続される。なお、監視サーバ100及びクライアント端末200を接続するネットワークと、クライアント端末200及び監視装置300を接続するネットワークとは、一つのネットワークでも、別個のネットワークでもよい。
【0014】
監視サーバ100は、プロセッサ(CPU)101、メモリ102、記憶装置(HDD)103及び通信インターフェース(I/F)104を有する計算機である。監視サーバ100は、論理的又は物理的に構成された単一又は複数の計算機上で稼働するシステムである。システムは、同一の計算機上の複数のスレッドによって動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0015】
プロセッサ101は、メモリ102に格納されたプログラムを実行する演算装置である。
【0016】
メモリ102は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子で構成され、記憶装置
103に格納されたプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0017】
記憶装置103は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、記憶装置103から読み出されて、RAMにロードされて、プロセッサ101によって実行される。
【0018】
通信インターフェース104は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【0019】
プロセッサ101によって実行されるプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して監視サーバ100に提供され、非一時的記憶媒体である補助記憶装置103に格納される。このため、監視サーバ100は、リムーバブルメディアを読み込むインターフェースを備えるとよい。
【0020】
クライアント端末200は、プログラムを実行するプロセッサ、前記プロセッサで実行されるプログラムを格納するメモリ、通信インターフェース及びユーザインターフェース(例えば、表示画面、入力装置)を有する計算機である。クライアント端末200は、例えば、ブラウザが動作しており、監視サーバ100から出力された情報をオペレータに表示し、オペレータの入力を受け付け、監視サーバ100に送信する。なお、クライアント端末200で動作するプログラムは、専用のアプリケーションプログラムでもよい。
【0021】
監視装置300は、プログラムを実行するプロセッサ、前記プロセッサで実行されるプログラムを格納するメモリ、通信インターフェース及び監視用インターフェース(例えば、USBインターフェース)を有する装置である。監視装置300の通信インターフェースは、後述するように、TCP/IPプロトコルによって監視サーバ100と通信する。
【0022】
監視装置300は、監視用インターフェースを介して、基地局500(電池ユニット510)と接続されており、電池ユニット510の状態の情報を取得し、電池ユニット510に充電、放電などを指示する。
【0023】
監視装置300には、監視装置300を一意に識別するためのデバイスIDが付与されている。デバイスIDは、監視装置300が送信するリクエスト電文や、クライアント端末200が送信する制御コマンドに含まれる。
【0024】
また、監視装置300には、ネットワーク400を介して通信するためのアドレスが付与される。なお、本実施形態の監視システムにおいては、監視装置300に付与されるアドレスは動的に変更される。図示は省略するが、ネットワーク400には、監視装置300にアドレスを付与する装置(例えば、IPアドレスを付与するDHCPサーバ)が接続されている。
【0025】
基地局500は、本実施形態の監視システムによる監視対象であり、エリア内の移動局と無線によって通信する。基地局500は、停電時に電源を供給する電池ユニット510を有する。電池ユニット510は、電池セル及び制御部を有する。制御部は、電池の出力電圧、充放電電流、充電量などの電池セルの情報を収集する。制御部は監視装置300と接続されており、監視装置300は制御部が収集した電池セルの情報を取得する。
【0026】
図2は、本発明の実施形態の監視サーバ100の構成を示す機能ブロック図である。
【0027】
監視サーバ100は、接続制御部110、データ送受信部111、データキュー112、データ処理部113、ストレージキュー114、データ格納処理部115、インターフェース(API)116、データベース117、電文フォーマット情報118、データグラムプラグイン120、認証部121及び認証情報122を有する。
【0028】
接続制御部110、データ送受信部111、データ処理部113、データ格納処理部115、インターフェース(API)116、データグラムプラグイン120及び認証部121は、監視サーバ100のプロセッサ101が所定のプログラムを実行することによって実装される。データキュー112及びストレージキュー114は、メモリ102に設けられる。データベース117及び認証情報122は、記憶装置103又は外部の記憶装置に格納される。
【0029】
接続制御部110は、監視装置300との接続(例えば、コネクションの設定、解放など)を制御する。
【0030】
データ送受信部111は、監視装置300から送信されたリクエスト電文を受信し、受信したリクエスト電文をデータキュー112に格納する。また、データ送受信部111は、データ処理部113が生成したレスポンス電文を監視装置300へ送信する。
【0031】
データキュー112は、データ送受信部111とデータ処理部113との間に設けられ、監視装置300から受信したリクエスト電文を格納するバッファメモリである。
【0032】
データ処理部113は、監視装置300から受信したリクエスト電文を処理し、ストレージキュー114に格納する。また、データ処理部113は、クライアント端末200から受信した制御コマンドを処理する。
【0033】
ストレージキュー114は、データ処理部113とデータ格納処理部115との間に設けられ、認証された監視装置300から受信したリクエスト電文及びクライアント端末200から受信した制御コマンドを格納するバッファメモリである。
【0034】
データ格納処理部115は、データベース117にデータを書き込み、データベース117からデータを読み出す。
【0035】
インターフェース(API)116は、クライアント端末200に対するインターフェースであり、クライアント端末200に表示すべき画面データを生成し、クライアント端末200からの入力を受ける。
【0036】
データベース117は、監視装置300から受信したリクエスト電文及び当該リクエスト電文を分解したデータを格納する。なお、データベース117は、リクエスト電文そのものを格納しなくてもよい。また、データベース117は、リクエスト電文及びレスポンス電文の形式の情報を格納する。
【0037】
電文フォーマット情報118は、監視サーバ100が扱うリクエスト電文及びレスポンス電文の形式の情報を格納するデータベースである。
【0038】
データグラムプラグイン120は、監視装置300の種類、すなわち、監視装置300が送信するリクエスト電文の形式(すなわち、監視装置が行う業務の種類)に対応して設けられるプログラムモジュールである。
【0039】
認証部121は、監視装置300のデバイスIDを用いて、監視装置300を認証する。認証情報122は、監視サーバ100がデータを収集する監視装置300のデバイスIDが記録されている。
【0040】
図3Aは、本発明の実施形態の監視システムにおいて送信されるリクエスト電文の形式の一例を説明する図である。
【0041】
図3Aに示すリクエスト電文は、監視装置300から監視サーバ100へ送信される電文で、スタートタグ3001から開始し、メッセージ長3002、コマンドコード3003と続き、ボディに、監視サーバ100が収集するデータ3005〜3009及び時刻3010を含み、CRC3011、エンドタグ3012で終了する。
【0042】
リクエスト電文は、監視装置300を特定するための情報として、デバイスID3004を含む。なお、リクエスト電文は、監視装置300の属性情報(デバイス名、シリアル番号、バージョンなど)を含んでもよい。
【0043】
また、リクエスト電文は、監視サーバ100が収集する電池ユニット510の状態として、出力電圧3005、充電量3006、充放電電流3007、温度3008、状態コード3009などを含む。
【0044】
図3Bは、本発明の実施形態の監視システムにおいて送信されるレスポンス電文の形式の一例を説明する図である。
【0045】
図3Bに示すレスポンス電文は、監視サーバ100から監視装置300へ送信される電文で、スタートタグ3101から開始し、メッセージ長3102、コマンドコード3103と続き、ボディに、コマンド3104及びコマンドパラメータ3105を含み、CRC3106、エンドタグ3107で終了する。
【0046】
レスポンス電文は、監視サーバ100を特定するための情報として、ステーションID3106を含む。なお、レスポンス電文は、時刻を含んでもよい。
【0047】
図4は、本発明の実施形態の電文のやり取りを示すシーケンス図である。
【0048】
監視装置300は、基地局500の電池ユニット510の状態(出力電圧、充放電電流、充電量など)の電池セルの情報を収集し、繰り返し(例えば、所定の時間間隔で)、監視サーバ100にリクエスト電文2001、2002、2003を送信する。監視装置300が送信するリクエスト電文には、送信元の監視装置300のデバイスIDが含まれている。
【0049】
監視サーバ100と監視装置300との間の通信には、例えば、HTTPプロトコルを用いることができる。すなわち、監視装置300から監視サーバ100へ送信されるリクエスト電文はHTTPリクエストであり、監視サーバ100から監視装置300へ送信されるレスポンス電文はHTTPレスポンスである。
【0050】
また、クライアント端末200は、ユーザから入力されたデータ要求コマンド2011を監視サーバ100に送信する。
【0051】
監視サーバ100は、クライアント端末200からデータ要求コマンド2011を受信すると、受信したデータ要求コマンドによって指定される条件に従ってデータベース117を検索し、条件に合致するデータを取得し、データベース117から取得した監視データを表示する画面を生成し、クライアント端末200に送信する。
【0052】
このようにして、監視サーバ100が監視装置300から収集した監視データを、クライアント端末200が閲覧することができる。
【0053】
また、クライアント端末200は、オペレータから入力された制御コマンド2013を監視サーバ100に送信する。制御コマンドの引数には、指令の対象となる監視装置300のデバイスIDが含まれている。制御コマンドは、例えば、電池ユニット510に充電を指示したり、放電を指示するものがある。
【0054】
監視サーバ100は、クライアント端末200から制御コマンド2013を受信すると、制御コマンド2013の引数である制御の対象となる監視装置300のデバイスIDを抽出し、抽出されたデバイスIDと共に、受信した制御コマンドをストレージキュー114に格納する。
【0055】
そして、監視サーバ100は、監視装置300から受信したリクエスト電文からデバイスIDを抽出し、ストレージキュー114に格納された制御コマンドの引数のデバイスIDと比較する。その結果、受信したリクエスト電文の送信元の監視装置300のデバイスIDと同じデバイスIDの制御コマンドがストレージキュー114に格納されていれば、当該コマンドからレスポンス電文2015を生成し、生成したレスポンス電文2015を、受信したリクエスト電文2003のレスポンスとして、監視装置300に送信する。
【0056】
このようにして、クライアント端末200に入力された制御コマンドが、監視装置300が送信したリクエストのレスポンスとして、監視装置300に送信される。このため、監視装置300のアドレスが動的に変化しても、指令の対象となる監視装置300に制御コマンドを送信することができる。
【0057】
次に、監視装置300からリクエスト電文が入力された場合の処理について説明する。
【0058】
図5は、本発明の実施形態のリクエスト電文を解析する処理のフローチャートである。
【0059】
まず、データ送受信部111は、監視装置300からリクエスト電文を受信し、リクエスト電文を受信したポートのIDから当該リクエスト電文の業務IDを特定する(1001)。リクエスト電文の受信ポートと業務IDとの関係は、データ送受信部111のプログラム中(例えば、ヘッダーファイルやコンフィグレーションファイル)に埋め込まれてもよいし、受信ポートと業務IDとを対応付けた情報を別に有してもよい。
【0060】
データ送受信部111は、特定された業務IDを付して受信したリクエスト電文をデータキュー112に格納する(1002)。
【0061】
その後、データ処理部113は、監視装置300から受信したリクエスト電文及び業務IDをデータキュー112から読み出し、読み出したリクエスト電文の業務IDを用いて対応するデータグラムプラグイン120を特定し、データキュー112から取り出したリクエスト電文をデータグラムプラグイン120に送る(1003)。
【0062】
業務IDに対応するデータグラムプラグイン120を特定するための情報は、データ処理部113のプログラム中(例えば、ヘッダーファイルや設定ファイル)に埋め込まれてもよいし、業務IDとデータグラムプラグイン120を呼び出すための情報(例えば、ポインタ、プログラム名)を対応付けたテーブルに含まれてもよい。
【0063】
データグラムプラグイン120は、データベース117に格納された電文フォーマットの情報を参照して、監視装置300から受信したリクエスト電文をチェックする(1004)。具体的には、受信したリクエスト電文の長さ、開始コード及び末端コードが正しいかを確認し、受信したリクエスト電文の形式が正しいかを判定する。
【0064】
次に、データグラムプラグイン120は、受信したリクエスト電文からコマンドコードを抽出し、抽出したコマンドコードによって、受信したリクエスト電文の種別を判定する(1005)。例えば、コマンドコードが「0x31 0x31」であれば、受信した電文が監視装置300がデータを送信するためのリクエスト電文であることが分かる。
【0065】
その後、データグラムプラグイン120は、リクエスト電文を分解するために必要なメモリの領域を確保し(1006)、電文フォーマット情報118に従って、受信したリクエスト電文をデータ項目毎に分解する(1007)。分解前のリクエスト電文は、監視装置300の種類毎に所定の電文フォーマットに従ったバイト位置にデータが格納されたものである。リクエスト電文は、分解されると、固定長データで構成される所定のデータ構造体定義に従ったデータ列に変換される。
【0066】
そして、データグラムプラグイン120は、リクエスト電文から抽出したデバイスIDを、認証部121に送る。
【0067】
認証部121は、デバイスIDを用いて監視装置300を認証する(1008)。具体的には、
認証情報122を参照し、認証すべき監視装置300のデバイスIDが
認証情報122に格納されている場合、監視装置300の認証が成功する。認証部121は、認証時に、監視装置300が関係する業務を識別してもよい。
【0068】
監視装置300の認証に成功すると、データ処理部113は、リクエスト電文を分解したデータをデータグラムプラグイン120から受け取り、ストレージキュー114に格納する(1009)。
【0069】
データ格納処理部115は、リクエスト電文を分解したデータをストレージキュー114から取り出し、データベース117に書き込む(1010)。
【0070】
次に、クライアント端末200に入力されたコマンドの処理について説明する。
【0071】
図6は、本発明の実施形態のレスポンス電文を生成する処理のフローチャートである。
【0072】
クライアント端末200は、オペレータから入力された制御コマンドを送信する。クライアント端末200が送信する制御コマンドの引数には、指令の対象となる監視装置300のデバイスIDが含まれている。
【0073】
API116は、クライアント端末200から制御コマンドを受信し(1101)、受信した制御コマンドを引数(デバイスID)と共に、ストレージキュー114に格納する(1102)。
【0074】
監視装置300の認証が成功すると、データ処理部113は、認証された監視装置300のデバイスIDを用いてストレージキュー114を参照し、当該監視装置300に送信すべきレスポンス電文が格納されているかを判定する(1103)。
【0075】
その結果、認証された監視装置300に送信すべきコマンドがストレージキュー114に格納されていれば、データ処理部113は、ストレージキュー114から制御コマンド及び当該制御コマンドの引数のデバイスIDを読み出す(1104)。
【0076】
そして、データ処理部113は、電文フォーマット情報118から、監視装置300から送信されたリクエスト電文に付された業務IDに対応する電文フォーマットを取得する(1105)。
【0077】
データ処理部113は、受信した制御コマンドの長さをチェックする(1106)。
【0078】
その後、データ処理部113は、レスポンス電文を生成するために必要なメモリの領域を確保し(1107)、送信するコマンドが正しいかを判定し(1108)、電文フォーマット情報118から取得した電文フォーマットに従って、コマンド及び引数の値を設定し、レスポンス電文を生成する(1109)。
【0079】
なお、ステップ1103で、認証された監視装置300に送信すべきコマンドがストレージキュー114に格納されていないと判定された場合、データ処理部113は、コマンドを含まないレスポンス電文を生成する(1109)。
【0080】
データ処理部113は、監視装置300から受信したデータの返信(すなわち、HTTPレスポンス)として、生成したレスポンス電文を監視装置300に送信する(1110)。
【0081】
以上に説明したように、本発明の実施形態では、クライアント端末200に入力されたコマンドが、監視装置300が送信したデータのレスポンスとして、監視装置300に送信される。このため、監視装置300のアドレスが動的に変化しても、指令の対象となる監視装置300にレスポンス電文を送信することができる。
【0082】
また、データグラムプラグイン120が、監視装置300が出力するデータの形式に応じた処理を行うので、異なる形式の出力データを処理することができる。
【0083】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。