(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-18
(45)【発行日】2025-03-27
(54)【発明の名称】データ送信プログラム、情報処理装置およびデータ送信方法
(51)【国際特許分類】
H04L 67/2869 20220101AFI20250319BHJP
【FI】
H04L67/2869
(21)【出願番号】P 2021144516
(22)【出願日】2021-09-06
【審査請求日】2024-05-09
(73)【特許権者】
【識別番号】598057291
【氏名又は名称】エフサステクノロジーズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】長 孝昭
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開平11-120467(JP,A)
【文献】特開2017-062547(JP,A)
【文献】特開平5-233500(JP,A)
【文献】国際公開第2014/207919(WO,A1)
【文献】特開2017-092681(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-69/40
(57)【特許請求の範囲】
【請求項1】
定期的に収集したデータを端末からサーバへ送信するデータ送信プログラムであって、
所定の方法で予め定められた待機時間の上限までの時間の範囲内から無作為に待機時間を取得し、
取得した待機時間を記憶部に書き込み、
前記記憶部に記憶された待機時間を稼働中の所定のタイミングで更新し、
電源が切断された後、投入されると、前記記憶部に記憶された待機時間をリセットしないで、継続して更新される待機時間に基づいて決定される送信タイミングで、前記データを送信する
処理をコンピュータに実行させるデータ送信プログラム。
【請求項2】
該更新する処理は、前記待機時間を、ポーリングタイマーを用いて所定期間ごとに更新し、
該送信する処理は、継続して更新される前記待機時間がゼロになった送信タイミングで前記データを送信する
ことを特徴とする請求項1に記載のデータ送信プログラム。
【請求項3】
該書き込み処理は、取得した待機時間に加えて、当該待機時間と現在時刻とを加算して得られる送信予定時刻を前記記憶部に書き込み、
該更新する処理は、電源が切断されるタイミングで、前記送信予定時刻と現在時刻とを用いて前記待機時間を更新するとともに、前記送信予定時刻をクリアし、
該送信する処理は、電源が投入されると、電源が切断されるタイミングで更新された前記待機時間と現在時刻とを加算して得られる送信予定時刻になったタイミングで前記データを送信する
ことを特徴とする請求項1に記載のデータ送信プログラム。
【請求項4】
該書き込み処理は、取得した待機時間に加えて、現在時刻と、予め定められた送信制約とに基づいて算出される送信予定時刻を前記記憶部に書き込み、
該送信する処理は、前記送信予定時刻になったタイミングで前記データを送信する
ことを特徴とする請求項3に記載のデータ送信プログラム。
【請求項5】
前記送信制約は、送信インターバルまたは送信上限回数の少なくとも1つである
ことを特徴とする請求項4に記載のデータ送信プログラム。
【請求項6】
所定の方法で予め定められた待機時間の上限までの時間の範囲内から無作為に待機時間を取得する取得部と、
前記取得部によって取得された待機時間を記憶部に書き込む書き込み部と、
前記記憶部に記憶された待機時間を稼働中の所定のタイミングで更新する更新部と、
電源が切断された後、投入されると、前記記憶部に記憶された待機時間をリセットしないで、継続して前記更新部によって更新される待機時間に基づいて決定される送信タイミングで、定期的に収集したデータをサーバへ送信する送信部と、
を有することを特徴とする情報処理装置。
【請求項7】
定期的に収集したデータを端末からサーバへ送信するデータ送信方法であって、
所定の方法で予め定められた待機時間の上限までの時間の範囲内から無作為に待機時間を取得し、
取得した待機時間を記憶部に書き込み、
前記記憶部に記憶された待機時間を稼働中の所定のタイミングで更新し、
電源が切断された後、投入されると、前記記憶部に記憶された待機時間をリセットしないで、継続して更新される待機時間に基づいて決定される送信タイミングで、前記データを送信する
処理をコンピュータが実行するデータ送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ送信プログラム等に関する。
【背景技術】
【0002】
近年、オンプレミスで利用される端末やストレージを月額料金で提供するサブスクリプションモデルが知られている。サブスクリプションモデルの利用料金については、クライアント側のオンプレミスで利用された端末の利用に応じた従量料金となっている。
【0003】
例えば、サブスクリプションモデルでは、クライアントの端末が、稼働した結果のデータを定期的に収集し、収集したデータをポータルのサーバへ送信する。ポータルのサーバは、収集したデータから、利用状況を算出し、課金請求をする。また、ポータルのサーバは、収集したデータから、ハードウェア監視や保守を行う。
【0004】
全てのクライアントの端末が例えば毎時0分にポータルのサーバへ、稼働した結果のデータを送信すると、ポータルのサーバへのアクセスが集中し、ポータルのサーバが高負荷状態になってしまう。そこで、クライアントの端末は、起動時、又は、ポータルのサーバとの通信が復帰した時である通信復帰時に、ランダムに設定される期間の間送信を待機した後に、応答要求を送信する技術が開示されている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-144604号公報
【文献】特開2015-114980号公報
【文献】特開2017-92681号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、クライアントの端末の稼働時間がランダムに設定される待機期間よりも極端に短い場合には、待機時間の間に電源が切断されてしまい、クライアントの端末はデータを送信できないという問題がある。
【0007】
本発明は、1つの側面では、サブスクリプションモデルにおいて、端末の稼働時間に関係なく、端末提供側のサーバにデータを送信することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、データ送信プログラムは、定期的に収集したデータを端末からサーバへ送信するデータ送信プログラムであって、所定の方法で予め定められた待機時間の上限までの時間の範囲内から無作為に待機時間を取得し、取得した待機時間を記憶部に書き込み、前記記憶部に記憶された待機時間を稼働中の所定のタイミングで更新し、電源が切断された後、投入されると、前記記憶部に記憶された待機時間をリセットしないで、継続して更新される待機時間に基づいて決定される送信タイミングで、前記データを送信する、処理をコンピュータに実行させる。
【発明の効果】
【0009】
1実施態様によれば、端末の稼働時間に関係なく、データを送信できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1に係るデータ送信処理の一例を示す図である。
【
図2】
図2は、実施例1に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。
【
図3】
図3は、実施例1に係る設定ファイルの一例を示す図である。
【
図4】
図4は、実施例1に係る起動時制御処理のフローチャートの一例を示す図である。
【
図5】
図5は、実施例1に係る送信制御処理のフローチャートの一例を示す図である。
【
図6】
図6は、実施例2に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。
【
図7】
図7は、実施例2に係る設定ファイルの一例を示す図である。
【
図8】
図8は、実施例2に係る起動時制御処理のフローチャートの一例を示す図である。
【
図9】
図9は、実施例2に係る停止時制御処理のフローチャートの一例を示す図である。
【
図10】
図10は、実施例2に係る送信制御処理のフローチャートの一例を示す図である。
【
図11】
図11は、実施例3に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。
【
図12】
図12は、実施例3に係る設定ファイルの一例を示す図である。
【
図13】
図13は、実施例3に係る起動時制御処理のフローチャートの一例を示す図である。
【
図14】
図14は、実施例3に係る停止時制御処理のフローチャートの一例を示す図である。
【
図15】
図15は、実施例3に係る送信制御処理のフローチャートの一例を示す図である。
【
図16】
図16は、実施例3に係る送信予定時刻設定処理のフローチャートの一例を示す図である。
【
図17】
図17は、データ送信プログラムを実行するコンピュータの一例を示す図である。
【
図19A】
図19Aは、アクセス集中を回避するための参考例を示す図(1)である。
【
図19B】
図19Bは、アクセス集中を回避するための参考例を示す図(2)である。
【発明を実施するための形態】
【0011】
以下に、本願の開示するデータ送信プログラム、情報処理装置およびデータ送信方法の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【0012】
まず、サブスクリプションモデルを利用するクライアント端末がサブスクリプションモデルのポータルへ稼働データを送信する場合のデータの送信処理の参考例について説明する。ここでいうサブスクリプションモデルとは、オンプレミスで利用される端末やストレージを月額料金で提供するモデルのことをいう。サブスクリプションモデルの利用料金については、クライアント側のオンプレミスで利用されたクライアント端末の利用に応じた従量料金となっている。
【0013】
図18は、データ送信処理の参考例を示す図である。
図18に示すように、端末A,B,Cは、例えば毎時0分にポータルのサーバへ稼働データ等のデータを送信する。すなわち、全ての端末は、同じタイミングでポータルのサーバへデータを送信する。すると、ポータルのサーバへのアクセスが集中し、ポータルのサーバが高負荷の状態になる。
【0014】
そこで、端末は、ポータルのサーバへのアクセス集中を回避するために、以下の処理を行う。
図19Aおよび
図19Bは、アクセス集中を回避するための参考例を示す図である。
図19Aに示すように、端末A,B,Cは、ポータルのサーバへのアクセス集中を回避するために、起動時、又は、ポータルのサーバとの通信が復帰した時である通信復帰時に、ランダムに設定される期間(ランダム期間)の間送信を待機した後にデータを送信する。ここでいうランダムに設定される期間は、所定の上限値を下回る範囲の乱数で生成される待機期間の値である。所定の上限値は、全ての端末で同じ値である。これにより、端末からポータルのサーバへのアクセスが集中することを抑制できる。
【0015】
ここで、対象となる端末が数万台と規模が大きくなる場合、ポータルのサーバへのアクセス集中を抑制するには、ランダム期間を長く設定する必要がある。
【0016】
ところが、ランダム期間が長く設定されると、ランダム期間よりも短い稼働時間の端末が出現する場合がある。サブスクリプションモデルの利用料金については、端末が使った分だけの従量料金であるため、利用料金を抑えるために稼働時間を短くする場合があるからである。すると、ランダム期間よりも極端に稼働時間が短い端末は、データを送信できない。
【0017】
図19Bに示すように、端末A、B,Cは、それぞれ稼働した(電源ONやレジューム)ときに、ランダム期間の範囲内の乱数を生成する。ここでは、端末A,Bは、稼働時間がランダム期間より長いので、データをポータルのサーバへ送信できる。ところが、端末Cは、稼働時間が極端にランダム期間より短いので、データを送信できない。すなわち、端末Cがデータ送信の時刻に稼働していない(電源OFFやスリープ)場合、次に稼働したときに、再度乱数を生成し、改めてランダム期間の待機を行う。短い稼働時間で電源OFFやスリープを行う端末Cは、乱数生成の結果、稼働時間がランダム期間より短くなると、データを送信できない。
【0018】
例えば、ランダム期間の範囲が8時間(480分)に設定されたとき、乱数は0から480までの間で生成される。つまり、乱数生成の結果が480の場合、端末は、8時間待機することになる。端末が仮に30分しか稼働しない場合には、乱数生成の結果が31から480までの間であると、データを送信できない。かかる端末では、約93.5%データを送信できない。すなわち、ランダム期間の範囲より極端に小さい稼働時間の端末は、再度乱数を生成しても、データを送信できない可能性が高い。
【0019】
そこで、以降の実施例では、サブスクリプションモデルにおいて、端末の稼働時間に関係なく、端末提供側のポータルのサーバにデータを送信するデータ送信処理について説明する。
【実施例1】
【0020】
図1は、実施例1に係るデータ送信処理の一例を示す図である。
図1に示すように、サブスクリプションモデルで提供される端末Cは、ランダム待機時間の待機を行うが、電源がOFFになった後新たに電源がONになると、電源OFF前の待機時間をリセットしないでそのまま継続して使用する。ここで最初に生成されるランダム待機期間は、例えば、予め定められたランダム待機時間の上限値を下回る範囲で乱数により生成される。また、電源OFFおよび電源ONは、給電を停止するスリープやサスペンドおよび給電を復帰するレジュームであっても良い。
【0021】
ここでは、最初に生成されたランダム待機時間は、70分であるとする。端末Cは、30分経過したタイミングで電源OFFになり、その後電源ONになる。端末Cは、サブスクリプションモデルで提供されるので、使った分だけ課金されることになる。このため、端末Cは、課金請求を抑制するために、稼働時間を短くする場合がある。かかる場合には、電源OFFおよび電源ONが繰り返し行われることになる。電源ONになると、端末Cは、電源OFF前のランダム待機時間をリセットしないで残りの待機時間をそのまま継続し、30分待機したタイミングで電源OFFになる。その後電源ONとなると、端末Cは、電源OFF前のランダム待機時間をリセットしないで残りの待機時間をそのまま継続し、10分待機したタイミングで、待機時間が0になったので、データを送信する。これにより、端末Cは、稼働時間が短くても、待機時間を引き継ぐことで、稼働データを送信することが可能になる。
【0022】
[データ送信システムの機能構成]
図2は、実施例1に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。
図2に示すように、データ送信システム9は、複数のクライアント端末1およびクラウドサーバ5を有する。各クライアント端末1は、定期的に収集した稼働データをクラウドサーバ5に送信する。各クライアント端末1は、
図1に示される端末に対応する。クラウドサーバ5は、サブスクリプションモデルにおけるポータルのサーバに対応する。なお、クラウドサーバ5は、クラウドに限定されず、サブクリプションモデルにおけるポータルのサーバの機能を担うサーバであれば良い。
【0023】
クライアント端末1は、制御部10、記憶部20および通信部30を有する。制御部10は、クライアント端末1全体を司る処理部であり、起動時制御部11、待機時間カウント部12および送信制御部13を有する。通信部30は、ネットワークを介してクラウドサーバ5と通信を行う。通信部30は、例えば、NIC(Network Interface Card)等によって実現される。記憶部20は、設定ファイル21を有する。
【0024】
設定ファイル21は、例えば、ランダム待機時間を設定するファイルである。ここで、設定ファイル21の一例を、
図3を参照して説明する。
図3は、実施例1に係る設定ファイルの一例を示す図である。
図3に示すように、設定ファイル21には、基準時刻、ランダム待機時間上限およびランダム待機時間が設定される。なお、基準時刻およびランダム待機時間上限は、予め設定される。
【0025】
基準時刻は、定期的にデータ送信処理のアプリケーションを起動する時刻である。データ送信処理のアプリケーションを起動する時刻は、基準時刻でなくても良く、不定期の電源ONやレジュームの時刻であっても良い。ランダム待機時間上限は、ランダム待機時間の上限の値であり、ランダム待機時間として生成される乱数の上限値である。
【0026】
ランダム待機時間は、ランダム待機時間上限の値を下回る範囲で生成されるランダムな待機時間であり、乱数で示される。ランダム待機時間は、初期値およびクリアされた場合には、「未設定」となる。なお、ランダム待機時間は、起動時制御部11によって生成され、待機時間カウント部12によってデクリメントされ、送信制御部13によってクリアされる。
【0027】
設定例として。基準時刻は「00:00」を示す。ランダム待機時間上限は「120分」を示す。ランダム待機時間は「30分」を示す。
【0028】
図2に戻って、起動時制御部11は、データ送信処理のアプリケーションの起動時の処理を制御する。例えば、起動時制御部11は、設定ファイル21からランダム待機時間を読み取り、ランダム待機時間が「未設定」であれば、ランダム待機時間を生成する。一例として、起動時制御部11は、設定ファイル21からランダム待機時間上限を読み取り、ランダム待機時間上限を下回る範囲で乱数を生成する。そして、起動時制御部11は、生成した乱数をランダム待機時間として設定ファイル21に設定する。そして、起動時制御部11は、ポーリングタイマーが停止中であれば、ポーリングタイマーを実行する。ここでいうポーリングタイマーとは、所定期間(例えば1分)毎に処理が実行されるタイマーのことをいい、スレッドタイマーとも称される。
【0029】
待機時間カウント部12は、所定時間毎にランダム待機時間をカウントする。例えば、待機時間カウント部12は、ポーリングタイマーによって所定時間(例えば1分)の経過を検知すると、設定ファイル21からランダム待機時間を読み取る。そして、待機時間カウント部12は、ランダム待機時間を所定時間分減らし、設定ファイル21に書き込む。すなわち、待機時間カウント部12は、電源OFFやスリープによる稼働停止に備え、ランダム待機時間の残り時間をカウントし、設定ファイル21に保存する。
【0030】
送信制御部13は、稼働データの送信を制御する。例えば、送信制御部13は、設定ファイル21に保存されたランダム待機時間が0より大きいかどうかを確認する。すなわち、送信制御部13は、ランダム待機時間が残っているかどうかを確認する。送信制御部13は、ランダム待機時間が0の場合には、定期的に収集した稼働データを、通信部30を介してクラウドサーバ5に送信する。そして、送信制御部13は、設定ファイル21のランダム待機時間をクリアする。そして、送信制御部13は、ポーリングタイマーを停止する。
【0031】
クラウドサーバ5は、API(Application Program Interface)処理部51およびデータベース52を有する。API処理部51は、クライアント端末1から送信された稼働データをデータベース52に格納する。そして、API処理部51は、例えば、クライアント端末1の稼働データから利用状況を算出し、クライアント端末1に対して利用状況に応じた課金請求をする。データベース52は、クライアント端末1毎の稼働データを記憶する。
【0032】
[データ送信処理のフローチャート]
ここで、実施例1に係るデータ送信処理のフローチャートの一例を、
図4および
図5を参照して説明する。
図4は、実施例1に係る起動時制御処理のフローチャートの一例を示す図である。起動時制御処理は、クライアント端末1が電源ONになったとき、または、基準時刻になったときに実行される。
【0033】
図4に示すように、起動時制御部11は、設定ファイル21からランダム待機時間を読み取る(ステップS11)。起動時制御部11は、ランダム待機時間が設定済みであるか否かを判定する(ステップS12)。ランダム待機時間が設定済みであると判定した場合には(ステップS12;Yes)、起動時制御部11は、ステップS16に移行する。
【0034】
一方、ランダム待機時間が設定済みでない(未設定)と判定した場合には(ステップS12;No)、起動時制御部11は、設定ファイル21からランダム待機時間上限を読み取る(ステップS13)。そして、起動時制御部11は、0からランダム待機時間上限までの範囲で乱数を生成する(ステップS14)。そして、起動時制御部11は、生成した乱数を設定ファイル21のランダム待機時間に書き込む(ステップS15)。そして、起動時制御部11は、ステップS16に移行する。
【0035】
ステップS16において、起動時制御部11は、ポーリングタイマーの状態が稼働中か停止中(未起動を含む)かを確認する(ステップS16)。起動時制御部11は、ポーリングタイマーが稼働中であるか否かを判定する(ステップS17)。ポーリングタイマーが稼働中であると判定した場合には(ステップS17;Yes)、起動時制御部11は、起動時制御処理を終了する。
【0036】
一方、ポーリングタイマーが稼働中でないと判定した場合には(ステップS17;No)、起動時制御部11は、ポーリングタイマーを実行する(ステップS18)。そして、起動時制御部11は、起動時制御処理を終了する。
【0037】
図5は、実施例1に係る送信制御処理のフローチャートの一例を示す図である。
図5に示すように、待機時間カウント部12は、ポーリングタイマーを用いて1分経過したことを検知すると、設定ファイル21からランダム待機時間を読み取る(ステップS21)。待機時間カウント部12は、ランダム待機時間を1分減らし、設定ファイル21のランダム待機時間に書き込む(ステップS22)。
【0038】
そして、送信制御部13は、ランダム待機時間が残っているか(0より大きいか)を確認する(ステップS23)。送信制御部13は、残り時間が有るか否かを判定する(ステップS24)。残り時間が有ると判定した場合には(ステップS24;Yes)、送信制御部13は、送信制御処理を終了する。
【0039】
一方、残り時間が無いと判定した場合には(ステップS24;No)、送信制御部13は、稼働データをクラウドサーバ5へ送信する(ステップS25)。そして、送信制御部13は、設定ファイル21のランダム待機時間をクリアする(ステップS26)。そして、送信制御部13は、ポーリングタイマーを停止する(ステップS27)。そして、送信制御部13は、送信制御処理を終了する。
【0040】
[実施例1の効果]
上記実施例1によれば、クライアント端末1は、所定の方法で予め定められた待機時間の上限までの時間の範囲内から無作為にランダム待機時間を取得する。クライアント端末1は、取得したランダム待機時間を記憶部に書き込む。そして、クライアント端末1は、記憶部に記憶されたランダム待機時間を稼働中の所定のタイミングで更新する。そして、クライアント端末1は、電源が切断された後、投入されると、記憶部に記憶されたランダム待機時間をリセットしないで、継続して更新されるランダム待機時間に基づいて決定される送信タイミングで、定期的に収集したデータを送信する。かかる構成によれば、クライアント端末1は、電源が切断されたときのランダム待機時間を電源が投入されてもリセットしないで利用することで、端末の稼働時間が短い場合であっても、データを送信できる。
【0041】
また、上記実施例1によれば、クライアント端末1は、ランダム待機時間を、ポーリングタイマーを用いて所定期間ごとに更新する。そして、クライアント端末1は、継続して更新されるランダム待機時間がゼロになった送信タイミングでデータを送信する。かかる構成によれば、クライアント端末1は、ポーリングタイマーを用いることで、端末の稼働時間が短い場合であっても、データを送信できる。
【実施例2】
【0042】
ところで、実施例1では、クライアント端末1は、ランダム待機時間の待機を行うが、電源がOFFになった後新たに電源がONになると、電源OFF前の待機時間をリセットしないでそのまま継続して使用する。そして、クライアント端末1は、ランダム待機時間を、ポーリングタイマーを用いて例えば1分ごとにデクリメントし、ランダム待機時間がゼロになったタイミングで稼働データを送信すると説明した。しかしながら、クライアント端末1は、これに限定されず、ランダム待機時間と現在時刻とを加算して得られる送信予定時刻を割り込み処理のタイミングとして設定し、送信予定時刻になったタイミングで稼働データを送信するようにしても良い。
【0043】
そこで、実施例2では、クライアント端末1が、ランダム待機時間と現在時刻とを加算して得られる送信予定時刻を割り込み処理のタイミングとして設定し、送信予定時刻になったタイミングで稼働データを送信する場合を説明する。
【0044】
[データ送信システムの機能構成]
図6は、実施例2に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。なお、実施例1の
図2に示すデータ送信システム9と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、起動時制御部11を起動時制御部11Aに変更し、送信制御部13を送信制御部13Aに変更した点にある。また、実施例1と実施例2とが異なるところは、送信予定時刻設定部41と停止時制御部42とを追加した点にある。また、実施例1と実施例2とが異なるところは、設定ファイル21を設定ファイル21Aに変更した点にある。
【0045】
設定ファイル21Aは、例えば、ランダム待機時間および送信予定時刻を設定するファイルである。ここで、設定ファイル21Aの一例を、
図7を参照して説明する。
図7は、実施例2に係る設定ファイルの一例を示す図である。
図7に示すように、設定ファイル21Aには、基準時刻、ランダム待機時間上限およびランダム待機時間に加えて送信予定時刻が設定される。なお、基準時刻およびランダム待機時間上限は、予め設定される。
【0046】
基準時刻は、定期的にデータ送信処理のアプリケーションを起動する時刻である。データ送信処理のアプリケーションを起動する時刻は、基準時刻でなくても良く、不定期の電源ONやレジュームの時刻であっても良い。ランダム待機時間上限は、ランダム待機時間の上限の値であり、乱数の上限値である。
【0047】
ランダム待機時間は、ランダム待機時間上限の値を下回る範囲で生成されるランダムな待機時間であり、乱数で示される。ランダム待機時間は、初期値およびクリアされた場合には、「未設定」となる。なお、ランダム待機時間は、起動時制御部11Aによって生成され、停止時制御部42によって更新され、送信制御部13Aによってクリアされる。
【0048】
送信予定時刻は、データを送信するために用いられる割り込み時刻である。なお、送信予定時刻は、起動時制御部11Aによって設定され、停止時制御部42および送信制御部13Aによってクリアされる。
【0049】
設定例として。基準時刻は「00:00」を示す。ランダム待機時間上限は「120分」を示す。ランダム待機時間は「30分」を示す。送信予定時刻は「2021/3/1 00:30」を示す。
【0050】
図6に戻って、起動時制御部11Aは、データ送信処理のアプリケーションの起動時の処理を制御する。例えば、起動時制御部11Aは、設定ファイル21Aからランダム待機時間を読み取り、ランダム待機時間が「未設定」であれば、ランダム待機時間を生成する。一例として、起動時制御部11Aは、設定ファイル21Aからランダム待機時間上限を読み取り、ランダム待機時間上限を下回る範囲で乱数を生成する。そして、起動時制御部11Aは、生成した乱数をランダム待機時間として設定ファイル21Aに設定する。そして、起動時制御部11Aは、送信予定時刻設定部41に、ランダム待機時間を用いた送信予定時刻を設定させる。
【0051】
送信予定時刻設定部41は、ランダム待機時間を用いた送信予定時刻を設定する。例えば、送信予定時刻設定部41は、設定ファイル21Aからランダム待機時間を読み取る。そして、送信予定時刻設定部41は、現在時刻にランダム待機時間を加算して得られた時刻を送信予定時刻として設定ファイル21Aに設定する。
【0052】
停止時制御部42は、データ送信処理のアプリケーションの停止時の処理を制御する。例えば、停止時制御部42は、設定ファイル21Aから送信予定時刻を読み取り、送信予定時刻が「設定済み」であれば、送信予定時刻から現在時刻を減算して得られた時間をランダム待機時間として設定ファイル21Aに更新する。そして、停止時制御部42は、設定ファイル21Aの送信予定時刻をクリアする。すなわち、停止時制御部42は、電源OFFやスリープによる稼働停止のタイミングで、ランダム待機時間を更新し、保存する。加えて、停止時制御部42は、送信予定時刻を、次の稼働で再計算するためにクリアする。
【0053】
送信制御部13Aは、稼働データの送信を制御する。例えば、送信制御部13Aは、送信予定時刻で割り込みが発生すると、定期的に収集した稼働データを、通信部30を介してクラウドサーバ5に送信する。そして、送信制御部13Aは、設定ファイル21Aのランダム待機時間および送信予定時刻をクリアする。
【0054】
[データ送信処理のフローチャート]
ここで、実施例2に係るデータ送信処理のフローチャートの一例を、
図8、
図9および
図10を参照して説明する。
図8は、実施例2に係る起動時制御処理のフローチャートの一例を示す図である。起動時制御処理は、クライアント端末1が電源ONやレジュームになったタイミング、または、基準時刻になったタイミングで実行される。
【0055】
図8に示すように、起動時制御部11Aは、設定ファイル21Aからランダム待機時間を読み取る(ステップS31)。起動時制御部11Aは、ランダム待機時間が設定済みであるか否かを判定する(ステップS32)。ランダム待機時間が設定済みであると判定した場合には(ステップS32;Yes)、起動時制御部11Aは、ステップS36に移行する。
【0056】
一方、ランダム待機時間が設定済みでない(未設定)と判定した場合には(ステップS32;No)、起動時制御部11Aは、設定ファイル21Aからランダム待機時間上限を読み取る(ステップS33)。そして、起動時制御部11Aは、0からランダム待機時間上限の範囲で乱数を生成する(ステップS34)。そして、起動時制御部11Aは、生成した乱数を設定ファイル21Aのランダム待機時間に書き込む(ステップS35)。そして、起動時制御部11Aは、ステップS36に移行する。
【0057】
ステップS36において、起動時制御部11Aは、設定ファイル21Aから送信予定時刻を読み取る(ステップS36)。起動時制御部11Aは、送信予定時刻が設定済みであるか否かを判定する(ステップS37)。送信予定時刻が設定済みであると判定した場合には(ステップS37;Yes)、起動時制御部11Aは、起動時制御処理を終了する。
【0058】
一方、送信予定時刻が設定済みでないと判定した場合には(ステップS37;No)、起動時制御部11Aは、設定ファイル21Aからランダム待機時間を読み取る(ステップS38)。そして、起動時制御部11Aは、現在時刻にランダム待機時間を加算し、その時刻を設定ファイル21Aの送信予定時刻に書き込む(ステップS39)。そして、起動時制御部11Aは、起動時制御処理を終了する。
【0059】
図9は、実施例2に係る停止時制御処理のフローチャートの一例を示す図である。
図9に示すように、停止時制御処理は、クライアント端末1が電源OFFやスリープになったタイミングで実行される。停止時制御部42は、設定ファイル21Aから送信予定時刻を読み取る(ステップS41)。停止時制御部42は、送信予定時刻が設定済みであるか否かを判定する(ステップS42)。送信予定時刻が設定済みでないと判定した場合には(ステップS42;No)、停止時制御部42は、停止時制御処理を終了する。
【0060】
一方、送信予定時刻が設定済みであると判定した場合には(ステップS42;Yes)、停止時制御部42は、送信予定時刻から現在時刻を減算し、その時刻を設定ファイル21Aのランダム待機時間に書き込む(ステップS43)。そして、停止時制御部42は、設定ファイル21Aの送信予定時刻をクリアする(ステップS44)。そして、停止時制御部42は、停止時制御処理を終了する。
【0061】
図10は、実施例2に係る送信制御処理のフローチャートの一例を示す図である。
図10に示すように、送信制御処理は、送信予定時刻で割り込みが発生したタイミングで実行される。送信制御部13Aは、稼働データをクラウドサーバ5へ送信する(ステップS51)。そして、送信制御部13Aは、設定ファイル21Aのランダム待機時間をクリアする(ステップS52)。そして、送信制御部13Aは、設定ファイル21Aの送信予定時刻をクリアする(ステップS53)。そして、送信制御部13Aは、送信制御処理を終了する。
【0062】
[実施例2の効果]
上記実施例2によれば、クライアント端末1は、取得したランダム待機時間に加えて、当該ランダム待機時間と現在時刻とを加算して得られる送信予定時刻を記憶部に書き込む。クライアント端末1は、電源が切断されるタイミングで、送信予定時刻と現在時刻とを用いてランダム待機時間を更新するとともに、送信予定時刻をクリアする。そして、クライアント端末1は、電源が投入されると、電源が切断されるタイミングで更新されたランダム待機時間と現在時刻とを加算して得られる送信予定時刻になったタイミングで、データを送信する。かかる構成によれば、クライアント端末1は、更新されたランダム待機時間から計算される送信予定時刻での割り込みを用いることで、端末の稼働時間が短い場合であっても、データを送信できる。
【実施例3】
【0063】
ところで、実施例1では、クライアント端末1は、ランダム待機時間の待機を行うが、電源がOFFになった後新たに電源がONになると、電源OFF前の待機時間をリセットしないでそのまま継続して使用する。そして、クライアント端末1は、ランダム待機時間を、ポーリングタイマーを用いて例えば1分ごとにデクリメントし、ランダム待機時間がゼロになったタイミングで稼働データを送信すると説明した。また、実施例2では、クライアント端末1は、ランダム待機時間と現在時刻とを加算して得られる送信予定時刻を割り込み処理のタイミングとして設定し、送信予定時刻になったタイミングで稼働データを送信すると説明した。しかしながら、クライアント端末1は、これに限定されず、データ送信に制約を追加しても良い。制約には、例えば、データ送信を1日n回までとする送信上限回数が設けられても良い。また、制約には、例えば、データ送信を前回送信時刻からm時間空けるとする送信インターバルが設けられても良い。
【0064】
そこで、実施例3では、クライアント端末1が、ランダム待機時間と現在時刻と送信制約とから得られる送信予定時刻を割り込み処理のタイミングとして設定し、送信予定時刻になったタイミングで稼働データを送信する場合を説明する。
【0065】
[データ送信システムの機能構成]
図11は、実施例3に係るクライアント端末を含むシステムの機能構成の一例を示すブロック図である。なお、実施例2の
図6に示すデータ送信システム9と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例2と実施例3とが異なるところは、起動時制御部11A、送信予定時刻設定部41、停止時制御部42および送信制御部13Aを、それぞれ起動時制御部11B、送信予定時刻設定部41B、停止時制御部42Bおよび送信制御部13Bに変更した点にある。また、実施例2と実施例3とが異なるところは、設定ファイル21Aを設定ファイル21Bに変更し、イベントログ情報22と送信ログ情報23とを追加した点にある。
【0066】
設定ファイル21Bは、例えば、ランダム待機時間、送信予定時刻および送信回数を設定するファイルである。ここで、設定ファイル21Bの一例を、
図12を参照して説明する。
図12は、実施例3に係る設定ファイルの一例を示す図である。
図12に示すように、設定ファイル21Bには、基準時刻、送信上限回数、ランダム待機時間上限および送信インターバルが設定される。加えて、設定ファイル21Bには、ランダム待機時間、送信予定時刻および送信回数が設定される。なお、基準時刻、送信上限回数、ランダム待機時間上限および送信インターバルは、予め設定される。
【0067】
基準時刻は、定期的にデータ送信処理のアプリケーションを起動する時刻である。データ送信処理のアプリケーションを起動する時刻は、基準時刻でなくても良く、不定期の電源ONやレジュームの時刻であっても良い。送信上限回数は、ある期間(例えば1日)に送信できる回数の上限数である。ランダム待機時間上限は、ランダム待機時間の上限の値であり、乱数の上限値である。送信インターバルは、送信後、次の送信までのインターバルである。
【0068】
ランダム待機時間は、ランダム待機時間上限の値を下回る範囲で生成されるランダムな待機時間であり、乱数で示される。ランダム待機時間は、初期値およびクリアされた場合、「未設定」となる。なお、ランダム待機時間は、起動時制御部11Bによって生成され、停止時制御部42Bによって更新され、送信制御部13Bによってクリアされる。送信予定時刻は、データを送信するために用いられる割り込み時刻である。なお、送信予定時刻は、起動時制御部11Bによって設定され、停止時制御部42Bおよび送信制御部13Bによってクリアされる。送信回数は、ある期間(例えば1日)に送信した実際の回数である。
【0069】
設定例として。基準時刻は「00:00」を示す。送信上限回数は「1回」を示す。ランダム待機時間上限は「120分」を示す。送信インターバルは「360分」を示す。ランダム待機時間は「30分」を示す。送信予定時刻は「2021/3/1 00:30」を示す。送信回数は「0回」を示す。
【0070】
イベントログ情報22は、イベントの履歴を記憶する。例えば、イベントログ情報22は、イベントが発生する度に、イベントの内容と時刻とを対応付けたイベントログを記憶する。送信ログ情報23は、データ送信の履歴を記憶する。例えば、送信ログ情報23は、データ送信の度に、データ送信した送信日時を送信ログとして記憶する。
【0071】
図11に戻って、起動時制御部11Bは、データ送信処理のアプリケーションの起動時の処理を制御する。例えば、起動時制御部11Bは、起動時制御処理を開始した時刻と開始契機とを対応付けたイベントログをイベントログ情報22に保存する。起動時制御部11Bは、設定ファイル21Bから基準時刻を読み取る。そして、起動時制御部11Bは、イベントログ情報22から前回のイベントログの時刻を取得し、前回のイベントログの時刻から現在時刻までの間に基準時刻が含まれている場合には、設定ファイル21Bの送信回数をクリアする。すなわち、起動時制御部11Bは、現在時刻が基準時刻を超えている場合には、送信回数をクリアする。
【0072】
そして、起動時制御部11Bは、設定ファイル21Bからランダム待機時間を読み取り、ランダム待機時間が「未設定」であれば、ランダム待機時間を生成する。一例として、起動時制御部11Bは、設定ファイル21Bからランダム待機時間上限を読み取り、ランダム待機時間上限を下回る範囲で乱数を生成する。そして、起動時制御部11Bは、生成した乱数をランダム待機時間として設定ファイル21Bに設定する。そして、起動時制御部11Bは、送信予定時刻設定部41Bに、ランダム待機時間を用いた送信予定時刻を設定させる。
【0073】
送信予定時刻設定部41Bは、ランダム待機時間および送信制約に応じた送信予定時刻を設定する。
【0074】
例えば、送信予定時刻設定部41Bは、設定ファイル21Bから送信上限回数および送信回数を読み取る。送信予定時刻設定部41Bは、送信回数が送信上限回数に達していない場合には、以下の処理を行う。送信予定時刻設定部41Bは、設定ファイル21から送信インターバルを読み取る。そして、送信予定時刻設定部41Bは、送信ログ情報23から前回の送信日時を読み取り、現在時刻から送信日時を減算して差分の時間を算出する。すなわち、送信予定時刻設定部41Bは、前回送信した送信日時から現在時刻までのインターバルを算出する。
【0075】
そして、送信予定時刻設定部41Bは、差分の時間が送信インターバルより小さい場合には、前回の送信日時に送信インターバルを加算した時刻を、設定ファイル21Bの送信予定時刻に設定する。これは、前回送信した送信日時から現在時刻までの差分の時間が送信インターバルに到達せず、前回送信時刻を基準にデータ送信をさせるためである。また、送信予定時刻設定部41Bは、差分の時間が設定ファイル21Bの送信インターバル以上である場合には、設定ファイル21Aからランダム待機時間を読み取る。そして、送信予定時刻設定部41Bは、現在時刻にランダム待機時間を加算して得られた時刻を送信予定時刻として設定ファイル21Bに設定する。これは、前回送信した送信日時から現在時刻までの差分の時間が送信インターバルに到達し、現在時刻を基準にデータ送信をさせるためである。
【0076】
そして、送信予定時刻設定部41Bは、送信回数が送信上限回数に達した場合には、設定ファイル21Bの送信予定時刻をクリアする。これは、送信回数が送信上限回数に到達し、データ送信に制約がかかるためである。
【0077】
停止時制御部42Bは、データ送信処理のアプリケーションの停止時の処理を制御する。例えば、停止時制御部42Bは、停止時制御処理を開始した時刻と開始契機とを対応付けたイベントログをイベントログ情報22に保存する。停止時制御部42Bは、設定ファイル21Bから送信予定時刻を読み取り、送信予定時刻が「設定済み」であれば、送信予定時刻から現在時刻を減算して得られた時間をランダム待機時間として設定ファイル21Bに更新する。そして、停止時制御部42Bは、設定ファイル21Bの送信予定時刻をクリアする。すなわち、停止時制御部42Bは、電源OFFやスリープによる稼働停止のタイミングで、ランダム待機時間を更新し、保存する。加えて、停止時制御部42Bは、送信予定時刻を、次の稼働で再計算するためにクリアする。
【0078】
送信制御部13Bは、稼働データの送信を制御する。例えば、送信制御部13Bは、送信予定時刻で割り込みが発生すると、送信制御処理を開始した時刻を送信ログとして送信ログ情報23に保存する。そして、送信制御部13Bは、定期的に収集した稼働データを、通信部30を介してクラウドサーバ5に送信する。そして、送信制御部13Bは、設定ファイル21Bの送信予定時刻をクリアする。そして、送信制御部13Bは、設定ファイル21Bの送信回数に、1回増やした回数を書き込む。そして、送信制御部13Bは、送信回数が設定ファイル21Bの送信上限回数より小さい場合には、設定ファイル21Bから送信インターバルを読み取る。そして、送信制御部13Bは、現在時刻に送信インターバルを加算して得られた時刻を送信予定時刻として設定ファイル21Bに設定する。これは、データ送信の送信回数が送信上限回数に到達していないから、送信インターバルを空けた送信予定時刻を設定したものである。また、送信制御部13Bは、送信回数が設定ファイル21Bの送信上限回数以上の場合には、設定ファイル21Bのランダム待機時間をクリアする。これは、データ送信の送信回数が送信上限回数に到達したからである。
【0079】
[データ送信処理のフローチャート]
ここで、実施例3に係るデータ送信処理のフローチャートの一例を、
図13~
図16を参照して説明する。
図13は、実施例3に係る起動時制御処理のフローチャートの一例を示す図である。起動時制御処理は、クライアント端末1が電源ONやレジュームになったタイミング、または、基準時刻になったタイミングで実行される。なお、基準時刻は、例えば0:00であるとする。
【0080】
図13に示すように、起動時制御部11Bは、本処理が開始した時刻と契機(電源ON/レジューム/基準時刻)をイベントログとしてイベントログ情報22に保存する(ステップS61)。そして、起動時制御部11Bは、設定ファイル21Bから基準時刻を読み取る(ステップS62)。そして、起動時制御部11Bは、イベントログ情報22を参照し、1つ前のイベントログの時刻を取得し、その時刻から現在時刻までの間で、基準時刻を超えているかを確認する(ステップS63)。すなわち、起動時制御部11Bは、日付を跨っているか否かを確認する。
【0081】
起動時制御部11Bは、基準時刻を超えていないか否かを判定する(ステップS64)。基準時刻を超えていないと判定した場合には(ステップS64;Yes)、起動時制御部11Bは、ステップS66に移行する。
【0082】
一方、基準時刻を超えていると判定した場合には(ステップS64;No)、起動時制御部11Bは、設定ファイル21Bの送信回数をクリアする(ステップS65)。すなわち、起動時制御部11Bは、日付が跨っている場合には、送信回数を初期化する。そして、起動時制御部11Bは、ステップS66に移行する。
【0083】
ステップS66において、起動時制御部11Bは、設定ファイル21Bからランダム待機時間を読み取る(ステップS66)。起動時制御部11Bは、ランダム待機時間が設定済みであるか否かを判定する(ステップS67)。ランダム待機時間が設定済みであると判定した場合には(ステップS67;Yes)、起動時制御部11Bは、ステップS71に移行する。
【0084】
一方、ランダム待機時間が設定済みでない(未設定)と判定した場合には(ステップS67;No)、起動時制御部11Bは、設定ファイル21Bからランダム待機時間上限を読み取る(ステップS68)。そして、起動時制御部11Bは、0からランダム待機時間上限の範囲で乱数を生成する(ステップS69)。そして、起動時制御部11Bは、生成した乱数を設定ファイル21Bのランダム待機時間に書き込む(ステップS70)。そして、起動時制御部11Bは、ステップS71に移行する。
【0085】
ステップS71において、起動時制御部11Bは、送信予定時刻を設定する(ステップS71)。なお、送信予定時刻を設定する処理のフローチャートは、後述する。そして、起動時制御部11Bは、起動時制御処理を終了する。
【0086】
図14は、実施例3に係る停止時制御処理のフローチャートの一例を示す図である。
図14に示すように、停止時制御処理は、クライアント端末1が電源OFFやスリープになったタイミングで実行される。停止時制御部42Bは、本処理が開始した時刻と契機(電源OFF/スリープ)をイベントログとしてイベントログ情報22に保存する(ステップS81)。そして、停止時制御部42Bは、設定ファイル21Bから送信予定時刻を読み取る(ステップS82)。停止時制御部42Bは、送信予定時刻が設定済みであるか否かを判定する(ステップS83)。送信予定時刻が設定済みでないと判定した場合には(ステップS83;No)、停止時制御部42Bは、停止時制御処理を終了する。
【0087】
一方、送信予定時刻が設定済みであると判定した場合には(ステップS83;Yes)、停止時制御部42Bは、送信予定時刻から現在時刻を減算し、その時刻を設定ファイル21Bのランダム待機時間に書き込む(ステップS84)。そして、停止時制御部42Bは、設定ファイル21Bの送信予定時刻をクリアする(ステップS85)。そして、停止時制御部42Bは、停止時制御処理を終了する。
【0088】
図15は、実施例3に係る送信制御処理のフローチャートの一例を示す図である。
図15に示すように、送信制御処理は、送信予定時刻で割り込みが発生したタイミングで実行される。送信制御部13Bは、本処理が開始した時刻を送信ログとして送信ログ情報23に保存する(ステップS91)。そして、送信制御部13Bは、稼働データをクラウドサーバ5へ送信する(ステップS92)。そして、送信制御部13Bは、設定ファイル21Bの送信予定時刻をクリアする(ステップS93)。そして、送信制御部13Bは、設定ファイル21Bから送信回数を読み取る(ステップS94)。
【0089】
そして、送信制御部13Bは、送信回数を1回増やし、設定ファイル21Bの送信回数に書き込む(ステップS95)。そして、送信制御部13Bは、設定ファイル21Bから送信上限回数を読み取り、送信回数と比較する(ステップS96)。
【0090】
送信制御部13Bは、送信回数が送信上限回数に到達したか否かを判定する(ステップS97)。送信回数が送信上限回数に到達したと判定した場合には(ステップS97;Yes)、送信制御部13Bは、設定ファイル21Bのランダム待機時間をクリアする(ステップS98)。そして、送信制御部13Bは、送信制御処理を終了する。
【0091】
一方、送信回数が送信上限回数に到達していないと判定した場合には(ステップS97;No)、送信制御部13Bは、設定ファイル21Bから送信インターバルを読み取る(ステップS98)。そして、送信制御部13Bは、現在時刻に送信インターバルを加算し、その時刻を設定ファイル21Bの送信予定時刻に書き込む(ステップS99)。そして、送信制御部13Bは、送信制御処理を終了する。
【0092】
図16は、実施例3に係る送信予定時刻設定処理のフローチャートの一例を示す図である。
図16に示すように、送信予定時刻設定部41Bは、設定ファイル21Bから送信上限回数および送信回数を読み取り、回数を比較する(ステップS101)。送信予定時刻設定部41Bは、送信回数は送信上限回数に到達したか否かを判定する(ステップS102)。
【0093】
送信回数が送信上限回数に到達した(送信回数≧送信上限回数)と判定した場合には(ステップS102;Yes)、送信予定時刻設定部41Bは、設定ファイル21Bの送信予定時刻をクリアする(ステップS103)。すなわち、
図16左表に示すように、送信予定時刻設定部41Bは、送信回数が送信上限回数に到達した場合には、送信インターバルが未達か否かに関わらず、割り込み時刻である送信予定時刻をクリアする(<3><4>参照)。そして、送信予定時刻設定部41Bは、送信予定時刻設定処理を終了する。
【0094】
一方、送信回数が送信上限回数に到達していない(送信回数<送信上限回数)と判定した場合には(ステップS102;No)、送信予定時刻設定部41Bは、設定ファイル21Bから送信インターバルを読み取る(ステップS104)。そして、送信予定時刻設定部41Bは、送信ログ情報23から前回の送信日時を読み取り、現在時刻から減算して差分の時間を算出する(ステップS105)。そして、送信予定時刻設定部41Bは、算出した差分の時間と送信インターブルを比較する(ステップS106)。
【0095】
送信予定時刻設定部41Bは、差分の時間が送信インターバルに到達したか否かを判定する(ステップS107)。差分の時間が送信インターバルに到達していない(差分の時間<送信インターバル)と判定した場合には(ステップS107;No)、送信予定時刻設定部41Bは、前回の送信日時に送信インターバルを加算した時刻を設定ファイル21Bの送信予定時刻に書き込む(ステップS108)。すなわち、
図16左表に示すように、送信予定時刻設定部41Bは、送信回数が送信上限回数に到達せず、且つ、送信インターバルに到達していない場合には、前回の送信日時を基準に、送信インターバルを加算した時刻を割り込み時刻である送信予定時刻とする(<1>参照)。そして、送信予定時刻設定部41Bは、送信予定時刻設定処理を終了する。
【0096】
一方、差分の時間が送信インターバルに到達した(差分の時間≧送信インターバル)と判定した場合には(ステップS107;Yes)、送信予定時刻設定部41Bは、設定ファイル21Bからランダム待機時間を読み取る(ステップS109)。そして、送信予定時刻設定部41Bは、現在時刻にランダム待機時間を加算し、その時刻を設定ファイル21Bの送信予定時刻に書き込む(ステップS110)。すなわち、
図16左表に示すように、送信予定時刻設定部41Bは、送信回数が送信上限回数に到達せず、且つ、送信インターバルに到達している場合には、現在時刻を基準に、ランダム待機時間を加えた時刻を割り込み時刻である送信予定時刻とする(<2>参照)。そして、送信予定時刻設定部41Bは、送信予定時刻設定処理を終了する。
【0097】
[実施例3の効果]
上記実施例3によれば、クライアント端末1は、取得したランダム待機時間に加えて、現在時刻と、予め定められた送信制約とに基づいて算出される送信予定時刻を記憶部に書き込む。クライアント端末1は、送信予定時刻になったタイミングでデータを送信する。かかる構成によれば、クライアント端末1は、送信制約があっても、端末の稼働時間に関係なく、データを送信できる。
【0098】
また、上記実施例3によれば、送信制約は、送信インターバルまたは送信上限回数の少なくとも1つである。これにより、クライアント端末1は、送信インターバルまたは送信上限回数の少なくとも1つである送信制約があっても、端末の稼働時間に関係なく、データを送信できる。
【0099】
[その他]
なお、実施例1~3では、ランダム待機時間上限が、予め静的に設定される場合について説明した。しかしながら、クライアント端末1は、例えば、端末毎の送信可能な稼働時間を考慮したランダム待機時間上限を算出し、動的に設定しても良い。一例として、複数のクライアント端末1の中に1日の稼働時間が8時間であるクライアント端末1がある場合について説明する。ランダム待機時間上限が10時間である場合、このクライアント端末1は、ランダム待機時間上限を下回る範囲で生成されるランダム待機時間が8時間から10時間になると、データを送信できなくなる。そこで、かかる場合には、ランダム待機時間上限は、8時間に設定されるようにすれば良い。
【0100】
また、ランダム待機時間上限が算出される際に用いられる端末毎の送信可能な稼働時間は、過去の各端末の稼働時間、電源OFF/ONおよびサスペンド/レジュームの情報等を用いて予測されても良い。加えて、予測の際用いられる情報は、曜日や月の要素を含んでも良い。例えば、土曜日、日曜日は定休日であるため、利用しなかったり、水曜日は他の平日と比べて稼働時間が短かったりする場合があるからである。また、業種に応じてn(1~12のいずれか)月は、他の月と比べて稼働時間が短かったりする場合があるからである。
【0101】
また、図示したクライアント端末1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、設定ファイル21等を記憶する記憶部20をクライアント端末1の外部装置としてネットワーク経由で接続するようにしても良い。
【0102】
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、
図2に示したクライアント端末1と同様の機能を実現するデータ送信プログラムを実行するコンピュータの一例を説明する。
図17は、データ送信プログラムを実行するコンピュータの一例を示す図である。
【0103】
図17に示すように、コンピュータ200は、各種演算処理を実行するCPU(Central Processing Unit)203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信I/F(Interface)217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示装置209、ドライブ装置213、入力装置215、通信I/F217は、バス219で接続されている。
【0104】
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、データ送信プログラム205aおよびデータ送信関連情報205bを記憶する。通信I/F217は、ネットワークと装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。通信I/F217には、例えば、モデムやLANアダプタ等を採用することができる。
【0105】
表示装置209は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報等のデータを表示する表示装置である。表示装置209は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイ等を採用することができる。
【0106】
CPU203は、データ送信プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスはクライアント端末1の各機能部に対応する。データ送信関連情報205bは、設定ファイル21等に対応する。そして、例えばリムーバブルディスク211が、データ送信プログラム205a等の各情報を記憶する。
【0107】
なお、データ送信プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからデータ送信プログラム205aを読み出して実行するようにしても良い。
【符号の説明】
【0108】
1 クライアント端末
5 クラウドサーバ
9 データ送信システム
10 制御部
11,11A,11B 起動時制御部
12 待機時間カウント部
13,13A,13B 送信制御部
20 記憶部
21,21A 設定ファイル
22 イベントログ情報
23 送信ログ情報
30 通信部
41,41B 送信予定時刻設定部
42,42B 停止時制御部
51 API処理部
52 データベース