第1の実施の形態:
図1は、本発明の第1の実施の形態におけるデータ配信システム100の構成の例を示すブロック図である。このデータ配信システム100は、データ配置先制御装置10と、複数のデータ生成装置20a〜20nと、データ配信装置30と、複数のデータ利用端末40a〜40nとを含んでいる。データ配置先制御装置10と、各データ生成装置20a〜20nと、データ配信装置30と、各データ利用端末40a〜40nとは、インターネットなどの通信ネットワーク50によって接続され、互いにデータの送受信を行う。また、データ生成装置20a〜20n及びデータ利用端末40a〜40nは、それぞれいくつ設けられていてもよい。
データ配置先制御装置10は、例えばサーバ装置などの情報処理装置によって構成され、時系列データ配信情報を生成してデータ配信装置30に設定する処理や、データ配信装置30に時系列データを送信する処理などの各種の処理を実行する。
「時系列データ」は、温度センサなどの各種のセンサ、すなわち情報検知装置による検知内容を、検知時刻とともに示すデータを意味する。言い換えれば、時系列データは、「地点Aの温度」などのような同一の観測対象に関するデータを複数得ることで、その観測対象についての観測結果の時間的な推移を把握することができるデータである。
「時系列データ配信情報」は、包括配信情報の一種であって、配信対象の時系列データと、時系列データの配信先と、時系列データを配信する配信条件とが対応付けされたデータであり、時系列データの配信処理の際にデータ配信装置30によって参照されるデータである。具体的には、「時系列データ配信情報」は、時系列データの配信先となるデータ配信先情報と、時系列データの配信を要求するデータ利用端末40a〜40nを識別するためのデータ利用端末識別情報と、配信される時系列データの種類を識別するための時系列データ識別情報と、時系列データを配信する配信条件を示す時系列データ配信条件情報とを含むデータとされる。データ配信先情報の例としては、1つのデータ利用端末の宛先や、複数のデータ利用端末への同報通信の宛先などがある。
データ生成装置20a〜20nは、それぞれ、例えばパーソナルコンピュータなどの情報処理装置によって構成され、位置センサや温度センサなどの情報検知装置から定期的あるいは随時に得られるデータに基づいて時系列データを生成し、データ配置先制御装置10に送信する処理などの各種の処理を実行する。
データ配信装置30は、データ配置先制御装置10によって設定された時系列データ配信情報と、データ利用端末40a〜40nによって設定されたデータ配信要求情報とに基づいて、データ配置先制御装置10によって設定された時系列データを読み出して配信する処理などの各種の処理を実行する。データ配信装置30は、例えばサーバ装置などの情報処理装置によって構成され、1または複数の時系列データを、データ利用端末40a〜40nのうちの1または複数に対して送信する。
データ利用端末40a〜40nは、それぞれ、例えばパーソナルコンピュータや携帯電話端末などの情報処理装置によって構成され、時系列データを利用する各ユーザによって管理される。データ利用端末40a〜40nは、それぞれ、イーサネット(登録商標)装置や無線装置などの通信処理部を備えている。そしてデータ利用端末40a〜40nは、それぞれ、データの送受信や各種の処理を通信ネットワーク50を介して実行する機能を有し、かつデータ配信要求情報をデータ配信装置30に送信する機能を有する。
図2は、データ配置先制御装置10の構成の例を示している。図2には、データ生成装置20a〜20nのうちのデータ生成装置20aと、データ利用端末40a〜40nのうちのデータ利用端末40aとが、それぞれと代表して記載されている。データ配置先制御装置10は、データ配置部11と、データ配信情報記憶部12と、データ配信時刻情報取得部13と、データ配信方法決定部14と、通信処理部15とを備えている。
データ配置部11は、各データ生成装置20a〜20nからの時系列データを通信ネットワーク50を介して取得し、データ配信情報記憶部12に格納する処理を行う。
データ配信情報記憶部12は、例えばデータベースやファイルサーバなどによって構成される。データ配信情報記憶部12には、データ配信方法決定部14によって生成された時系列データ配信情報などの各種の情報が記憶される。
データ配信時刻情報取得部13は、時系列データごとに過去の配信履歴を示す配信履歴情報(後述の図23参照)を取得し、取得した配信履歴情報に基づいてデータ配信方法基礎情報(後述の図24参照)を生成する処理などの各種の処理を実行する。
データ配信方法決定部14は、データ配信時刻情報取得部13から取得したデータ配信方法基礎情報に基づいて、同時に配信する時系列データの組合せや、同時に配信する配信先の組合せなどを決定し、時系列データ配信情報を生成する処理などの各種の処理を実行する。
通信処理部15は、通信ネットワーク50を介して各種のデータを送信する処理や、通信ネットワーク50を介して送信されてきた各種のデータを受信する処理を実行する。
図3は、データ配信装置30の構成の例を示している。データ配信装置30は、データ配信要求情報取得部31と、データ配信要求情報検索部32と、データ配信情報処理部33と、データ配信条件情報評価部34と、データ配信部35と、時系列データ配信履歴情報記憶部36と、時系列データ配置部37と、通信処理部38とを備えている。
データ配信要求情報取得部31は、データ利用端末40a〜40nから通信ネットワーク50を介してデータ配信要求情報を取得し、データ配信要求情報を記憶する処理などの各種の処理を行う。
データ配信要求情報検索部32は、データ配信要求情報取得部31によって記憶されたデータ配信要求情報を検索する処理などの各種の処理を行う。
データ配信情報処理部33は、任意の時系列データにおける時系列データ識別情報が含まれる組を時系列データ配信情報から検索するデータ配置情報検索部331と、時系列データ配信情報をデータ配置先制御装置10から取得するデータ配置情報取得部332とを有する。
データ配信条件情報評価部34は、データ配信条件情報が示す配信条件が満たされているかどうかを判断する処理などの各種の処理を行う。
データ配信部35は、データ配信条件情報評価部34による評価結果に応じて、時系列データの配信処理を行う機能を有する。
時系列データ配信履歴情報記憶部36は、例えばデータベース装置によって構成される。時系列データ配信履歴情報記憶部36には、時系列データ配信履歴情報などの各種の情報が記憶される。
時系列データ配置部37は、例えばデータベース装置によって構成される。時系列データ配置部37には、データ配置先制御装置10によって配置された時系列データが記憶される。
次に、本発明の第1の実施の形態のデータ配信システム100の動作について説明する。データ配信システム100が実行する動作は、時系列データ配信情報設定処理と、時系列データ配置処理と、時系列データ配信処理との3つの動作にわかれる。図4は、時系列データ配信情報設定処理の例を示し、図5は、時系列データ配置処理の例を示している。なお、図5には、データ配信要求情報取得処理(ステップS200参照)の例も示されている。
先ず、時系列データ配信情報設定処理について、図4を用いて説明する。
本実施の形態のデータ配信システム100では、データ配信時刻情報取得部13は、時系列データがデータ配信装置30によって配信される毎に、データ配信装置30から通信ネットワーク50を介してデータ配信時刻情報を含む時系列データ配信履歴情報を取得して保存する。なお、時系列データが配信される毎でなく、一定期間毎に、時系列データ配信履歴情報をまとめて取得するようにしてもよい。時系列データ配信履歴情報は、データ配信装置30及びデータ配置先制御装置10の双方で記憶されている。
ここで時系列データ配信履歴情報は、時系列データを配信した時刻を示すデータ配信時刻情報と、時系列データの配信先を示すデータ配信先情報と、データ利用端末識別情報と、時系列データ識別情報と、時系列データ配信条件情報と、時系列データ検知情報とを含む。「データ配信時刻情報」は、時系列データを配信する際に、データ配信装置30によって設定される。
時系列データ配信情報設定処理では、まず、ステップS101において、データ配信時刻情報取得部13は、データ配信方法基礎情報生成処理として、既に保存している時系列データ配信履歴情報に基づいて、データ配信方法基礎情報すなわち配信基礎情報を生成する。「データ配信方法基礎情報」は、データ配信方法決定部14による時系列データ配信情報の生成のために用いられる情報である。このデータ配信方法基礎情報生成処理では、時系列データの配信先、種類、及び配信条件が一致する複数の時系列データ配信履歴情報のうち、データ配信時刻情報が示す時刻が最新となっている時系列データ配信履歴情報のみを残し、他の時系列データ配信履歴情報を削除する処理が実行される。
データ配信方法基礎情報を生成すると、データ配信時刻情報取得部13は、ステップS102において、生成したデータ配信方法基礎情報をデータ配信方法決定部14に送信する。
データ配信方法決定部14は、データ配信方法基礎情報を受信すると、ステップS103において、受信したデータ配信方法基礎情報に基づいて、同時に配信する時系列データの組合せもしくは同時に配信する配信先の組合せ、または同時に配信する時系列データの組合せ及び同時に配信する配信先の組合せを決定して時系列データ配信情報を生成する。そして、データ配信方法決定部14は、ステップS104において、生成した時系列データ配信情報を、データ配信情報記憶部12に送信するとともに、データ配置装置30に向けてインターネット50を介して送信する。
ステップS105において、データ配信情報記憶部12は、データ配信方法決定部14から取得した時系列データ配信情報を保存する。またステップS106において、データ配置装置30は、データ配信方法決定部14から取得した時系列データ配信情報を保存する。
次に、時系列データ配置処理について、図5を用いて説明する。
ここでは、データ生成装置20a〜20cのうちのデータ生成装置20aと、データ利用端末40a〜40eのうちデータ利用端末40aを例に挙げ、これらデータ生成装置20aとデータ利用端末40aとの間での時系列データ配置処理を説明する。
データ配信装置30が備えるデータ配信要求情報取得部31は、ステップS200において、データ利用端末40aに時系列データを配信するために必要なデータ配信要求情報を、データ利用端末40aからインターネット50を介して取得し、データ配信装置30内の記憶部に記憶する。このステップS200において取得されるデータ配信要求情報は、データ利用端末40aについてのデータ利用端末識別情報、データ利用端末40aが配信を要求する時系列データの種類を示す時系列データ識別情報、及び時系列データ配信条件情報から構成される。
一方、データ生成装置20aは、時系列データを生成し、ステップS201において、通信ネットワーク50を介してこの時系列データをデータ配置先制御装置10に送信する。同様にして、データ生成装置20bも時系列データを生成し、また、データ生成装置20cも時系列データを生成する。データ生成装置20b,20cで生成された時系列データも、同様に、通信ネットワーク50を経由してデータ配置先制御装置10に送信される。
時系列データを受信すると、データ配置先制御装置10が備えるデータ配置部11は、ステップS202において、データ生成装置20a〜20cから受信した時系列データにおける時系列データ識別情報を抽出する。データ配置部11は、時系列データ識別情報を抽出すると、ステップS204において、時系列データを配置するデータ配信装置を決定する。具体的には、配置するデータ配信装置30の配信装置識別情報を決定する。ここで説明している例では、データ配信システム100は単一のデータ配信装置30を備えるものとしているので、時系列データを配置するデータ配信装置として、常に、データ配信装置30が決定される。
データ配置部11は、ステップS205において、時系列データを配置するものとして決定したデータ配信装置30に向けて時系列データを送信し、データ配信装置30に時系列データを配置する。データ配信装置30は、ステップS206において、受信した時系列データを時系列データ配置部37に記憶する。このときデータ配信装置30は、受信した時系列データと時系列データ識別情報が同一である既存の時系列データを既に記憶している場合には、その既存の時系列データを削除して、受信した時系列データを記憶する。すなわち、この例では、データ配信装置30は、時系列データ識別情報が異なるもの毎に、最新の時系列データを記憶していることになる。
上記のようにして、時系列データ配置処理により、時系列データが、データ配信装置30が備える時系列データ配置部37に記憶される。
次に、時系列データ配信処理について説明する。図6は、時系列データ配信処理の例を示すフローチャートである。
時系列データ配信処理において、データ配信装置30は、ステップS207、S208に示すように、時系列データ配置部37に記憶されている時系列データを、通信ネットワーク50を介してデータ利用端末40aに配信する。
ここで、ステップS207、S208に示した、データ配信装置30が通信ネットワーク50を介して時系列データを配信する時系列データ配信処理について、詳しく説明する。図7、図8及び図9は、時系列データ配信処理の具体例を示している。図10は、時系列データ配信情報の一例を示している。ここに示す例では、時系列データは、それぞれの名前が「Taro」、「Jiro」である人物の位置情報であるとしている。そのため、時系列データ識別情報には、「Taro」、「Jiro」のそれぞれ位置情報であることを示す「Taro:location」、「Jiro:location」が格納され、時系列データ配信条件情報には、例えば5分間隔で時系列データを配信することを示す「5分間隔」が格納されている。データ配信先情報、データ利用端末識別情報としては、それぞれ、データ配信先のIP(Internet Protocol)アドレス、データ利用端末のIPアドレスが格納されている。
時系列データ配信処理において、データ配信装置30は、まず、ステップS2070において、データ配信要求情報取得部31に登録されているデータ配信要求情報の各組について、後述するステップS2073以降の動作を行う。そして、データ配信装置30は、ステップS2071において、時系列データが新たに配置されたかどうかを判定する。時系列データが新たに配置されていなければ、ステップS2070に戻って、データ配信要求情報取得部31に登録されているデータ配信要求情報の各組について、ステップS2073以降の動作を行う。
すなわち、データ配信装置30におけるデータ配信要求情報検索部32は、データ配信要求情報取得部31に登録されているデータ配信要求情報の中から、時系列データ配置部37内に配置されている時系列データの時系列データ識別情報と同じ時系列データ識別情報を含む組を選択する。次に、データ配信要求情報検索部32は、選択したデータ配信要求情報内の組を識別する情報を、データ配信情報処理部33に対して一つずつ送信する。選択したデータ配信要求情報内の組を識別する情報としては、例えば、データ配信要求情報が表形式のデータとされ、各組がそれぞれ各行に表わされている場合には、「行番号」が該当する。
データ配信要求情報内の組を識別する情報を受信すると、データ配信情報処理部33は、受信した組の識別情報に対応するデータ配信要求情報における時系列データ識別情報を、時系列データ配信情報から検索する(ステップS2073参照)。その後、データ配信装置30は、後述するステップS2073以降の動作を行う。
なお、ステップS2070では、データ配信要求情報検索部32は、全ての組に対する処理が完了した場合には、上述した時系列データの時系列データ識別情報を含む組の選択処理およびデータ配信情報処理部33への組の識別情報の送信処理を繰り返し実行する。
一方、ステップS2071において時系列データが新たに配置されたと判定されれば、データ配信装置30は、後述するステップS2072に移行する。すなわち、上述したステップS206においてデータ配置先制御装置10からの時系列データが配置された場合、データ配信装置30は、ステップS2070の処理を中断し、図8および図9に示す処理に移行する。
時系列データが配置されると、図8に示すように、ステップS2072において、データ配信要求情報検索部32は、ステップS206においてデータ配置先制御装置10から配置された時系列データにおける時系列データ識別情報を、データ配信要求情報から検索し、検索の結果発見された組を識別する情報をデータ配信情報検索部331に送信する。なお、データ配信装置30は、ステップS2072において、データ配信要求情報がデータ配信要求情報取得部31内に記憶されていない場合、または、データ配信要求情報内に受信した時系列データと同じ時系列データ識別情報が含まれている組が発見されなかった場合には、上述したステップS2070の動作を再開する。
次に、データ配信情報検索部331は、ステップS2073において、データ配置情報取得部332から時系列データ配信情報を取得し、ステップS2070あるいはステップS2072においてデータ配信要求情報検索部32によって送信されたデータ配信要求情報に含まれている時系列データ識別情報を、時系列データ配信情報から検索する。
ステップS2073での検索の結果、該当する組が発見されなかった場合や、データ配置情報取得部332内に時系列データ配信情報が保存されていない場合には、データ配信情報検索部331は、ステップ2074Aにおいて、データ配信要求情報における発見できなかった組を識別する情報をデータ配信要求情報検索部32に通知する。次に、データ配信要求情報検索部32は、ステップS2075Aにおいて、ステップS2074Aで受信した組の識別情報を、データ配信条件情報評価部34に通知する。
ここで述べる例では、データ配信装置30は、ステップS2073での検索の結果、該当する組が発見されなかった場合や、データ配置情報取得部332内に時系列データ配信情報が保存されていない場合には、時系列データ配信情報を用いることなく、データ配信動作を行う。以下、時系列データ配信情報を用いないデータ配信動作を説明する。
データ配信条件情報評価部34は、ステップS2075Aにおいて送信された組の識別情報を受信すると、受信した組の識別情報に対応するデータ配信要求情報の組に含まれている時系列データ配信条件情報を、データ配信要求情報取得部31から取得する。次に、データ配信条件情報評価部34は、ステップS2076Aにおいて、取得した時系列データ配信条件情報が示す配信条件が満たされているかどうか判断し、データ配信条件情報を満たしていると判断された時系列データ識別情報を含むデータ配信要求情報内の組を識別する情報を、データ配信部35に送信する。なお、データ配信装置30は、データ配信条件情報評価部34によってステップS2072で検索されたデータ配信要求情報に基づいて選択された時系列データ識別情報が含まれている全ての組について、時系列データ配信条件情報が示す配信条件が満たされていないと判断した場合には、上述したステップS2070の動作を再開する。
ステップS2076Aにおいて時系列データ配信条件情報が示す配信条件を満たしていると判断した場合には、データ配信条件情報評価部34は、データ配信部35に対して、ステップS2076Aを実行する際に受信したデータ配信要求情報内の組の識別情報を送信する。そして、データ配信部35は、ステップS2077Aにおいて、取得した組の識別情報に対応するデータ配信要求情報内の組に含まれる時系列データ識別情報によって識別される時系列データを時系列データ配置部37から取得して配信処理を行う。ステップS2077Aの配信処理では、データ配信部35は、ステップS2076Aにおいて時系列データ配信条件情報が示す配信条件を満たしていると判断されたデータ配信要求情報に含まれるデータ利用端末識別情報が示す配信先に向けて、時系列データを配信する。
そして、データ配信部35は、ステップS2077Aの配信動作を完了すると、時系列データ配信履歴情報記憶部36に対して、時系列データ配信履歴情報を送信する。時系列データ配信履歴情報記憶部36は、ステップS2078Aにおいて、受信した時系列データ配信履歴情報を記憶する。ステップS2078Aでは、時系列データ配信履歴情報として、時系列データを配信した時刻ごとに、配信した時系列データにおける時系列データ識別情報、データ配信先情報、時系列データを要求しているデータ利用端末を示すデータ利用端末識別情報、時系列データ配信条件情報、及び配信した時系列データにおける時系列データ検知情報が記憶される。なお、データ配信装置30は、時系列データ配信履歴情報を記憶した後、上述したステップS2070の動作を再開する。
ここで述べる例では、データ配信装置30は、ステップS2073での検索の結果、該当する組が発見された場合には、時系列データ配信情報を用いてデータ配信動作を行う。以下、時系列データ配信情報を用いるデータ配信動作について説明する。
ステップS2073での検索の結果、該当する組が発見された場合には、データ配信装置30は、発見された時系列データ配信情報内の組に対して、一つずつ、以下に示すステップS2074B〜ステップS2078Bの一連の動作を行うことで、時系列データ配信処理を行う。なお、後述の図25及び図26には、ステップS2074B〜ステップS2078Bを含む処理が示されている。
ステップS2073で発見された一つ以上の組のうち、先ず、1組目に対して以下のステップS2074B〜ステップS2077Bを行う。ステップS2074B〜ステップS2077Bを行う時系列データ配信情報内の組を、「処理対象の組」と表現する。また、以下の説明においては、上述したステップS206においてデータ配置先制御装置10から配置された時系列データにおける時系列データ識別情報を含む時系列データと、時系列データ配信情報における処理対象の組に含まれる他の時系列データ識別情報を含む時系列データとを、それぞれ「配信候補時系列データ」と表現する。
データ配信情報検索部331は、ステップS2074Bにおいて、配信候補時系列データが既にデータ配信装置30内に配置されているかどうかを確認する。以下の説明においては、ステップS2074Bにおいてデータ配信装置30内に記憶されていると確認された時系列データと、ステップS206においてデータ配置先制御装置10から配置された時系列データとを、「配信対象時系列データ」と表現する。
次に、データ配信情報検索部331は、配信対象時系列データが含まれる時系列データ配信情報内の組を識別する情報を、データ配信条件情報評価部34に送信する。データ配信条件情報評価部34は、ステップS2076Bにおいて、受信した組の識別情報に対応する時系列データ配信情報(図10参照)の行に含まれる時系列データ配信条件情報が示す配信条件を満たしているかどうか判断し、配信条件を満たしていると判断した時系列データを含む時系列データ配信情報内の組を識別する情報を、データ配信部35に送信する。なお、ステップS2076Bにおける時系列データ配信条件情報が示す配信条件を満たしているか否かを判断する動作は、上述したステップS2076Aと同様であるので、ここでは詳細な説明を省略する。また、データ配信装置30は、データ配信条件情報評価部34によって、ステップS2073において時系列データ配信情報から発見された全ての組について、時系列データ配信条件情報が示す配信条件が満たされていないと判断した場合には、上述したステップS2070の動作を再開する。
ステップS2076Bにおいて時系列データ配信条件情報が示す配信条件を満たしていると判断した場合には、データ配信条件情報評価部34は、データ配信部35に対して、ステップS2076Bを実行する際に受信した時系列データ配信情報内の組を識別する情報を送信する。そして、データ配信部35は、ステップS2077Bにおいて、取得した組の識別情報に対応する時系列データ配信情報に応じた時系列データを時系列データ配置部37から取得して配信処理を行う。ステップS2077Bの配信処理では、データ配信部35は、ステップS2076Bにおいて時系列データ配信条件情報が示す配信条件を満たしていると判断された時系列データ配信情報に含まれるデータ配信先情報が示す配信先に向けて、時系列データを配信する。
そして、データ配信部35は、ステップS2077Bの配信動作を完了すると、時系列データ配信履歴情報記憶部36に対して、時系列データ配信履歴情報を送信する。時系列データ配信履歴情報記憶部36は、ステップ2078Bにおいて、受信した時系列データ配信履歴情報を記憶する。
データ配信装置30は、ステップS2073で発見した全ての組に対してステップS2074B〜ステップS2078Bの動作を行い、時系列データ配信履歴情報を記憶した後、上述したステップS2070の動作を再開する。
最後に、通信ネットワーク50は、前述のステップS208において、ステップS207によって配信された時系列データをデータ配信先情報に従って通信し、データ利用端末40aに時系列データを送る。
上記の例では、データ利用端末40aに対して、複数の時系列データが一度の処理で配信される、あるいは、複数のデータ利用端末に対して、1つの時系列データが一度の処理で配信される、あるいは、複数のデータ利用端末に対して、複数の時系列データが一度に配信される。よって、時系列データを別々に配信する場合に比べて、データ配信装置30における配信処理数を減らすことができる。
以上に説明したように、第1の実施の形態では、配信履歴情報に基づいて、所定の宛先に同時に配信することが許容される複数の時系列データ、あるいは所定の時系列データを同時に配信することが許容される複数の宛先を包括した時系列データ配信情報を生成し、時系列データ配信情報を利用して時系列データの配信処理を行う構成としたことで、配信対象となるデータの数の増加にともなう処理負荷の増加を軽減することができる。さらにこの実施の形態では、配信宛先数の増加にともなう処理負荷の増加をも軽減することができ、配信処理数を低減させることができるため、時系列データの配信処理を円滑に行うことができるようになる。
第2の実施の形態:
次に、本発明の第2の実施の形態について説明する。図11は、第2の実施の形態におけるデータ配信システム200の構成の例を示すブロック図である。なお、上述した第1の実施の形態と同様の構成及び動作をなす部分については、同一の符号を付与してその詳細な説明は省略する。
図11に示すように、第2の実施の形態は、複数のデータ配信装置30a〜30nが設けられるとともに、データ配置先制御装置210がデータ配信装置負荷情報取得部16を備えている点で、第1の実施の形態と異なっている。
データ配信装置負荷情報取得部16は、通信ネットワーク50を介して、データ配信装置30a〜30nの負荷情報を定期的に取得し、データ配置先制御装置10内の記憶装置に記憶する。データ配信装置の負荷情報は、データ配信装置の処理負荷を示す情報であり、処理負荷の高低が数値によって表わされている。データ配信装置の負荷情報の例として、一定時間内の配信処理数や使用メモリ量、中央演算装置内のある時点での同時処理数等がある。遠隔にある計算装置の負荷情報を取得する方法としてはSNMP(Simple Network Management Protocol)などの技術が利用できる。
次に、本実施の形態のデータ配信システムの動作について説明する。このデータ配信システムの動作は、上述した第1の実施の形態での動作と同様のものである。しかしながら、本実施の形態での動作は、データ配信方法決定部14が、ステップS104(図4参照)において、ステップS103で生成した時系列データ配信情報を、データ配信情報記憶部12に送信するとともに、データ配信装置30a〜30nに向けて通信ネットワーク50を介して送信する点で第1の実施の形態とは異なる。また、本実施の形態では、時系列データ配置処理のステップS204(図5参照)において、以下に示すように、複数のデータ配信装置30a〜30nの中から時系列データを配置するデータ配信装置を決定する点で、第1の実施の形態とは異なっている。
この実施の形態において、データ配置部11は、ステップS205(図5参照)の時系列データ配置動作時に、データ配信情報記憶部12に記録された時系列データ配信情報を参照する。次に、データ配信情報記憶部12は、データ配信装置負荷情報取得部16に記録されているデータ配信装置30a〜30nの負荷情報を取得する。
データ配置部11は、取得した時系列データ配信情報とデータ配信装置の負荷情報とに基づいて、ステップS202で抽出した時系列データ識別情報に対応する時系列データの配置先であるデータ配信装置を、以下のようにして決定する。図12は、データ配信システム200における時系列データの配置処理の例を示すフローチャートである。
まず、データ配置部11は、過去に時系列データが配置されているかどうかを判断する。
過去に一度も時系列データの配置処理が行われていない場合には、データ配置部11は、ステップS204aにおいて、データ配信装置30a〜30nの負荷情報を参照し、最も負荷の低いデータ配信装置を決定する。また、データ配置部11は、配置した時系列データにおける時系列データ識別情報と、配置されたデータ配信装置を示すデータ配信装置識別情報を一つの組としてデータ配信情報記憶部12内に記録する。上記の配置した時系列データ識別情報と、配置されたデータ配信装置を示すデータ配信装置識別情報との組を、「データ配置履歴情報」と表現する。
次に、既に一度以上、時系列データの配置処理が行われている場合について説明する。この場合、過去に配置した時系列データ識別情報と、配置されたデータ配信装置を示すデータ配信装置識別情報との組が一つ以上記録されている。時系列識別情報とデータ配信装置識別情報との組のことを、データ配置履歴情報と呼ぶ。
まず、データ配置部11は、ステップS2041において、時系列データ配信情報内に記録された、データ配信装置における時系列データ配信処理数を減らすことができる配信方法を実現するための組合せを参照し、ステップS202で抽出した時系列データ識別情報が含まれるその組合せを検索する。次に、データ配置部11は、ステップS2042において、検索の結果発見された組合せ内の他の時系列データ識別情報を取得する。次に、データ配置部11は、ステップS2043において、データ配置履歴情報から、ステップS2042で取得した他の時系列データ識別情報を含む組を検索する。ステップS2043において、他の時系列データ識別情報を含む組を発見できた場合には、データ配置部11は、ステップS2043で発見された組から、ステップS204bにおいて、配置されたデータ配信装置の識別情報を取得する。
一方、ステップS2041、S2043において検索対象が発見されない場合、データ配置部11は、ステップS204aにおいて、データ配信装置の負荷情報から最も負荷の低いデータ配信装置の識別情報を取得する。
なお、第2の実施の形態におけるその他の構成要素及び動作については、第1の実施の形態と同様であるので省略する。
上述したように、第2の実施の形態では、複数のデータ配信装置30a〜30nに配信処理負荷を分散する際、データ配信装置における時系列データ配信処理数を減らすことができる配信方法を実現するための組合せが同一のデータ配信装置に配置されるため、単純に時系列データ一つ一つの配信処理を複数のデータ配信装置に分散した場合に比べて、データ配信装置あたりの配信処理数を減らすことができる。
なお、上述した各実施の形態では特に言及していないが、データ配信システム100,200において実行される各処理は、データ配信システム100等に搭載されている制御プログラムすなわちデータ配信プログラムに従って実行される。この制御プログラムは、例えば、所定の観測対象の観測時刻及び観測結果を含む配信対象データを、データ利用端末に向けて通信ネットワークを介して配信させるためのデータ配信プログラムであって、例えばデータ配信システム100を構成するデータ配置先制御装置10やデータ配信装置30であるコンピュータの動作を制御するものである。例えばこのデータ配信プログラムは、所定の観測対象の観測時刻および観測結果を含む配信対象データを、データ利用端末に向けて通信ネットワークを介して配信させる処理をコンピュータに実行させるためのデータ配信プログラムであって、
コンピュータに、
配信宛先と、配信対象とする配信対象データの種類と、配信条件とが対応付けされた配信要求情報を第1の記憶部に記憶する処理と、
配信条件が成立したときに配信対象データを配信する配信処理と、
配信対象データの配信履歴を示す配信履歴情報を第2の記憶部に記憶する処理と、
配信履歴情報に基づいて、(a)同一の配信対象データを同時に配信する複数の配信宛先を対応付けした情報、(b)同一のデータ利用端末に向けて同時に配信する複数種類の配信対象データを対応付けした情報、及び(c)同一の配信対象データを同時に配信する複数の配信宛先および同一のデータ利用端末に向けて同時に配信する複数種類の配信対象データを対応付けした情報、のいずれか1つである包括配信情報を生成する包括配信情報生成処理と、
を実行させるものである。このデータ配信プログラムは、配信処理においては、コンピュータに、包括配信情報に基づいて、成立した配信条件に対応付けされている全ての種類の配信対象データを、当該成立した配信条件に対応付けされている全ての配信宛先のデータ利用端末に向けて配信する処理を実行させるものである。
以上、本発明の第2の実施形態のデータ配信システムを説明した。本発明においては、上述した第1の実施の形態と第2の実施の形態とを組合せたシステムを構成するようにしてもよい。また、上述の実施の形態では、例として人や物の位置情報を含む時系列データを用いているが、時系列データは、例えば、部屋の温度情報や、道路の騒音等の他の情報であってもよい。上述した各実施の形態では、データ配置先制御装置10,210とデータ配信装置30,30a〜30nとが別個に構成されていたが、データ配置先制御装置10,210とデータ配信装置30,30a〜30nとが例えば一つのサーバによって構成されていてもよい。
次に、上述した各実施の形態に基づくデータ配信システムについて、その具体的な実施例を説明する。
《実施例1》
実施例1は、第1の実施の形態における時系列データ配信情報設定処理(図4参照)などの具体例を示している。図13は、実施例1におけるデータ配信システム100の全体構成を示している。すなわちこの実施例では、データ配信システム100において、図13に示すように、データ利用端末40aを用いるユーザAがRFID(Radio Frequency Identification)タグが付加された他のユーザBなどの人物の位置情報を取得するための処理が実行される。図13では、ユーザAは「MONITOR」と表示され、ユーザBは「TARGET」と表示されている。
図13に示すデータ配信システム100は、データ配置先制御装置10と、データ生成装置20a〜20cと、データ配信装置30と、データ利用端末40a〜40eとを含む。なお図13には、データ配信装置30と、各データ利用端末40a〜40eとに割り当てられているそれぞれのIPアドレスが示されている。この例では、情報検知装置としてRFIDタグ読取装置が用いられ、会議室1〜3にそれぞれRFIDタグ読取装置が設置されている。
データ生成装置20a〜20cは、それぞれ、会議室1〜3に設置されている各RFIDタグ読取装置に接続され、各RFIDタグ読取装置からタグ識別情報を受信し、タグ識別情報に基づいて時系列データを生成する。データ配置先制御装置10、データ配信装置30及びデータ利用端末40a〜40eには、それぞれ、各種の処理を実行するためのソフトウェアが搭載されており、イーサネット装置等の通信処理部を備えているパーソナルコンピュータが用いられる。さらに、通信ネットワーク50として、インターネットが用いられており、データ配置先制御装置10、データ生成装置20a〜20c、データ配信装置30、及びデータ利用端末40a〜40eは、いずれもインターネットに接続している。
この例では、ユーザ名が「Taro」であるユーザBに、識別情報が「3D4EAB9E」であるRFIDタグが付加されているものとする。RFIDタグのユーザへの付加は、例えば、ユーザの着ている衣服に付けたり、ユーザが所持しているRFIDタグの収納ケースに収納するなど、RFIDタグ読取装置によって検出可能な状態であれば、どのようにして行われていてもよい。
図14は、図13に示すデータ配信システム100において用いられる時系列データの具体例を示している。「時系列データ」は、この例では、観測対象となっている人や物を特定するための名前などを示す名前情報と、観測対象となっている人や物を観測した時刻を示す時刻情報と、観測対象となっている人や物の観測結果を示す検知情報とを含むデータとされる。時系列データにおける「名前情報」は、観測対象である人、物、場所などの名前を表わす文字列と、対応する検知情報の内容を表わす文字列とが「:」で結合された表現とされる。
時系列データにおける「検知情報」は、観測結果を表わす文字列で表現される。例えば、観測結果として位置を得る場合であれば「会議室1」や「1階ロビー」などのような位置情報を示す文字列で表現され、観測結果として温度を得る場合であれば「25℃」などの温度情報を示す文字列で表現される。
時系列データにおける「時刻情報」は、検知情報が得られた時刻を特定するための情報を意味する。なお、本例では、「時刻情報」が示す時刻は、データ生成装置20a〜20cがRFIDタグ読取装置からタグ識別情報を取得した時刻とされる。「時刻情報」は、年月日および時分秒まで表わすようにしてもよく、年月日まで、時分までなど、他の表現とされていてもよい。
図14に示す例では、時系列データにおける「時刻情報」は、2004年1月14日の14時5分3.5秒となっている。また、「名前情報」は、特定の人ここではユーザBの名前を示す「Taro」という文字列と、対応する検知情報が位置情報であること示す「location」という文字列とが「:」で結合された「Taro:location」となっている。さらに、「検知情報」は、観測対象の観測結果として位置を表わす「会議室1」という値になっている。従って、図14に示す時系列データは、「Taro」(ユーザB)が、時刻「2004年1月14日の14時5分3.5秒」に、「会議室1」に在室していたことを意味する。
図15は、RFIDタグ読取装置からデータ生成装置20a〜20cに通知されるタグ識別情報の例を示している。図15には、会議室1に設置されたRFIDタグ読取装置がユーザBに付加されているRFIDタグ「3D4EAB9E」を検出した際に、そのRFIDタグ読取装置がデータ生成装置20aに対して通知するタグ識別情報が示されている。
図16は、データ配信要求情報を入力するデータ配信要求情報入力画面の例を示している。データ配信要求情報入力画面は、例えばWWW(World Wide Web)サーバとして構成されるデータ配信装置30において開設されているWebサイトに各データ利用端末40a〜40eがアクセスすることで、各データ利用端末40a〜40eが備える表示装置に表示される画面である。図16に示すように、データ配信要求情報入力画面には、時系列データの配信を希望するデータ利用端末、例えばデータ利用端末40aを識別するためのデータ利用端末識別情報を入力するデータ利用端末識別情報入力領域501と、配信を希望する時系列データの種類を示す時系列データ識別情報を入力する時系列データ識別情報入力領域502と、時系列データの配信条件を示す時系列データ配信条件情報を入力する時系列データ配信条件情報入力領域503と、各入力領域501〜503に入力した内容でデータ配信要求情報を登録する旨を決定する際に押下またはクリックされる登録ボタン504とが設けられている。
図16に示す例では、データ利用端末識別情報入力領域501にデータ利用端末40aに割り当てられているIPアドレス「192.168.1.10」が入力され、時系列データ識別情報入力領域502に「Taro:location」が入力され、時系列データ配信条件情報入力領域503に「5分間隔」が入力されている。すなわち、図16に示されているデータ配信要求情報は、データ利用端末40aを管理するユーザAが、ユーザBの現在位置を示す位置情報を含んだ時系列データを5分間隔でデータ利用端末40aに配信することを、データ配信装置30に対して要求していることを意味する。
なお、図16に示した例の他、「データ利用端末識別情報」として、各データ利用端末40a〜40e内の通信処理部にそれぞれ割り当てられたMAC(Media Access Control)アドレス等の、各データ利用端末40a〜40eを特定可能な他の情報を利用するようにしてもよい。また、「時系列データ識別情報」として、ある部屋の温度情報を現す「Room1:temperature」や、ある道路の騒音を表わす「Route2:noise」等の位置情報以外の情報を含む時系列データの種類を指定するようにしてもよい。さらに、「時系列データ配信条件情報」は、「5分間隔」以外の時間間隔を指定するようにしてもよく、前回の配信時の値すなわち前回の検知情報の内容と異なる値の時系列データがデータ配信装置30に配置された場合にのみ時系列データを配信することを表わす「値の変化」や、値が「会議室1」あるいは「会議室2」である場合にのみ時系列データを配信することを表わす「“会議室1”または“会議室2”」などを指定するようにしてもよい。
この例では、データ利用端末40aのユーザAは、図16に示すデータ配信要求情報入力画面において、データ利用端末40aの識別情報であるデータ利用端末識別情報、データ利用端末40aに配信を要求する時系列データの種類を示す時系列データ識別情報、及び時系列データ配信条件情報を、データ利用端末40aが備えるキーボード等の入力装置を操作して入力した後、データ利用端末40aが備えるマウス等の入力装置で登録ボタン504をクリックまたは押下する。その結果、各入力領域501〜503に入力されているデータ配信要求情報が通信ネットワーク50を介してデータ配信装置30に送信され、そのデータ配信要求情報は、データ配信装置30、具体的にはデータ配信要求情報取得部31に登録される。
図17は、データ配信要求情報取得部31に記憶されたデータ配信要求情報の例を示している。図17に示すように、データ配信要求情報取得部31には、各データ利用端末40a〜40eから取得した複数のデータ配信要求情報が記憶されている。図17に示すデータ配信要求情報の表には、行番号1〜3の行にデータ利用端末40aからのデータ配信要求情報が登録され、行番号4の行にデータ利用端末40bからのデータ配信要求情報が登録され、行番号5の行にデータ利用端末40cからのデータ配信要求情報が登録され、行番号6〜7の行にデータ利用端末40eからのデータ配信要求情報が登録されている。
行番号1の行に登録されているデータ配信要求情報は、データ利用端末40aが、データ配信装置30に対して、「Taro」(ユーザB)の位置情報を含む時系列データを、5分間隔で配信することを要求していることを意味する。
行番号2の行に登録されているデータ配信要求情報は、データ利用端末40aが、データ配信装置30に対して、「Hanako」の位置情報を含む時系列データを、10分間隔で配信することを要求していることを意味する。「Hanako」は、「Taro」や「Jiro」とは別のユーザの名前である。
行番号3の行に登録されているデータ配信要求情報は、データ利用端末40aが、データ配信装置30に対して、「Jiro」の位置情報を含む時系列データを、5分間隔で配信することを要求していることを意味する。
行番号4の行に登録されているデータ配信要求情報は、データ利用端末40bが、データ配信装置30に対して、「Taro」(ユーザB)の位置情報を含む時系列データを、「値の変化」が発生したとき、すなわち検知情報が変化したときに配信することを要求していることを意味する。
行番号5の行に登録されているデータ配信要求情報は、データ利用端末40cが、データ配信装置30に対して、「Jiro」の位置情報を含む時系列データを、検知情報が「会議室1」または「会議室2」であるときに配信することを要求していることを意味する。
行番号6の行に登録されているデータ配信要求情報は、データ利用端末40eが、データ配信装置30に対して、「Taro」の位置情報を含む時系列データを、5分間隔で配信することを要求していることを意味する。
行番号7の行に登録されているデータ配信要求情報は、データ利用端末40eが、データ配信装置30に対して、「Jiro」の位置情報を含む時系列データを、5分間隔で配信することを要求していることを意味する。
次に、データ生成装置20aが時系列データを生成する動作について説明する。本例では、検知情報が「会議室1」である時系列データをデータ生成装置20aが、検知情報が「会議室2」である時系列データをデータ生成装置20bが、検知情報が「会議室3」である時系列データをデータ生成装置20cが生成する。ここでは、データ生成装置20aの時系列データ生成動作について説明する。
図18は、時系列データの例として、RFIDタグ読取装置から図15に示すようなRFIDタグ識別情報が通知された場合に、データ生成装置20aが時系列データを生成する動作を示している。
先ず、データ生成装置20aと接続されたRFIDタグ読取装置は、ユーザBに付けられたRFIDタグがRFIDタグ読取装置から読み取れる範囲の位置に到達すると、RFIDタグごとに割り振られたそのRFIDタグに固有のRFIDタグ識別情報(図15参照)を読み取り、読み取ったRFIDタグ識別情報をデータ生成装置20aに通知する。
データ生成装置20a内には、図18に示すように、時系列データ定義情報A101と、ユーザ定義情報A102とがあらかじめ記憶されているものとする。ここで時系列データ定義情報A101は、データ生成装置20aが生成する時系列データの種類を表わす文字列「location」と、データ生成装置20aに接続されているRFIDタグ読取装置が検知を行う検知位置を示す検知情報「会議室1」とが対応付けされた情報である。なお、「時系列データ定義情報」は、時系列データの種類と、時系列データ検知情報とが対応付けされた情報である。ユーザ定義情報A102は、このデータ配信システム100で用いられるRFIDタグ識別情報と、時系列データにおける名前情報の一部であるユーザ名を表わす文字列とが対応付けされた情報である。なお、「ユーザ定義情報」は、各ユーザと、各ユーザに付けられているRFIDタグに設定されているRFIDタグ識別情報とが対応付された情報である。
RFIDタグ読取装置によって読み取られたRFIDタグ識別情報の通知を受けると、データ生成装置20aは、時系列データ定義情報A101及びユーザ定義情報A102を用いて、RFIDタグ読取装置から取得したRFIDタグ識別情報を、時系列データA103に変換する。具体的には、データ生成装置20aは、先ず、取得したRFIDタグ識別情報「3D4EAB9E」に対応するユーザ名を、ユーザ定義情報A102から検索し、ユーザ名「Taro」を得る。次に、データ生成装置20aは、時系列データ定義情報A101から時系列データの種類「location」を取得し、ユーザ名と時系列データの種類を「:」で結合して時系列データ名「Taro:location」を得る。そして、データ生成装置20aは、時系列データ定義情報A101から、時系列データ検知情報「会議室1」を得る。さらに、データ生成装置20aは、時系列データ検知情報「会議室1」を取得した時刻「2004年1月14日の14時5分3.5秒」を設定する。
データ生成装置20aは、以上にようにして得られた、時系列データ名「Taro:location」、時系列データ検知情報「会議室1」、時系列データ検知情報を取得した時刻「2004年1月14日の14時5分3.5秒」を結合し、一つの時系列データA103を生成する。同様にして、データ生成装置20bも時系列データ検知情報が「会議室2」である時系列データを生成し、また、データ生成装置20cも時系列データ検知情報が「会議室3」である時系列データを生成する。
時系列データA103を受信すると、データ配置先制御装置10が備えるデータ配置部11は、データ生成装置20aから受信した時系列データA103における時系列データ識別情報を、データ配信情報記憶部12に送信する(ステップS202参照)。例えば、データ配置部11は、時系列データA103における時系列データ識別情報として「Taro:location」を得る。そして、この例では、データ配信装置30を示す配信装置識別情報として、データ配信装置30に割り当てられているIPアドレス「192.168.2.14」(図4参照)がデータ配置部11に通知される。
次に、時系列データ配信情報設定動作の概要について説明する。
まず、データ配置先制御装置10内のデータ配信方法決定部13が、データ配信装置30によって同時に配信される複数の時系列データの組合せを決定する。なお、この実施例では、時刻差がある一定の時間以内である複数の時刻に対して、その時刻が「同時である」と表現する。例えば、10秒以内にある時刻を同時であると定義した場合、二つの時刻「2004年1月5日19時30分5秒」と「2004年1月5日19時30分14秒」は、その時刻差が9秒なので同時であるとする。この実施例では、「同時である」と定義する時間はあらかじめ「10秒」に設定されている。
データ配信装置30によって同時に配信される複数の時系列データの組合せを決定した後、データ配信方法決定部14は、データ配信装置30が同時に配信する複数の時系列データの配信先であるIPアドレス、配信を要求したデータ利用端末のIPアドレス及び配信条件情報を、同時に配信する複数の時系列データの識別情報とともに時系列データ配信情報としてデータ配信情報記憶部12及びデータ配信装置30内に記憶する。
図19は、この実施例における時系列データ配信情報設定処理を示し、図20は、時系列データ配信情報設定処理におけるデータ配信方法基礎情報生成処理(ステップS101)の具体的処理を示し、図21は、データ配信基礎情報から時系列データ配信情報を生成する処理を示し、図22は、時系列データ配信情報設定処理におけるステップS103aの具体的処理を示している。
図19に示すように、ステップS101のデータ配信方法基礎情報生成処理において、データ配信時刻情報取得部13は、図20に示すように、まず、ステップS101aにおいて、データ配信装置30からインターネット50を介して時系列データ配信履歴情報を取得する。
図23は、過去に配信された時系列データの配信履歴を示す時系列データ配信履歴情報の例を示すものであり、ここには、時系列データ配信履歴情報が各行に登録された時系列データ配信履歴情報の表が示されている。
図23に示す例では、「データ配信先情報」として、配信先となったデータ利用端末、例えばデータ利用端末40aのIPアドレスが用いられる。また、「データ利用端末識別情報」、「時系列データ識別情報」、及び「時系列データ配信条件情報」として、配信時に参照されたデータ配信要求情報が用いられる。なお、「時系列データ識別情報」は、配信された時系列データの名前情報に一致する。さらに、「時系列データ検知情報」として、配信された時系列データの検知情報が用いられている。
次に、データ配信時刻情報取得部13は、ステップS101bにおいて、ステップS101aで取得した時系列データ配信履歴情報における処理対象の行を選択する。処理対象の行としては、未選択の行のうち、行番号が小さい行から順次選択される。ここでは、図23に示す時系列データ配信履歴情報において、行番号「1」が選択されたものとする。
処理対象の行を選択すると、ステップS101cにおいてデータ配信時刻情報取得部13は、ステップS101bにおいて選択した行と、「データ利用端末識別情報」、「時系列データ識別情報」及び「時系列データ配信条件情報」が全て一致している行を検索する。すなわち、処理対象として注目している行におけるデータ配信要求情報に該当する部分が一致している他の行を検索する。ここでは、行番号「1」におけるデータ配信要求情報に該当する部分が一致している他の行として、少なくとも行番号「7」が検索される(図23参照)。なお、図23には示されていないが、9行目以降についても同様に検索される。
データ配信要求情報に該当する部分が一致している行を複数発見した場合には、データ配信時刻情報取得部13は、ステップS101dにおいて、発見した複数の行のうち、データ配信時刻情報が示す時刻が最も現在に近い時刻である行を残し、その他の行を時系列データ配信履歴情報から削除する。ここでは、データ配信時刻情報が示す時刻が最も現在に近い時刻を含む行が残され、その他の行、例えば7行目などが、ステップS101aにおいて取得された時系列データ配信履歴情報から削除される。ここでは、データ配信時刻情報が示す時刻が最も現在に近い時刻は、図23の1行目に含まれる「2004/1/14 14:05:17.20」である。
上記のステップS101b〜ステップS101dの処理によって、データ配信要求情報に該当する部分が一致している処理対象の行を含む複数の配信履歴を示す行のうち、最新の配信履歴を示す行のみを残し、他の古い配信履歴を示す行が削除される処理が実行される。すなわち、同じデータ配信要求情報に基づく配信履歴のうち、最新の配信履歴のみを残す処理が実行される。
次に、データ配信時刻情報取得部13は、ステップS101eにおいて、ステップS101aで取得した時系列データ配信履歴情報における各行に未選択の行があるかどうかを判断する。未選択の行があれば、処理はステップS101bに戻る。1行目が処理対象の行とされていたときは、ステップS101bにおいて2行目が処理対象の行として選択される。そして、データ配信時刻情報取得部13は、ステップS101eにおいて未選択の行がなくなれば、データ配信方法基礎情報生成処理を終了する。
上記のようにして、ステップS101dにおいて時系列データ配信履歴情報から繰り返し行が削除されることで、データ配信方法基礎情報が生成される。
図24は、図23に示した時系列データ配信履歴情報から生成されたデータ配信方法基礎情報の例を示している。図24に示すように、データ配信方法基礎情報は、図23に示した時系列データ配信履歴情報の7行目が削除された情報となっている。ここでは、ステップS101eにおいて未選択の行がなくなったあとに、データ配信時刻情報取得部13は、同一のデータ配信先情報を含む時系列データ配信履歴情報が前後の行に並ぶように行の入れ替えを行っており、図24には、そのような入れ替えが行われた後のデータ配信方法基礎情報が示されている。
時系列データ配信情報設定処理において、データ配信方法決定部14は、ステップS103aにおいて、データ配信時刻情報取得部13から、データ配信基礎情報A105を取得し、以下のようにして同時に配信する時系列データの組合せを決定し、選択した時系列データの配信方法を決定する。
データ配信方法決定部14は、データ配信基礎情報A105から、データ利用端末識別情報が等しく、時系列データ配信条件情報およびデータ配信時刻情報から次回の配信時刻が同時であると予想される行を選択する。具体的には、図22に示すように、先ず、データ配信方法決定部14は、ステップS1030において、データ配信基礎情報A105の表を複製し、データ配置先制御装置10内の記憶装置に記憶する。以下、ステップS1030において複製したデータ配信基礎情報を第一次複製表と呼ぶ。
次に、データ配信方法決定部14は、ステップS1031において、第一次複製表の一行目を選択し、選択した行と、データ利用端末識別情報が同一である行を検索する。ステップS1031の検索の結果、該当する行が一つも発見されなかった場合、データ配信方法決定部14は、ステップS1032において、第一次複製表から、ステップS1031で選択した行を削除する。削除した結果、第一次複製表が空でなければステップS1031の動作を行い、空の場合は動作を終了する。
ステップS1031において、該当する行が一つ以上発見された場合、データ配信方法決定部14は、ステップS1033において、発見された行を複製し、データ配置先制御装置10内の記憶装置に表として記憶する。この記憶した表を第二次複製表と呼ぶ。データ配信方法決定部14は、第二次複製表を記憶した後、第二次複製表の元となった行を第一次複製表から削除する。
データ配信方法決定部14は、第二次複製表の中で、データ配信条件情報から次回の配信時刻が同時であると予想される時系列データの組合せを以下のように検索する。
まず、データ配信方法決定部14は、第二次複製表の中で行番号が最も小さい行を選択する。次に、データ配信方法決定部14は、ステップS1034において、選択した行に対応する時系列データと、次回の配信時刻が同時であると予想される時系列データに対応する行を検索する。
次回の配信時刻は、データ配信条件情報に応じて、次のようにして求める。
例えば、Nは任意の自然数であるとして、第二次複製表においてデータ配信条件情報が「N分間隔」である行に対しては、その行に含まれるデータ配信時刻情報にN分を加算した時刻を次回配信時刻と推定する。
また、第二次複製表においてデータ配信条件情報が「値の変化」である行に対しては、時系列データ配信履歴情報において、第二次複製表においてデータ配信条件情報が「値の変化」である行と同一の時系列データ識別情報、同一のデータ配信先情報、同一のデータ配信条件情報を持つ行を選択し、時系列データ値の変化の周期の平均値を求めることにより、次回配信時刻を推定する。例えば、時系列データ値の変化の周期の平均値が7分であったとすると、第二次複製表においてデータ配信条件情報が「値の変化」である行に対応する時系列データのデータ配信時刻情報に7分を加算した時刻を、次回配信時刻と推定する。
また、第二次複製表においてデータ配信条件情報が「“会議室1”または“会議室”」である行に対しては、時系列データ配信履歴情報において、第二次複製表においてデータ配信条件情報が「“会議室1”または“会議室”」である行と同一の時系列データ識別情報、同一のデータ配信先情報、同一のデータ配信条件情報を持つ行を選択し、時系列データ値が「会議室1」あるいは「会議室2」である時系列データが配信される時刻間の時間の平均値を求めることにより、次回配信時刻を推定する。例えば、平均値が10分であったとすると、第二次複製表においてデータ配信条件情報が「“会議室1”または“会議室”」である行に対応する時系列データのデータ配信時刻情報に7分を加算した時刻を、次回配信時刻と推定する。
図21に示した例では、行番号が1の行に含まれるデータ利用端末識別情報「192.168.1.10」を含み、前回の配信時刻とデータ配信条件情報の「5分間隔」から、次回の配信時刻が同時であると予想される、行番号が3の行が選択される。
ステップS1034の検索の結果、該当する行が一つも発見されなかった場合、データ配信方法決定部14は、ステップS1035において、第二次複製表から、ステップS1034で選択した行番号が最も小さい行を削除し、ステップS1034の動作を行う。
ステップS1034において、該当する行が一つ以上発見された場合、データ配信方法決定部14は、発見された行に含まれるデータ利用端末40aの識別情報と、複数の時系列データの識別情報と、データ配信条件情報を、時系列データ配信情報A106としてデータ配信情報記憶部12に記憶する。データ配信方法決定部14は、ステップS104において。生成した時系列データ配信情報をデータ配信装置30にも送信する。次に、データ配信装置30は、ステップS104で受信した時系列データ配信情報を記憶する。
本実施例では、時系列データ配信情報としては、ステップS1034において発見された行に含まれるデータ利用端末識別情報が用いられる。
図21に示した例では、データ利用端末40aの識別情報「192.168.1.10」、時系列データの識別情報「Taro:location」と「Jiro:location」、データ配信条件情報「5分間隔」及びデータ配信先情報「192.168.1.10」が、時系列データ配信情報としてデータ配信情報記憶部12に記憶される。
次に、データ配信方法決定部14は、ステップS1036において、ステップS1034において選択された行及び発見された行を、第二次複製表から削除する。
ステップS1035またはステップS1036で行を削除した結果、第二次複製表が空になった場合、データ配信方法決定部14は、ステップS1031の動作を行う。第二次複製表が空ではない場合は、データ配信方法決定部14は、ステップS1034の動作を行う。ステップS1036の後、ステップS1037において第二次複製表及び第一次複製表が空になった場合、データ配信方法決定部14は、動作を終了する。
ステップS1030〜S1037、ステップS104及びステップS105が実行された結果、データ配信情報記憶部12には、時系列データ配信情報の表が保存される。ステップS105で記憶された時系列データ配信情報の表は、上述した図10に示すようになる。
次に、時系列データ配置処理について説明する。ここでは、データ生成装置20a〜20cのうちのデータ生成装置20aと、データ利用端末40a〜40eのうちデータ利用端末40aとの間での時系列データ配置処理を例にして説明する。
データ生成装置20aは、生成した時系列データA103を、インターネット50を経由してデータ配置先制御装置10に送信する。同様にして、データ生成装置20bも時系列データ検知情報が「会議室2」である時系列データを生成し、また、時系列データ20cも時系列データ検知情報が「会議室3」である時系列データを生成する。
時系列データA103を受信すると、図5に示すように、データ配置先制御装置10が備えるデータ配置部11は、ステップS202において、データ配信情報記憶部12からデータ配信情報を取得する。次にデータ配置部11は、データ生成装置20aから受信した時系列データの時系列データ識別情報と、データ配信情報記憶部12から取得したデータ配信情報を参照し、ステップS204において、時系列データを配置するデータ配信装置を決定する。ここでは1つのデータ配信装置30しかデータ配信システム100に設けられていないので、時系列データA103を配置するデータ配信装置として、常に、データ配信装置30が決定される。そして、データ配信装置30を示す配信装置識別情報として、データ配信装置30に割り当てられているIPアドレス「192.168.2.14」(図13参照)がデータ配置部11に通知される。
データ配置部11は、配信装置識別情報を取得し、ステップS205において、取得した配信装置識別情報によって特定されるデータ配信装置30に向けて時系列データA103を送信し、データ配信装置30に時系列データを配置する。その後、データ配信装置30は、ステップS206において、受信した時系列データA103を時系列データ配置部37に記憶する。このときデータ配信装置30は、時系列データを受信すると、受信した時系列データと時系列データ識別情報が同一である既存の時系列データを既に記憶している場合には、その既存の時系列データを削除して、受信した時系列データを記憶する。すなわちデータ配信装置30は、時系列データ識別情報が異なるもの毎に、最新の時系列データを記憶していることになる。
上記のようにして、時系列データが、データ配信装置30が備える時系列データ配置部37に記憶される。
次に、この実施例における時系列データ配信処理について、上述した図6〜図9のフローチャートを用いて説明する。
時系列データ配信処理において、データ配信装置30は、ステップS207、S208に示すように、時系列データ配置部37に記憶されている時系列データを、インターネット50を介してデータ利用端末40aに配信する。そこで、ステップS207、S208に示される時系列データ配信処理について詳しく説明する。
時系列データ配信処理において、データ配信装置30は、ステップS2071において、時系列データが新たに配置されたかどうかを判定する。ここで時系列データが新たに配置されていなければ、データ配信装置30は、ステップS2070において、データ配信要求情報取得部31に登録されているデータ配信要求情報(図17参照)の各行について、後述するステップS2073以降の動作を行う。
すなわち、データ配信装置30のデータ配信要求情報検索部32は、データ配信要求情報取得部31に登録されているデータ配信要求情報(図17参照)の中から、時系列データ配置部37内に配置されている時系列データの時系列データ識別情報と同じ時系列データ識別情報を含む行を選択する。次に、データ配信要求情報検索部32は、選択したデータ配信要求情報の行に対応する行番号を、データ配信情報処理部33に対して行番号が小さい順に送信する。
データ配信要求情報の行番号を受信すると、データ配信情報処理部33は、受信した行番号のデータ配信要求情報における時系列データ識別情報を、時系列データ配信情報から検索する(ステップS2073参照)。その後、データ配信装置30は、後述するステップS2073以降の動作を行う。
なお、ステップS2070では、データ配信要求情報検索部32は、行番号が最大値である行に処理が達した場合には、行番号1から、上述した時系列データの時系列データ識別情報を含む行の選択処理及びデータ配信情報処理部33への行番号の送信処理を繰り返し実行する。
一方、ステップS2071において、時系列データが新たに配置されていれば、データ配信装置30は、後述するステップS2072に移行する。
すなわち、上述したステップS206においてデータ配置先制御装置10からの時系列データが配置された場合、データ配信装置30は、ステップS2070の処理を中断し、図8および図9に示す処理に移行する。
時系列データが配置されると、図8に示すように、データ配信要求情報検索部32は、ステップS2072において、ステップS206においてデータ配置先制御装置10から配置された時系列データにおける時系列データ識別情報「Taro:location」(図18参照)を、データ配信要求情報から検索し、検索の結果発見された行の行番号をデータ配信情報検索部331に送信する。なお、データ配信装置30は、ステップS2072において、データ配信要求情報がデータ配信要求情報取得部31内に記憶されていない場合、または、データ配信要求情報内に受信した時系列データと同じ時系列データ識別情報が含まれている行が発見されなかった場合には、上述したステップS2070の動作を再開する。
次に、データ配信情報検索部331は、ステップS2073において、データ配置情報取得部332から時系列データ配信情報を取得し、ステップS2070あるいはステップS2072においてデータ配信要求情報検索部32によって送信された行番号に対応する行のデータ配信要求情報に含まれている時系列データ識別情報を、時系列データ配信情報から検索する。
ステップS2073での検索の結果、該当する行が発見されなかった場合や、データ配置情報取得部332内に時系列データ配信情報が保存されていない場合には、データ配信情報検索部331は、ステップ2074Aにおいて、データ配信要求情報における発見できなかった行の行番号をデータ配信要求情報検索部32に通知する。次に、データ配信要求情報検索部32は、ステップS2074Aで受信した行番号を、ステップS2075Aにおいて、データ配信条件情報評価部34に通知する。
本例では、データ配信装置30は、ステップS2073での検索の結果、該当する行が発見されなかった場合や、データ配置情報取得部332内に時系列データ配信情報が保存されていない場合には、時系列データ配信情報を用いることなく、データ配信動作を行う。以下に、時系列データ配信情報を用いないデータ配信動作を説明する。
データ配信条件情報評価部34は、ステップS2075Aにおいて送信された行番号を受信すると、受信した行番号に対応するデータ配信要求情報の行に含まれている時系列データ配信条件情報を、データ配信要求情報取得部31から取得する。次に、データ配信条件情報評価部34は、ステップS2076Aにおいて、取得した時系列データ配信条件情報が示す配信条件が満たされているかどうか判断し、データ配信条件情報を満たしていると判断された時系列データ識別情報を含むデータ配信要求情報の行番号を、データ配信部35に送信する。
ここで、データ配信要求情報取得部31から取得した時系列データ配信条件情報が「5分間隔」であった場合について、データ配信条件情報評価部34による配信条件を満たしているか否かの判断動作について説明する。
先ず、データ配信条件情報評価部34は、データ配信要求情報検索部32から取得した行番号に対応するデータ配信要求情報を含む行のうち、データ配信時刻情報が示す時刻が最新の時刻となっている行を、時系列データ配信履歴情報(図23参照)から選択する。データ配信条件情報評価部34は、データ配信装置30内の時計の時刻が、時系列データ配信履歴情報から選択した行におけるデータ配信時刻情報が示す時刻から5分経過している場合には、「5分間隔」という時系列データ配信条件情報が示す配信条件を満たしていると判断する。
なお、時系列データ配信条件情報が「値の変化」であった場合には、データ配信条件情報評価部34は、時系列データ配信履歴情報から選択した行における時系列データ検知情報と、時系列データ配置部37に配置されている時系列データのうち、時系列データ配信履歴情報から選択した行における時系列データ識別情報を含む時系列データの時系列データ検知情報とが異なっていれば、時系列データ配信条件情報が示す配信条件を満たしていると判断する。
また、データ配信条件情報が「“会議室1”または“会議室2”」である場合には、データ配信条件情報評価部34は、時系列データ配置部37に配置されている時系列データのうち、時系列データ配信履歴情報から選択した行における時系列データ識別情報を含む時系列データの時系列データ検知情報が“会議室1”あるいは“会議室2”であれば、時系列データ配信条件情報が示す配信条件を満たしていると判断する。
なお、上述したステップS2072において、時系列データ識別情報「Taro:location」を含むデータ配信要求情報の行番号、すなわち図17の行番号1が検索され、この検索された行番号の行に含まれている「5分間隔」という時系列データ配信条件情報が示す配信条件が満たされているとステップS2076Aにおいて判断されたとする。
この場合、データ配信部35は、時系列データ識別情報が「Taro:location」である時系列データを、検索された行番号すなわち図17の行番号1の行に含まれているデータ利用端末識別情報であるIPアドレス「192.168.1.10」に対して送信する。
図25及び図26は、時系列データ配信処理の具体例を示している。ここでは、図10に示した時系列データ配信情報が用いられるものとし、ステップS2073での検索の結果、時系列データ配信情報における行番号1及び行番号2の行が発見されたとする。
ステップS2073での検索処理によって発見された時系列データ配信情報(図10参照)の行番号1における配信候補時系列データは、時系列データ識別情報「Taro:location」を含む時系列データ、及び時系列データ識別情報「Jiro:location」を含む時系列データである。
配信候補時系列データが、時系列データ配信情報(図10参照)の表の一行目から得られた場合、ステップS2074Bにおいて確認の対象となるのは、時系列データ識別情報「Taro:location」を含む時系列データ、及び時系列データ識別情報「Jiro:location」を含む時系列データである。例えば、ステップS2076Bにおいて、配信対象時系列データである「Taro:location」を含む時系列データおよび「Jiro:location」を含む時系列データのデータ配信条件情報が満たされていると判断した場合には、データ配信部35は、時系列データ識別情報が「Taro:location」の時系列データと、時系列データ識別情報が「Jiro:location」である時系列データとを、データ利用端末識別情報が示すIPアドレス「192.168.1.10」のデータ利用端末に対して送信する。
なお、以上で述べたデータ配信動作のうち、データ配信情報処理部33以外の構成要素による時系列データ配信情報を用いないデータ配信動作は、既に述べた方法の他、SIP(Session Initiation Protocol)で既定されているデータ配信方式SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)を用いても実現できる。
なお、「SIMPLE」については、インターネット上において、アドレスhttp://www.ietf.org/html.charters/simple−charter.htmlに詳細な情報が掲載されている。
この例では、IPアドレス「192.168.1.10」が割り当てられたデータ利用端末40aに対して、時系列データ識別情報「Taro:location」を含む時系列データと、時系列データ識別情報「Jiro:location」を含む時系列データとが、一度の処理で配信されている。
図27は、上述したステップS207、S208におけるデータの流れを図13上に追記することによって、時系列データが配信される様子を説明する図である。
図27に示すように、本実施例では、データ利用端末40aに対して、時系列データが一度の処理で配信されている。よって、時系列データを別々に配信する場合に比べて、データ配信装置30における配信処理数を減らすことができる。
上記のように、本実施例では、配信履歴情報に基づいて、所定の宛先に同時に配信することが許容される複数の時系列データを包括した時系列データ配信情報(例えば図10参照)を生成し、時系列データ配信情報を利用して時系列データの配信処理を行うことで、複数の時系列データを一度に配信することができる。よって、配信対象となるデータの数の増加にともなう処理負荷の増加を軽減することができ、配信処理数を低減させることができるため、時系列データの配信処理を円滑に行うことができるようになる。
また、上記の例では、通信ネットワーク50がインターネットによって構成されていたが、USB(Universal Serial Bus)やIEEE1394等のインタフェースを用いた通信ケーブルなどによって構築されていてもよい。
《実施例2》
次に、本発明の実施例2を説明する。この実施例は、第1の実施の形態における時系列データ配信情報設定処理(図4参照)の別の具体例を示すものである。
実施例2は、同時に配信する時系列データを一つ以上選択し、選択した時系列データを配信する方法を決定する動作(ステップS103参照)において、一つの時系列データを選択し、配信方法として複数のデータ利用端末40a〜40nへのマルチキャストを用いる点と、時系列データの配信設定動作(ステップS104参照)において、マルチキャスト配信のための設定を通信ネットワーク50に対して行う点と、データ利用端末40a〜40nへの時系列データ配信動作(ステップS207、S208参照)において、マルチキャストを用いる点とで、上述した実施例1と異なる。以下の説明において、「マルチキャスト」とは、通信ネットワーク50において、あらかじめ決められた複数のノードに対して、同一のデータを、一度の送信処理で同時に送信することを意味する。
図28は、本実施例における時系列データ配信情報設定処理を示している。図29は、データ配信基礎情報(図24参照)から時系列データ配信情報を生成する処理を示している。
まず、データ配信方法決定部14は、ステップS102で送信されたデータ配信基礎情報A105を取得する。次に、データ配信方法決定部14は、ステップS103bにおいて、データ配信方法基礎情報A105から、時系列データ識別情報が同一で、データ配信条件情報およびデータ配信時刻情報から、次回の配信時刻が同時であると予想される行を選択する。
図29に示す例では、時系列データ識別情報がともに「Taro:location」であり、前回の配信時刻とデータ配信条件情報の「5分間隔」から、次回の配信時刻が同時であると予想される、行番号が1及び6の行が選択される。
次に、データ配信方法決定部14は、ステップS104bにおいて、ステップS103bにおいて選択した時系列データを、複数のデータ利用端末に一度のマルチキャストによって配信するように、通信ネットワーク50を設定する。ここでは、マルチキャストをIPマルチキャストによって実現する場合について説明する。「IPマルチキャスト」は、複数の相手と特定のアドレスとを対応づけ、ネットワーク内各ルータがその特定のアドレス宛のパケットを複製し、対応する通信相手にパケットを配信する技術である。ここでいう特定のアドレスのことを「マルチキャストアドレス」という。
IPマルチキャストを用いた場合の配信設定動作は、次のように行う。図29に示すマルチキャストアドレス定義情報A107のように、あらかじめ使用するマルチキャストアドレスを用意しておき、その中から一つを選択する。そして、選択したマルチキャストアドレスのグループに、ステップS103bにおいて選択した時系列データの配信先であるデータ利用端末の識別情報を登録するために必要な情報を生成する。
図29に示した例では、「192.168.1.10」及び「192.168.1.13」が、「224.0.24.1」というマルチキャストアドレスのグループに登録するための情報、すなわちマルチキャスト設定情報A108が生成される。
本実施例では、マルチキャストアドレスのグループへの登録は次のようにして行われる。まず、データ利用端末40a〜40eが設定更新用のマルチキャストアドレスのグループに登録されている。データ配信方法決定部14は、設定更新用マルチキャストアドレスに、マルチキャスト設定情報A108が送信される。
データ利用端末40a内のマルチキャスト設定部(図示せず)は、マルチキャスト設定情報A108を受信し、受信したマルチキャスト設定情報A108内にデータ利用端末40aに割り当てられたIPアドレスが含まれていた場合、受信したマルチキャスト設定情報A108内に記されたマルチキャストアドレスのグループへの登録処理を行う。
この登録処理には、IGMP(Internet Group Management Protocol)などのプロトコルが利用できる。IGMPの詳細は、例えば、インターネット上のFTPサーバーftp://ftp.rfc−editor.org/in−notes/rfc3376.txtから入手できるRFC3376に記されている。
また、ステップS104bにおいて、マルチキャスト設定情報A108で設定されているマルチキャストアドレスと、ステップS103bにおいて選択した複数の時系列データの識別情報と配信宛先であるマルチキャストアドレスを一つの組としてデータ配信情報記憶部12に記憶するようにしてもよい。
図29に示す時系列データ配信情報A112は、ステップS105においてデータ配信情報記憶部12に記憶された情報の例を示している。
時系列データ識別情報が同一でありデータ配信条件情報及びデータ配信時刻情報から次回の配信時刻が同時であると予想される行の選択動作と、選択した時系列データを、複数のデータ利用端末、例えばデータ利用端末40a〜40nに一度のマルチキャストによって配信するように通信ネットワーク50を設定する動作と、選択した複数の時系列データと配信宛先であるマルチキャストアドレスを一つの組としてデータ配信情報記憶部12に記憶する動作とを、図29に示すデータ配信時刻情報及びデータ配信要求情報A105全ての行に対して行う。
次に、本実施例における時系列データ配信動作について説明する。
上述したステップS207、S208において、IPアドレス「192.168.2.14」が割り当てられたデータ配信装置400およびインターネットであるネットワーク600は、マルチキャストアドレス「224.0.24.1」に対して、「Taro:location」によって識別される時系列データを配信する。
図30は、ステップS207、S208を図13上に追記することにより、時系列データの配信の様子を示した図である。図30に示すように、IPアドレス「192.168.1.10」が割り当てられたデータ利用端末40aとIPアドレス「192.168.1.13」が割り当てられたデータ利用端末40dに対して、一度のマルチキャストで「Taro:location」によって識別される時系列データを配信することができる。この結果、本実施例では、時系列データをデータ利用端末ごとに配信する場合に比べて、データ配信装置30における配信処理数を減らすことができる。
上記のように、配信履歴情報に基づいて、所定の時系列データを同時に配信することが許容される複数の宛先を包括した時系列データ配信情報を生成し、時系列データ配信情報を利用して時系列データの配信処理を行うことで、所定の時系列データを複数の宛先に一度に配信することができる。ここでの時系列データ配信情報は、例えば図10の各行に時系列データ識別情報が1つ設定され、データ利用端末識別情報が複数設定された状態の時系列データ配信情報である。したがって、本実施例では、配信宛先数の増加にともなう処理負荷の増加を軽減することができ、配信処理数を低減させることができるため、時系列データの配信処理を円滑に行うことができるようになる。
なお、本実施例では、マルチキャストの実現方法としてIPマルチキャストを用いた例について説明したが、XCAST(インターネット上のサイトhttp://www.xcast.jp/を参照)等の他のマルチキャスト技術を用いても実現可能である。
また本実施例において、ステップS103b,S104b,S207及びS208以外の動作は、上述した実施例1と同様であるので、詳細な説明は省略した。
《実施例3》
次に、本発明の実施例3を説明する。この実施例は、第1の実施の形態における時系列データ配信情報設定処理(図4参照)のさらに別の具体例を示すものである。
実施例3は、同時に配信する時系列データを一つ以上選択し、選択した時系列データを配信する方法を決定する動作(ステップS103参照)において、複数の時系列データを選択し、配信方法として複数のデータ利用端末、例えば複数のデータ利用端末40a〜40nへのマルチキャストを用いる点と、時系列データの配信設定動作(ステップS104参照)において、マルチキャスト配信のための設定を通信ネットワーク50に対して行う点と、データ利用端末40a〜40nへの時系列データ配信動作(ステップS207、S208参照)において、マルチキャストを用いる点で、上述した実施例1とは異なっている。
図31は、本実施例における時系列データ配信情報設定処理を示している。図32は、データ配信基礎情報(図24参照)から時系列データ配信情報を生成する処理を示している。
まず、データ配信方法決定部14は、ステップS102で送信されたデータ配信基礎情報A105を取得する。次に、データ配信方法決定部14は、ステップS103cにおいて、データ配信基礎情報A105におけるデータ配信条件情報およびデータ配信時刻情報から、次回の配信時刻が同時であると予想される行を選択する。図32に示した例では、行番号が1、3、6及び7の行が選択される。
次に、データ配信方法決定部14は、ステップS104cにおいて、ステップS103cにおいて選択した複数の時系列データの組合せを、複数のデータ利用端末、例えばデータ利用端末40a〜40nに対して一度のマルチキャストによって配信するように、通信ネットワーク50を設定する。
ここで実施例3におけるマルチキャスト設定動作について説明する。まず、図32に示すマルチキャストアドレス定義情報A107のようにあらかじめ使用するマルチキャストアドレスを用意しておき、その中から一つを選択する。次に、選択したマルチキャストアドレスのグループに、ステップS103cにおいて選択した行に記憶されているデータ利用端末500の識別情報を登録するために必要な情報を生成する。図32に示した例では、「192.168.1.10」及び「192.168.1.13」が、「224.0.24.1」というマルチキャストアドレスのグループに登録するために必要な情報が、マルチキャスト設定情報A108として生成される。
ここでマルチキャストアドレスのグループへの登録処理は、以下のようにして行われる。すなわち、データ利用端末40a〜40nが設定更新用のマルチキャストアドレスのグループに登録されているとして、データ配信方法決定部14は、設定更新用マルチキャストアドレスに、マルチキャスト設定情報A108を送信する。データ利用端末40a内のマルチキャスト設定部(図示せず)は、マルチキャスト設定情報A108を受信し、受信したマルチキャスト設定情報A108内にデータ利用端末40aに割り当てられたIPアドレスが含まれていた場合、受信したマルチキャスト設定情報A108内に記されたマルチキャストアドレスのグループへの登録処理を行う。この登録処理には、IGMPなどのプロトコルが利用できる。
このようにしてマルチキャスト設定動作が行われると、マルチキャスト設定情報A108で設定したマルチキャストアドレスと、ステップS103cにおいて選択した行に記憶されている複数の時系列データと配信宛先であるマルチキャストアドレスとを一つの組として、この組は、時系列データ配信情報A113として、データ配信情報記憶部12に記憶される。
図32に示した例では、複数の時系列データ「Taro:location」及び「Jiro:location」と、マルチキャストアドレス「224.0.24.1」とが、一つの組として記憶されている。
以上説明した、データ配信条件情報及びデータ配信時刻情報に基づいて次回の配信時刻が同時であると予想される行を選択する動作と、選択した時系列データを、複数のデータ利用端末40a〜40eに一度のマルチキャストによって配信するように、通信ネットワーク50を設定する動作と、選択した複数の時系列データと配信宛先であるマルチキャストアドレスを一つの組としてデータ配信情報記憶部12に記憶する動作とを、データ配信基礎情報A105におけるデータ配信時刻情報及びデータ配信要求情報についての全ての行に対して行う。
次に、本実施例における時系列データ配信動作について詳細に説明する。
上述したステップS207、S208において、IPアドレス「192.168.2.14」が割り当てられたデータ配信装置400およびインターネットであるネットワーク600は、マルチキャストアドレス「224.0.24.1」に対して、「Taro:location」と「Jiro:location」によって識別される時系列データを配信する。
図33は、ステップS207、S208を図13上に追記することにより、時系列データの配信の様子を示した図である。図33に示すように、IPアドレス「192.168.1.10」が割り当てられたデータ利用端末40aとIPアドレス「192.168.1.13」が割り当てられたデータ利用端末40dに対して、一度のマルチキャストで「Taro:location」と「Jiro:location」によって識別される時系列データを配信することができる。この結果、本実施例では、時系列データ一つ一つをデータ利用端末40a〜40nごとに配信する場合に比べて、データ配信装置30における配信処理数を減らすことができる。
なおこの実施例において、ステップS103c,S104c,S207及びS208以外の動作は、上述した実施例1と同様であるので、詳細な説明は省略した。
このように実施例3では、配信履歴情報に基づいて、所定の宛先に同時に配信することが許容される複数の時系列データ及び所定の時系列データを同時に配信することが許容される複数の宛先を包括した時系列データ配信情報を生成し、時系列データ配信情報を利用して時系列データの配信処理を行うことで、複数の時系列データを複数の宛先に対して一度に配信することができる。よって、配信対象となるデータの数の増加及び配信宛先数の増加にともなう処理負荷の増加を軽減することができ、配信処理数を低減させることができるため、時系列データの配信処理を円滑に行うことができるようになる。
なお、この実施例では、配信履歴情報に基づいて、所定の宛先に同時に配信することが許容される複数の時系列データを包括した第1の仮時系列データ配信情報と、所定の時系列データを同時に配信することが許容される複数の宛先を包括した第2の仮時系列データ配信情報とを生成し、第1の仮時系列データ配信情報と第2の仮時系列データ配信情報との重複部分を削除することで、時系列データ配信情報を生成するようにすればよい。第1の仮時系列データ配信情報は、例えば図10に示された時系列データ識別情報と同様のものである。第2の仮時系列データ配信情報としては、例えば図10に示したものの各行に時系列データ識別情報が1つ設定され、データ利用端末識別情報が複数設定された状態の時系列データ配信情報が挙げられる。
《実施例4》
次に、本発明の実施例4を説明する。この実施例は、第2の実施の形態における動作の具体例を示すものである。
図34は、実施例4におけるデータ配信システム200の全体構成を示している。図示されるように、この実施例は、データ配信システム200が複数のデータ配信装置30a〜30eを備え、また、データ配置先制御装置210がデータ配信装置負荷情報取得部16を備えている点で、実施例1とは異なっている。
また、本実例例の動作は、時系列データ配置処理のステップS204において、時系列データを配置する1つのデータ配信装置を次のように複数のデータ配信装置30a〜30eから決定する点で、実施例1とは異なっている。
この実施例におけるデータ配置部11は、ステップ204の時系列データ配置動作時に、データ配信情報記憶部12に記録された時系列データ配信情報を参照する。データ配信装置負荷情報取得部16は、例えば、一定期間における記憶処理数や、一定期間における配信処理数などに基づく各データ配信装置30a〜30nの負荷情報すなわちデータ配信装置負荷情報を、各データ配信装置30a〜30nから取得して記憶する処理を実行する。
この実施例における時系列データ配信情報は、時系列データの配信先となるデータ利用端末40a〜40eを識別するための複数のデータ利用端末識別情報と、配信される時系列データの種類を識別するための時系列データ識別情報と、時系列データを配信する配信条件を示す時系列データ配信条件情報とが行ごとに記述された表形式のデータとして管理される(図10参照)。
次に、データ配信情報記憶部12は、データ配信装置負荷情報取得部16に記録されているデータ配信装置30a〜30eの負荷情報を取得する。データ配信装置負荷情報は、データ配信装置を識別するIPアドレスと、各データ配信装置で同時に処理している配信処理数とが各行に記録された表形式のデータとして、管理されている。図35のデータ配信装置負荷情報A120は、このようなデータ配信装置負荷情報の一例を示している。データ配信装置負荷情報は、SNMP等のプロトコルを用いることによって、データ配信装置30a〜30eから例えば5分間隔などの定期的な周期で、データ配信装置負荷情報取得部16によって取得されている。
データ配置部11は、取得した時系列データ配信情報(図10参照)とデータ配信装置の負荷情報であるデータ配信装置ごとの同時配信処理数から、ステップS202で取得した時系列データ識別情報に対応する時系列データの配置先であるデータ配信装置を次のようにして決定する。なお、「同時配信処理数」とは、一定期間における時系列データの配信処理の実行回数を意味する。
まず、一度も時系列データの配置処理が行われていない場合について説明する。この場合、データ配置部11は、ステップS204a(図12参照)において、データ配信装置30a〜30eの負荷情報であるデータ配信装置ごとの同時配信処理数を参照し、最も配信処理数の少ないデータ配信装置を決定する。
図35は、本実施例におけるステップS204aの動作を示している。図35のデータ配信装置負荷情報A120では、最も配信処理数の少ないデータ配信装置として、IPアドレス「192.168.2.14」が割り当てられているデータ配信装置30eが決定されている。なお、図35には、8個のデータ配信装置30a〜30hについての負荷情報が示されている。
また、データ配置部11は、データ配置履歴情報をデータ配信情報記憶部12内に記録する。本実施例においてデータ配置履歴情報は、図36に示すように、配置した時系列データの識別情報と、配置されたデータ配信装置の識別情報が対応付けられた行から構成される表形式のデータとして管理される。
図35に示した例において、時系列データA110がデータ配信装置30eに配置された時刻が、2004年1月14日14時5分15.20秒であった場合、図44に示した表の1行目がデータ配置部11によって追加される。
次に、既に一度以上時系列データの配置処理が行われている場合について説明する。この場合、過去に配置した時系列データの識別情報と、配置されたデータ配信装置の識別情報の組が、図36に示した表のように、一つ以上記録されている。
図37は、本実施例におけるステップS2041〜S2043の処理(図12参照)を示している。
まず、データ配置部11は、ステップS2041において、時系列データ配信情報内に記録された、データ配信装置における時系列データ配信処理数を減らすことができる配信方法を実現するための組合せを参照し、ステップS202で抽出した時系列データの識別情報が含まれるその組合せを検索する。図37に示した例では、ステップS2041において、時系列データ配信情報内の行A106が、データ配置部11によって取得される。
次に、データ配置部11は、ステップS2042において、検索の結果発見された組合せ内の他の時系列データ識別情報を取得する。図37に示した例では、時系列データ配信情報内の行A106から、ステップS2042において、時系列データ識別情報「Jiro:location」が、データ配置部11によって取得される。
次に、データ配置部11は、ステップS2043において、データ配置履歴情報から、他の時系列データ識別情報を含む組を検索する。図37に示した例では、ステップS2043において、データ配置履歴情報A121から、時系列データ識別情報「Jiro:location」を含む行としてA121の2行目が検索される。ここでは、ステップS2043において該当する行が複数発見された場合、データ配置制御装置210内の時刻に最も近い時刻が配置時刻として記録されている行が選択される。
次にデータ配置部11は、ステップS2043で発見された組から、ステップS204bにおいて、配置されたデータ配信装置の識別情報を取得する。図37に示した例では、ステップS2043において発見されたA121の2行目内に記録されたIPアドレス「192.168.2.11」で識別されるデータ配信装置30bの識別情報が取得される。
ステップS2041、S2043において検索対象が発見されない場合、データ配置部11は、図35に示した場合と同様に、ステップ204aにおいて、データ配信装置の負荷情報から最も負荷の低いデータ配信装置の識別情報を取得する。
実施例4におけるその他の構成要素及び動作については、実施例1と同様であるので、記載を省略した。
なお、この実施例4と、上述の実施例1〜3のいずれかとを組み合わせた構成とするようにしてもよい。すなわち、実施例1〜3において、実施例4のようにデータ配信装置を複数備える構成とし、負荷情報に基づいてデータ配信を行うデータ配信装置を選択するようにしてもよい。
《実施例5》
次に、本発明の実施例5を説明する。この実施例は、第1の実施の形態における時系列データ配信情報設定処理(図4参照)などの具体例を示すものである。
データ配信装置30が、データ生成装置20aから時系列データを受信してからデータ利用端末40aへ配信するまでの処理を、以下では「サーバ処理」と表現する。本実施例は、サーバ処理時間に許容される上限値が、時系列データごとに定められているようなシステムにおける、本発明の適用例である。
処理時間に許容される上限値が定められているシステムは、一般に、リアルタイムシステムと呼ばれている。リアルタイムシステムにおいて、許容される処理時間の上限値が定められている処理を以下「リアルタイム処理」と表現し、リアルタイム処理ごとに定められている処理時間の上限値を「最大処理時間」と表現する。「ある処理がリアルタイム性を満たしている」と表現した場合、最大処理時間以下でその処理が実行されていることを意味する。
リアルタイム処理は、最大処理時間以下で実行されることが要求される。例えば、ある時系列データの最大処理時間が0.5秒である場合、0.4秒でサーバ処理が実行された場合と0.3秒でサーバ処理が実行された場合は、いずれも、サーバ処理はリアルタイム性を満たしている。一方、ある時系列データの最大処理時間が0.5秒である場合に、実行し終えるのに0.6秒を要したサーバ処理は、リアルタイム性を満たしていない。
図38にこの実施例におけるデータ配信方法決定部14の詳細を示す。この実施例におけるデータ配信方法決定部14は、要求処理時間短縮モデル記憶部141、リアルタイム要件記憶部142、実行ログ記憶部143、負荷要因特定部144、データ配信方法適用パタン生成部145、最低処理負荷データ配信方法適用パタン決定部146からなる。
要求処理時間短縮モデル記憶部141は、負荷低減手法によって短縮できる処理時間を計算するための情報を含む処理時間短縮モデル情報を記憶している。処理時間短縮モデル情報は、処理負荷を低減するための手法を特定するための処理負荷低減手法名と、処理負荷低減手法名によって識別される処理負荷低減手法によって削減できるサーバ内の処理数比率を表わす数式である削減可能サーバ内処理数比率と、処理負荷低減手法名によって識別される処理負荷低減手法の処理負荷を表わす数式である処理負荷低減手法処理負荷モデルとを含む。処理負荷低減手法名としては、例えば、「マルチキャスト」などが挙げられる。図39に、処理時間短縮モデル情報の例を示す。
実行ログ記憶部143は、データ配信装置30において実行された処理時刻情報を含むサーバ内処理実行履歴情報を記憶している。サーバ内処理実行履歴情報は、データ配信装置30において過去に実行した処理の開始時刻情報及び終了時刻情報と、処理の種類であるサーバ内処理名との組で構成されるサーバ内処理実行履歴情報とを含む。図40にサーバ内処理実行履歴情報の例を示す。
リアルタイム要件記憶部142は、データ配信装置30において実行される処理の最大処理時間を含むリアルタイム要件情報を記憶している。リアルタイム要件情報は、データ配信装置30で実行される処理の種類を表わすサーバ内処理名と、サーバ内処理名によって識別される処理ごとに許容される最大処理時間とを含む。図41にリアルタイム要件情報の例を示す。
負荷要因特定部144は、データ配信装置30において実行された処理のうち、リアルタイム要件情報に記録された最大処理時間を超過した処理を識別する情報を含む、非リアルタイム処理情報(後述の図42参照)を生成する。
負荷要因特定部144内の非リアルタイム処理抽出部1441は、リアルタイム要件記憶部143に記録されたリアルタイム要件情報および、実行ログ記憶部142に記録されたサーバ内処理実行履歴情報から、リアルタイム性を満たせなかったサーバ内処理を表わす非リアルタイム処理名と、非リアルタイム処理名によって識別される処理がリアルタイム性を満たすために下回らなければならない最大処理時間と、非リアルタイム処理名によって識別される処理のデータ配信装置上の開始時刻情報および終了時刻情報とを生成する。
負荷要因特定部144内のサーバ内キュー状況解析部1442は、非リアルタイム処理を実行した際にサーバ内で実行されていた処理のサーバ内処理名のリストである同時処理群を生成する。
非リアルタイム処理情報は、非リアルタイム処理抽出部1441によって生成される情報とサーバ内キュー状況解析部1442によって生成される情報とを含む。図42に非リアルタイム処理情報の例を示す。
データ配信方法適用パタン生成部145は、リアルタイム要件情報に記録された最大処理時間を下回るように、非リアルタイム処理情報に記録された非リアルタイム処理の負荷を低減させるための、マルチキャスト等の負荷低減手法の非リアルタイム処理への適用パタンの組合せを含むデータ配信方法適用パタン情報を生成する。
データ配信方法適用パタン情報は、負荷要因特定部144によって抽出された非リアルタイム処理情報で示された非リアルタイム処理に対して、適用することでリアルタイム性を持たせることが可能であると推測されるマルチキャスト等の処理負荷低減手法名と、適用する非リアルタイム処理のリストである処理負荷低減手法適用群とを含む。図43にデータ配信方法適用パタン情報の例を示す。
データ配信方法適用パタン生成部145は、データ配信方法適用パタン情報を、非リアルタイム処理情報内の開始時刻情報及び終了時刻情報及び同時実行処理群内のサーバ内処理の数と、処理時間短縮モデル情報内の削減可能サーバ内処理数比率から生成する。
最低処理負荷データ配信方法適用パタン決定部146は、要求処理時間短縮モデル記憶部141に記録された処理時間短縮モデル情報内の処理負荷低減手法処理負荷モデルから、データ配信方法適用パタン生成部145が生成した処理負荷低減手法適用パタン情報の中で、処理負荷低減手法の処理負荷が最小となるパタンを決定する。さらに最低処理負荷データ配信方法適用パタン決定部146は、決定したパタンに基づいて、データ配信時刻情報取得部13から取得したデータ配信基礎情報から、図29におけるものと同様の処理によって図29におけるマルチキャスト設定情報A108及び時系列データ配信情報A112を生成する。
図44に実施例5におけるデータ配信方法決定部14の動作を示す。
まず負荷要因特定部144内の非リアルタイム処理抽出部1441が、ステップS301において実行ログ記憶部143からサーバ内処理実行履歴情報を取得し、ステップS302においてリアルタイム要件情報記憶部142からリアルタイム要件情報を取得する。次に、非リアルタイム処理抽出部1441は、ステップS302で取得したリアルタイム要件情報に記録されたサーバ内処理名の処理時間を、ステップS301で取得したサーバ内処理実行履歴情報から取得する。
サーバ内処理名の処理時間取得動作を、図41の行番号1のサーバ内処理名を例に説明する。図41の行番号1では、サーバ内処理名は「Taro:locationを配信要求している全てのデータ利用端末への配信」となっている。非リアルタイム処理抽出部は、図40に示すサーバ内処理実行履歴情報のサーバ内処理名において、「Taro:locaion」を含む行を1つ以上選択する。次に、非リアルタイム処理抽出部1441は、選択した1つ以上の行において、開始時刻が同一である行を1つ以上選択する。図40の例では、行番号1及び2が選択される。
次に、非リアルタイム処理抽出部1441は、図40の行番号1及び2のうち最も遅い終了時刻「2004/1/14 14:05:04.00」を選択し、行番号1及び2の開始時刻のうち最も早い時刻である「2004/1/14 14:05:03.50」との差である0.5秒を、「Taro:locationを配信要求している全てのデータ利用端末への配信」のサーバ内処理時間として得る。次に、非リアルタイム処理抽出部1441は、ステップS302で取得した図41に示すリアルタイム要件情報の行番号1にある最大処理時間0.35秒とサーバ内処理時間0.5秒とを比較する。ここでは最大処理時間を超過しているため、非リアルタイム処理抽出部1441は、図41の行番号1に示されたサーバ内処理名「Taro:locationを配信要求している全てのデータ利用端末への配信」を非リアルタイム処理名とし、サーバ内処理時間0.5秒を得るために用いた図40の行番号1及び2に示された開始時刻のうち最も早い時刻を非リアルタイム処理情報の開始時刻とし、サーバ内処理時間0.5秒を得るために用いた図40の行番号1及び2に示された終了時刻のうち最も遅い時刻を非リアルタイム処理情報終了時刻とする。また、非リアルタイム処理抽出部1441は、ステップS302で取得した図41に示すリアルタイム要件情報の行番号1にある最大処理時間0.35秒を、非リアルタイム処理情報の最大処理時間とする。
次に、負荷要因特定部144内のサーバ内キュー状況解析部1442は、非リアルタイム処理情報の開始時刻から終了時刻までの間に実行されているサーバ内処理を、ステップS301で取得したサーバ内処理実行履歴情報から取得し、非リアルタイム処理情報の同時実行処理群とする。図40に示されたサーバ内処理実行履歴情報の例では、「Taro:locationの192.168.1.10への配信」と「Taro:locationの192.168.1.13への配信」と「Jiro:locationの192.168.1.15への配信」が同時実行処理群として選択される。
以上の処理により、負荷要因特定部144は、図42に示す非リアルタイム処理情報の1行目を生成する。負荷要因特定部144は、以上の処理をリアルタイム要件情報に記録されている全てのサーバ内処理名について行い、非リアルタイム処理情報を得る。そして負荷要因特定部144は、このようにして得られた非リアルタイム処理情報を、ステップS303において、データ配信方法適用パタン生成部145に送信する。
次にデータ配信方法適用パタン生成部145は、ステップS304において、要求処理時間短縮モデル記憶部141から処理時間短縮モデル情報を取得する。データ配信方法適用パタン生成部145は、ステップS303で取得した非リアルタイム処理情報の各行において、同時実行処理群に対して、ステップS304で取得した処理時間短縮モデル内の処理負荷低減手法名で識別される処理負荷低減手法を適用した場合の同時実行処理数を、削減可能サーバ内処理数比率に基づいて計算する。
図39及び図42に示す例では、Taro:locationで識別される時系列データの配信二つをマルチキャストで配信することによって、同時実行処理群の数は3から2に減少する。
次に、データ配信方法適用パタン生成部145は、値[(処理負荷低減手法の適用によって減少した同時実行処理群の数)/(減少する前の同時実行処理群の数)]が、値[非リアルタイム処理情報の(最大処理時間)/(終了時刻−開始時刻)]よりも小さい場合に、Taro:locationで識別される時系列データの配信二つへのマルチキャストの適用を、適用することでリアルタイム性を持たせることが可能なパタンと判定する。
図39及び図42に示す例では、
(処理負荷低減手法の適用によって減少した同時実行処理群の数)/(減少する前の同時実行処理群の数)=2/3,
非リアルタイム処理情報の(最大処理時間)/(終了時刻−開始時刻)=0.7
であるので、Taro:locationで識別される時系列データの配信二つへのマルチキャストの適用を、適用することでリアルタイム性を持たせることが可能であると推測されるパタンと判定する。
次に、データ配信方法適用パタン生成部145は、Taro:locationで識別される時系列データの配信二つへのマルチキャストの適用によって、非リアルタイム処理情報の他の1行目以外に示された全ての非リアルタイム処理がリアルタイム性を満足可能となるかどうかを非リアルタイム処理情報の1行目と同様に判定し、全ての非リアルタイム処理において、適用することでリアルタイム性を持たせることが可能であると推測されるパタンとして判定された場合、マルチキャストを処理負荷低減手法名として、処理負荷低減手法適用対象であるTaro:locationで識別される時系列データの配信二つを処理負荷低減手法適用処理群として、図43に示すデータ配信方法適用パタン情報の1行目を生成する。
データ配信方法適用パタン生成部145は、以上の処理をステップS303で取得した非リアルタイム処理情報の各行に対して行った結果得られたデータ配信方法適用パタン情報を、ステップS305において、最低処理負荷データ配信方法適用パタン決定部146へ送信する。
次に、最低処理負荷データ配信方法適用パタン決定部146は、ステップS306において、要求処理時間短縮モデル記憶部141から処理時間短縮モデル情報を取得する。最低処理負荷データ配信方法適用パタン決定部146は、ステップS307で取得したデータ配信方法適用パタン情報の各行に示された処理負荷低減手法適用パタンの処理負荷を、ステップS306で取得した処理時間短縮モデル情報の各行のうち、同一の処理負荷低減手法名を持つ行にある処理負荷低減手法処理負荷モデルに基づいて計算する。
図39に示す処理時間短縮モデル情報の例では、処理負荷低減手法「マルチキャスト」の処理負荷は、マルチキャスト化したユニキャスト配信処理数となっている。このため、最低処理負荷データ配信方法適用パタン決定部146は、図43に示すデータ配信方法適用パタンの例の1行目ではマルチキャストの処理負荷は「2」、2行目ではマルチキャストの処理負荷は「4」という計算結果を得る。
次に最低処理負荷データ配信方法適用パタン決定部146は、計算した処理負荷低減手法適用パタンのうち処理負荷低減手法の処理負荷が最も小さい適用パタンを選択する。図43に示すデータ配信方法適用パタンの例では、最低処理負荷データ配信方法適用パタン決定部146は、1行目を選択する。
次に最低処理負荷データ配信方法適用パタン決定部146は、ステップS102で取得した配信基礎情報から図29に示すのと同様の方法でマルチキャスト生成情報および時系列データ配信情報を生成する際、処理負荷低減手法の処理負荷が最も小さい適用パタンに含まれるマルチキャストに関するマルチキャスト生成情報及びデータ配信情報のみを生成する。図43に示す例の場合、処理負荷低減手法の処理負荷が最も小さい適用パタンとして選択された1行目の処理負荷低減手法適用処理群に記述された、時系列データ識別情報が「Taro:location」である時系列データの、データ利用端末識別情報が「192.168.1.10」及び「192.168.1.13」であるデータ利用端末への配信処理をマルチキャスト化するための、マルチキャスト生成情報(図29のA108)及び時系列データ配信情報(A112)が生成される。
上記のように、リアルタイムシステムにおいて、マルチキャスト等の処理負荷低減手法を適用する際、時系列データの最大処理時間以下となるのに必要十分な数のユニキャストに限定してマルチキャストを適用することで、データの配信対象数の増加や配信データの種類の増加にともなうマルチキャストシステムの配信処理負荷の増加を軽減することができる。
マルチキャストシステムは、データ配信システムの一部であり、マルチキャストシステムの配信処理負荷の増加を軽減することができれば、データ配信システムにおいて、データ配信システム全体としての配信処理の負荷の増加を軽減できる。
なお、本実施例では、マルチキャストの実現方法としてIPマルチキャストを用いた例について説明したが、XCAST等の他のマルチキャスト技術を用いても実現可能である。
また、ステップS301,S302,S303、S304、S305及びS306以外の動作は、上述した第2実施例と同様であるので、詳細な説明は省略する。