(57)【特許請求の範囲】
【請求項１】
起動命令により起動開始され且つ起動時間を経て起動完了したならデータを処理可能となるプロセスを有するデータ処理サーバにデータを送信するデータ送信装置であって、
前記起動時間と、当該起動時間が計測された際の前記データ処理サーバのリソース使用状況とを示すレコードを記憶する起動時間データベースと、
前記データ処理サーバにデータを送信する予定の時刻であるデータ送信予定時刻を記憶する送信計画データベースと、
前記起動時間データベースから前記データ処理サーバの現在のリソース使用状況に応じた起動時間を読み出す起動時間取得部と、
前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算する起動命令送信予定時刻計算部と、
前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する起動命令送信部と
を備えることを特徴とするデータ送信装置。
【請求項２】
前記データ処理サーバに含まれるプロセスに対して共通性を有するプロセスを有する他のデータ処理サーバにおける当該プロセスについての起動時間を記憶する他サーバ起動時間データベースと、
前記他サーバ起動時間データベースから起動時間を読み出す他サーバ起動時間取得部とを備え、
前記起動命令送信予定時刻計算部は、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、
前記起動命令送信部は、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する
ことを特徴とする請求項１記載のデータ送信装置。
【請求項３】
前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間が計測された際の前記他のデータ処理サーバのリソース使用状況とを示すレコードを記憶するものであり、
前記起動時間取得部は、前記データ処理サーバの現在のリソース使用状況を取得し、前記起動時間データベースから、取得したリソース使用状況と完全一致するリソース使用状況を示すレコードを検索し、
前記他サーバ起動時間取得部は、前記完全一致するリソース使用状況を示すレコードがない場合、前記他サーバ起動時間データベースから起動時間を読み出す
ことを特徴とする請求項２記載のデータ送信装置。
【請求項４】
前記起動時間データベースは、当該起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、
前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、
前記起動時間取得部は、現在時刻を含む時間帯に属する起動命令送信時刻を示すレコードが前記起動時間データベースに有るか否かを判定し、
前記起動時間取得部は、当該レコードが前記起動時間データベースにないなら、前記起動時間データベースの任意のレコードから起動時間と起動命令送信時刻を読み出し、
前記他サーバ起動時間取得部は、現在時刻を含む時間帯に属する起動命令送信時刻を含むレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出し、前記起動時間取得部により読み出された前記起動命令送信時刻を含む時間帯に属する起動命令送信時刻を含むレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出し、
前記起動時間取得部は、前記他サーバ起動時間取得部により読み出された前者の前記起動時間から後者の前記起動時間を減算した値であるオフセットを計算し、前記起動時間取得部が読み出した起動時間に前記オフセットを加算した時間を起動時間とし、
前記起動命令送信予定時刻計算部は、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、
前記起動命令送信部は、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する
ことを特徴とする請求項２記載のデータ送信装置。
【請求項５】
前記起動時間データベースは、当該起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、
前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、
前記起動時間取得部は、前記起動時間データベースにおける最新の起動命令送信時刻が、現在時刻から予め定めた時間遡った閾値時刻よりも新しい時刻か否かを判定し、
前記他サーバ起動時間取得部は、当該最新の起動命令送信時刻が当該閾値時刻以前の時刻なら、当該閾値時刻より新しい且つ最新の起動命令送信時刻を示すレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出す
ことを特徴とする請求項２記載のデータ送信装置。
【請求項６】
起動命令により起動開始され且つ起動時間を経て起動完了したならデータを処理可能となるプロセスを有するデータ処理サーバにデータを送信するデータ送信装置の動作方法であって、
前記データ送信装置は、
前記起動時間と、当該起動時間が計測された際の前記データ処理サーバのリソース使用状況とを示すレコードを記憶する起動時間データベースと、
前記データ処理サーバにデータを送信する予定の時刻であるデータ送信予定時刻を記憶する送信計画データベースとを備え、
前記動作方法は、
前記データ送信装置の起動時間取得部が、前記起動時間データベースから前記データ処理サーバの現在のリソース使用状況に応じた起動時間を読み出し、
前記データ送信装置の起動命令送信予定時刻計算部が、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、
前記データ送信装置の起動命令送信部が、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する
ことを特徴とするデータ送信装置の動作方法。
【請求項７】
請求項１ないし５のいずれかに記載のデータ送信装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理するプロセスの起動完了にタイミングを合わせてデータが送信されるように起動命令を送信する技術に関し、詳しくは、データ送信装置、データ送信装置の動作方法およびコンピュータプログラムに関するものである。
【背景技術】
【０００２】
従来においては、センサが一定周期でデータを送出し、これをゲートウェイ端末が取得してサーバに転送するシステムがある。また、このゲートウェイ端末の消費電力を低減すべく、データの取得、転送のタイミングでゲートウェイ端末の電源をオン・オフする方式が提案されている（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−６８０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、上記ゲートウェイ端末のように、サーバにデータを送信することについては同じだが、サーバにおいてデータを処理するプロセスの起動命令を事前に送信するような場合がある。
【０００５】
図１１に示すように、プロセスは、例えば、通常は起動されておらず、データ送信側は、事前に起動命令を送信する。すると、プロセスが起動開始し、起動時間を経て、起動完了し、データの処理が可能となる。さらに、待機時間を経て、データが送信され、プロセスは、データを処理する。
【０００６】
例えば、データ送信側で起動時間がわからない場合、長めの起動時間を想定し、よって、起動命令とデータの送信時刻間隔は長めに設定される。その結果、待機時間が生じ、サーバでは、その待機時間分のリソースや電力が無駄となってしまう。
【０００７】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、データを処理するプロセスの起動完了にタイミングを合わせてデータが送信されるように起動命令を送信する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、第１の本発明は、起動命令により起動開始され且つ起動時間を経て起動完了したならデータを処理可能となるプロセスを有するデータ処理サーバにデータを送信するデータ送信装置であって、前記起動時間と、当該起動時間が計測された際の前記データ処理サーバのリソース使用状況とを示すレコードを記憶する起動時間データベースと、前記データ処理サーバにデータを送信する予定の時刻であるデータ送信予定時刻を記憶する送信計画データベースと、前記起動時間データベースから前記データ処理サーバの現在のリソース使用状況に応じた起動時間を読み出す起動時間取得部と、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算する起動命令送信予定時刻計算部と、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する起動命令送信部とを備えることを特徴とする。
【０００９】
例えば、前記データ処理サーバに含まれるプロセスに対して共通性を有するプロセスを有する他のデータ処理サーバにおける当該プロセスについての起動時間を記憶する他サーバ起動時間データベースと、前記他サーバ起動時間データベースから起動時間を読み出す他サーバ起動時間取得部とを備え、前記起動命令送信予定時刻計算部は、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、前記起動命令送信部は、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する。
【００１０】
例えば、前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間が計測された際の前記他のデータ処理サーバのリソース使用状況とを示すレコードを記憶するものであり、前記起動時間取得部は、前記データ処理サーバの現在のリソース使用状況を取得し、前記起動時間データベースから、取得したリソース使用状況と完全一致するリソース使用状況を示すレコードを検索し、前記他サーバ起動時間取得部は、前記完全一致するリソース使用状況を示すレコードがない場合、前記他サーバ起動時間データベースから起動時間を読み出す。
【００１１】
例えば、前記起動時間データベースは、当該起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、前記起動時間取得部は、現在時刻を含む時間帯に属する起動命令送信時刻を示すレコードが前記起動時間データベースに有るか否かを判定し、前記起動時間取得部は、当該レコードが前記起動時間データベースにないなら、前記起動時間データベースの任意のレコードから起動時間と起動命令送信時刻を読み出し、前記他サーバ起動時間取得部は、現在時刻を含む時間帯に属する起動命令送信時刻を含むレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出し、前記起動時間取得部により読み出された前記起動命令送信時刻を含む時間帯に属する起動命令送信時刻を含むレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出し、前記起動時間取得部は、前記他サーバ起動時間取得部により読み出された前者の前記起動時間から後者の前記起動時間を減算した値であるオフセットを計算し、前記起動時間取得部が読み出した起動時間に前記オフセットを加算した時間を起動時間とし、前記起動命令送信予定時刻計算部は、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、前記起動命令送信部は、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信する。
【００１２】
例えば、前記起動時間データベースは、当該起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、前記他サーバ起動時間データベースは、当該他サーバ起動時間データベースに記憶される起動時間と、当該起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、前記起動時間取得部は、前記起動時間データベースにおける最新の起動命令送信時刻が、現在時刻から予め定めた時間遡った閾値時刻よりも新しい時刻か否かを判定し、前記他サーバ起動時間取得部は、当該最新の起動命令送信時刻が当該閾値時刻以前の時刻なら、当該閾値時刻より新しい且つ最新の起動命令送信時刻を示すレコードを前記他サーバ起動時間データベースから検索し、当該レコードから起動時間を読み出す。
【００１３】
第２の本発明は、起動命令により起動開始され且つ起動時間を経て起動完了したならデータを処理可能となるプロセスを有するデータ処理サーバにデータを送信するデータ送信装置の動作方法であって、前記データ送信装置は、前記起動時間と、当該起動時間が計測された際の前記データ処理サーバのリソース使用状況とを示すレコードを記憶する起動時間データベースと、前記データ処理サーバにデータを送信する予定の時刻であるデータ送信予定時刻を記憶する送信計画データベースとを備え、前記動作方法は、前記データ送信装置の起動時間取得部が、前記起動時間データベースから前記データ処理サーバの現在のリソース使用状況に応じた起動時間を読み出し、前記データ送信装置の起動命令送信予定時刻計算部が、前記送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、前記データ送信装置の起動命令送信部が、前記起動命令送信予定時刻になったなら、前記データ処理サーバに起動命令を送信することを特徴とする。
【００１４】
第３の本発明は、第１の本発明のデータ送信装置としてコンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【００１５】
本発明によれば、データを処理するプロセスの起動完了にタイミングを合わせてデータが送信されるように起動命令を送信することができ、起動完了してからデータを処理するまでの待機時間を無くすことができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態に係るデータ処理システムの構成を示す図である。
【図２】送信計画データベース１１の構成を示す図である。
【図３】起動時間データベース１２の構成を示す図である。
【図４】データ送信装置１における処理の流れを示すフローチャートである。
【図５】第２の実施の形態に係るデータ処理システムの構成を示す図である。
【図６】クラスタリング結果データベース１０１の構成を示す図である。
【図７】データ送信装置１０がステップＳ３（図４）で行う処理の第１例を示すフローチャートである。
【図８】データ送信装置１０がステップＳ３（図４）で行う処理の第２例を示すフローチャートである。
【図９】データ送信装置１０がステップＳ３（図４）で行う処理の第３例を示すフローチャートである。
【図１０】データ送信装置１、１０による処理の特徴を示す図である。
【図１１】従来における起動命令およびデータの送信についての問題点を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について図面を参照して説明する。
【００１８】
[第１の実施の形態]
図１は、第１の実施の形態に係るデータ処理システムの構成を示す図である。
【００１９】
データ送信装置１は、データ処理サーバ２に対し、センサ３から取得したデータを送信する装置である。データ処理サーバ２は、データを受信して処理するプロセスを備える装置である。
【００２０】
データ送信装置１は、データ送信予定時刻を記憶するスケジュール管理部１Ａ、データを送信するデータ転送部１Ｂを備える。
【００２１】
スケジュール管理部１Ａは、データ送信予定時刻を記憶する送信計画データベース１１、プロセスの起動時間を記憶する起動時間データベース１２、起動時間データベース１２から起動時間を読み出す起動時間取得部１３、起動命令送信予定時刻を計算する起動命令送信予定時刻計算部１４、起動命令を送信する起動命令送信部１５、起動時間データベース１２を更新する起動時間データベース更新部１６を備える。
【００２２】
データ転送部１Ｂは、センサ３からデータを受信するデータ取得部１７、データ処理サーバ２にデータを送信するデータ送信部１８を備える。
【００２３】
データ処理サーバ２は、データを処理するプロセス２１、プロセスを管理するプロセス管理部２２を備える。プロセス管理部２２は、プロセスを起動するプロセス起動部２２１、起動時間を計算する起動時間計算部２２２を備える。
【００２４】
図２は、送信計画データベース１１の構成を示す図である。
【００２５】
送信計画データベース１１は、データがセンサ３から送信される予定の時刻であり且つデータをデータ処理サーバ２に送信する予定の時刻でもあるデータ送信予定時刻、センサのセンサＩＤ、並びにその他の情報、例えば、使用するプロトコルを示すレコードを１以上備える。
【００２６】
図３は、起動時間データベース１２の構成を示す図である。
【００２７】
起動時間データベース１２は、起動命令が送信された時刻である起動命令送信時刻、この起動命令によるプロセス２１の起動時間（起動開始から起動完了までの長さ）、この起動命令が送信されたときのデータ処理サーバ２のリソースについてのリソース使用状況を示すレコードを１以上備える。
【００２８】
図４は、データ送信装置１における処理の流れを示すフローチャートである。
【００２９】
Ｓ１：起動命令送信予定時刻計算部１４は、送信計画データベース１１から、現在時刻以降で最も早いデータ送信予定時刻を読み出す。
【００３０】
Ｓ３：また、起動時間取得部１３は、データ処理サーバ２の現在のリソース使用状況を取得し、起動時間データベース１２から、取得したリソース使用状況と完全一致するリソース使用状況を示すレコードを検索し、レコードから起動時間を読み出す（第１の起動時間取得方法）。起動時間取得部１３は、例えば、データ処理サーバ２から通信によりリソース使用状況を取得する。
【００３１】
Ｓ３：または、起動時間取得部１３は、データ処理サーバ２の現在のリソース使用状況を取得し、起動時間データベース１２から、取得したリソース使用状況に類似するリソース使用状況を示すレコードを検索し、レコードから起動時間を読み出す（第２の起動時間取得方法）。
【００３２】
例えば、ＣＰＵ、メモリなどの各リソースの使用率を０〜１０％の区間１、１１〜２０％の区間２、…のように区切り、各リソースにつき、取得したリソース使用状況における値と起動時間データベース１２における値が同じ区間に属していれば、取得したリソース使用状況と起動時間データベース１２のリソース使用状況は類似していると判断すればよい。
【００３３】
Ｓ３：または、起動時間取得部１３は、データ処理サーバ２の現在のリソース使用状況を示す各リソースの使用率を要素とするベクトルを生成し、また、起動時間データベース１２のリソース使用状況についても同様のベクトルを生成し、前者のリソース使用状況から得たベクトルとの距離（例：ユークリッド距離）が最も小さい後者のベクトルを選択し、対応するレコードから起動時間を読み出す（第３の起動時間取得方法）。または、前者のベクトルとの類似度（例：コサイン類似度）が１に最も近い後者のベクトルを選択し、対応するレコードから起動時間を取得してもよい。
【００３４】
Ｓ５：次に、起動命令送信予定時刻計算部１４は、ステップＳ１で読み出されたデータ送信予定時刻から、Ｓ３で読み出された起動時間だけ遡った時刻である起動命令送信予定時刻を計算する。なお、起動時間のバラツキを考慮し、計算値より若干遅い時刻を起動命令送信予定時刻をしてもよい。
【００３５】
Ｓ７、Ｓ９：次に、起動命令送信部１５は、起動命令送信予定時刻になったなら（Ｓ７：ＹＥＳ）、データ処理サーバ２に起動命令を送信する（Ｓ９）。
【００３６】
この起動命令は、プロセス起動部２２１により受信され、プロセス起動部２２１は、プロセス２１を起動開始させるとともに、起動時間計算部２２２に現時刻からの経過時間の計算を開始させる。プロセス２１は起動開始し、起動時間計算部２２２は現時刻からの経過時間の計算を開始する。
【００３７】
起動時間計算部２２２は、プロセス２１の起動完了を検知すると、経過時間の計算を終了し、終了時点の経過時間、すなわち、起動時間、ならびにプロセス２１の起動開始時のリソース使用状況をデータ送信装置１に通知する。
【００３８】
Ｓ１１、Ｓ１３：データ取得部１７は、Ｓ１の実行時刻以降で最も早いデータ送信予定時刻になったなら（Ｓ１１：ＹＥＳ）、そのときにセンサ３から送信されるデータを受信し、データ送信部１８は、データを直ちにデータ処理サーバ２へ送信する（Ｓ１３）。なお、データ送信部１８がデータをキャッシュし、データ送信予定時刻に送信してもよい。
【００３９】
このデータは、データの送信直前に起動完了したプロセス２１により受信され、プロセス２１は、データを適宜処理する。
【００４０】
Ｓ１５：ステップＳ１３の後（または、ステップＳ１３の前でもよい）、起動時間データベース更新部１６は、起動時間計算部２２２から起動時間、リソース使用状況の通知を受けると、Ｓ９の起動命令が送信された時刻である起動命令送信時刻、通知された起動時間、リソース使用状況を示すレコードを起動時間データベース１２に記憶させ、ステップＳ１に戻る。
【００４１】
したがって、第１の実施の形態に係るデータ送信装置１によれば、起動命令により起動開始され且つ起動時間を経て起動完了したならデータを処理可能となるプロセスを有するデータ処理サーバ２にデータを送信するデータ送信装置であって、起動時間を記憶する起動時間データベース１２と、データ処理サーバ２にデータを送信する予定の時刻であるデータ送信予定時刻を記憶する送信計画データベース１１と、起動時間データベース１２から起動時間を読み出す（Ｓ３）起動時間取得部１３と、送信計画データベース１１からデータ送信予定時刻を読み出し（Ｓ１）、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算する（Ｓ５）起動命令送信予定時刻計算部１４と、起動命令送信予定時刻になったなら、データ処理サーバ２に起動命令を送信する（Ｓ９）起動命令送信部１５とを備えるので、データを処理するプロセス２１の起動完了にタイミングを合わせてデータが送信されるように起動命令を送信することができ、起動完了してからデータを処理するまでの待機時間を無くすことができる。
【００４２】
[第２の実施の形態]
次に、本発明の第２の実施の形態について説明する。第２の実施の形態では、第１の実施の形態に同一または類似の装置および装置構成を用い、同一または類似のものについては第１の実施の形態で使用した符号を使用して重複説明を略し、第１の実施の形態とは異なる事項を中心に説明を行う。
【００４３】
図５は、第２の実施の形態に係るデータ処理システムの構成を示す図である。
【００４４】
データ送信装置１０は、データ処理サーバ２に対し、センサ３から取得したデータを送信する装置である。データ処理サーバ２は、データを受信し、処理するプロセスを備える装置である。
【００４５】
データ送信装置１０は、スケジュール管理部１Ａ、データ転送部１Ｂを備える。
【００４６】
スケジュール管理部１Ａは、送信計画データベース１１、起動時間データベース１２、起動時間取得部１３、起動命令送信予定時刻計算部１４、起動命令送信部１５、起動時間データベース更新部１６、クラスタリング結果データベース１０１、他サーバ起動時間データベース１０２、他サーバ起動時間取得部１０３を備える。
【００４７】
なお、クラスタリング結果データベース１０１は、データ送信装置１０でなく、クラスタリングを行うサーバに保持されていてもよい。また、他サーバ起動時間データベース１０２は、データ送信装置１０以外の各データ送信装置に保持されていてもよい。
【００４８】
データ転送部１Ｂは、データ取得部１７、データ送信部１８を備える。
【００４９】
データ処理サーバ２は、プロセス２１、プロセス管理部２２を備える。プロセス管理部２２は、プロセス起動部２２１、起動時間計算部２２２を備える。
【００５０】
図６は、クラスタリング結果データベース１０１の構成を示す図である。
【００５１】
クラスタリング結果データベース１０１は、データ処理サーバ２と図示しない他の１以上のデータ処理サーバを、当該各データ処理サーバに含まれるプロセスの共通性に基づいて、２以上のクラスタにクラスタリング（グルーピング）した場合の各クラスタにつき、クラスタを示すクラスタＩＤ、クラスタに属するデータ処理サーバごとのサーバＩＤを含むレコードを備える。
【００５２】
例えば、データ処理サーバ２に含まれるプロセスと、データ処理サーバ２が属するクラスタに属する他のデータ処理サーバに含まれるプロセスには共通性がある。クラスタリングは自動で行ってもよいし、人手で行ってもよい。
【００５３】
図示しないが、他サーバ起動時間データベース１０２には、データ処理サーバ２以外の各データ処理サーバにつき、起動時間データベース１２と同様の構成で、当該データ処理サーバについてのレコードが記憶される。
【００５４】
図７は、データ送信装置１０がステップＳ３（図４）で行う処理の第１例を示すフローチャートである。
【００５５】
Ｓ３１：起動時間取得部１３は、第１の実施の形態で説明した第１、第２、第３の起動時間取得方法のいずれかで起動時間を取得できるか否かを判定する。
【００５６】
Ｓ３３：起動時間取得部１３は、取得できる場合（Ｓ３１：ＹＥＳ）、起動時間データベース１２を使用した方法で起動時間を取得する。
【００５７】
一方、第１、第２、第３の起動時間取得方法のいずれかで起動時間を取得できない場合がある（Ｓ３１：ＮＯ）。
【００５８】
例えば、第１の起動時間取得方法で完全一致のレコードがない場合である。または、例えば、第２の起動時間取得方法で、類似のレコードがない場合である。または、例えば、第３の起動時間取得方法で、閾値以下の距離に該当するレコードがない場合である。または、例えば、第３の起動時間取得方法で、閾値以上の類似度に該当するレコードがない場合である。
【００５９】
Ｓ３５：この場合（Ｓ３１：ＮＯ）、他サーバ起動時間取得部１０３は、クラスタリング結果データベース１０１から、データ処理サーバ２のサーバＩＤを含むレコードを検索し、レコードから他のサーバＩＤを読み出し、他サーバ起動時間データベース１０２において、当該他のサーバＩＤのデータ処理サーバについてのレコード（同一クラスタのレコードという）を対象とし、当該レコードから、第１、第２、第３の起動時間取得方法のいずれかで起動時間を読み出す。
【００６０】
起動時間取得部１３は、当該起動時間を他サーバ起動時間取得部１０３から受け取り、起動命令送信予定時刻計算部１４は、当該起動時間を用い、第１の実施の形態と同様に起動命令送信予定時刻を計算する。以降の処理は同じなので、説明を省略する。
【００６１】
第１例によれば、第１、第２、第３の起動時間取得方法のいずれかで起動時間を取得できない場合であっても、起動命令送信予定時刻を計算することができる。
【００６２】
図８は、データ送信装置１０がステップＳ３（図４）で行う処理の第２例を示すフローチャートである。
【００６３】
Ｓ３０１：起動時間取得部１３は、１日を複数の時間帯（例えば、１時間ごと）に区切った場合において、現在時刻を含む時間帯に属する起動命令送信時刻を示すレコードが起動時間データベース１２に有るか否かを判定する。
【００６４】
Ｓ３０３：起動時間取得部１３は、該当のレコードがあったなら（Ｓ３０１：ＹＥＳ）、当該レコードを対象に、第１の実施の形態で説明した第１、第２、第３の起動時間取得方法のいずれかで起動時間を取得する。
【００６５】
Ｓ３０５：一方、起動時間取得部１３は、該当のレコードがなかったなら（Ｓ３０１：ＮＯ）、起動時間データベース１２の任意のレコードから起動時間、起動命令送信時刻を読み出す。例えば、夜間の起動命令送信時刻を含むレコードから起動時間、起動命令送信時刻を読み出す。
【００６６】
Ｓ３０７：また、他サーバ起動時間取得部１０３は、該当のレコードがなかったなら（Ｓ３１１：ＮＯ）、他サーバ起動時間データベース１０２における同一クラスタのレコードを対象とし、現在時刻を含む時間帯（例えば、日中）に属する起動命令送信時刻を含むレコードを検索し、当該レコードから起動時間を読み出す。
【００６７】
Ｓ３０９：また、他サーバ起動時間取得部１０３は、同一クラスタのレコードを対象とし、ステップＳ３０５で読み出された起動命令送信時刻（夜間）を含む時間帯に属する起動命令送信時刻を含むレコードを検索し、当該レコードから起動時間を読み出す。
【００６８】
Ｓ３１１：次に、起動時間取得部１３は、ステップＳ３０７で読み出された起動時間（日中）から、ステップＳ３０９で読み出された起動時間（夜間）を減算した値（オフセットという）を計算する。
【００６９】
Ｓ３１３：次に、起動時間取得部１３は、ステップＳ３０５で読み出した起動時間（夜間の起動時間）に、Ｓ３１１で計算したオフセットを加算し、これを以降使用される起動時間とする。
【００７０】
起動命令送信予定時刻計算部１４は、当該起動時間を用い、第１の実施の形態と同様に起動命令送信予定時刻を計算する。以降の処理は同じなので、説明を省略する。
【００７１】
ここで、第２例の処理が有効な状況について説明する。
【００７２】
例えば、データ処理サーバ２が含まれるクラスタに含まれる他のデータ処理サーバがデータを受信し、その他にもリクエストを受信する場合、時間帯によって、受信数に特徴が存在することが考えられる。他、工場における動作のデータを受信する場合、工場が稼働する日中は受信数が多いが、稼働停止する夜間は受信数が極めて少なくなることが考えられる。
【００７３】
例えば、他のデータ処理サーバについては、午前０時から１時の１時間（夜間）において、起動時間がａ秒だとすると、午後０時から１時の１時間（日中）においては起動時間がｂ（＞＞ａ）秒となる。
【００７４】
よって、データ処理サーバ２については、午後０時から１時の１時間（日中）における起動時間が起動時間データベース１２に記憶されていなくても、午前０時から１時の１時間（夜間）における起動時間ａ’秒が記憶されていれば、「日中」における起動時間は、ａ’＋｜ｂ−ａ｜と計算される。
【００７５】
よって、「日中」における起動時間が記憶されていなくても、起動命令送信予定時刻を計算することができる。
【００７６】
図９は、データ送信装置１０がステップＳ３（図４）で行う処理の第３例を示すフローチャートである。
【００７７】
Ｓ３２１：起動時間取得部１３は、起動時間データベース１２における最新の起動命令送信時刻が、現在時刻から予め定めた時間遡った時刻（閾値時刻という）よりも新しい時刻か否かを判定する。
【００７８】
Ｓ３２３：起動時間取得部１３は、最新の起動命令送信時刻が閾値時刻より新しい時刻なら（Ｓ３２１：ＹＥＳ）、閾値時刻より新しい起動命令送信時刻を含むレコードを対象とし、第１の実施の形態で説明した第１、第２、第３の起動時間取得方法のいずれかで起動時間を取得する。
【００７９】
Ｓ３２５：一方、他サーバ起動時間取得部１０３は、最新の起動命令送信時刻が閾値時刻以前の時刻なら（Ｓ３２１：ＮＯ）、同一クラスタのレコードを対象とし、閾値時刻より新しい且つ最新の起動命令送信時刻を示すレコードを検索し、当該レコードから起動時間を読み出す。
【００８０】
起動時間取得部１３は、当該起動時間を他サーバ起動時間取得部１０３から受け取り、起動命令送信予定時刻計算部１４は、当該起動時間を用い、第１の実施の形態と同様に起動命令送信予定時刻を計算する。以降の処理は同じなので、説明を省略する。
【００８１】
ここで、第３例の処理が有効な状況について説明する。
【００８２】
データ処理サーバ２においては、例えば、ハードディスク装置がＳＳＤ（半導体メモリを使用したドライブ装置）に置換され、起動時間が短縮されるということが考えられる。
【００８３】
例えば、リソース使用状況が完全一致または類似している場合であっても、起動命令送信時刻が閾値時刻以前の時刻なら、起動時間は、上記のようなハードディスク装置を置換した後の現在の起動時間より長い可能性が高い。
【００８４】
第３例では、このような、実際より長い起動時間が使用されるのを防げるので待機時間（プロセスの起動完了からデータ送信までの時間）を無くすことができる。
【００８５】
したがって、第２の実施の形態のデータ送信装置１０によれば、データ処理サーバ２に含まれるプロセスに対して共通性を有するプロセスを有する他のデータ処理サーバにおける当該プロセスについての起動時間を記憶する他サーバ起動時間データベース１０２と、他サーバ起動時間データベース１０２から起動時間を読み出す他サーバ起動時間取得部１０３とを備え、起動命令送信予定時刻計算部１４は、送信計画データベースからデータ送信予定時刻を読み出し、当該データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し、起動命令送信部１５は、起動命令送信予定時刻になったなら、データ処理サーバ２に起動命令を送信するので、起動時間データベース１２に
起動時間が記憶されてない場合であっても起動命令を送信できる。
【００８６】
また、第１例で示したように、起動時間データベース１２は、起動時間データベース１２に記憶される起動時間と、起動時間が計測された際のデータ処理サーバ２のリソース使用状況とを示すレコードを記憶するものであり、他サーバ起動時間データベース１０２は、他サーバ起動時間データベース１０２に記憶される起動時間と、起動時間が計測された際の他のデータ処理サーバのリソース使用状況とを示すレコードを記憶するものであり、起動時間取得部１３は、データ処理サーバ２の現在のリソース使用状況を取得し、起動時間データベース１２から、取得したリソース使用状況と完全一致するリソース使用状況を示すレコードを検索し（Ｓ３１）、他サーバ起動時間取得部１０３は、完全一致するリソース使用状況を示すレコードがない場合（Ｓ３１：ＮＯ）、他サーバ起動時間データベース１０２から起動時間を読み出し（Ｓ３５）、起動命令送信予定時刻計算部１４は、送信計画データベース１１からデータ送信予定時刻を読み出し、データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し（Ｓ５）、起動命令送信部１５は、起動命令送信予定時刻になったなら、データ処理サーバ２に起動命令を送信する（Ｓ９）ので、起動時間データベース１２に、現在のリソース使用状況と完全一致するリソース使用状況を示すレコードがない場合であっても起動命令を送信できる。
【００８７】
また、第２例で示したように、起動時間データベース１２は、起動時間データベース１２に記憶される起動時間と、起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、他サーバ起動時間データベース１０２は、他サーバ起動時間データベース１０２に記憶される起動時間と、起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、起動時間取得部１３は、現在時刻を含む時間帯に属する起動命令送信時刻を示すレコードが起動時間データベース１２に有るか否かを判定し（Ｓ３０１）、起動時間取得部１３は、当該レコードが起動時間データベース１２にないなら（Ｓ３０１：ＮＯ）、起動時間データベース１２の任意のレコードから起動時間と起動命令送信時刻を読み出し（Ｓ３０５）、他サーバ起動時間取得部１０３は、現在時刻を含む時間帯に属する起動命令送信時刻を含むレコードを他サーバ起動時間データベース１０２から検索し、当該レコードから起動時間を読み出し（Ｓ３０７）、起動時間取得部１３により読み出された起動命令送信時刻を含む時間帯に属する起動命令送信時刻を含むレコードを他サーバ起動時間データベース１０２から検索し、当該レコードから起動時間を読み出し（Ｓ３０９）、起動時間取得部１３は、他サーバ起動時間取得部１０３により読み出された前者の起動時間（Ｓ３０７）から後者の起動時間（Ｓ３０９）を減算した値であるオフセットを計算し（Ｓ３１１）、起動時間取得部１３が読み出した起動時間（Ｓ３０５）にオフセットを加算した時間を起動時間とし、起動命令送信予定時刻計算部１４は、送信計画データベース１１からデータ送信予定時刻を読み出し、データ送信予定時刻から当該起動時間だけ遡った時刻である起動命令送信予定時刻を計算し（Ｓ５）、起動命令送信部１５は、起動命令送信予定時刻になったなら、データ処理サーバ２に起動命令を送信するので（Ｓ９）、起動時間データベース１２に、現在時刻を含む時間帯に属する起動命令送信時刻を含むレコードがない場合であっても起動命令を送信できる。
【００８８】
また、第３例で示したように、起動時間データベース１２は、起動時間データベース１２に記憶される起動時間と、起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、他サーバ起動時間データベース１０２は、他サーバ起動時間データベース１０２に記憶される起動時間と、起動時間の契機となった起動命令の送信時刻である起動命令送信時刻とを示すレコードを記憶するものであり、起動時間取得部１３は、起動時間データベース１２における最新の起動命令送信時刻が、現在時刻から予め定めた時間遡った閾値時刻よりも新しい時刻か否かを判定し（Ｓ３２１）、他サーバ起動時間取得部１０３は、当該最新の起動命令送信時刻が当該閾値時刻以前の時刻なら（Ｓ３２１：ＮＯ）、当該閾値時刻より新しい且つ最新の起動命令送信時刻を示すレコードを他サーバ起動時間データベース１０２から検索し、当該レコードから起動時間を読み出し（Ｓ３２５）、起動命令送信予定時刻計算部１４は、送信計画データベース１１からデータ送信予定時刻を読み出し、データ送信予定時刻から当該起動時間が経過した後の時刻である起動命令送信予定時刻を計算し（Ｓ５）、起動命令送信部１５は、起動命令送信予定時刻になったなら、データ処理サーバ２に起動命令を送信する（Ｓ９）ので、最新の起動命令送信時刻が閾値時刻以前の時刻であっても起動命令を送信できる。
【００８９】
図１０は、データ送信装置１、１０による処理の特徴を示す図である。
【００９０】
データ送信装置１、１０は、データ送信予定時刻から起動時間だけ遡った起動命令送信予定時刻に起動命令を送信するので、起動命令によりプロセス２１が起動開始し、起動時間を経て、起動完了したときに、データ送信装置１、１０は、データを送信することとなる。つまり、データを処理するプロセス２１の起動完了にタイミングを合わせてデータが送信されるように起動命令を送信するので、起動完了からデータ送信までの間の待機時間がなくなり、待機時間分のリソースや電力の消費を無くすことができる。
【００９１】
すなわち、データが送信されるタイミングに合わせてプロセスを起動完了させることが可能となるため、データ処理サーバのリソースや電力の効率化と受信データのリアルタイム性との両立が可能である。また、必要最低限な時間だけプロセスを起動させることが可能となるため、データ処理サーバが、スマートフォンのように様々なアプリケーションが同時に動作することでリソースが逼迫されるものである場合においては、そのような状況になった際に古いプロセスがオペレーティングシステム（ＯＳ）側に消去されてしまい、データ受信、処理が行えなくなってしまうが、プロセスを起動させてから必要最低限の時間だけプロセスを起動させられるので、そのようにプロセスの生存が不安定なデータ処理サーバ（スマートフォンなど）においても安定した動作が可能となる。
【００９２】
なお、データ送信装置１やデータ送信装置１０としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００９３】
１、１０  データ送信装置
２  データ処理サーバ
３  センサ
１Ａ  スケジュール管理部
１Ｂ  データ転送部
１１  送信計画データベース
１２  起動時間データベース
１３  起動時間取得部
１４  起動命令送信予定時刻計算部
１５  起動命令送信部
１６  起動時間データベース更新部
１７  データ取得部
１８  データ送信部
２１  プロセス
２２  プロセス管理部
２２１  プロセス起動部
２２２  起動時間計算部
１０１  クラスタリング結果データベース
１０２  他サーバ起動時間データベース
１０３  他サーバ起動時間取得部
【図１】
0006294807.tif 000002
【図２】
0006294807.tif 000003
【図３】
0006294807.tif 000004
【図４】
0006294807.tif 000005
【図５】
0006294807.tif 000006
【図６】
0006294807.tif 000007
【図７】
0006294807.tif 000008
【図８】
0006294807.tif 000009
【図９】
0006294807.tif 000010
【図１０】
0006294807.tif 000011
【図１１】
0006294807.tif 000012