(57)【要約】【課題】  デバイスの遠隔操作時に、安価な通信コストでコマンドを配信し、遠隔操作を可能とするコマンド配信システムを提供する。【解決手段】  デバイスへコマンドを配信し、これらデバイスの遠隔操作を行うシステムであって、管理端末で入力された対象デバイスとコマンド名から成るコマンドデータを受信してコマンド情報データベースに格納するデータベース操作部と、対象デバイスへのコマンド配信処理を行うコマンド配信部と、対象デバイスが実行したコマンド実行結果を受信するコマンド結果受信部と、コマンド配信機能と他のTFTPファイル転送機能の切替え処理を行うサーバ側機能切替部と、対象デバイスとの通信を行うTFTPサーバとを備えたサーバと、前記サーバとの通信を行うTFTPクライアントと、配信されたコマンドを処理するコマンド受信部と、デバイスを動作させるコマンド実行部と、実行結果を配信するコマンド結果配信部とを備える。【選択図】          図１
2014194708.tif 000002
【特許請求の範囲】
【請求項１】
１乃至複数のデバイスへコマンドを配信し、これらデバイスの遠隔操作を行うシステムであって、
管理者の所有する管理端末で入力された対象デバイスとコマンド名から成るコマンドデータを受信してコマンド情報データベースに格納するデータベース操作部と、対象デバイスへのコマンド配信処理を行うコマンド配信部と、対象デバイスが実行したコマンド実行結果を受信するコマンド結果受信部と、コマンド配信機能と他のTFTPファイル転送機能の切替え処理を行うサーバ側機能切替部と、対象デバイスとの通信を行うTFTPサーバとを備えたサーバと、
前記サーバとの通信を行うTFTPクライアントと、コマンド配信機能と他のTFTPファイル転送機能の切替え処理を行うデバイス側機能切替部と、配信されたコマンドを処理するコマンド受信部と、デバイスを動作させるコマンド実行部と、実行結果を配信するコマンド結果配信部とを備えたデバイスと、
を含んだコマンド配信システム。
【請求項２】
前記コマンドデータは、実行順序の優先度を示す優先度データを備えており、前記コマンド配信部は前記優先度データに従って配信するコマンドの順番を設定することを特徴とする請求項１に記載のコマンド配信システム。
【請求項３】
前記コマンドデータは引数を備えており、前記コマンド配信部はコマンド名にMetaデータを引数として付与した情報を配信することを特徴とする請求項１に記載のコマンド配信システム。
【請求項４】
前記サーバは、前記デバイスから、前記コマンドの実行結果を取得し記憶するコマンド情報データベースを備えていることを特徴とする請求項１〜３のいずれかに記載のコマンド配信システム。
【請求項５】
前記管理端末は、コマンド登録とコマンド実行結果を表示する表示部を備えていることを特徴とする請求項１〜４のいずれかに記載のコマンド配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数の通信機器がサーバに対して相互に通信を行い、通信機器が個別に検出したデータをサーバに収集してアプリケーションに提供するとともに、前記通信機器にサーバからコマンドを配信し通信機器にてコマンド実行した後、実行結果をサーバに送信することを可能とするシステムに関し、特に、携帯電話網などの従量課金制の回線網を使用し、通信量に応じて料金が増大する状況で、軽量・単純な通信プロトコルを利用して、機器が利用できる無線リソースのうち、出来るだけ少ない無線リソースを使用した通信を提供することができるコマンド配信システムに関するものである。
【背景技術】
【０００２】
２０１１年３月１１日に起きた、東日本大震災により、約１６００万キロワットの発電能力が失われた。東京電力の計画停電実施以降、自治体や企業が節電を呼びかける動きが広がっている。この動きは、家庭にも浸透しており、エアコンや冷蔵庫、照明器具などの電力消費を抑えることが求められている。
【０００３】
こうした中で、最近注目を集めているのが、家庭のエネルギー管理を支援するシステムである。これは、家庭のエネルギー消費機器をネットワークで接続し、稼動状況やエネルギー消費状況の監視、遠隔操作や自動制御などを可能にする。このような、複数の機器をネットワークで接続して、機器が得られる情報を統合して、様々な制御を自動的に行う仕組みやコンセプトのことを、「M2M」と呼ぶ。「M2M」は、Machine-to-Machineの略で、”機械から機械へ”といった意味である。
特許文献１に記載のホームネットワークに対するリモートアクセス手法は、家庭内の通信機能をもつ機器に、外出先からリモートアクセスするために必要な装置と方法を提案している。これより、いつどこでも、家の状況監視や、機器の遠隔操作が可能となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００９-５４６３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、通信機器がネットワークで頻繁に通信を行うと、通信量が増大する。携帯電話網の様な従量課金制の通信回線を使用する場合、通信量に応じて料金が増大する。このため、個々の通信機器のネットワーク通信を、可能な限り軽量にする必要がある。一方、通信回線が使い放題ならば、料金の心配をする必要は無くなる。しかし、回線網の通信容量は有限であり、通信量が大きいと、通信速度の低速化や、回線網が混雑して輻輳状態に陥る可能性がある。したがって、現実は通信量の削減が必要とされている。また、家庭内で使用する通信機器を考えた場合、小型で軽量なものが望まれる。このため、利用する無線リソースは小さいものが求められる。従って、少ない無線リソースでも運用可能な通信システムが必要とされている。
【０００６】
このような要請がある中で、HTTP(Hypertext Transfer Protocol)やFTP(File Transfer Protocol)といったTCP(Transmission Control Protocol)を用いたコネクション型プロトコルでは、データの信頼性や到達順序などを制御できるが、そのために必要な無線リソースが増大するため、上述した問題を解決することができない。
【０００７】
本発明の目的は、多数の通信機器で構成された通信システムにおいても、通信量を抑えることで、通信網コストを安価にして、かつ、サーバと機器の通信により、機器に様々な自動制御を実現可能にする、コマンド配信システムを提供しようとするものである。ここで、コマンド配信システムとは、機器に対して、実行可能なコマンドを送ることで、機器の遠隔操作を行うシステムである。
【課題を解決するための手段】
【０００８】
本発明者は、機器間通信に用いる通信プロトコルに、軽量通信プロトコルを利用することで、通信量を抑えた機器間通信を提供できることに想到した。ここで、軽量通信プロトコルとは、TFTP(Trivial File Transfer Protocol)を意図している。TFTPは、ファイル転送プロトコルの一種で、トランスポート層にUDP(User Datagram Protocol)を利用している。これより、ファイル転送以外のオーバヘッドが小さくなり、効率の良いファイル転送を行うことが可能である。TFTPの主な使用例は、ルータの設定ファイルの読み込みや、OSのバージョンアップなどである。本発明では、実施例としてTFTPに関しての実施方法を説明するが、他の軽量通信プロトコルでも実施可能である。例えば、SMS(Short Message Service)などが挙げられる。SMSは、電子メール送受信サービスの一種で、通信機器の間で、テキストなどのショートメッセージを送受信できるサービスである。SMSは、トラフィックチャネルを使用せず、シグナリングチャネルを使用する。このため、電子メールと比較して、軽量な通信が可能で、メッセージのバイト単価が安いといったメリットが存在する。
【０００９】
すなわち、本発明は、従来は別の用途で使用されていた軽量・単純な通信プロトコルを利用して、コマンド配信システムを実現するものである。
具体的には、１乃至複数のデバイスへコマンドを配信し、これらデバイスの遠隔操作を行うシステムであって、
管理者の所有する管理端末で入力された対象デバイスとコマンド名から成るコマンドデータを受信してコマンド情報データベースに格納するデータベース操作部と、対象デバイスへのコマンド配信処理を行うコマンド配信部と、対象デバイスが実行したコマンド実行結果を受信するコマンド結果受信部と、コマンド配信機能と他のTFTPファイル転送機能の切替え処理を行うサーバ側機能切替部と、対象デバイスとの通信を行うTFTPサーバとを備えたサーバと、
前記サーバとの通信を行うTFTPクライアントと、コマンド配信機能と他のTFTPファイル転送機能の切替え処理を行うデバイス側機能切替部と、配信されたコマンドを処理するコマンド受信部と、デバイスを動作させるコマンド実行部と、実行結果を配信するコマンド結果配信部とを備えたデバイスとを備えることを特徴とする。
【発明の効果】
【００１０】
本発明のコマンド配信システムによれば、従量課金制の回線網を使用している場合や、膨大な数の通信機器を扱う場合であっても、TFTPという軽量な通信プロトコルを利用することにより、通信量の削減が可能になり、無線リソースの小さい機器でも運用できる。本発明が提案するコマンド配信システムは、管理者が設定したコマンドを、サーバから機器へ配信し、機器の遠隔操作を実現する。これは、電力監視や、自動制御などのM2Mサービスの実現へと役立てることが可能となる。
また、節電を呼びかける企業や自治体にとっては、道路の交通量に応じて、信号機の稼動率を調整することや、オフィスの空調管理システムなどへと役立てることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明のコマンド配信システムついて、その全体構成を示す概略図である。
【図２】図１に示すコマンド情報DB（データベース）に記録されるデータ構造を例示する概略図である。
【図３】図１に示す管理端末の表示部に示される画面を例示する概略図である。
【図４】本発明のコマンド配信システムの単一のコマンド配信動作を示すシーケンス図である。
【図５】本発明のコマンド配信システムのサーバ側のフローチャート図である。
【図６】本発明のコマンド配信システムのデバイス側のフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら、本発明のコマンド配信システムを実施するための最良の形態を詳細に説明する。
図１〜図６は、本発明の一実施形態を例示する図であり、これらの図において、同一の符号を付した部分は同一物を表わし、基本的な構成及び動作は同様であるものとする。以下、前記通信機器をデバイスと表現する。
【００１３】
[１]  コマンド配信システムの全体構成
図１は、本発明のコマンド配信システムについて、その全体構成を示す概略図である。
図１において、コマンド配信システムは、サーバ１０１と、デバイス１１１と、管理端末１３１で構成されている。サーバ１０１に対してデバイス１１１は、複数存在し、各デバイス１１１には被制御機器が必要に応じて接続されることがある。
サーバ１０１は、TFTPサーバ１０２と、サーバ側機能切替部１０３と、コマンド配信部１０４と、コマンド結果受信部１０５と、データベース操作部１０６と、サーバ側ファイル転送機能部１０７と、コマンド情報DB１２１で構成されている。
TFTPサーバ１０２は、デバイス１１１のTFTPクライアント１１２と通信を行う。通信プロトコルは、TFTPを用いる。
【００１４】
サーバ側機能切替部１０３は、TFTPサーバ１０２が受信したパケットを検査して、デバイス１１１が要求している機能に応じて処理を切り替える。これにより、コマンド配信以外のTFTPを用いたファイル転送機能も扱うことが可能となる。
サーバ側機能切替部１０３は、機能を一意に識別可能な識別子である機能識別子を保持しており、この機能識別子を利用して機能の切り替えを行う。例えば、TFTPの場合、機能識別子にファイル名のフォーマットを利用する。また、SMSの場合、機能識別子にメッセージを利用することができる。サーバ側機能切替部１０３は、デバイス１１１が実行可能な全ての機能識別子を保持しているものとする。
【００１５】
コマンド配信部１０４は、次に実行するコマンドをコマンド情報DB１２１から取得し、デバイス１１１に配信する。ここでは、デバイス１１１からのコマンド配信要求に対してコマンド配信動作を開始させているが、別のプロトコルを用いることで、サーバ側からの動作開始が可能である。例えば、SMSを用いることで、サーバから送信されるテキストにコマンドを指定することで、コマンド配信動作が開始可能である。
コマンド結果受信部１０５は、デバイス１１１から取得したコマンドの実行結果をコマンド情報DB１２１に格納する。
【００１６】
データベース操作部１０６は、コマンド情報DB１２１にアクセスしてコマンドの追加，検索と、コマンド結果の更新，検索を行う。
サーバ側ファイル転送機能部１０７は、コマンド配信以外のTFTPを用いたファイル転送機能である。
【００１７】
一方、デバイス１１１は、TFTPクライアント１１２と、デバイス側機能切替部１１３と、コマンド受信部１１４と、コマンド結果配信部１１５と、コマンド実行部１１６と、デバイス側ファイル転送機能部１１７で構成されている。
デバイス側機能切替部１１３は、前記機能識別子を保持しており、サーバ１０１から受信したパケットを検査して機能識別子を利用して、対応する機能に処理を切り替える。
【００１８】
コマンド受信部１１４は、定期的にサーバ１０１に、コマンド配信要求を送信する。サーバ１０１が、デバイス１１１に実行させるコマンドを保持している場合、サーバ１０１からコマンドを受信する。実行可能なコマンドがない場合は、一定時間経過後、再びコマンド配信要求を送信する。コマンド受信部１１４は、受信したコマンドが実行可能か判断する。
コマンド結果配信部１１５は、コマンド結果を、TFTPクライアント１１２を用いて、サーバ１０１に配信する。
【００１９】
コマンド実行部１１６は、コマンドに対する動作機能を予め実行動作情報としていくつか保持しており、受信したコマンドが保持している実行動作情報に該当する場合、実行可能とする。
デバイス側ファイル転送機能１１７は、コマンド配信以外のTFTPを用いたファイル転送機能である。
サーバ１０１と、デバイス１１１は、回線網１４１で接続されている。ここで回線網１４１としては、Wi-Fi、携帯電話回線（３G、LTEなど）といった無線網が挙げられる。また回線網１４１は、インターネットのような有線網であってもよい。
【００２０】
管理端末１３１は、表示部１３２で構成されている。デバイス１１１に実行させたいコマンド情報をサーバ１０１に送信する。また、デバイス１１１から得られたコマンド結果をサーバ１０１から受信し、表示部１３２で表示する。
以下に、本実施形態のコマンド配信システムについて、一連の流れを示す。
管理者は、管理端末１３１を用いて、配信したいコマンド情報をサーバ１０１のデータベース操作部１０６に送信する。データベース操作部１０６は、コマンド情報DB１２１にコマンド情報を追加する。サーバ１０１が、デバイス１１１からファイル読み込み要求を受けると、サーバ側機能切替部１０３は、受信した機能識別子により、機能の切り替えを行う。受信した機能識別子が、コマンド配信要求に相当する場合、コマンド配信機能を実行する。例えば、コマンド配信要求時に指定された機能識別子が、“１”ならばコマンド配信を行う。“２”ならば通常のTFTP通信を行うといった切替方法が考えられる。
【００２１】
サーバ側機能切替部１０３は、デバイス１１１からコマンド配信要求を受けると、コマンド受信部１０４に、受信した情報を渡す。コマンド受信部１０４が、コマンド配信要求を受けると、コマンド情報DB１２１からコマンドを取り出し、デバイス１１１に送信する。TFTPクライアント１１２は、受信したパケットの宛先ポートが、要求時の送信元ポート番号と一致する場合、コネクションが同一と判断できる。この場合、受信したデータが、コマンド情報であるため、デバイス側機能切替部１１３は、コマンド受信部１１４にコマンド情報を渡す。コマンド受信部１１４は、受け取ったコマンド情報を用いて、コマンド実行部１１６がコマンドを実行可能か判断する。コマンド実行部１１６が、コマンド情報に対応する実行動作情報を保持している場合、コマンドを実行する。
コマンド実行後、コマンド結果配信部１１５は、コマンド実行結果配信要求に相当するファイル書き込み要求をサーバ１０１に送信する。
サーバ側機能切替部１０３は、受信した機能識別子が、コマンド結果配信要求に相当する場合、コマンド結果受信部１０５に情報を渡す。
【００２２】
コマンド結果受信部１０５は、データベース操作部１０６を用いて、コマンド情報DB１２１に結果を格納可能か検索する。格納可能な場合、コマンド結果受信部１０５は、デバイス１１１に確認応答を送信する。確認応答を受信したコマンド結果配信部１１５は、サーバ１０１にコマンド結果を送信する。
コマンド結果を受信したコマンド結果受信部１０５は、データベース操作部１０６を用いて、コマンド情報DB１２１にコマンド結果を格納する。
管理端末１３１は、データベース操作部１０６を用いて、コマンド結果データを取得し、表示部１３２に表示する。以上の一連の流れを実行することで、コマンド配信が実現する。
【００２３】
[2]  コマンド情報DBの構成
図２は、コマンド情報DB１２１に記憶されるデータ構造を例示する概略図である。
図２において、コマンド情報DB１２１は、コマンドデータ２１０及びコマンド結果データ２２０を記憶している。
コマンドデータ２１０は、管理端末１３１により送信されたコマンド情報に、コマンドIDを付して記憶したものである。コマンドデータ２１０の各レコードは、コマンドID２１１、コマンド名２１２、デバイス識別子２１３、実行状態２１４及び優先度２１５から構成されている。コマンドID２１１は、主キーである。コマンドID２１１は、コマンドデータ２１０の登録時に、重複しない値を割り当てる。同一のデバイスに対して複数のコマンドの優先度を決めたい場合は、例えば、優先度２１５を格納するレコードをコマンドデータに追加する方法が考えられる。コマンドデータ毎に優先度を設定可能にすることで、コマンド配信時に優先度を比較してコマンドの実行順序を決定することが可能になる。
【００２４】
コマンド名２１２は、実行するコマンド名を記述している。デバイス識別子２１３は、デバイスを固有に特定可能な情報であり、サーバ１０１と接続された複数のデバイス１１１を区別するためのレコードである。例えば、デバイスのシリアルナンバーや、MACアドレスなどが考えられる。
実行状態２１４は、０(未実行)、１(実行済)及び２(実行中)から構成されており、コマンドの実行状態を表している。コマンド配信部１０４が、コマンド配信要求を受けると、取得したデバイス識別子と保持しているデバイス識別子２１３が一致し、実行状態が０(未実行)のコマンドを抽出する。抽出したコマンドが複数存在する場合、コマンドID２１１が小さい方から優先して配信を行う。図２では、２つの「コマンドデータ１」と「コマンドデータ２」と例を示している。前述したのは、「コマンドデータ１」の説明である。「コマンドデータ２」は、引数２１６を追加したコマンドデータである。引数２１６は、コマンドに設定値を設けることで、多様なコマンドに対応するためのものである。コマンド名のみと、コマンド名＋Metaデータ(引数２１６)のデータ構造を、目的に応じて使用可能とする。
【００２５】
コマンド結果データ２２０は、コマンドデータ２１０のコマンドを実行した結果を記憶するものである。コマンド結果データ２２０の各レコードは、コマンドID２２１及びコマンド結果２２２から構成されている。コマンドID２２１は、コマンドデータ２１０のコマンドID２１１の外部キーである。コマンド結果データ２２２は、コマンドID２１１に対応するコマンドデータ２１０を、対象デバイス２１３で実行した時の結果を格納している。
【００２６】
[3]  表示部の構成
図３は、管理端末１３１の表示部１３２に表示される画面を例示する概略図である。
図３において、表示部１３２は、コマンド登録３１０及びコマンド実行結果３２０で構成されている。
コマンド登録３１０は、管理者がデバイス１１１に実行させたいコマンドを登録する画面である。コマンド登録３１０は、対象デバイス３１１と、コマンド名３１２及び登録ボタン３１３で構成されている。対象デバイス３１１及びコマンド名３１２は、登録するコマンドを入力するコンポーネントである。これらは、テキストボックスやコンボボックスなどを用いる。登録ボタン３１３は、入力された対象デバイス３１１とコマンド名３１２をサーバ１０１に送信するボタンである。コマンド登録の流れを以下に示す。
対象デバイス３１１に、コマンド配信対象のデバイス１１１のデバイス識別子２１３を入力する。コマンド名３１２に、配信対象のデバイス１１１に実行させたいコマンド名を入力する。両方の入力が終了してから、登録ボタン３１３を選択する。入力したコマンド情報は、管理端末１３１からサーバ１０１のデータベース操作部１０５へ送信される。データベース操作部１０５は、コマンド情報DB１２１にアクセスしてコマンドデータ２１０に受信データを格納する。この時、対象デバイス３１１は、デバイス識別子２１３に、コマンド名３１２は、コマンド名２１２に格納される。コマンドIDは、重複しない最小の値を割り当てる。実行状態２１４は、０(未実行)を指定する。
【００２７】
コマンド実行結果３２０は、デバイス１１１が実行したコマンド結果を表示する画面である。コマンド実行結果３２０は、表形式で表示しており、各レコードはデバイス識別子３２１と、コマンド名３２２及び、コマンド結果３２３から構成されている。
デバイス識別子３２１は、対象となるデバイス１１１を固有に特定する識別子を表している。コマンド名３２２は、対象デバイスが実行したコマンド名を表している。
コマンド結果３２３は、対象デバイスがコマンドを実行した結果を表している。コマンド実行結果３２０が、更新表示される度に、サーバ１０１のデータベース操作部１０５を用いて、コマンド情報DB１２１の最新の情報に更新する。
【００２８】
デバイス識別子３２１は、デバイス識別子２１３に、コマンド名３２２は、コマンド名２１２に、コマンド結果３２３は、コマンド結果２２２に対応している。
コマンド登録３１０及びコマンド実行結果３２０は、画面遷移のコンポーネントとして、コマンド登録リンク３３１と、コマンド実行結果リンク３３２を配置している。
コマンド登録リンク３３１は、コマンド登録３１０への画面遷移を可能にしている。コマンド実行結果リンクは、コマンド実行結果３２０への画面遷移を可能にしている。これらは、同画面への画面遷移動作に関しては、画面の更新を行うこととする。
【００２９】
[4]  コマンド配信システムの動作
次に、図４を参照しながら、上記した本実施形態のコマンド配信システムの動作について説明する。
図４は、本実施形態のコマンド配信システムの単一のコマンド配信時のパケットの流れに関するシーケンス図である。前記機能識別子を機能idと表記している。
図４において、デバイス１１１は、定期的にサーバ１０１のTFTPサーバ１０２に、コマンド配信要求を送信する。この時、TFTPのオペレーションコードは、“１”の読み出しを指定する。また、ファイル名は、機能idとデバイスidの結合とする。デバイスidは、デバイス識別子２１３に対応している。宛先ポートは６９、送信元ポートは任意(＃1ポート)とする。モードは、netasciiと、octetと、mailの３種類が選択可能である。これは、送信するコマンド情報に合わせて適切なものを選択する。
【００３０】
TFTPサーバ１０２は、受信した機能idと読み出し要求を、サーバ側機能切替部１０３に渡す。サーバ機能切替部１０３は、要求による機能の割り当てを行う。機能idが、コマンド配信機能を指定していて、かつ、オペレーションコードが“１”の読み出しを指定している場合、コマンド配信部１０４に、デバイスidを渡す。コマンド配信部１０４は、データベース操作部１０６を用いて、デバイスidで指定されたデバイス１１１が、次に実施予定のコマンド情報を検索する。この時、デバイスidが、デバイス識別子２１３と一致して、かつ実行状態２１４が０(未実行)のコマンドデータ２１０を検索する。対象のコマンドデータ２１０が存在すれば、コマンド配信部１０４にコマンドデータ２１０を渡す。
コマンド配信部１０４は、TFTPサーバ１０２を用いて、TFTPクライアント１１２にコマンド情報を送信する。TFTPは一回の転送パケットサイズは、５１２バイトであるため、コマンド情報を区切って送信する。この時、TFTPのオペレーションコードは、“３”のデータ送信を指定する。送信するデータ内容は、コマンドID２１１とコマンド情報の結合とする。ブロック番号は、転送するデータを５１２バイトで区切り、“１”から始まる先頭からのブロック数を示す。宛先ポートは＃1ポート，送信元ポートは任意(＃2ポート)とする。コマンド情報は、コマンド名２１２のみの場合及び、コマンド名２１２とMetaデータ(引数２１６)を結合する場合を例として考える。
【００３１】
TFTPクライアント１１２は、受信パケットのポート番号を検査して、ポート番号が、コマンド配信要求時に指定した、送信元ポート(＃1)の場合、コマンド配信のコネクションであると判断できるため、TFTPサーバ１０２に確認応答を送信する。この時、TFTPのオペレーションコードは、“４”の確認(ACK)応答を指定する。ブロック番号は、対応するデータ転送パケットのブロック番号と同じ値を設定する。宛先ポートは＃2ポート、送信元ポートは、＃1ポートとする。
【００３２】
TFTPサーバ１０２は、コマンド配信完了まで、コマンド情報送信と確認応答受信を繰り返す。コマンド配信完了後、データベース操作部１０５を用いて、送信したコマンドデータ２１０の実行状態２１４を２(実行中)に変更する。
データベース操作部１０５は、デバイス識別子２１３が同一で、実行状態２１４が２(実行中)のコマンドデータ２１０が複数存在することを許可しない。しかし、コマンド配信後に、エラーが発生した場合に、実行状態２１４が“２”(実行中)のコマンドデータ２１０が残ってしまう可能性がある。この時、デバイス側が複数のコマンドを同時実行することは無いとする。デバイス識別子２１３が同一で、実行状態２１４が“２”(実行中)のコマンドデータ２１０が複数存在する場合、該当する全てのコマンドデータ２１０の実行状態２１４を“１”(未実行)に変更する。
これより、エラーが発生したコマンドを再送することができる。エラーの原因によっては、再送時に、エラーが再発することも考えられる。この場合、データベース操作部１０５は、対象のコマンドデータ２１０を削除するなどの対策をとる。
【００３３】
TFTPクライアント１１２は、受信したファイル情報をデバイス側機能切替部１１３に渡す。デバイス側機能切替部１１３は、ファイル情報からコマンドidとコマンド情報を取得し、コマンド受信部１１４に渡す。
コマンド受信部１１４は、受信したコマンドidを用いて、コマンド実行部
１１６に保持されている動作機能を検索する。動作機能が存在すれば、実行して、コマンド実行結果をコマンド結果配信部１１５に渡す。動作機能が存在しなければ、コマンド実行結果をエラーとして、コマンド結果配信部１１５に渡す。
【００３４】
コマンド結果配信部１１５は、コマンド実行部１１６から受け取った実行結果を送信するため、TFTPサーバ１０２を用いて、コマンド結果配信要求を送信する。この時、TFTPのオペレーションコードは、“２”の書き込みを指定する。また、ファイル名は、機能idと実行したコマンド情報に対応するコマンドID２１１とする。宛先ポートは６９、送信元ポートは任意(＃3ポート)とする。
TFTPサーバ１０２は、受信した情報をサーバ側機能切替部１０３に渡す。
【００３５】
サーバ側機能切替部１０３は、受信した情報から、ファイル名とオペレーションコードを検査する。ファイル名の機能idが、コマンド配信機能を指定してかつ、オペレーションコードが２の書き込みを指定している場合、コマンド結果受信部１０５は、データベース操作部１０６を用いて、受信したコマンドID２１１に対応するコマンドデータ２１０が存在するか検索する。この時、受信したデバイスidと、デバイス識別子２１３が一致して、かつ実行状態２１４が“２”(実行中)のコマンドデータ２１０を検索する。
対象のコマンドデータ２１０が存在する場合、コマンド結果受信部１０５は、TFTPクライアントに、確認応答を返す。この時、TFTPのオペレーションコードは、“４”の確認(ACK)応答を指定する。ブロック番号は、“0”を指定する。宛先ポートは＃3ポート、送信元ポートは、任意(＃4ポート)とする。
【００３６】
TFTPクライアント１１２は、TFTPサーバ１０２へ、コマンド結果配信を送信する。この時、TFTPのオペレーションコードは、“３”のデータ送信を指定する。送信するデータ内容は、実行したコマンドに対するコマンド実行結果とする。ブロック番号は、“1”から始まり、送信パケット毎に1ずつ増加して設定する。宛先ポートは＃4ポート、送信元ポートは、＃3ポートとする。
【００３７】
TFTPサーバ１０２は、受信パケットのポート番号が、コマンド結果配信要求時に指定した、送信元ポート＃3)の場合、コマンド結果配信のコネクションであると判断できるので、TFTPクライアント１１２に、確認応答を送信する。この時、TFTPのオペレーションコードは、“４”の確認(ACK)応答を指定する。ブロック番号は、対応するデータ転送パケットのブロック番号と同じ値を設定する。宛先ポートは＃3ポート、送信元ポートは、＃4ポートとする。
TFTPクライアント１１２は、コマンド結果配信完了まで、データ転送と確認応答受信を繰り返す。
TFTPサーバ１０２は、コマンド結果受信完了後、受信した情報をサーバ側機能切替部１０３に渡す。サーバ側機能切替部１０３は、取得した情報から、オペレーションコードを検査して、コマンド結果であることを判断して、コマンド結果受信部１０５へ渡す。
【００３８】
コマンド結果受信部１０５は、データベース操作部１０６を用いて、コマンド結果データ２２０に、コマンドID２１１と、コマンド結果２２２を追加する。その後、送信したコマンドデータ２１０の実行状態２１４を“１”(実行済)に変更する。
管理端末１３１は、データベース操作部１０６に、コマンド情報取得要求を行うことで、コマンド情報を取得して、表示部１３２に表示する。また、管理端末１３１の代わりに上位のアプリからコマンド配信の操作を実行することも可能である。
【００３９】
[5]  サーバ側の動作
次に、図５を参照しながら、上記した本実施形態のコマンド配信システムのサーバ側の動作について詳細に説明する。
図５は、本実施形態のコマンド配信システムのサーバ側のフローチャート図である。
まず、デバイス１１１からの接続要求が来るまで待機する(ステップ５０１)。受信したパケットを検査して(ステップ５０２)、機能idがコマンド配信を指定していない場合、ファイル名に対応するファイルをサーバ側ファイル転送機能部１０７がTFTPサーバ１０２を用いて送信する(ステップ５２０)。その後、ステップ５０１に戻り待機する。
機能idが、コマンド配信を指定している場合、受信した情報がコマンド配信要求(読み出し要求)か、コマンド結果配信要求(書き込み要求)で処理が分けられる。
【００４０】
まず、コマンド配信要求の場合(ステップ５０４)、データベース操作部１０６を用いてコマンド情報DB１２１の検索を行う(ステップ５０５)。
コマンド情報DB１２１が対象デバイスの次に実行するコマンドを保持している場合、TFTPクライアントにコマンド情報を送信する（ステップ５０７）。その後、確認応答を受信するまで待機する(ステップ５０８)。コマンド配信が完了するまで、ステップ５０７に戻って処理を繰り返す。
コマンド配信が完了したら、コマンドデータ２１０の実行状態２１４を２(実行中)に変更する(ステップ５１０)。その後、ステップ５０１に戻り待機する。コマンド情報DB１２１が対象デバイスの次に実行するコマンドデータを保持しない場合、空のファイルを送信する(ステップ５２１)。その後、ステップ５０１に戻り待機する。
【００４１】
次に、コマンド結果配信要求の場合（ステップ５１１）、データベース操作部１０６を用いてコマンド情報DB１２１の検索を行う(ステップ５１２)。受信したコマンド結果に対応するコマンドデータ２１０が存在する場合（ステップ５１３）、TFTPクライアント１１２へ確認応答を送信する(ステップ５１４)。
【００４２】
受信したコマンド結果要求に対応するコマンドデータ２１０が存在しない場合(ステップ５１３)、TFTPクライアントへエラーパケットを送信する(ステップ５２２)。その後、ステップ５０１に戻り待機する。確認応答を送信(ステップ５１４)後、コマンド結果を受信するまで待機する(ステップ５１５)。コマンド結果を受信したら、TFTPクライアント１１２へ確認応答を送信する(ステップ５１６)。コマンド結果受信が完了するまで、ステップ５１５とステップ５１６を繰り返す。コマンド結果配信が完了したら、コマンド情報DB１２１に、コマンド結果情報を格納する(ステップ５１８)。コマンドデータ２１０の実行状態２１４を“１”(実行済)に変更する(ステップ５１９)。その後、ステップ５０１に戻り待機する。
【００４３】
[6]  デバイス側の動作
次に、図６を参照しながら、上記した本実施形態のコマンド配信システムのデバイス側の動作について詳細に説明する。
図６は、本実施形態のコマンド配信システムのデバイス側のフローチャート図である。
まず、サーバ１０２にコマンド配信要求を送信する(ステップ６０１)。サーバ１０２からコマンド情報を取得するまで待機する(ステップ６０２)。コマンド情報を受信したら、確認応答を送信する(ステップ６０３)。コマンド情報の受信が完了するまで、ステップ６０１とステップ６０２を繰り返し行う(ステップ６０４)。
【００４４】
コマンド情報の受信が完了したら、受信したコマンド情報を検査する(ステップ６０５)。受信ファイルが空でない場合(ステップ６０６)、格納されているコマンド情報を検査する(ステップ６０７)。受信ファイルが空の場合、デバイスが実行するコマンドが存在しないことを意味している。この時、一定時間スリープ状態(ステップ６１４)にしてから、ステップ６０１に戻る。
【００４５】
コマンド実行部１１６が、受信したコマンド情報に対する動作を保持している場合(ステップ６０７)、動作を実行する(ステップ６０８)。コマンド実行部１１６が、受信したコマンド情報に対する動作を保持していない場合、コマンド結果をエラーにする(ステップ６１５)。コマンドの実行後、TFTPサーバにコマンド結果の配信要求を送信する(ステップ６０９)。
【００４６】
確認応答を受信するまで待機する(ステップ６１０)。確認応答を受信したら、コマンド結果をTFTPサーバ１０２へ、送信する(ステップ６１１)。サーバ側から確認応答を受信するまで待機する(ステップ６１２)。コマンド結果の送信完了までは、ステップ６１１とステップ６１２を繰り返し行っている。コマンド結果の送信完了後、ステップ６０１に戻る。
【符号の説明】
【００４７】
１０１  サーバ
１０２  TFTPサーバ
１０３  サーバ側機能切替部
１０４  コマンド配信部
１０５  コマンド結果受信部
１０６  データベース操作部
１０７  サーバ側ファイル転送機能部
１１１  デバイス
１１２  TFTPクライアント
１１３  デバイス側機能切替部
１１４  コマンド受信部
１１５  コマンド結果配信部
１１６  コマンド実行部
１１７  デバイス側ファイル転送機能部
１２１  コマンド情報DB
１３１  管理端末
１３２  表示部
１４１  回線網
２１０  コマンドデータ
２１１  コマンドID
２１２  コマンド名
２１３  デバイス識別子
２１４  実行状態
２１５  優先度
２１６  引数
２２０  コマンド結果データ
２２１  コマンドID
２２２  コマンド結果
３１０  コマンド登録
３１１  対象デバイス
３１２  コマンド名
３１３  登録ボタン
３２０  コマンド実行結果
３２１  デバイス識別子
３２２  コマンド名
３２３  コマンド結果
３３１  コマンド登録リンク
３３２  コマンド実行結果リンク
【図１】
2014194708.tif 000003
【図２】
2014194708.tif 000004
【図３】
2014194708.tif 000005
【図４】
2014194708.tif 000006
【図５】
2014194708.tif 000007
【図６】
2014194708.tif 000008