(57)【要約】      （修正有）【課題】通信装置の様々な条件へ柔軟に対応して通信プロトコルを選択でき、外部からの指示を必要とせずに通常の通信プロトコルへ戻ることができる通信装置を提供する。【解決手段】通信プロトコルの指定のエントリを１以上含む第１のテーブルを備え、１以上の通信プロトコルの中から１つの通信プロトコルを選択して送信および／あるいは受信する通信装置の処理方法であって、通信装置における状態により満たされる前記通信装置の状態条件を含むエントリを前記第２のテーブルから検索するステップと、前記検索で満たされたエントリが含む位置を前記第２のテーブルから取得するステップと、前記取得した位置のエントリの通信プロトコルの指定を前記第１のテーブルから取得するステップと、前記取得した通信プロトコルの指定にしたがって、前記１つの通信プロトコルを選択して送信および／あるいは受信するステップと、を有する。【選択図】図１
2015144377.tif 000002
【特許請求の範囲】
【請求項１】
通信プロトコルの指定のエントリを１以上含む第１のテーブルを備え、通信装置の状態条件と前記第１のテーブルのエントリの位置を対応付けるエントリを１以上含む第２のテーブルを備え、前記１以上の通信プロトコルの中から１つの通信プロトコルを選択して送信および／あるいは受信する通信装置の処理方法であって、
前記通信装置における状態を取得するステップと、
前記取得した通信装置における状態により満たされる前記通信装置の状態条件を含むエントリを前記第２のテーブルから検索するステップと、
前記検索で満たされたエントリが含む位置を前記第２のテーブルから取得するステップと、
前記取得した位置のエントリの通信プロトコルの指定を前記第１のテーブルから取得するステップと、
前記取得した通信プロトコルの指定にしたがって、前記１つの通信プロトコルを選択して送信および／あるいは受信するステップと、
を有することを特徴とする通信装置の処理方法。
【請求項２】
前記通信装置は、前記第１のテーブルのエントリの開始位置の情報と、前記第１のテーブルの通常選択されるエントリの通常位置の情報をさらに備え、
前記通常位置の情報と前記開始位置の情報とを比較するステップと、
前記比較において異なる場合は、前記通信装置における状態によって前記開始位置の情報を前記通常位置の情報とするか否かを決定するステップと、
をさらに有することを特徴とする請求項１に記載の通信装置の処理方法。
【請求項３】
前記通信装置における状態として電源残量を取得するステップと、
前記取得した電源残量により満たされる前記通信装置の状態条件を含むエントリを前記第２のテーブルから検索するステップと、
前記検索で満たされたエントリが含む位置を前記第２のテーブルから取得するステップと、
をさらに有することを特徴とする請求項２に記載の通信装置の処理方法。
【請求項４】
前記第１のテーブルは通信プロトコルの指定のエントリに加えて前記通信装置の状態の種類と前記第２のテーブルの指定を対応付けるエントリをさらに含み、
前記通信装置は前記通信装置の状態の種類ごとに１以上の前記第２のテーブルを備え、
前記通信装置の状態の種類と前記第２のテーブルの指定を前記第１のテーブルから取得するステップと、
前記取得した通信装置の状態の種類に対応する前記通信装置における状態を取得するステップと、
前記取得した通信装置における状態により満たされる前記通信装置の状態条件を含むエントリを前記取得により指定された第２のテーブルから検索するステップと、
をさらに有することを特徴とする請求項１に記載の通信装置の処理方法。
【請求項５】
異なる通信プロトコルの指定のエントリを複数含む第１のテーブルを備え、通信の結果情報と前記第１のテーブルのエントリの開始位置を対応付けるエントリを１以上含む第２のテーブルを備え、複数の前記異なる通信プロトコルの中から１つの通信プロトコルを選択して送信および／あるいは受信する通信装置の処理方法であって、
送信および／あるいは受信の結果を通信の実行結果として取得するステップと、
前記取得した通信の実行結果と一致する前記通信の結果情報を含むエントリを前記第２のテーブルから取得するステップと、
前記一致して取得したエントリの開始位置を前記第２のテーブルから取得するステップと、
前記取得した開始位置のエントリの通信プロトコルの指定を前記第１のテーブルから取得するステップと、
前記取得した通信プロトコルの指定にしたがって、前記１つの通信プロトコルを選択して送信および／あるいは受信するステップと、
を有することを特徴とする通信装置の処理方法。
【請求項６】
前記通信装置は、前記第１のテーブルのエントリの開始位置の情報と、前記第１のテーブルの通常選択されるエントリの通常位置の情報をさらに備え、
前記通常位置の情報と前記開始位置の情報とを比較するステップと、
前記比較において異なる場合は、前記取得した通信の実行結果によって前記開始位置の情報を前記通常位置の情報とするか否かを決定するステップと、
をさらに有することを特徴とする請求項５に記載の通信装置の処理方法。
【請求項７】
前記通信の実行結果として通信タイムアウトを取得するステップと、
前記通信の結果情報として通信タイムアウトで一致するエントリを前記第２のテーブルから取得するステップと、
前記取得したエントリが含む開始位置を前記第２のテーブルから取得するステップと、
前記開始位置の情報を前記取得した開始位置へ変更するステップと、
をさらに有することを特徴とする請求項６に記載の通信装置の処理方法。
【請求項８】
前記通信装置は通信プロトコルごとに前記第２のテーブルを備え、
前記取得した通信の実行結果と一致する前記通信の結果情報を含むエントリを、前記送信および／あるいは受信に使用した通信プロトコルに対応する第２のテーブルから取得するステップを有することを特徴とする請求項５に記載の通信装置の処理方法。
【請求項９】
複数の通信プロトコルの中から１つの通信プロトコルを選択して送信および／あるいは受信する通信装置であって、
通信装置の状態の種類と第１の動作を対応付けるエントリを含む第１のテーブルを格納し、通信装置の状態条件と第２の動作を対応付けるエントリを含む第２のテーブルを格納し、通信の結果情報と第３の動作を対応付けるエントリを含む第３のテーブルを格納し、前記第１のテーブルのエントリを指し示す開始位置を格納し、前記第１の動作は前記第２のテーブルの指定を含み、前記第１〜３の動作の少なくとも１つに通信プロトコルの指定を含む管理部と、
前記通信装置における状態を取得する情報取得部と、
前記開始位置の前記通信装置の状態の種類と前記第１の動作として前記第２のテーブルの指定を取得した場合、前記通信装置の状態の種類に対応する前記通信装置における状態を前記情報取得部から取得し、該取得した通信装置における状態により満たされる前記通信装置の状態条件を含むエントリを前記指定された第２のテーブルから検索し、該検索で満たされたエントリが含む第２の動作を実行することに加え、前記第１〜３の動作が通信プロトコルの指定の場合は該指定に基づき通信プロトコルを選択する選択部と、
送信および／あるいは受信の結果を通信の実行結果として取得し、前記取得した通信の実行結果と一致する前記通信の結果情報を含むエントリを前記第３のテーブルから取得し、該取得した第３のテーブルのエントリの第３の動作を実行し、該実行した第３の動作が前記開始位置の設定の場合は前記開始位置を変更する実行結果処理部と、
を備えたことを特徴とする通信装置。
【請求項１０】
前記管理部は前記第１のテーブルのエントリを指し示す通常位置をさらに格納し、
前記選択部は、前記開始位置と前記通常位置とを比較し、前記開始位置と前記通常位置とが異なる場合は、前記第２のテーブルの第２の動作によって前記開始位置を前記通常位置とするか否かを決定すること
を特徴とする請求項９に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置およびその処理方法に関するものである。
【背景技術】
【０００２】
近年、ビッグデータを収集・分析・活用することが、今後の社会やビジネスで期待されており、世界中に配置された数十億以上のセンサデバイスなどから驚異的な頻度でデータが生成されている。そして、昨今の変化の著しい市場環境ではこれらの多量のデータを収集することが課題となる。ここで、大量のデータを収集するためのキーワードとしてM2Mが挙げられる。M2MとはMachine to Machineの略語であり、機械と機械が人間の手を介さずにネットワークを通じて相互に情報交換を行う仕組みを意味する。M2Mにより自動的にデータを収集することで、効率的に大量のデータを収集することができると期待される。以下、M2Mにおいてセンサデバイスからデータ取得し、取得したデータをサーバに送信する機器をM2Mデバイスと呼ぶ。
【０００３】
これまでに実現されているM2Mを用いたデータ収集システムは業種毎にそれぞれ個別に実現される垂直統合型であり、今後はさらに様々な機器からデータを取得、活用して行くため、業種に捉われない汎用的なシステムを構築し、複数業種のデータをまとめて収集可能とする水平統合型のデータ収集システムの実現が求められる。水平統合型のデータ収集システムでは、多種多様な業種のM2Mデバイスから生成されるデータを受付けるが、M2Mデバイスは業種毎の要件に合わせて実装されており、業種毎に異なった仕様となっているので、例えば通信プロトコルなども異なっていた。
【０００４】
例えば、特許文献１には「端末側で、あらかじめ各種プロトコルの最適なデータ量のしきい値を統計データとして取得しておく。センタとデータを通信する際に、センタから送られて来るデータの長さを取得する。最適プロトコル認識装置２により、データ長に応じた最適なプロトコルを決定する。データ長に応じた最適なプロトコルに切り替える。端末側は常に最適なプロトコルでデータを受信し、センタとデータ通信を行なう。データ通信量に応じて利用者の課金がなるべく安くてすむような通信プロトコルを自動判別して通信を行なうことができる」技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１５１７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された技術を用いれば、特定の条件において最適な通信プロトコルを選択することは可能である。
【０００７】
しかしながら、M2Mデバイスのデータ送受信の要件は業種によって様々であると考えられる。例えば、データの送信量に応じて通信量が増加するような通信回線を利用するM2Mデバイスであれば、通信量を最小とすることでの通信コストの低減が重要となることが考えられる。また、センサから取得されるデータ量は比較的小さいものであり、比較的小さいデータを送受信するプロトコルとして現状標準化されている、もしくは標準化が進んでいるものとしては、TFTP（Trivial File Transfer Protocol）、CoAP（Constrained Application Protocol）などが挙げられる。現状ではこれらの通信プロトコルを使い分けることが最適であると考えられるが、将来的にはさらに効率的な通信プロトコルが定義される可能性もあり、特定の通信プロトコルに捉われない使い分けが必要となる。また、データ送受信機能を適用するM2Mデバイスのリソース量（CPU処理能力、メモリ、ストレージ容量など）も様々であり、リソース量に応じて処理を変えることが必要となる。
【０００８】
これに対して、特許文献１に開示された技術では、このような様々な条件に対応できない。また、通信プロトコルを変更した後で通常の通信プロトコルへ戻す必要のある場合もあるが、多数のM2Mデバイスへ外部から指示を出すことは管理コストが大きくなる可能性もある。
【０００９】
そこで、本発明の目的は、通信装置であるM2Mデバイスの様々な条件へ柔軟に対応して通信プロトコルを選択できることにある。また、外部からの指示を必要とせずに通常の通信プロトコルへ戻ることができることにある。
【課題を解決するための手段】
【００１０】
本発明にかかる通信装置の処理方法は、通信プロトコルの指定のエントリを１以上含む第１のテーブルを備え、通信装置の状態条件と前記第１のテーブルのエントリの位置を対応付けるエントリを１以上含む第２のテーブルを備え、前記１以上の通信プロトコルの中から１つの通信プロトコルを選択して送信および／あるいは受信する通信装置の処理方法であって、前記通信装置における状態を取得するステップと、前記取得した通信装置における状態により満たされる前記通信装置の状態条件を含むエントリを前記第２のテーブルから検索するステップと、前記検索で満たされたエントリが含む位置を前記第２のテーブルから取得するステップと、前記取得した位置のエントリの通信プロトコルの指定を前記第１のテーブルから取得するステップと、前記取得した通信プロトコルの指定にしたがって、前記１つの通信プロトコルを選択して送信および／あるいは受信するステップと、を有することを特徴とする。
【００１１】
また、本発明にかかる通信装置の処理方法は、通信装置が、前記第１のテーブルのエントリの開始位置の情報と、前記第１のテーブルの通常選択されるエントリの通常位置の情報をさらに備え、前記通常位置の情報と前記開始位置の情報とを比較するステップと、前記比較において異なる場合は、前記通信装置における状態によって前記開始位置の情報を前記通常位置の情報とするか否かを決定するステップと、をさらに有することを特徴とする。  
また、本発明は通信装置としても把握される。
【発明の効果】
【００１２】
本発明によれば、M2Mデバイスの様々な条件へ柔軟に対応して通信プロトコルを選択でき、外部からの指示を必要とせずに通常の通信プロトコルへ戻ることができる。
【図面の簡単な説明】
【００１３】
【図１】データ収集システムの構成の例を示す図である。
【図２】プロトコル選択ルール管理部の例を示す図である。
【図３】プロトコル選択部の全体処理フローの例を示す図である。
【図４】プロトコル選択部の復帰確認処理フローの例を示す図である。
【図５】実行結果処理部の処理フローの例を示す図である。
【図６】通信エラーにより再送する処理シーケンスの例を示す図である。
【図７Ａ】実施例２でのプロトコル選択ルールテーブルの例を示す図である。
【図７Ｂ】実施例２での条件テーブルの例を示す図である。
【図７Ｃ】実施例２での実行結果処理テーブルの例を示す図である。
【図８Ａ】実施例２での電源残量が多い場合の処理シーケンスの例を示す図である。
【図８Ｂ】実施例２での電源残量が減少した場合の処理シーケンスの例を示す図である。
【図８Ｃ】実施例２での電源残量が復帰した場合の処理シーケンスの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を用いて各実施例を説明する。
【実施例１】
【００１５】
ここでは、好ましいM2Mデバイスの基本的な構造と、M2Mデバイスがセンサからデータを受信してデータ収集サーバへ送信する際に、データ収集サーバとの通信の異常への対応処理と異常からの復帰処理について説明する。
【００１６】
図１はデータ収集システムの構成の例を示す図である。例えば複数の同じセンサなどには同じ符号を付け、物としては別であることを区別するために、-N（Nは自然数）を符号に付けてある。-Nを除き単に符号を示す場合は、-Nという個別の物とは関係なく共通の説明である。
【００１７】
センサ11は温度、湿度、照度などといった様々な情報を取得可能なデバイスである。１つのセンサ11により１つの情報を取得してもよいし、複数の情報を取得してもよい。M2Mデバイス12はセンサ11から温度などの情報を取得してデータ収集サーバ14に送信する端末あるいは通信装置である。M2Mデバイス12はセンサ11が対応するインタフェースを介してM2Mデバイス12の外に存在するセンサ11からデータを取得する構成であってもよいし、M2Mデバイス12内にセンサ11が含まれる構成であってよい。M2Mデバイス12は１以上のネットワーク13に対する通信モジュール109を有し、それぞれの通信モジュール109によってネットワーク13を介しデータ収集サーバ14と接続される。さらに、M2Mデバイス12には1以上の通信プロトコル107が実装されており、それぞれの通信プロトコル107を用いてデータ収集サーバ14に送信する。また、図１においてM2Mデバイス12は２つ備えられているが、２つに限定されるものではなく、３以上のM2Mデバイス12が備えられてもよい。
【００１８】
ネットワーク13はインターネットなどの有線回線、３Ｇや無線LANなどの無線回線といった通信回線であり、M2Mデバイス12とデータ収集サーバ14とを接続するものである。このネットワーク13も２つに限定されるものではなく、３以上備えられてもよい。データ収集サーバ14は、M2Mデバイス12がセンサ11から取得したデータを受付けるサーバであり、M2Mデバイス12に実装された通信プロトコル107に対応する通信機能とサーバ機能が実装されている。データ収集サーバ14はM2Mデバイス12から受信したデータをデータ収集サーバ14に接続される図示を省略したストレージに蓄積する、または、受信したデータを処理する図示を省略した上位のアプリケーションに渡す機能を有する。
【００１９】
次にM2Mデバイス12-1の構成について説明する。M2Mデバイス12-2の構成もM2Mデバイス12-1と同じであるため、図示と説明を省略する。ユーザアプリケーション102はセンサ11-1からデータを取得し、必要に応じてデータを処理する機能を有しており、センサ11-1から取得したデータ、または取得して処理されたデータをデータ送受信モジュール101に渡す。ユーザアプリケーション102はネットワーク13へのデータの送信機能をデータ送受信モジュール101と通信モジュール109に任せることでデータ収集サーバ14へのデータ送信処理に関する実装を必要とすることがなくなる。センサ11-1にはデータを取得するために各種の設定が必要なものもある。このため、データ送受信モジュール101からユーザアプリケーション102を経由してセンサ11-1へ設定情報を送信してもよい。
【００２０】
データ送受信モジュール101はユーザアプリケーション102から受け渡されたデータをデータ収集サーバ14に送信するためのソフトウェアを含む。以下にデータ送受信モジュール101の構成要素に関して説明する。データ送受信部103はユーザアプリケーション102からのデータを受け取る、あるいはユーザアプリケーション102へ設定情報などを送るインタフェースである。データ送受信モジュール101の内部構造が変更されたとしてもデータ送受信部103が互換性のあるインタフェースをユーザアプケーション102に提供することにより、ユーザアプリケーション102を変更することなくデータ送受信モジュール101へ接続することが可能である。
【００２１】
プロトコル選択部104は状態取得部105およびプロトコル選択ルール管理部106から必要な情報を取得し、M2Mデバイス12-1などに関する状態に応じてネットワーク13経由で送受信する最適なプロトコルを選択する。この選択するための情報とデータ送受信部103から受け取ったデータを通信プロトコル107へ渡す。プロトコル選択部104の処理に関しては図３、４などを用いて後で説明する。
【００２２】
状態取得部105はM2Mデバイス12-1などに関する各種情報を取得してプロトコル選択部104からの要求に応じて返信する。ここでM2Mデバイス12-1などに関する各種情報とは、M2Mデバイス12-1の設定情報、M2Mデバイス12-1のメモリ容量やストレージ容量などの静的な情報を含み、また、M2Mデバイス12-1のCPU利用率、メモリ使用量、電源残量、M2Mデバイスが接続する通信回線の利用可能状況、データ通信量、パケットロス率、M2Mデバイスに組み込まれた各通信プロトコルでの送受信結果といった動的な情報などを含む。さらに、M2Mデバイス12-1として取得できる情報であれば、M2Mデバイス12-1の外の情報であっても、それらの情報を含めてもよい。これらの情報の中で状態取得部105は１つの情報を取得して返信してもよいし、任意の組み合わせの複数の情報を取得して返信してもよい。
【００２３】
プロトコル選択ルール管理部106はプロトコル選択部104がデータを送受信するプロトコルを決定する際に利用する各種情報を格納している。この各種情報には、状態取得部105で取得されるM2Mデバイス12-1などに関する状態の情報とプロトコルとの対応などの情報が含まれる。各種情報に関しては図２を用いて後で説明する。
【００２４】
通信プロトコル107は、M2Mデバイス12-1にて利用可能なネットワーク13で送受信するプロトコルを処理するものである。通信プロトコル107は1以上実装されており、通信プロトコルＡ107-1がプロトコルＡを処理し、通信プロトコルＢ107-2がプロトコルＢを処理するというように、それぞれで異なるプロトコルを処理できる。また、通信プロトコル107はM2Mデバイス12-1稼働後であっても柔軟な追加、削除が可能となるようにそれぞれがソフトウェア部品化あるいはプラグインソフトウェア化されている。通信プロトコル107はプロトコル選択部104から受け取ったデータを通信モジュール109経由でデータ収集サーバ14に送信するが、通信プロトコル107が利用する通信モジュール109は固定的に決まったものであってもよいし、M2Mデバイス12-1などに関する状態に応じて複数の通信モジュール109のうちから選択して、選択された通信モジュール109を用いてデータを送信してもよい。
【００２５】
実行結果処理部108は特定の通信プロトコル107を用いてデータ送受信サーバ14にデータを送信した結果を処理し、プロトコル選択ルール管理部106へ通知する。送信した結果には送信成功や通信タイムアウトなどのエラーに関する情報もある。通信モジュール109はM2Mデバイス12-1に例えば物理層のネットワーク機能を実装するためのモジュールであり、１以上の通信モジュール109が実装される。通信モジュールＡ109-1がネットワークＡ13-1の物理層に対応し、通信モジュールＢ109-2がネットワークＢ13-2の物理層に対応する。また、通信モジュール109に物理層より上位の層まで含めてもよい。なお、データ送受信モジュール101と通信モジュール109をハードウェアの実装単位とし、データ送受信モジュール101内の各部と通信プロトコル109をソフトウェアの実装単位としてもよい。
【００２６】
次に、プロトコル選択ルール管理部106に格納される情報について説明する。図２はプロトコル選択ルール管理部106の例を示す図である。プロトコル選択ルールテーブル21-1の1つのエントリは、ルールID 211-1、パラメータ212-1、動作213-1の３つのフィールドから構成される。ルールID 211-1はプロトコル選択ルールテーブル21-1の特定のエントリを指し示すための識別子を格納するものであり、各エントリに対して異なる値が割り振られる。プロトコル選択部104はルールID 211-1の値を用いてプロトコル選択ルールテーブル21-1の特定のエントリにアクセスする。
【００２７】
パラメータ212-1はプロトコル選択部104がプロトコル選択処理の際の条件とする比較対象を格納するものである。パラメータ212-1に格納される情報は、状態取得部105から取得可能なM2Mデバイス12-1などに関する動的な情報のほか、ユーザアプリケーション102から受信したデータのデータサイズ、そのデータを活用するアプリケーションの情報といったものを指し示す識別子である。プロトコル選択部104はルールID 211-1で指定されるプロトコル選択ルールテーブル21-1のエントリを取得した後、取得したエントリのパラメータ212-1に格納された識別子に対応する比較対象の情報を状態取得部105から取得し、プロトコルを選択する。なお、パラメータ212-1には何も指定しないNULLが格納されていてもよく、その場合は必ず条件にあてはまると判定する。
【００２８】
動作213-1はパラメータ212-1で指定された識別子の情報を用いて、次にどのような処理を実施するかを指定するものである。動作213-1として指定される処理は、例えばパラメータ212-1で指定された比較対象の比較条件を指定する条件テーブル22-1を指定する、あるいは指定されたルールIDの値によりさらに条件検索を実施する、あるいはユーザアプリケーション102から受信したデータを送信する通信プロトコルを指定する、あるいは後で説明する開始ルールID 26を変更する、あるいはプロトコル選択ルール適用の復帰処理を実行する、などがある。何も指定しないNULLが格納されていてもよく、次の処理が存在しないことを示す。
【００２９】
図２の例では、ルールID 211-1の値１にて識別されるエントリは、パラメータ212-1の値としてNULL、動作213-1の値としてプロトコルＡを選択すると設定されている。ルールID 211-1の値２にて識別されるエントリは、パラメータ212-1の値としてNULL、動作213-1の値としてプロトコルＢを選択すると設定されている。ルールID 211-1の値 999にて識別されるエントリは、パラメータ212-1の値としてプロトコルＢの送信数、動作213-1の値として条件ID  Ａを参照すると設定されている。
【００３０】
プロトコル選択ルールテーブル21-1はM2Mデバイス12-1製造時に書き込まれるものとし、M2Mデバイス12-1の動作時にネットワーク13経由で何らかのサーバからの指示により変更されてもよいし、M2Mデバイス12-1が公開するテーブル書換えインタフェースを介して書き換えられてもよい。
【００３１】
条件テーブル22-1の1つのエントリは、条件221-1、値222-1、動作223-1の３つのフィールドから構成される。条件テーブル22-1は特定のパラメータ212-1の値に対して１つ以上存在するテーブルであり、M2Mデバイス12-1などに関する情報の示す状況によって特定のパラメータ212-1に対し適切な条件テーブル22-1が指定される。条件テーブル22-1は例えば条件ID Ａなどの条件IDによって他の条件テーブル22-1と一意に識別されるものであり、プロトコル選択部104は条件IDによってプロトコル選択ルール管理部106から目的の条件テーブル22-1を取得する。
【００３２】
条件221-1は比較条件を表すものであり、等しい（＝）、異なる（！＝）、より大きい（＞）、より小さい（＜）、以上（＞＝）、以下（＜＝）という等号や不等号を表す識別子である。なお、何も指定しないNULLが格納されていてもよく、その場合は常に条件が成立するものと判定する。値222-1は条件221-1で指定される等号や不等号を用いてパラメータ212-1によって指定される状態の値と比較する際のしきい値（比較対象の値）である。条件IDに基づいて条件テーブル22-1を取得したプロトコル選択部104は条件テーブル22-1の先頭のエントリから順にパラメータ212-1によって指定される状態の値と値222-1の値とを比較し、条件に合致する場合は条件の合致したエントリの動作223-1にて指定された動作を実行する。なお、動作223-1の内容の種類としては動作213-1と同じ種類の内容が設定可能である。
【００３３】
図２の例では、条件テーブル22-1の条件IDがＡという識別子にして識別されるテーブルの一状態を示したものである。条件221-1の値（＝）で識別されるエントリの値222-1には０という値が格納され、動作223-1にはNULLが格納されている。また、条件221-1の値（＞＝）にて識別されるエントリの値222-1には、１という値が格納され、動作223-1には復帰確認実行という処理が格納されている。これは、ルールID 211-1の値999で識別されるプロトコル選択ルールテーブル21-1のエントリから参照されるものであり、通信プロトコルＢにてデータを送信開始してから２回目のデータ送信にて、通常のプロトコル選択処理を試行するという動作に対応する。なお、２回目であるのに値222-1の値が１であるのは処理の実装に基づいている。
【００３４】
実行結果処理テーブル23の1つのエントリは結果231と動作232の２つのフィールドから構成される。実行結果処理テーブル23はM2Mデバイス12-1に組み込まれるプロトコル毎に存在し、プロトコル選択部104の決定により特定のプロトコルにてデータを送受信した後、送受信したプロトコルによる通信の結果によって次の処理動作が決定される。結果231は通信の結果であり、動作232は次の処理動作である。なお、動作232の内容の種類としては動作213-1と同じ種類の内容が設定可能である。
【００３５】
図２の例では、プロトコルＡに対する実行結果処理テーブル23-1およびプロトコルＢに対する実行結果処理テーブル23-2の状態を示している。プロトコルＡに対する実行結果処理テーブル23-1は、結果231-1が送信成功、通信タイムアウト、エラー応答を示す識別子から識別される３つのエントリから構成され、それぞれの動作として開始ルールIDをルールID 1に設定、開始ルールIDをルールID 2に設定、何も処理しないことを示すNULLが格納されている。プロトコルＢに対する実行結果処理テーブル23-2は、どの結果231-2の値に対して処理を実行しないことを想定しており、すべてNULLが格納されている。
【００３６】
プロトコル選択ルール管理部106はテーブルでないルールIDとプロトコルに関する４つの情報も格納する。デフォルトルールID 24は正常に送受信できるなどの通常状態でのプロトコル選択ルールテーブル21-1の参照開始エントリを示すルールIDの値である。デフォルト通信プロトコル25はプロトコル選択部104の選択時の例外によりプロトコルが選択されない場合に強制的に選択されるプロトコルの識別子である。デフォルト通信プロトコル25に格納されるプロトコルは、例えば積極的に最適なものとして選択されるプロトコルがない場合に選択されるプロトコルや、使用実績があるプロトコルなどである。開始ルールID 26はプロトコル選択部104がプロトコル選択処理を開始した時点におけるプロトコル選択ルールテーブル21-1の参照エントリを示すルールIDの値である。復帰確認ルールID 27はプロトコル選択部104もしくは実行結果処理部108の処理によりデフォルトルールID 24の値と開始ルールID 26の値が異なっていた場合に、開始ルールID 26の値をデフォルトルールID 24の値としてプロトコル選択処理を実施するか否かを判定するルールID の値である。
【００３７】
図３はプロトコル選択部104の処理フローの例を示す図である。プロトコル選択部104によるプロトコルの選択処理は、ユーザアプリケーション102からデータを受信した場合、もしくはデータ収集サーバ14からデータの要求を受信した場合などに、ステップ301から開始する。
【００３８】
データの受信後、ステップ301でプロトコル選択部104はデータ送受信部103を介してユーザアプリケーション102からのデータ送信要求を受信する。データ送信要求を受信したプロトコル選択部104は、ステップ302でプロトコル選択ルール管理部106から開始ルールID 26の値とデフォルトルールID 24の値を取得する。ステップ303で開始ルールID 26の値とデフォルトルールID 24の値を比較し、値が異なっていた場合は通常のプロトコル選択処理から外れているため、ステップ304の復帰確認処理を実施する。
【００３９】
ステップ303で値が同じであった場合、プロトコル選択部104はステップ305でプロトコル選択ルール管理部106のプロトコル選択ルールテーブル21-1から、開始ルールID 26の値で指定されるエントリすなわちルールID 211-1の値が開始ルールID 26の値と一致するエントリの各値を取得する。そして、取得したエントリのパラメータ212-1から比較対象とする状態の識別子を取得する。プロトコル選択部104はステップ306でパラメータ212-1に格納される値とNULLを比較する。パラメータ212-1に格納された値がNULLでない場合、ステップ307でパラメータ212-1に格納される識別子に指定される値を状態取得部105から取得する。次に動作213-1に格納される条件IDにて識別される条件テーブル22-1の各値を取得し、ステップ307で状態取得部105から取得した値が、値222-1の値と条件221-1の等号や不等号の関係を満たすエントリをステップ308で検索し、検索により条件を満たしたエントリの動作223-1に格納される値を取得する。
【００４０】
プロトコル選択部104はステップ309で動作213-1の値あるいは動作223-1の値とルールID 211-1の値とを比較し、ステップ315で動作213-1の値あるいは動作223-1の値と開始ルールID 26の値とを比較する。すなわちステップ306でパラメータ212-1の値がNULLであった場合、ステップ306からステップ309へ進み、プロトコル選択ルールテーブル21-1の動作213-1の値がルールID 211-1のいずれかの値であるかをステップ309で比較し、ルールID 211-1の値であると、動作213-1の値と開始ルールID 26の値とをステップ315で比較する。これに対しステップ306でパラメータ212-1の値がNULLでない場合、ステップ307、308、309と進み、ステップ308の検索により条件を満たしたエントリの動作223-1の値がルールID 211-1のいずれかの値であるかをステップ309で比較し、ルールID 211-1の値であると、動作223-1の値と開始ルールID 26の値とをステップ315で比較する。
【００４１】
ステップ315で、動作213-1の値あるいは動作223-1の値と開始ルールID 26の値とが等しい場合は、プロトコル選択ルール21がループしているため、ステップ314でデータ送受信のプロトコルとしてデフォルト通信プロトコル25に格納されたプロトコルを選択する。ステップ315で、動作213-1の値あるいは動作223-1の値と開始ルールID 26の値とが異なる場合には、動作213-1の値あるいは動作223-1の値であるルールIDを用いて、プロトコル選択ルールテーブル21-1からエントリを取得するため、ステップ305へ戻り、ステップ305からの処理を再度実行する。
【００４２】
プロトコル選択部104は動作213-1の値あるいは動作223-1の値が開始ルールID 26の値の変更であるか否かをステップ310で比較し、開始ルールID 26の値の変更であった場合はステップ311へ進み、開始ルールID 26の値を変更する。これに対しステップ310の比較結果が開始ルールID 26の値の変更でない場合はステップ312へ進む。動作213-1の値あるいは動作223-1の値がプロトコルであるかをステップ312で確認し、プロトコルである場合は、動作213-1の値あるいは動作223-1の値により特定されるプロトコルをステップ313で選択する。ステップ312の確認の結果がプロトコルでない場合はステップ314へ進み、デフォルト通信プロトコル25に格納されたプロトコルを選択する。
【００４３】
以上の動作により、プロトコル選択部104は条件に応じて最適なプロトコルを選択することが可能となるとともに、M2Mデバイス12-1などに関する状態に応じて最短の条件選択が可能となる。
【００４４】
図４は図３の復帰確認処理304の処理フローの例を示す図である。復帰確認処理304において、プロトコル選択部104はプロトコル選択ルール管理部106から復帰確認ルールID 27の値を取得し、取得した値と一致するルートID 211-1の値を有するエントリを図４のステップ305で取得する。図４のステップ305から309の処理は図３を用いて既に説明した同じ符号の処理と同じであるので説明を省略する。
【００４５】
動作213-1の値あるいは動作223-1の値が復帰確認実行であるかをステップ401で確認し、復帰確認実行であった場合はステップ402へ進み、開始ルールID 26の値をデフォルトルールID 24の値に変更する。ステップ401の確認の結果が復帰確認実行でなかった場合は、そのまま復帰確認処理304を終了する。
【００４６】
図５は実行結果処理部108の処理フローの例を示す図である。実行結果処理部108による実行結果の処理は、M2Mデバイス12-1からデータ送受信サーバ14にデータの送受信を実施した後、送信に対する応答を受信した際などにステップ501から開始する。
【００４７】
まず実行結果処理部108がステップ501で通信プロトコル107からデータの送受信結果を受け取とると、ステップ502でプロトコルを識別する情報を取得する。そして取得した情報に基づきプロトコルに対応する実行結果処理テーブル23を取得し、取得した実行結果処理テーブル23の結果231の値とステップ501で取得した送受信結果とを比較し、一致するエントリの動作232に格納された値をステップ503で取得する。
【００４８】
実行結果処理部108はステップ503で取得した動作232の値とNULLとを比較し、NULLであった場合はそのまま実行結果処理部108の処理を終了し、次の開始を待つ。次にステップ503で取得した動作232の値がルールIDを示しているか否かをステップ505で確認し、ルールIDであった場合はステップ506へ進み、動作232の値のルールIDを図３のステップ306からのルール処理をするようプロトコル選択部104を起動する。さらに、ステップ503で取得した動作232の値が開始ルールID 26の更新であるか否かをステップ507で確認し、開始ルールID 26の更新である場合はステップ508へ進み、開始ルールID 26の値を動作232の値で指定されたルールIDに変更する。
【００４９】
ステップ507での確認結果が開始ルールID 26の値の変更でない場合はステップ509へ進み、動作232の値がプロトコルであるかをステップ509で確認し、プロトコルである場合はステップ510へ進み、動作232の値で指定されるプロトコルを選択するようプロトコル選択部104を起動する。ステップ509の確認結果がプロトコルでない場合はステップ511へ進み、デフォルト通信プロトコル25の値をプロトコルとして選択するようプロトコル選択部104を起動する。
【００５０】
以下にセンサ11から受信したデータをデータ収集サーバ14へ送信するデータ送受信モジュール12の処理シーケンスを通信タイムアウトによるプロトコルの変更も含めて説明する。ここでは、図２に示したとおりデフォルトルールID 24の値は１、開始ルールID 26の値は１、復帰確認ルールID 27の値は999が格納されている。利用可能な通信プロトコルは通信プロトコルＡ107-1と通信プロトコルＢ107-2であって、通信プロトコルＢ107-2は通信プロトコルＡ107-1より通信の安定した実績のあるプロトコルであり、通信モジュール109はある１つの通信回線が利用可能である。図６はデータ送信の処理シーケンスの例を示す図である。
【００５１】
まず、ユーザアプリケーション102からデータ送受信部103を介してプロトコル選択部104がデータを受信する（シーケンス601）。そして、プロトコル選択部104は図６のステップ301から処理を開始する。データを受信したプロトコル選択部104はステップ302にしたがいプロトコル選択ルール管理部106から開始ルールID 26の値１とデフォルトルールID 24の値１を取得し、ステップ303からステップ305へ進み、開始ルールID 26に格納された値１を用いてプロトコル選択ルールテーブル21-1からルールID 211-1の値１のエントリを取得する（シーケンス602）。取得したエントリのパラメータ212-1の値としてNULL、動作213-1としてプロトコルＡが格納されているので、ステップ306、309、310、312、313と進む選択処理の結果、プロトコルＡをデータ送信に用いるプロトコルとして決定し、通信プロトコルＡ107-1にデータを受け渡す（シーケンス603）。データを受信した通信プロトコルＡ107-1はデータ収集サーバ14へのデータ送信を実行する（シーケンス604）。
【００５２】
ここで、データ収集サーバ14のプロトコルＡに対する通信機能が停止して応答しない場合、通信プロトコルＡ107-1は通信タイムアウトを検出し、その実行結果を実行結果処理部108に送信する（シーケンス605）。通信タイムアウトの実行結果を受信した実行結果処理部108は再送要求を意味する通信タイムアウトのエラー通知をプロトコル選択部104とデータ送受信部103経由でユーザアプリケーション102へ転送して（シーケンス606）、図５のステップ501〜503と進み、プロトコルＡの実行結果処理テーブル23-1を取得し、結果231-1が通信タイムアウトであるエントリの動作232-1の処理を取得する。ここでは、動作232-1が開始ルールIDをルールID ２に設定であるため、実行結果処理部108はステップ504、505、507、508と進み、開始ルールID 26の値を１から２へ変更する（シーケンス607）。
【００５３】
上記状況においてユーザアプリケーション102からの再送のためにシーケンス601と同じデータを受け取った（シーケンス608）プロトコル選択部104は、開始ルールID 26の値が２でデフォルトルールID 24の値が１であるので、ステップ301〜304と進み、ステップ304で図４の復帰確認処理を実行する（シーケンス609）。プロトコル選択部104は図４のステップ305で復帰確認ルールID 27の値を取得して、復帰確認ルールID  27の値999に基づきプロトコル選択ルールテーブル21-1のルールID 211-1の値が999で識別されるエントリを取得し、パラメータ212-1としてプロトコルＢ送信数、動作213-1として条件ID Ａを得る。ここでプロトコルＢでのデータ送信の試行はこれまでに無く試行回数は０のため条件ID Ａで識別される条件テーブル22-1のエントリを比較した結果、動作223-1としてはNULLが得られ、ステップ401がＮＯとなって復帰確認を実施しないと判断され、図３に戻ってステップ305へ進む。
【００５４】
したがって、開始ルールID 26に格納された２に基づいて、プロトコル選択ルールテーブル21-1からルールID 211-1の値が２のエントリを取得し（シーケンス610）、ステップ312、313の選択処理の結果としてプロトコルＢでのデータ送信を決定する（シーケンス611）。通信プロトコルＢ107-2はデータをデータ収集サーバ14に送信する（シーケンス612）。ここで、プロトコルＢでのデータ送信の試行回数へ１加算し、試行回数を１とする。このプロトコルＢでのデータ送信は成功し、通信プロトコルＢ107-2から実行結果処理部108に送信成功の実行結果が送信される（シーケンス613）。実行結果処理部108はステップ501〜503と進み、プロトコルＢの実行結果処理テーブル23-2を取得し、結果231-2が送信成功であるエントリの動作232-2の処理を取得する。ここでは、NULLであるためステップ504がＹＥＳとなって特に次の処理は存在しない。
【００５５】
さらに、上記のデータ送信か完了した状態において、ユーザアプリケーション102からのデータを受け取った（シーケンス614）プロトコル選択部104はステップ301〜303と進み、開始ルールID 26の値が２でデフォルトルールID 24の値が１であることよりステップ304で図４の復帰確認処理を実行する（シーケンス615）。プロトコル選択部104は復帰確認ルールID 27を取得する。復帰確認ルールID 27の値999に基づきプロトコル選択ルールテーブル21-1のルールID 211-1の値が999で識別されるエントリを取得し、パラメータ212-1としてプロトコルＢ送信数、動作213-1として条件ID Ａを得る。ここでプロトコルＢでのデータ送信の試行回数は１のため条件ID Ａで識別される条件テーブル22-1のエントリを比較した結果、動作223-1としては復帰確認実施が得られ、ステップ401がＹＥＳとなって復帰確認が実行される。
【００５６】
復帰確認実行の決定により、ステップ402で開始ルールID 26はデフォルトルールID 24の値である１とされ、図３に戻ってステップ305へ進み、プロトコル選択ルールテーブル21-1からルールID 211-1が１のエントリを取得する（シーケンス616）。取得したエントリのパラメータ212-1としてNULL、動作213-1としてプロトコルＡが格納されているので、ステップ312、313の選択処理の結果、プロトコルＡをデータ送信に用いるプロトコルとして決定し、通信プロトコルＡ107-1に前記送信データを受け渡す（シーケンス617）。通信プロトコルＡ107-1はデータ収集サーバ14へのデータ送信を実行する（シーケンス618）。この段階でデータ収集サーバ14のプロトコルＡに対する通信機能が復旧している場合、プロトコルＡでのデータ送信は成功し、通信プロトコルＡ107-1実行結果として送信成功を実行結果処理部108に送信する（シーケンス619）。
【００５７】
実行結果処理部108は送信成功の実行結果を受信してステップ501〜503と進み、プロトコルＡの実行結果処理テーブル23-1を取得し、結果231-1が送信成功であるエントリの動作232-1の処理を取得する。ここでは、動作232-1が開始ルールIDをルールID 1に設定であるため、実行結果処理部108は開始ルールID 26に１を設定する（シーケンス620）。
【００５８】
次にユーザアプリケーション102からデータ送受信部103を介してプロトコル選択部104がデータを受信した場合（シーケンス621）、データを受信したプロトコル選択部104は開始ルールID 26の値を取得し、開始ルールID 26の値１を用いてプロトコル選択ルールテーブル21-1からエントリを取得する（シーケンス622）。取得したエントリのパラメータ212-1としてNULL、動作213-1としてプロトコルＡが格納されているので、選択処理の結果、プロトコルＡをデータ送信に用いるプロトコルとして決定し、通信プロトコルＡ107-1にデータを受け渡す（シーケンス623）。データを受信した通信プロトコルＡ107-1はデータ収集サーバ14へのデータ送信を実行する（シーケンス624）。プロトコルＡでのデータ送信は成功し、通信プロトコルＡ107-1は実行結果として送信成功を実行結果処理部108に送信する（シーケンス625）。
【００５９】
以上で説明したように、プロトコル選択ルール管理部で管理する条件すなわちテーブルに基づき通信に異常が発生しても通常状態のプロトコルから異常状態に対応したプロトコルへ変更することができる。また、管理する条件に基づき復帰確認処理を実行することにより、ネットワーク接続されたサーバの指示によらずに通常状態のプロトコルに復帰することが可能である。特に新たなプロトコルを導入して新たなプロトコルへ変更した場合、テーブルの変更だけで新たなプロトコルを選択可能になるとともに、プロトコルの変更初期に発生しやすい新たなプロトコルにともなう不具合があっても、元のプロトコルへ移行して通信を継続でき、不具合が復旧した場合に外部からの指示なしで新たなプロトコルへ戻ることが可能である。
【実施例２】
【００６０】
本実施例では、M2Mデバイス12内の状態に応じた通信処理の変更について説明する。ここでも、デフォルトルールID 24の値は１、開始ルールID 26の値は１、復帰確認ルールID 27の値は999が格納されている。利用可能な通信プロトコルは通信プロトコルＣ107-3、通信プロトコルＤ107-4であって、通信プロトコルＣ107-3より通信プロトコルＤ107-4はM2Mデバイス12の電源消費量が少ないプロトコルであり、通信プロトコルＤ107-4より通信プロトコルＣ107-3は通信速度の高いプロトコルである。通信モジュール109は１つの通信回線が利用可能である。
【００６１】
図７Ａは本実施例におけるプロトコル選択ルール管理部106のプロトコル選択ルールテーブル21の例を示す図である。プロトコル選択ルールテーブル21-2のルールID 211-2の値１にて識別されるエントリには、パラメータ212-2の値として端末電源残量、動作213-2の値としては条件ID Ｂを参照すると格納されている。ルールID 211-2の値２、３、４にて識別されるエントリにはパラメータ212-2の値としてそれぞれ送信条件、パケットロス率、データサイズが格納されており、動作213-2として条件ID Ｃを参照する、条件ID Ｄを参照する、条件ID Ｅを参照すると格納されている。ここで、状態取得部105から取得できる送信条件は優先条件としてデータ送信の通信量優先となっている。ルールID 211-2の値５にて識別されるエントリのパラメータ212-2の値はNULL、動作213-2の値は通信プロトコルＤを利用すると格納されている。また、ルールID 211-2の値 999にて識別されるエントリには、パラメータ212-2の値として端末電源残量、動作213-2の値としては条件ID Ｚを参照すると格納されている。
【００６２】
図７Ｂは本実施例における条件テーブル22の例を示す図である。条件ID Ｂ、Ｃ、Ｄ、Ｅ、Ｚで識別される５つの条件テーブル22-2〜6が存在する。条件IDがＢという識別子にして識別される条件テーブル22-2は、条件221-2の値（＞）で識別されるエントリの値222-2には値３０、動作223-2にはルールID ２を参照するとの値が格納されている。また、次のエントリは条件221-2の値がNULLであり、前のエントリに合致しない場合は動作223-2のルールID ５が必ず適用される。
【００６３】
条件IDがＣという識別子にして識別される条件テーブル22-3は、２つのエントリの条件221-3が値（＝）であり、１つのエントリの値222-3がパケット数優先、動作223-3がルールID ３を参照すると格納され、別の１つのエントリの値222-3が通信量優先、動作223-3がルールID ４を参照すると格納されている。ここで、条件テーブル22-3は図７Ｂの上から下へ検索されるため、先にパケット数優先を含むエントリが判定対象となる。条件ID Ｄ、Ｅ、Ｚによって識別される条件テーブル22-4〜5もそれぞれ図７Ｂに示した値が格納されている。
【００６４】
図７Ｃは本実施例における実行結果処理テーブル23の例を示す図である。プロトコルＣに対する実行結果処理テーブル23-3は、結果231-3が送信成功、通信タイムアウト、エラー応答を示す識別子から識別される３つのエントリから構成され、それぞれの動作232-3として開始ルールIDをルールID １に変更する、NULL、NULLが格納されている。プロトコルＤに対する実行結果処理テーブル23-4は、結果231-4が送信成功、通信タイムアウト、エラー応答を示す識別子から識別される３つのエントリから構成され、それぞれの動作232-4として開始ルールIDをルールID ５に変更する、NULL、NULLが格納されている。
【００６５】
図８Ａ〜ＣはM2Mデバイス12内の状態に基づくデータ送信の処理シーケンスの例を示す図である。初期状態として端末電源残量は３０％より多いとする。
【００６６】
まず、ユーザアプリケーション102からデータ送受信部103を介してプロトコル選択部104がデータを受信する（シーケンス801）。ここでユーザアプリケーション102から受け取ったデータのデータサイズは２５６バイトとする。データを受信したプロトコル選択部104は開始ルールID 26とデフォルトルールID 24を取得し、いずれの値も１で等しいため、開始ルールID 26の値１を用いてプロトコル選択ルールテーブル21-2からエントリを取得する（シーケンス802）。取得したエントリはパラメータ212-2として端末電源残量、動作213-2として条件ID Ｂを参照するとなっている。プロトコル選択部104はパラメータ212-2で指定された端末電源残量を状態取得部105から取得する（シーケンス803）。次にプロトコル選択部104は条件ID Ｂにて識別される条件テーブル22-2を取得し（シーケンス804）、取得した条件テーブル22-2を用いて次の動作を決定する。ここでは電源容量は３０％より多いため、動作223-2としてルールID ２を参照するが選択される。
【００６７】
プロトコル選択部104はプロトコル選択ルールテーブル21-2からルールID ２にて識別されるエントリを取得する（シーケンス805）。取得したエントリのパラメータ212-2として送信条件、動作213-2として条件ID Ｃを参照するとなっている。プロトコル選択部104はパラメータ212-2で指定された送信条件を状態取得部105から取得する（シーケンス806）。そしてプロトコル選択部104は条件ID Ｃにて識別される条件テーブル22-3を取得し、優先条件＝通信量優先により動作223-3としてルールID ４を参照となる。さらに、ルールID ４にて識別されるエントリをプロトコル選択ルールテーブル21-2から取得し、条件ID Ｅで識別される条件テーブル22-5を取得し（シーケンス807）、データサイズが１２８バイト以上の２５６バイトであるため最終的にプロトコルＣでのデータ送信が決定される（シーケンス808）。
【００６８】
データを受信した通信プロトコルＣ107-3はデータ収集サーバ14へのデータ送信を実行する（シーケンス809）。プロトコルＣでのデータ送信は成功して通信プロトコルＣ107-3は実行結果として送信成功を実行結果処理部108に送信する（シーケンス810）。実行結果処理部108はプロトコルＣに対応する実行結果処理テーブル23-3の動作232-3に基づき開始ルールID 26に１を設定する（シーケンス811）。
【００６９】
以上の状況においては、ユーザアプリケーション102から受信したデータのデータサイズによってプロトコルＣもしくはＤのどちらを利用するかが決定される。ここで、図８Ｂへ移り、端末電源残量が３０％より低下したとする。
【００７０】
上記状態においてデータを受信したプロトコル選択部104（シーケンス821）は開始ルールID 26とデフォルトルールID 24を取得し、いずれの値も１で等しいため、開始ルールID 26の値１を用いてプロトコル選択ルールテーブル21-2からエントリを取得する（シーケンス822）。取得したエントリのパラメータ212-2として端末電源残量、動作213-2として条件ID Ｂを参照するとなっている。プロトコル選択部104はパラメータ212-2で指定された端末電源残量を状態取得部105から取得する（シーケンス823）。次にプロトコル選択部104は条件ID Ｂにて識別される条件テーブル22-2を取得し（シーケンス824）、取得した条件テーブル22-2を用いて次の動作を決定する。ここでは電源容量は３０％以下となっているため、動作223-2としてはルールID ５を参照するが選択される。
【００７１】
プロトコル選択部104はプロトコル選択ルールテーブル21-2からルールID ５にて識別されるエントリを取得する（シーケンス825）。取得したエントリのパラメータ212-2としてNULL、動作213-2としてプロトコルＤを利用するとなっている。そこでプロトコル選択部104はプロトコルＤをデータ送信のプロトコルとして決定する（シーケンス826）。データを受信した通信プロトコルＤ107-4はデータ収集サーバ14へのデータ送信を実行する（シーケンス827）。プロトコルＤでのデータ送信は成功して通信プロトコルＤ107-4は実行結果として送信成功を実行結果処理部108に送信する（シーケンス828）。実行結果処理部108はプロトコルＤに対応する実行結果処理テーブル23-4を取得し、結果231-4が送信成功であるエントリの動作232-4の処理を取得する。ここでは、動作232-4に開始ルールIDをルールID ５に変更することが設定されており、実行結果処理部108は開始ルールID 26の値を５に変更する（シーケンス829）。
【００７２】
上記状態では、プロトコル選択部104が開始ルールIDとして５を用いてプロトコル選択を実行するようになり、データサイズなどの他の条件を検索することなくプロトコルＤがデータ送受信のプロトコルとして選択されるようになる。
【００７３】
ここで、図８Ｃへ移り、端末の電源残量回復し３０％以上に戻ったとする。この状態にてデータを受信したプロトコル選択部104（シーケンス831）は開始ルールID 26とデフォルトルールID 24を取得し、開始ルールID 26の値は５、デフォルトルールID 24の値は１と異なるため、復帰確認処理を実行する（シーケンス832）。プロトコル選択部104は復帰確認ルールID 27を取得する。復帰確認ルールID 27の値が999であるため、プロトコル選択ルールテーブル21-2のルールID 211-2が999で識別されるエントリを取得し、パラメータ212-2として端末電源残量、動作213-2として条件ID Ｚを取得する（シーケンス833）。そしてプロトコル選択部104はパラメータ212-2で指定された端末電源残量を状態取得部105より取得し（シーケンス832）、ここでは３０％以上であるため、条件ID Ｚで識別される条件テーブル22-6のエントリを比較した結果、動作223-6としては復帰確認実行が選択され、復帰確認が実行される。
【００７４】
復帰確認実行の決定により、開始ルールID 26にデフォルトルールID 24の値１とされ、プロトコル選択ルールテーブル21-2からエントリを取得する（シーケンス835）。取得したエントリのパラメータ212-2として端末電源残量、動作213-2として条件ID Ｂを参照するとなっている。プロトコル選択部104はパラメータ212-2で指定された端末電源残量を状態取得部105から取得する（シーケンス836）。次にプロトコル選択部104は条件ID Ｂにて識別される条件テーブル22-2を取得し、取得した条件テーブル22-2を用いて次の動作を決定する。ここでは電源容量は３０％以上であるため、動作223-2としてルールID ２を参照するが選択される。
【００７５】
プロトコル選択部104はプロトコル選択ルールテーブル21-2からルールID ２にて識別されるエントリを取得する（シーケンス837）。取得したエントリのパラメータ212-2として送信条件、動作213-2として条件ID Ｃを参照するとなっている。プロトコル選択部104はパラメータ212-2で指定された送信条件を状態取得部105から取得する（シーケンス838）。次にプロトコル選択部104は条件ID Ｃにて識別される条件テーブル22-3を取得し、優先条件＝通信量優先により動作223-3としてルールID ４を参照となる。さらに、ルールID ４にて識別されるエントリをプロトコル選択ルールテーブル21-2から取得し、条件ID Ｅで識別される条件テーブル22-5を取得し（シーケンス839）、データサイズが２５６バイトのため最終的にプロトコルＣでのデータ送信が決定される（シーケンス840）。データを受信した通信プロトコルＣ107-3はデータ収集サーバ14へのデータ送信を実行する（シーケンス841）。プロトコルＣでのデータ送信は成功して通信プロトコルＣ107-3は実行結果として送信成功を実行結果処理部108に送信する（シーケンス842）。実行結果処理部108はプロトコルＣに対応する実行結果処理テーブル23-3を取得し、結果231-3が送信成功であるエントリの動作232-3の処理を取得する。ここでは、動作232-3として開始ルールIDをルールID １に変更することが格納されており、実行結果処理部108は開始ルールID 26の値を１に変更する（シーケンス843）。
【００７６】
以降は通常のプロトコル選択に戻り、ユーザアプリケーションから受信したデータは、そのデータサイズによって通信プロトコルとしてプロトコルＣもしくはＤのどちらを利用するかが決定される。
【００７７】
以上で説明したように、M2Mデバイスの状態によりプロトコル選択の条件検索の短縮をすることが可能となり、データの効率的な送受信が可能となる。また、複数のルールを繰り返し適用することで、複雑な条件であっても容易に組み立てることが可能となり、業種毎にそれぞれ異なる要求条件に対して柔軟にデータ送受信モジュールを構成することが可能となる。
【００７８】
なお、端末電源残量をルール適用開始位置変更判断のトリガとする以外に、トリガとしてはM2Mデバイスに具備されるストレージの容量、M2Mデバイスがある時点で利用可能な通信モジュールなどであっても良い。
【符号の説明】
【００７９】
１１    センサ
１２    M2Mデバイス
１３    ネットワーク
１４    データ収集サーバ
１０１  データ送受信モジュール
１０２  ユーザアプリケーション
１０３  データ送受信部
１０４  プロトコル選択部
１０５  状態取得部
１０６  プロトコル選択ルール管理部
１０７  通信プロトコル
１０８  実行結果処理部
１０９  通信モジュール
２１    プロトコル選択ルールテーブル
２２    条件テーブル
２３    実行結果処理テーブル
【図１】
2015144377.tif 000003
【図２】
2015144377.tif 000004
【図３】
2015144377.tif 000005
【図４】
2015144377.tif 000006
【図５】
2015144377.tif 000007
【図６】
2015144377.tif 000008
【図７Ａ】
2015144377.tif 000009
【図７Ｂ】
2015144377.tif 000010
【図７Ｃ】
2015144377.tif 000011
【図８Ａ】
2015144377.tif 000012
【図８Ｂ】
2015144377.tif 000013
【図８Ｃ】
2015144377.tif 000014