IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士電機株式会社の特許一覧

特開2023-166155送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム
<>
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図1
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図2
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図3
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図4
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図5
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図6
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図7
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図8
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図9
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図10
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図11
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図12
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図13
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図14
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図15
  • 特開-送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023166155
(43)【公開日】2023-11-21
(54)【発明の名称】送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラム
(51)【国際特許分類】
   H04L 69/00 20220101AFI20231114BHJP
   H04L 1/16 20230101ALI20231114BHJP
【FI】
H04L69/00
H04L1/16
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022076985
(22)【出願日】2022-05-09
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100157967
【弁理士】
【氏名又は名称】管田 洋明
(72)【発明者】
【氏名】高務 健二
【テーマコード(参考)】
5K014
【Fターム(参考)】
5K014DA02
(57)【要約】
【課題】受信装置が送信装置から受信するデータの欠損を防止するための資源の消費を抑制する。
【解決手段】記憶部は、第1データを含む1つ又は複数のデータと、1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報を記憶する。変更部は、1つ又は複数のデータが未受信であることを第1判定情報が示している場合、第1送信情報を第2送信情報に変更する。第2送信情報は、1つ又は複数のデータと、第2データと、1つ又は複数のデータと第2データとが未受信であることを示す第2判定情報とを含む。送信部は、第2送信情報を受信装置へ送信する。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1データを含む1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報を記憶する記憶部と、
前記1つ又は複数のデータが未受信であることを前記第1判定情報が示している場合、前記第1送信情報を、前記1つ又は複数のデータと、第2データと、前記1つ又は複数のデータと前記第2データとが未受信であることを示す第2判定情報とを含む、第2送信情報に変更する変更部と、
前記第2送信情報を受信装置へ送信する送信部と、
を備えることを特徴とする送信装置。
【請求項2】
前記変更部は、前記1つ又は複数のデータが受信済みであることを前記第1判定情報が示している場合、前記第1送信情報を、前記第2データと、前記第2データが未受信であることを示す第3判定情報とを含む、第3送信情報に変更し、
前記送信部は、前記第3送信情報を前記受信装置へ送信することを特徴とする請求項1記載の送信装置。
【請求項3】
前記第1判定情報は、前記1つ又は複数のデータが受信済みであるか否かを示すフラグであり、
前記第2判定情報は、前記1つ又は複数のデータと前記第2データとが未受信であることを示すフラグであることを特徴とする請求項1又は2記載の送信装置。
【請求項4】
前記第1判定情報は、前記第1データのシーケンス番号と、前記受信装置が受信した最後のデータのシーケンス番号とを含み、
前記第2判定情報は、前記第2データのシーケンス番号と、前記受信装置が受信した最後のデータのシーケンス番号とを含むことを特徴とする請求項1又は2記載の送信装置。
【請求項5】
送信装置から、1つ又は複数のデータと、前記1つ又は複数のデータが未受信であることを示す第1判定情報とを含む、第1送信情報を受信する受信部と、
前記第1判定情報に基づいて、前記第1送信情報から前記1つ又は複数のデータを取得する取得部と、
前記第1送信情報を、前記1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであることを示す第2判定情報とを含む、第2送信情報に変更する変更部と、
前記第2送信情報を前記送信装置へ送信する送信部と、
を備えることを特徴とする受信装置。
【請求項6】
前記第1判定情報は、前記1つ又は複数のデータが未受信であることを示すフラグであり、
前記第2判定情報は、前記1つ又は複数のデータが受信済みであることを示すフラグであることを特徴とする請求項5記載の受信装置。
【請求項7】
前記第1判定情報は、前記1つ又は複数のデータのうち最後のデータのシーケンス番号と、前記送信装置から受信した最後のデータのシーケンス番号とを含み、
前記変更部は、前記送信装置から受信した最後のデータのシーケンス番号を、前記1つ又は複数のデータのうち最後のデータのシーケンス番号に変更することで、前記第1送信情報を前記第2送信情報に変更することを特徴とする請求項5記載の受信装置。
【請求項8】
コンピュータが、
第1データを含む1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報から、前記第1判定情報を取得し、
前記1つ又は複数のデータが未受信であることを前記第1判定情報が示している場合、前記第1送信情報を、前記1つ又は複数のデータと、第2データと、前記1つ又は複数のデータと前記第2データとが未受信であることを示す第2判定情報とを含む、第2送信情報に変更し、
前記第2送信情報を受信装置へ送信する、
ことを特徴とする送信方法。
【請求項9】
コンピュータが、
送信装置から、1つ又は複数のデータと、前記1つ又は複数のデータが未受信であることを示す第1判定情報とを含む、第1送信情報を受信し、
前記第1判定情報に基づいて、前記第1送信情報から前記1つ又は複数のデータを取得し、
前記第1送信情報を、前記1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであることを示す第2判定情報とを含む、第2送信情報に変更し、
前記第2送信情報を前記送信装置へ送信する、
ことを特徴とする受信方法。
【請求項10】
第1データを含む1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報から、前記第1判定情報を取得し、
前記1つ又は複数のデータが未受信であることを前記第1判定情報が示している場合、前記第1送信情報を、前記1つ又は複数のデータと、第2データと、前記1つ又は複数のデータと前記第2データとが未受信であることを示す第2判定情報とを含む、第2送信情報に変更し、
前記第2送信情報を受信装置へ送信する、
処理をコンピュータに実行させるための送信プログラム。
【請求項11】
送信装置から、1つ又は複数のデータと、前記1つ又は複数のデータが未受信であることを示す第1判定情報とを含む、第1送信情報を受信し、
前記第1判定情報に基づいて、前記第1送信情報から前記1つ又は複数のデータを取得し、
前記第1送信情報を、前記1つ又は複数のデータと、前記1つ又は複数のデータが受信済みであることを示す第2判定情報とを含む、第2送信情報に変更し、
前記第2送信情報を前記送信装置へ送信する、
処理をコンピュータに実行させるための受信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置、受信装置、送信方法、受信方法、送信プログラム、及び受信プログラムに関する。
【背景技術】
【0002】
IoT(Internet of Things)機器であるデバイスと、クラウド上のサーバとを含むIoTシステムが知られている。このようなIoTシステムにおいて、障害発生時に備え、サーバがデバイスからログを収集したり、障害に繋がる兆しとなるパラメータを監視したりすることがある。この場合、収集対象のログ又は監視対象のパラメータに欠損が発生すると、検知できたはずのデバイスの異常が検知されない問題が生じる可能性がある。
【0003】
異常検知に関連して、業務システムが取り扱う業務データを連携システム間で通信ネットワークを介して送受信するデータ通信方法が知られている(例えば、特許文献1を参照)。
【0004】
このデータ通信方法では、送信対象の送信データ及び受信対象の受信データそれぞれに、各データを識別するための一意のIDが割り当てられる。そして、連携システム間で送受信する送信データ及び受信データが、連携システムにおいてIDに基づいて認識され、送受信できなかった送信データ及び受信データが、相手側の連携システムに対して再度送受信される。
【0005】
UDP(User Datagram Protocol)を利用したネットワーク管理におけるイベントログ制御方式も知られている(例えば、特許文献2を参照)。このイベントログ制御方式では、被管理装置は、状態変化検出部、イベント保存バッファ部、及びイベント処理部を有する。状態変化検出部は、状態変化を検出する。イベント処理部は、状態変化及びシーケンス番号を付与したイベントログを、イベント保存バッファ部に保存し、イベントログを付与したイベント通知を管理装置へ送信する。
【0006】
管理装置は、イベント処理部を有する。イベント処理部は、イベント通知に付加されているシーケンス番号を解析することで、未受信のイベント通知を検出する。イベント処理部は、シーケンス番号から、バッファの容量が最大であり、かつ、必要な未受信イベント通知があることを検出すると、被管理装置から未受信のイベントログを読み出す。そして、イベント処理部は、被管理装置のイベント保存バッファ部をクリアする。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004-15353号公報
【特許文献2】特開2001-268087号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2のイベントログ制御方式によれば、管理装置は、被管理装置のイベント保存バッファ部が上書きされる前に、被管理装置から未受信のイベントログを読み出すことができ、イベントログの受信漏れが防止される。
【0009】
しかしながら、このイベントログ制御方式では、被管理装置のイベント保存バッファ部のために被管理装置のメモリ資源が消費され、管理装置のイベント処理部のために管理装置のCPU(Central Processing Unit)資源が消費される。
【0010】
なお、かかる問題は、被管理装置から管理装置へイベントログを送信する場合に限らず、送信装置から受信装置へ時系列の様々なデータを送信する場合において生ずるものである。
【0011】
1つの側面において、本発明は、受信装置が送信装置から受信するデータの欠損を防止するための資源の消費を抑制することを目的とする。
【課題を解決するための手段】
【0012】
1つの実施形態によれば、送信装置は、記憶部、変更部、及び送信部を含む。記憶部は、第1データを含む1つ又は複数のデータと、1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報を記憶する。
【0013】
変更部は、1つ又は複数のデータが未受信であることを第1判定情報が示している場合、第1送信情報を第2送信情報に変更する。第2送信情報は、1つ又は複数のデータと、第2データと、1つ又は複数のデータと第2データとが未受信であることを示す第2判定情報とを含む。送信部は、第2送信情報を受信装置へ送信する。
【0014】
別の実施形態によれば、受信装置は、受信部、取得部、変更部、及び送信部を含む。受信部は、送信装置から、1つ又は複数のデータと、1つ又は複数のデータが未受信であることを示す第1判定情報とを含む、第1送信情報を受信する。取得部は、第1判定情報に基づいて、第1送信情報から1つ又は複数のデータを取得する。
【0015】
変更部は、第1送信情報を第2送信情報に変更する。第2送信情報は、1つ又は複数のデータと、1つ又は複数のデータが受信済みであることを示す第2判定情報とを含む。送信部は、第2送信情報を送信装置へ送信する。
【発明の効果】
【0016】
1つの側面において、受信装置が送信装置から受信するデータの欠損を防止するための資源の消費を抑制することができる。
【図面の簡単な説明】
【0017】
図1】実施形態の送信装置の機能的構成図である。
図2】第1の送信処理のフローチャートである。
図3】実施形態の受信装置の機能的構成図である。
図4】第1の受信処理のフローチャートである。
図5】IoTシステムの構成図である。
図6】デバイスの機能的構成図である。
図7】ステータスフラグを含む送信情報を示す図である。
図8】サーバの機能的構成図である。
図9】第1のデータ収集処理を示す図である。
図10】第2の送信処理のフローチャートである。
図11】第2の受信処理のフローチャートである。
図12】シーケンス番号を含む送信情報を示す図である。
図13】第2のデータ収集処理を示す図である。
図14】第3の送信処理のフローチャートである。
図15】第3の受信処理のフローチャートである。
図16】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら、実施形態を詳細に説明する。
【0019】
図1は、実施形態の送信装置の機能的構成例を示している。図1の送信装置101は、記憶部111、変更部112、及び送信部113を含む。記憶部111は、第1データを含む1つ又は複数のデータと、1つ又は複数のデータが受信済みであるか否かを示す第1判定情報とを含む、第1送信情報を記憶する。
【0020】
図2は、図1の送信装置101が行う第1の送信処理の例を示すフローチャートである。変更部112は、1つ又は複数のデータが未受信であることを第1判定情報が示している場合、第1送信情報を第2送信情報に変更する(ステップ201)。第2送信情報は、1つ又は複数のデータと、第2データと、1つ又は複数のデータと第2データとが未受信であることを示す第2判定情報とを含む。送信部113は、第2送信情報を受信装置へ送信する(ステップ202)。
【0021】
図1の送信装置101によれば、受信装置が送信装置101から受信するデータの欠損を防止するための資源の消費を抑制することができる。
【0022】
図3は、実施形態の受信装置の機能的構成例を示している。図3の受信装置301は、受信部311、取得部312、変更部313、及び送信部314を含む。
【0023】
図4は、図3の受信装置301が行う第1の受信処理の例を示すフローチャートである。受信部311は、送信装置から、1つ又は複数のデータと、1つ又は複数のデータが未受信であることを示す第1判定情報とを含む、第1送信情報を受信する(ステップ401)。取得部312は、第1判定情報に基づいて、第1送信情報から1つ又は複数のデータを取得する(ステップ402)。
【0024】
変更部313は、第1送信情報を第2送信情報に変更する(ステップ403)。第2送信情報は、1つ又は複数のデータと、1つ又は複数のデータが受信済みであることを示す第2判定情報とを含む。送信部314は、第2送信情報を送信装置へ送信する(ステップ404)。
【0025】
図3の受信装置301によれば、受信装置301が送信装置から受信するデータの欠損を防止するための資源の消費を抑制することができる。
【0026】
図5は、図1の送信装置101及び図3の受信装置301を含むIoTシステムの構成例を示している。図5のIoTシステムは、デバイス501及びサーバ502を含む。デバイス501は、例えば、監視対象の情報処理装置(コンピュータ)であり、サーバ502は、例えば、クラウド上の情報処理装置である。デバイス501は、産業用機器、医療用機器、家庭用機器等の組み込み機器であってもよい。
【0027】
デバイス501及びサーバ502は、通信ネットワーク503を介して互いに通信することができる。通信ネットワーク503は、LAN(Local Area Network)又はWAN(Wide Area Network)である。サーバ502は、通信ネットワーク503を介して、デバイス501から所定のタイミングでデータを収集する。サーバ502は、デバイス501から一定周期でデータを収集してもよい。デバイス501は、図1の送信装置101に対応し、サーバ502は、図3の受信装置301に対応する。
【0028】
デバイス501には、サーバ502と連携するためのフレームワークとして、例えば、サーバ502のベンダから提供されるSDK(Software Development Kit)が実装される。デバイス501は、SDKを用いてサーバ502との連携処理を行い、データの見える化、最適化等を行う。
【0029】
SDKには、デバイス501とサーバ502の間でデータを同期させるデータ同期機能も含まれる。データ同期機能としては、マイクロソフト社のデバイスツイン、Amazon.comのデバイスシャドウ等を用いることができる。
【0030】
図6は、図5のデバイス501の機能的構成例を示している。図5のデバイス501は、センサ611、送信部612、受信部613、変更部614、同期部615、及び記憶部616を含む。送信部612、変更部614、及び記憶部616は、図1の送信部113、変更部112、及び記憶部111にそれぞれ対応する。
【0031】
センサ611は、検知対象の数値情報を時系列に検知して、変更部614へ出力する。検知対象の数値情報は、温度、湿度、気圧、CPU使用率等であってもよい。温度を表す数値情報は、“36.0”のような数値であってもよい。変更部614は、センサ611から数値情報が出力される度に、その数値情報を、記憶部616が記憶する送信情報621に設定する。
【0032】
図7は、ステータスフラグを含む送信情報621の例を示している。図7の送信情報621は、データ及びステータスフラグを含む。データは、数値情報を表す。ステータスフラグは、サーバ502においてデータが受信済みであるか否かを示すフラグである。ステータスフラグは、データと対応付けられている。サーバ502も、送信情報621と同じ形式の送信情報を記憶している。
【0033】
変更部614は、送信情報621のデータに、センサ611から出力された数値情報を設定し、送信情報621のステータスフラグに“未”を設定する。“未”は、サーバ502においてデータが未受信であることを示す。
【0034】
同期部615は、データ同期機能を用いて、サーバ502が記憶している送信情報を送信情報621と同期させる。送信部612は、同期部615からの指示に従って、送信情報621をサーバ502へ送信する。
【0035】
サーバ502は、受信した送信情報621のステータスフラグが“未”である場合、送信情報621からデータを取得し、ステータスフラグを“未”から“済”に変更して、デバイス501へ返信する。“済”は、サーバ502においてデータが受信済みであることを示す。
【0036】
受信部613は、サーバ502から送信情報を受信して、同期部615へ出力する。同期部615は、受信部613から出力された送信情報を、記憶部616が記憶している送信情報621に上書きすることで、送信情報621を更新する。これにより、送信情報621が、サーバ502が記憶している送信情報と同期するため、ステータスフラグが“未”から“済”に変更される。
【0037】
この状態でセンサ611から次の数値情報が出力された場合、変更部614は、送信情報621のデータを次の数値情報に変更し、ステータスフラグを“済”から“未”に変更することで、送信情報621を変更する。
【0038】
変更前の送信情報621は、送信装置101における第1送信情報の一例である。変更前の送信情報621に含まれるデータは、送信装置101における第1データを含む1つ又は複数のデータの一例であり、変更前の送信情報621に含まれるステータスフラグは、送信装置101における第1判定情報の一例である。
【0039】
変更後の送信情報621は、第3送信情報の一例であり、変更後の送信情報621に含まれるデータは、第2データの一例であり、変更後の送信情報621に含まれるステータスフラグは、第3判定情報の一例である。
【0040】
同期部615は、サーバ502の送信情報を変更後の送信情報621と同期させる。送信部612は、同期部615からの指示に従って、変更後の送信情報621をサーバ502へ送信する。
【0041】
ところで、図5の通信ネットワーク503の障害等に起因して、デバイス501からサーバ502への送信情報621の送信、又はサーバ502からデバイス501への送信情報の送信が失敗することもある。送信が失敗した場合、送信情報621が更新されず、ステータスフラグが“未”に設定されたままである。
【0042】
この状態でセンサ611から次の数値情報が出力された場合、変更部614は、送信情報621のデータに次の数値情報を上書きする代わりに、次の数値情報を追加することで、送信情報621を変更する。これにより、上書きによる未受信の数値情報の欠損が防止される。
【0043】
変更後の送信情報621は、送信装置101における第2送信情報の一例である。変更後の送信情報621に追加された数値情報は、送信装置101における第2データの一例であり、変更後の送信情報621に含まれるステータスフラグは、送信装置101における第2判定情報の一例である。
【0044】
同期部615は、サーバ502の送信情報を変更後の送信情報621と同期させる。送信部612は、同期部615からの指示に従って、変更後の送信情報621をサーバ502へ送信する。
【0045】
デバイス501からサーバ502へ送信されるデータに、サーバ502が受信済みであるか否かを示すステータスフラグを付加することで、デバイス501は、サーバ502における受信状況を確認しながら、データを更新することができる。これにより、デバイス501がデータを更新した後、サーバ502が更新後のデータを受信する前に、デバイス501において次のデータが発生した場合であっても、データのアップロード漏れを防止することができる。
【0046】
図8は、図5のサーバ502の機能的構成例を示している。図8のサーバ502は、受信部811、送信部812、取得部813、変更部814、同期部815、及び記憶部816を含む。受信部811、送信部812、取得部813、及び変更部814は、図3の受信部311、送信部314、取得部312、及び変更部313にそれぞれ対応する。
【0047】
受信部811は、デバイス501から送信情報621を受信して、同期部815へ出力する。同期部815は、受信部811から出力された送信情報621を、記憶部816が記憶している送信情報821に上書きすることで、送信情報821を更新する。これにより、送信情報821が、デバイス501が記憶している送信情報621と同期する。
【0048】
取得部813は、送信情報821のステータスフラグが“未”である場合、送信情報821からデータを取得し、変更部814は、ステータスフラグを“未”から“済”に変更することで、送信情報821を変更する。取得されたデータは、例えば、サーバ502のアプリケーションプログラムによって利用される。
【0049】
変更前の送信情報821は、受信装置301における第1送信情報の一例である。変更前の送信情報821に含まれるデータは、受信装置301における1つ又は複数のデータの一例であり、変更前の送信情報821に含まれるステータスフラグは、受信装置301における第1判定情報の一例である。
【0050】
変更後の送信情報821は、受信装置301における第2送信情報の一例であり、変更後の送信情報821に含まれるステータスフラグは、受信装置301における第2判定情報の一例である。
【0051】
同期部815は、データ同期機能を用いて、デバイス501が記憶している送信情報621を送信情報821と同期させる。送信部812は、同期部815からの指示に従って、送信情報821をデバイス501へ送信する。
【0052】
デバイス501は、センサ611によって検知された時系列の数値情報の代わりに、時系列のモード情報又はイベント情報をデータとしてサーバ502へ送信してもよい。モード情報は、デバイス501の動作モード、運転モード等を示す情報であり、イベント情報は、デバイス501において取得されたログ等を示す情報である。モード情報は、“計測中”のような情報であってもよく、イベント情報は、“2022/01/19”のような情報であってもよい。
【0053】
図9は、図7の送信情報621を用いた第1のデータ収集処理の例を示している。図9の送信情報621及び送信情報821は、「ステータスフラグ、データ」の形式で示されている。データとしては、デバイス501のセンサ611により計測される数値が用いられる。
【0054】
初期状態において、送信情報621は「済、36.0」であり、送信情報821は「済、36.0」である。したがって、送信情報821は、送信情報621と一致している。
【0055】
次の計測において、センサ611は計測値“36.1”を出力する。次のデータ更新において、送信情報621が「未、36.1」に変更される。次のデータ同期において、送信情報621がサーバ502へアップロードされ、送信情報821が「未、36.1」に変更される。そして、送信情報821から計測値“36.1”が取得される。
【0056】
次のステータスフラグ更新において、送信情報821が「済、36.1」に変更される。次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621が「済、36.1」に変更される。
【0057】
次の計測において、センサ611は計測値“36.2”を出力する。次のデータ更新において、送信情報621が「未、36.2」に変更される。次のデータ同期において、送信情報621のアップロードが失敗する。
【0058】
次の計測において、センサ611は計測値“36.3”を出力する。次のデータ更新において、送信情報621のステータスフラグが“未”であるため、送信情報621のデータに計測値“36.3”が追加され、送信情報621が「未、[36.2、36.3]」に変更される。[36.2、36.3]は、未受信のデータ列を表す。
【0059】
複数の未受信のデータをデータ列として送信情報621に含めることで、データ同期機能の中で未受信のデータをバッファリングすることができる。したがって、デバイス501のアプリケーションプログラムがデータをバッファリングする必要がなく、バッファリングのオーバヘッドが減少する。
【0060】
次のデータ同期において、送信情報621がサーバ502へアップロードされ、送信情報821が「未、[36.2、36.3]」に変更される。そして、送信情報821から計測値“36.2”及び計測値“36.3”が取得される。
【0061】
次のステータスフラグ更新において、送信情報821が「済、[36.2、36.3]」に変更される。次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621が「済、[36.2、36.3]」に変更される。
【0062】
次の計測において、センサ611は計測値“36.4”を出力する。次のデータ更新において、送信情報621が「未、36.4」に変更される。次のデータ同期において、送信情報621がサーバ502へアップロードされ、送信情報821が「未、36.4」に変更される。そして、送信情報821から計測値“36.4”が取得される。
【0063】
次のステータスフラグ更新において、送信情報821が「済、36.4」に変更される。次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621が「済、36.4」に変更される。
【0064】
図5のIoTシステムによれば、デバイス501とサーバ502の間でデータを同期させるデータ同期機能を利用して、数値情報、モード情報、イベント情報等をデバイス501からサーバ502へアップロードすることができる。
【0065】
データ同期機能は他のアプリケーションプログラムと共用できる汎用的な機能であるため、特許文献2のようなデータ受信漏れを防止するための専用の機能及びバッファを設ける必要がない。したがって、サーバ502がデバイス501から受信するデータの欠損を防止するために使用される資源の使用量を削減して、デバイス501及びサーバ502の資源を有効活用することができる。デバイス501がメモリ容量の小さな組み込み機器であっても、データのアップロード漏れを防止することが可能である。
【0066】
図10は、図6のデバイス501が行う第2の送信処理の例を示すフローチャートである。図10の送信処理は、例えば、一定周期で繰り返される。
【0067】
まず、変更部614は、センサ611から数値情報が出力されたか否かをチェックする(ステップ1001)。数値情報が出力された場合(ステップ1001,YES)、変更部614は、送信情報621のステータスフラグをチェックする(ステップ1002)。
【0068】
ステータスフラグが“済”である場合(ステップ1002,YES)、変更部614は、ステータスフラグを“未”に変更する(ステップ1003)。そして、変更部614は、送信情報621のデータに、センサ611から出力された数値情報を設定する(ステップ1004)。
【0069】
次に、同期部615は、データ同期を行う(ステップ1005)。データ同期において、同期部615は、送信部612を介して、送信情報621をサーバ502へ送信する。サーバ502は、デバイス501から送信情報621を受信し、受信した送信情報621を送信情報821に上書きする。
【0070】
ステータスフラグが“未”である場合(ステップ1002,NO)、変更部614は、送信情報621のデータに、センサ611から出力された数値情報を追加する(ステップ1006)。そして、同期部615は、データ同期を行う(ステップ1005)。
【0071】
数値情報が出力されていない場合(ステップ1001,NO)、デバイス501は、処理を終了する。
【0072】
例えば、図9に示したように、デバイス501とサーバ502の間の通信が失敗した場合、ステップ1002においてステータスフラグが“未”になる。通信の失敗に限らず、センサ611から数値情報が出力される頻度がデータ同期の頻度よりも高い場合にも、同様の状況が発生する。
【0073】
図11は、図8のサーバ502が行う第2の受信処理の例を示すフローチャートである。図11の受信処理は、例えば、一定周期で繰り返される。
【0074】
まず、取得部813は、送信情報821のステータスフラグをチェックする(ステップ1101)。ステータスフラグが“未”である場合(ステップ1101,YES)、取得部813は、送信情報821からデータを取得して(ステップ1102)、異常判定処理を行う(ステップ1103)。
【0075】
異常判定処理において、取得部813は、例えば、取得したデータの数値に対する閾値判定を行うことで、デバイス501とサーバ502の間の通信が途絶える可能性を判定する。
【0076】
次に、変更部814は、ステータスフラグを“済”に変更し(ステップ1104)、同期部815は、データ同期を行う(ステップ1105)。データ同期において、同期部815は、送信部812を介して、送信情報821をデバイス501へ送信する。デバイス501は、サーバ502から送信情報821を受信し、受信した送信情報821を送信情報621に上書きする。
【0077】
ステータスフラグが“済”である場合(ステップ1101,NO)、サーバ502は、処理を終了する。
【0078】
取得部813は、デバイス501から送信情報621を最後に受信した時刻から経過した経過時間がタイムアウト時間を超えた場合に、異常判定を行ってもよい。この異常判定では、デバイス501とサーバ502の間の通信が途絶えているのか、又は送信情報621がアップロードされていないのかが判定される。
【0079】
デバイス501とサーバ502の間の通信が途絶えている場合、通信ネットワーク503又はデバイス501の通信機能に障害が発生したと判定される。一方、デバイス501とサーバ502の間の通信が途絶えていない場合、デバイス501におけるセンサ611又はデータ更新の異常によって、送信情報621がアップロードされていないと判定される。
【0080】
次に、ステータスフラグの代わりにシーケンス番号を用いてデータの欠損を防止する方法を説明する。
【0081】
図12は、シーケンス番号を含む送信情報621の例を示している。図12の送信情報621は、データ、シーケンス番号D、及びシーケンス番号Cを含む。データは、数値情報を表す。シーケンス番号Dは、送信情報621に含まれるデータのシーケンス番号を表し、シーケンス番号Cは、サーバ502が受信した最後のデータのシーケンス番号を表す。シーケンス番号D及びシーケンス番号Cは、データと対応付けられている。サーバ502の送信情報821の形式も、送信情報621と同じである。
【0082】
デバイス501の変更部614は、送信情報621のデータに、センサ611から出力された数値情報を設定し、送信情報621のCに1を加算した結果を、送信情報621のDに設定する。Cよりも大きなDは、D-C個の数値情報がデータに含まれており、かつ、そのデータがサーバ502において未受信であることを示す。同期部615は、データ同期機能を用いて、サーバ502の送信情報821を送信情報621と同期させる。
【0083】
サーバ502の取得部813は、送信情報821のデータからD-C個の数値情報を取得する。変更部814は、送信情報821のCをDと同じ値に変更することで、送信情報821を変更する。Cと同じDは、サーバ502においてデータが受信済みであることを示す。
【0084】
変更前の送信情報821は、受信装置301における第1送信情報の一例である。変更前の送信情報821に含まれるデータは、受信装置301における1つ又は複数のデータの一例であり、変更前の送信情報821に含まれるD及びCは、受信装置301における第1判定情報の一例である。
【0085】
変更後の送信情報821は、受信装置301における第2送信情報の一例であり、変更後の送信情報821に含まれるD及びCは、受信装置301における第2判定情報の一例である。
【0086】
同期部815は、データ同期機能を用いて、デバイス501の送信情報621を送信情報821と同期させる。これにより、送信情報621のCがDと一致する。
【0087】
この状態でセンサ611から次の数値情報が出力された場合、変更部614は、送信情報621のデータを次の数値情報に変更し、Dを1だけインクリメントすることで、送信情報621を変更する。インクリメント後のDは、次の数値情報のシーケンス番号を表す。同期部615は、サーバ502の送信情報821を変更後の送信情報621と同期させる。
【0088】
変更前の送信情報621は、送信装置101における第1送信情報の一例である。変更前の送信情報621に含まれるデータは、送信装置101における第1データを含む1つ又は複数のデータの一例であり、変更前の送信情報621に含まれるD及びCは、送信装置101における第1判定情報の一例である。
【0089】
変更後の送信情報621は、第3送信情報の一例であり、変更後の送信情報621に含まれるデータは、第2データの一例であり、変更後の送信情報621に含まれるD及びCは、第3判定情報の一例である。
【0090】
図5の通信ネットワーク503の障害等に起因して、デバイス501とサーバ502の間のデータ同期が失敗した場合、送信情報621が更新されず、送信情報621のCがDよりも小さいままである。
【0091】
この状態でセンサ611から次の数値情報が出力された場合、変更部614は、送信情報621のデータに次の数値情報を追加し、Dを1だけインクリメントすることで、送信情報621を変更する。同期部615は、サーバ502の送信情報821を変更後の送信情報621と同期させる。
【0092】
変更後の送信情報621は、送信装置101における第2送信情報の一例である。変更後の送信情報621に追加された数値情報は、送信装置101における第2データの一例であり、変更後の送信情報621に含まれるD及びCは、送信装置101における第2判定情報の一例である。
【0093】
デバイス501からサーバ502へ送信されるデータに、シーケンス番号D及びシーケンス番号Cを付加することで、デバイス501は、サーバ502における受信状況を確認しながら、データを更新することができる。これにより、ステータスフラグを付加した場合と同様に、データのアップロード漏れを防止することができる。
【0094】
図13は、図12の送信情報621を用いた第2のデータ収集処理の例を示している。図13の送信情報621及び送信情報821は、左側の矩形1301内の「データ、D」と、右側の矩形1302内の「C」とを用いて示されている。データとしては、デバイス501のセンサ611により計測される数値が用いられる。以下では、送信情報621及び送信情報821を、「データ、D、C」の形式で記載することがある。
【0095】
初期状態において、送信情報621は「36.0、100、100」であり、送信情報821は「36.0、100、100」である。したがって、送信情報821は、送信情報621と一致している。
【0096】
次の計測において、センサ611は計測値“36.1”を出力する。次のデータ更新において、送信情報621のDがインクリメントされ、送信情報621が「36.1、101、100」に変更される。次のデータ同期において、送信情報621がサーバ502へアップロードされ、送信情報821が「36.1、101、100」に変更される。そして、送信情報821から計測値“36.1”が取得される。
【0097】
次のシーケンス番号更新において、送信情報821が「36.1、101、101」に変更される。次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621が「36.1、101、101」に変更される。
【0098】
次の計測において、センサ611は計測値“36.2”を出力する。次のデータ更新において、送信情報621のDがインクリメントされ、送信情報621が「36.2、102、101」に変更される。そして、送信情報621のアップロードが完了する前に、次の計測が行われる。
【0099】
次の計測において、センサ611は計測値“36.3”を出力する。次のデータ更新において、送信情報621のDがCよりも大きいため、送信情報621のデータに計測値“36.3”が追加され、Dがインクリメントされて、送信情報621が「[36.2、36.3]、103、101」に変更される。
【0100】
次のデータ同期において、送信情報621がサーバ502へアップロードされ、送信情報821が「[36.2、36.3]、103、101」に変更される。そして、送信情報821から計測値“36.2”及び計測値“36.3”が取得される。
【0101】
次のシーケンス番号更新において、送信情報821が「[36.2、36.3]、103、103」に変更される。次に、送信情報821のダウンロードが完了する前に、次の計測が行われる。
【0102】
次の計測において、センサ611は計測値“36.4”を出力する。次のデータ更新において、送信情報621のDがCよりも大きいため、送信情報621のデータに計測値“36.4”が追加され、Dがインクリメントされて、送信情報621が「[36.2、36.3、36.4]、104、101」に変更される。
【0103】
次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621のCが“103”に変更される。これにより、送信情報621が「[36.2、36.3、36.4]、104、103」に変更される。さらに、送信情報621がサーバ502へアップロードされ、送信情報821が「[36.2、36.3、36.4]、104、103」に変更される。そして、送信情報821から計測値“36.4”が取得される。
【0104】
次のシーケンス番号更新において、送信情報821が「[36.2、36.3、36.4]、104、104」に変更される。次のデータ同期において、送信情報821がデバイス501へダウンロードされ、送信情報621が「[36.2、36.3、36.4]、104、104」に変更される。
【0105】
次の計測において、センサ611は計測値“36.5”を出力する。次のデータ更新において、送信情報621のDがインクリメントされ、送信情報621が「36.5、105、104」に変更される。
【0106】
図14は、図6のデバイス501が行う第3の送信処理の例を示すフローチャートである。図14の送信処理は、例えば、一定周期で繰り返される。
【0107】
まず、変更部614は、センサ611から数値情報が出力されたか否かをチェックする(ステップ1401)。数値情報が出力された場合(ステップ1401,YES)、変更部614は、送信情報621のDとCを比較する(ステップ1402)。
【0108】
DとCが一致している場合(ステップ1402,YES)、変更部614は、送信情報621のデータに、センサ611から出力された数値情報を設定する(ステップ1403)。そして、変更部614は、Dを1だけインクリメントする(ステップ1404)。
【0109】
次に、同期部615は、データ同期を行う(ステップ1405)。データ同期において、同期部615は、送信部612を介して、送信情報621をサーバ502へ送信する。サーバ502は、デバイス501から送信情報621を受信し、受信した送信情報621を送信情報821に上書きする。
【0110】
DとCが一致していない場合(ステップ1402,NO)、変更部614は、送信情報621のデータに、センサ611から出力された数値情報を追加する(ステップ1406)。そして、同期部615は、データ同期を行う(ステップ1405)。
【0111】
数値情報が出力されていない場合(ステップ1401,NO)、デバイス501は、処理を終了する。
【0112】
例えば、図13に示したように、センサ611から数値情報が出力される頻度がデータ同期の頻度よりも高い場合、ステップ1402においてDとCが一致しなくなる。デバイス501とサーバ502の間の通信が失敗した場合にも、同様の状況が発生する。
【0113】
図15は、図8のサーバ502が行う第3の受信処理の例を示すフローチャートである。図15の受信処理は、例えば、一定周期で繰り返される。
【0114】
まず、取得部813は、送信情報821のDとCを比較する(ステップ1501)。DがCよりも大きい場合(ステップ1501,YES)、取得部813は、送信情報821からデータを取得して(ステップ1502)、図11のステップ1103と同様の異常判定処理を行う(ステップ1503)。
【0115】
次に、変更部814は、Dと同じ値をCに設定し(ステップ1504)、同期部815は、データ同期を行う(ステップ1505)。データ同期において、同期部815は、送信部812を介して、送信情報821をデバイス501へ送信する。デバイス501は、サーバ502から送信情報821を受信し、受信した送信情報821を送信情報621に上書きする。
【0116】
DとCが一致している場合(ステップ1501,NO)、サーバ502は、処理を終了する。
【0117】
図1の送信装置101及び図3の受信装置301の構成は一例に過ぎず、送信装置101又は受信装置301の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。図5のIoTシステムの構成は一例に過ぎず、IoTシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、IoTシステムは、複数のデバイス501を含んでいてもよい。
【0118】
図6のデバイス501及び図8のサーバ502の構成は一例に過ぎず、IoTシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【0119】
図2図4図10図11図14、及び図15に示したフローチャートは一例に過ぎず、送信装置101、受信装置301、又はIoTシステムの構成又は条件に応じて、一部の処理を省略又は変更してもよい。例えば、サーバ502において異常判定処理を行う必要がない場合は、図11のステップ1103及び図15のステップ1503の処理を省略することができる。
【0120】
図7及び図12に示した送信情報621は一例に過ぎず、データが受信済みであるか否かを示す判定情報として、ステータスフラグ又はシーケンス番号以外の情報を用いてもよい。図9及び図13に示したデータ収集処理は一例に過ぎず、データ収集処理は、IoTシステムの用途又は条件に応じて変化する。
【0121】
図16は、図1の送信装置101、図3の受信装置301、図6のデバイス501、及び図8のサーバ502として用いられる情報処理装置のハードウェア構成例を示している。図16の情報処理装置は、CPU1601、メモリ1602、入力装置1603、出力装置1604、補助記憶装置1605、媒体駆動装置1606、及びネットワーク接続装置1607を含む。これらの構成要素はハードウェアであり、バス1608により互いに接続されている。
【0122】
メモリ1602は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを記憶する。メモリ1602は、図1の記憶部111、図6の記憶部616、又は図8の記憶部816として動作してもよい。
【0123】
CPU1601(プロセッサ)は、例えば、メモリ1602を利用してプログラムを実行することにより、図1の変更部112として動作する。CPU1601は、メモリ1602を利用してプログラムを実行することにより、図3の取得部312及び変更部313としても動作する。
【0124】
CPU1601は、メモリ1602を利用してプログラムを実行することにより、図6の変更部614及び同期部615としても動作する。CPU1601は、メモリ1602を利用してプログラムを実行することにより、図8の取得部813、変更部814、及び同期部815としても動作する。
【0125】
入力装置1603は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置1604は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。
【0126】
補助記憶装置1605は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1605は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置1605にプログラム及びデータを格納しておき、それらをメモリ1602にロードして使用することができる。補助記憶装置1605は、図1の記憶部111、図6の記憶部616、又は図8の記憶部816として動作してもよい。
【0127】
媒体駆動装置1606は、可搬型記録媒体1609を駆動し、その記録内容にアクセスする。可搬型記録媒体1609は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1609は、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体1609にプログラム及びデータを格納しておき、それらをメモリ1602にロードして使用することができる。
【0128】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1602、補助記憶装置1605、又は可搬型記録媒体1609のような、物理的な(非一時的な)記録媒体である。
【0129】
ネットワーク接続装置1607は、通信ネットワーク503に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1607を介して受信し、それらをメモリ1602にロードして使用することができる。
【0130】
なお、情報処理装置が図16のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザとのインタフェースが不要な場合は、入力装置1603及び出力装置1604を省略してもよい。可搬型記録媒体1609を使用しない場合は、媒体駆動装置1606を省略してもよい。
【0131】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【符号の説明】
【0132】
101 送信装置
111、616、816 記憶部
112、313、614、814 変更部
113、314、612、812 送信部
301 受信装置
311、613、811 受信部
312、813 取得部
501 デバイス
502 サーバ
503 通信ネットワーク
611 センサ
615、815 同期部
621、821 送信情報
1301、1302 矩形
1601 CPU
1602 メモリ
1603 入力装置
1604 出力装置
1605 補助記憶装置
1606 媒体駆動装置
1607 ネットワーク接続装置
1608 バス
1609 可搬型記録媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16