以下に添付図面を参照して本願に係る制御プログラム、制御方法及び制御装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
図1は、実施例1に係る災害情報システムの構成例を示す図である。図1に示す災害情報システム1は、災害情報をクライアント端末30A〜30Cに通知する災害情報の通知サービスを提供するものである。
このような通知サービスを実施する環境下で、災害情報システム1は、一側面として、災害の規模ごとにクライアント端末30A〜30Cに災害情報をリクエストさせる周期が定められた周期データを参照して、発生した災害の規模に対応する周期をリクエストを行うクライアント端末に設定する制御を実現する。これにより、災害発生時の通信トラフィックの増大を抑制する。
図1に示すように、災害情報システム1には、サーバ装置10と、情報源装置20と、クライアント端末30A〜30Cとが含まれる。以下では、クライアント端末30A〜30Cのことを「クライアント端末30」と記載する場合がある。
これらサーバ装置10、情報源装置20及びクライアント端末30の間は、所定のネットワークNWを介して接続される。このネットワークNWは、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網により構築することができる。
サーバ装置10は、上記の災害情報の通知サービスを提供するコンピュータである。このサーバ装置10は、制御装置の一例である。
一実施形態として、サーバ装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の通知サービスを含む機能を実現する制御プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、サーバ装置10は、上記の通知サービスを提供するWebサーバとして実装することとしてもよいし、アウトソーシングによって上記の通知サービスを提供するクラウドとして実装することとしてもかまわない。
ここでは、あくまで一例として、クライアント端末30に災害情報を通知する通知機能およびクライアント端末30に災害情報のリクエストの周期を設定する設定機能をサーバ装置10が併せ持つ場合を例示するが、実装はこれに限定されない。例えば、通知機能および設定機能ごとにハードウェアを分散して設けることもできれば、通知機能および設定機能ごとに仮想マシンを1又は複数の物理マシン上で動作させることにより、災害情報システム1を実装できる。
情報源装置20は、災害情報の情報源が災害情報の提供に用いる装置である。ここで言う「情報源」とは、サーバ装置10の事業者に対する情報源を指す。例えば、災害が地震である場合、緊急地震速報などの災害情報を配信する気象庁などが情報源に該当する。この情報源は狭義の情報源を意味せず、必ずしも災害情報の一次ソースでなくともよい。例えば、ポータルサイトなどの二次ソース以降の情報源を本実施例で言う「情報源」とすることもできる。
ここで、情報源装置20からサーバ装置10への災害情報の通知には、任意の通信形態を採用することができる。例えば、災害が地震である場合、緊急地震速報などの既存の情報提供の仕組みを利用できる。この情報提供の仕組みの一例として、情報源が発行するアカウントを持つユーザに対し、災害情報がXML(Extensible Markup Language)のフォーマットで記述された電子メールを配信する仕組みがある。この仕組みを利用し、サーバ装置10の事業者がアカウント登録を行うことにより、情報源装置20からサーバ装置10への災害情報の通知を実現することができる。
クライアント端末30は、上記の災害情報の通知サービスの提供を受けるコンピュータである。
一実施形態として、クライアント端末30には、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末のみならず、タブレット端末やスレート端末などが対応する。このようにハンドヘルド型の携帯端末装置に限定されず、ヘッドマウントディスプレイ、スマートグラスやスマートウォッチなどのウェアラブルデバイスの他、あらゆるIoT(Internet of Things)デバイスがクライアント端末30対応する。なお、ここでは、あくまで携帯端末装置の例を挙げたが、クライアント端末30は、ノート型またはラックトップ型の情報処理装置、例えばパーソナルコンピュータ等であってもかまわない。
例えば、クライアント端末30では、クライアント端末30にインストールされた防災用のアプリケーションプログラムやブラウザなどのフロントエンドを通じて、サーバ装置10から災害情報が通知される。以下では、防災用のアプリケーションプログラムのことを「防災App」と略記する場合がある。
[サーバ装置10の構成]
次に、本実施例に係るサーバ装置10の機能的構成について説明する。図2は、実施例1に係るサーバ装置10の機能的構成を示すブロック図である。図2には、データの入出力の関係を表す実線が示されているが、これは、説明の便宜上、上記の通知機能および上記の設定機能に関する一部について示されているに過ぎない。すなわち、各機能部に関するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば機能部及び機能部の間、機能部及びデータの間、並びに、機能部及び外部装置の間のデータの入出力が行われることとしてもかまわない。また、図2には、上記の通知機能および上記の設定機能に関連する機能部が抜粋して示されているに過ぎず、既存のコンピュータが有する機能部であれば、図示以外の機能部がサーバ装置10に備わることを妨げない。例えば、入力デバイス、表示デバイスや音声出力デバイスなどのハードウェアに対応する機能部がサーバ装置10に備わってもよい。これら既存のコンピュータが有する汎用の機能部の中には図示が省略されているものもあるが、上記の通知機能および上記の設定機能を実現する上で有用である機能部は図示が省略されたとしてもサーバ装置10に備わることは妨げない。
図2に示すように、サーバ装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。
通信I/F部11は、他の装置との間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11には、LANカードなどのネットワークインタフェースカードが対応する。例えば、通信I/F部11は、情報源装置20から災害情報を受信する。また、通信I/F部11は、クライアント端末30から災害情報のリクエストを受信したり、また、災害情報や災害情報をリクエストする周期の設定などをクライアント端末30へ送信したりする。
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記の通知機能や設定機能を実現する制御プログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
一実施形態として、記憶部13は、サーバ装置10における補助記憶装置として実装される。例えば、補助記憶装置には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などが対応する。この他、EPROM(Erasable Programmable Read Only Memory)などのフラッシュメモリも補助記憶装置に対応する。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、災害情報13aと、周期データ13bとを記憶する。この災害情報13a及び周期データ13b以外にも、他の電子データを記憶することもできる。例えば、記憶部13には、上記の通知サービスの提供を受けるユーザのアカウント情報を始め、クライアント端末30にダウンロードさせる防災用のアプリケーションプログラムなどを記憶することができる。なお、災害情報13a及び周期データ13bの説明は、実際に記憶部13からデータの登録または参照が実行される機能部の説明と併せて行うこととする。
制御部15は、サーバ装置10の全体制御を行う処理部である。
一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
制御部15は、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に、上記の視点選択支援機能を実現する視点選択支援プログラムを展開することにより、下記の処理部を仮想的に実現する。
制御部15は、図2に示すように、取得部15aと、算出部15bと、決定部15cと、補正部15dと、受付部15eと、通知部15fと、設定部15gとを有する。
取得部15aは、災害情報を取得する処理部である。
一実施形態として、取得部15aは、情報源装置20からネットワークNWを介して災害情報を取得する。例えば、災害が地震である場合、取得部15aは、緊急地震速報の電子メールを受信することにより、当該電子メールに記述されたコンテンツを災害情報として取得することができる。このように情報源装置20から取得される災害情報には、震度速報、震源・震度に関する情報および各地の震度に関する情報のうち少なくともいずれか1つが含まれる。さらに、取得部15aは、地震が検知された時点から順に第1報、第2報、・・・、最終報の災害情報を時間経過にしたがって取得することができる。このように災害情報が取得された場合、取得部15aは、当該災害情報を記憶部13に登録すると共に、当該災害情報を算出部15bへ出力する。
算出部15bは、取得部15aにより取得された災害情報に基づいて災害の規模を算出する処理部である。以下では、一例として、災害が地震である場合を想定して災害の規模の算出について説明する。
一側面として、算出部15bは、取得部15aにより取得された災害情報に含まれる被災レベルのうち最高の被災レベルに基づいて災害の規模を算出する。例えば、災害が地震である場合、震度などの被災レベルが所定値、例えば「3」以上である被災地を含む災害情報が取得部15aにより取得される。この災害情報を利用して、算出部15bは、被災地で観測された震度のうち最高震度を地震の規模として算出する。なお、ここでは、一例として、最高震度のそのものを地震の規模として導出する場合を例示したが、任意の統計手法にしたがって最高震度を正規化することにより指標として算出することもできる。
他の側面として、算出部15bは、取得部15aにより取得された災害情報に含まれる被災地の人口密度に基づいて災害の規模を算出することもできる。例えば、災害が地震である場合、震度などの被災レベルが所定値、例えば「3」以上である被災地を含む災害情報が取得部15aにより取得される。この被災地の地域を識別する区分は、情報源により予め公開されている。このため、被災地ごとに当該被災地の人口密度が対応付けられた人口密度データを準備しておくことができる。この人口密度データを参照して、算出部15bは、災害情報に含まれる被災地ごとに当該被災地に対応する人口密度を検索する。そして、算出部15bは、被災地ごとに検索された人口密度を合計することにより求まる被災人口を地震の規模として算出する。なお、ここでは、一例として、被災人口のそのものを地震の規模として導出する場合を例示したが、任意の統計手法にしたがって正規化することにより指標として算出することもできる。例えば、被災人口を被災地の地域の総数で除算することにより正規化することができる。これにより、過去の地震との間で被災人口の比較が容易になる。
更なる側面として、算出部15bは、被災地の人口密度に当該被災地で観測される被災レベル度を重みとして付与する重み付けを行うことにより、災害の規模を算出することもできる。例えば、算出部15bは、被災地ごとに検索された人口密度に当該被災地で観測された震度を重みとして付与する。その上で、算出部15bは、被災地ごとに重み付けが行われた人口密度を合計することにより、地震の規模を算出することができる。なお、ここでは、一例として、重み付けが行われた人口密度の合計そのものを地震の規模として導出する場合を例示したが、任意の統計手法にしたがって正規化することにより指標として算出することもできる。例えば、重み付けが行われた人口密度の合計を被災地の地域の総数で除算することにより正規化することができる。これにより、過去の地震との間で数値の比較が容易になる。
決定部15cは、算出部15bにより算出された災害の規模に対応する周期を決定する処理部である。
一実施形態として、決定部15cは、災害の規模とクライアント端末30に災害情報のリクエストを実行させる周期とが対応付けられた周期データ13bを参照することにより、クライアント端末30が災害情報をサーバ装置10にリクエストする周期を決定する。図3は、周期データ13bの一例を示す図である。図3には、災害の規模が最高震度で表される場合が示されている。図3に示す周期データ13bの例で言えば、算出部15bにより算出された最高震度が「7」である場合、クライアント端末30が300秒の周期で災害情報のリクエストをサーバ装置10に行う設定が実施されることを意味する。また、算出部15bにより算出された最高震度が「6」である場合、クライアント端末30が240秒の周期で災害情報のリクエストをサーバ装置10に行う設定が実施されることを意味する。この他の災害の規模においても、クライアント端末30に設定される周期の値が異なる他は同様の認識をコンピュータに行わせることができる。このような周期データ13bを参照して、決定部15cは、算出部15bにより災害情報から算出された災害の規模に対応する周期をクライアント端末30のリクエストの周期の設定時に後述の設定部15eにより参照される内部メモリのワークエリアに保存する。以下では、決定部15cにより決定された周期のことを後述の補正部15dにより補正された周期との間で区別する観点から「周期の基本値」と記載する場合がある。
なお、上記の周期の決定は、必ずしも災害情報が取得される度に実行されずともかまわない。すなわち、第1報の災害情報が後続の災害情報よりも精度が劣る傾向があるとは言え、的外れなほどの精度の違いが生じるケースは少ないと考えられる。このため、第1報の災害情報が取得された場合に絞って周期の決定を実施することも一案とすることができる。
補正部15dは、クライアント端末30に災害情報のリクエストを実行させる周期を補正する処理部である。
一実施形態として、補正部15dは、決定部15cにより内部メモリのワークエリアに周期が保存された後、最終報の災害情報が取得してから所定の期間が経過するまで、サーバ装置10の処理負荷に基づいて上記の内部メモリのワークエリアに保存された周期を補正する処理を繰り返して実行する。例えば、補正部15dは、サーバ装置10の処理負荷として、ネットワークの使用率、CPUの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数を計測する。そして、補正部15dは、ネットワークの使用率、CPUの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数の5項目うち負荷が最高である項目を選択する。その上で、補正部15dは、負荷が最高である項目の数値に応じて上記の内部メモリのワークエリアに保存された周期を補正する。例えば、負荷が最高である項目の数値が高いほど、上記の内部メモリのワークエリアに保存された周期の値を大きい値に補正される一方で、負荷が最高である項目の数値が低いほど、上記の内部メモリのワークエリアに保存された周期の値を小さい値に補正される。
図4は、ネットワーク使用率と補正値の対応関係の一例を示す図である。図4には、一例として、ネットワーク使用率に関するルックアップテーブルが示されている。例えば、負荷が最高である項目がネットワーク使用率である場合、図4に示すルックアップテーブルを参照してネットワーク使用率に対応する補正値が決定される。このルックアップテーブルは、補正値の算出式「補正値(秒)=ネットワーク使用率の計測値(%)−50」にしたがって補正値が設定されている。
図4に示すルックアップテーブルを参照して補正を行う場合、ネットワーク使用率50%に対応する補正値は0%である。この場合、上記の内部メモリのワークエリアに保存された周期には0%が加算されるので、ネットワーク使用率が50%である場合、実質的には周期の数値は補正後も変わらない。また、ネットワーク使用率が50%から10%下がる度に、上記の内部メモリのワークエリアに保存された周期から減算される補正値も10秒ずつ増加する。すなわち、ネットワーク使用率が40%であれば上記の内部メモリのワークエリアに保存された周期から10秒減算される。また、ネットワーク使用率が30%であれば上記の内部メモリのワークエリアに保存された周期から20秒減算される。最終的に、ネットワーク使用率が0%であれば上記の内部メモリのワークエリアに保存された周期から50秒減算される。一方、ネットワーク使用率が50%から10%上がる度に、上記の内部メモリのワークエリアに保存された周期に加算される補正値も10秒ずつ増加する。すなわち、ネットワーク使用率が60%であれば上記の内部メモリのワークエリアに保存された周期に10秒加算される。また、ネットワーク使用率が70%であれば上記の内部メモリのワークエリアに保存された周期に20秒加算される。最終的に、ネットワーク使用率が100%であれば上記の内部メモリのワークエリアに保存された周期に50秒加算される。
図5は、CPU使用率と補正値の対応関係の一例を示す図である。図5には、一例として、CPU使用率に関するルックアップテーブルが示されている。例えば、負荷が最高である項目がCPU使用率である場合、図5に示すルックアップテーブルを参照してCPU使用率に対応する補正値が決定される。このルックアップテーブルは、補正値の算出式「補正値(秒)=CPU使用率の計測値(%)−30」にしたがって補正値が設定されている。
図5に示すルックアップテーブルを参照して補正を行う場合、CPU使用率30%に対応する補正値は0%である。この場合、上記の内部メモリのワークエリアに保存された周期には0%が加算されるので、CPU使用率が30%である場合、実質的には周期の数値は補正後も変わらない。また、CPU使用率が30%から10%下がる度に、上記の内部メモリのワークエリアに保存された周期から減算される補正値も10秒ずつ増加する。すなわち、CPU使用率が20%であれば上記の内部メモリのワークエリアに保存された周期から10秒減算される。また、CPU使用率が10%であれば上記の内部メモリのワークエリアに保存された周期から20秒減算される。最終的に、CPU使用率が0%であれば上記の内部メモリのワークエリアに保存された周期から30秒減算される。一方、CPU使用率が30%から10%上がる度に、上記の内部メモリのワークエリアに保存された周期に加算される補正値も10秒ずつ増加する。すなわち、CPU使用率が40%であれば上記の内部メモリのワークエリアに保存された周期に10秒加算される。また、CPU使用率が50%であれば上記の内部メモリのワークエリアに保存された周期に20秒加算される。最終的に、CPU使用率が100%であれば上記の内部メモリのワークエリアに保存された周期に70秒加算される。
図6は、メモリ使用率と補正値の対応関係の一例を示す図である。図6には、一例として、メモリ使用率に関するルックアップテーブルが示されている。例えば、負荷が最高である項目がメモリ使用率である場合、図6に示すルックアップテーブルを参照してメモリ使用率に対応する補正値が決定される。このルックアップテーブルは、補正値の算出式「補正値(秒)=メモリ使用率の計測値(%)−20」にしたがって補正値が設定されている。
図6に示すルックアップテーブルを参照して補正を行う場合、メモリ使用率20%に対応する補正値は0%である。この場合、上記の内部メモリのワークエリアに保存された周期には0%が加算されるので、メモリ使用率が20%である場合、実質的には周期の数値は補正後も変わらない。また、メモリ使用率が20%から10%下がる度に、上記の内部メモリのワークエリアに保存された周期から減算される補正値も10秒ずつ増加する。すなわち、メモリ使用率が10%であれば上記の内部メモリのワークエリアに保存された周期から10秒減算される。また、メモリ使用率が0%であれば上記の内部メモリのワークエリアに保存された周期から20秒減算される。一方、メモリ使用率が20%から10%上がる度に、上記の内部メモリのワークエリアに保存された周期に加算される補正値も10秒ずつ増加する。すなわち、メモリ使用率が30%であれば上記の内部メモリのワークエリアに保存された周期に10秒加算される。また、メモリ使用率が40%であれば上記の内部メモリのワークエリアに保存された周期に20秒加算される。最終的に、メモリ使用率が100%であれば上記の内部メモリのワークエリアに保存された周期に80秒加算される。
図7は、データベースコネクション使用率と補正値の対応関係の一例を示す図である。図7には、一例として、データベースコネクション使用率に関するルックアップテーブルが示されている。例えば、負荷が最高である項目がデータベースコネクション使用率である場合、図7に示すルックアップテーブルを参照してメモリ使用率に対応する補正値が決定される。このルックアップテーブルは、補正値の算出式「補正値(秒)=データベースコネクション使用率の計測値(%)−10」にしたがって補正値が設定されている。
図7に示すルックアップテーブルを参照して補正を行う場合、データベースコネクション使用率10%に対応する補正値は0%である。この場合、上記の内部メモリのワークエリアに保存された周期には0%が加算されるので、データベースコネクション使用率が10%である場合、実質的には周期の数値は補正後も変わらない。また、データベースコネクション使用率が10%から10%下がる度に、上記の内部メモリのワークエリアに保存された周期から減算される補正値も10秒ずつ増加する。すなわち、データベースコネクション使用率が0%であれば上記の内部メモリのワークエリアに保存された周期から10秒減算される。一方、データベースコネクション使用率が10%から10%上がる度に、上記の内部メモリのワークエリアに保存された周期に加算される補正値も10秒ずつ増加する。すなわち、データベースコネクション使用率が20%であれば上記の内部メモリのワークエリアに保存された周期に10秒加算される。また、データベースコネクション使用率が30%であれば上記の内部メモリのワークエリアに保存された周期に20秒加算される。最終的に、データベースコネクション使用率が100%であれば上記の内部メモリのワークエリアに保存された周期に90秒加算される。
図8は、ストレージアクセス使用率と補正値の対応関係の一例を示す図である。図8には、一例として、ストレージアクセス使用率に関するルックアップテーブルが示されている。例えば、負荷が最高である項目がストレージアクセス使用率である場合、図8に示すルックアップテーブルを参照してメモリ使用率に対応する補正値が決定される。このルックアップテーブルは、補正値の算出式「補正値(秒)=ストレージアクセス使用率の計測値(%)−10」にしたがって補正値が設定されている。
図8に示すルックアップテーブルを参照して補正を行う場合、ストレージアクセス使用率10%に対応する補正値は0%である。この場合、上記の内部メモリのワークエリアに保存された周期には0%が加算されるので、ストレージアクセス使用率が10%である場合、実質的には周期の数値は補正後も変わらない。また、ストレージアクセス使用率が10%から10%下がる度に、上記の内部メモリのワークエリアに保存された周期から減算される補正値も10秒ずつ増加する。すなわち、ストレージアクセス使用率が0%であれば上記の内部メモリのワークエリアに保存された周期から10秒減算される。一方、ストレージアクセス使用率が10%から10%上がる度に、上記の内部メモリのワークエリアに保存された周期に加算される補正値も10秒ずつ増加する。すなわち、ストレージアクセス使用率が20%であれば上記の内部メモリのワークエリアに保存された周期に10秒加算される。また、ストレージアクセス使用率が30%であれば上記の内部メモリのワークエリアに保存された周期に20秒加算される。最終的に、ストレージアクセス使用率が100%であれば上記の内部メモリのワークエリアに保存された周期に90秒加算される。
なお、ここでは、図4〜図8に示すルックアップテーブルを補正に用いる場合を例示したが、必ずしもルックアップテーブルを用いずともかまわない。例えば、補正部15dは、ルックアップテーブルを用いる代わりに、上記の補正値の算出式の関数に負荷が最高である項目の数値を引数として補正値を算出することにより、リクエストの周期の補正を実現することもできる。また、リクエストの周期の補正に必ずしも上記の5項目の全てを用いずともかまわず、上記の5項目を一部の項目に絞り込んでリクエストの周期の補正に用いることができるのは言うまでもない。
受付部15eは、クライアント端末30から災害情報のリクエストを受け付ける処理部である。
一実施形態として、受付部15eは、クライアント端末30上で動作するブラウザから災害情報のWebページに関するHTTP(HyperText Transfer Protocol)リクエストを受け付けたり、また、クライアント端末30上で動作する防災Appから災害情報のリクエストに関するWebアクセスを受け付けたりする。
通知部15fは、災害情報をクライアント端末30に通知する処理部である。
一実施形態として、通知部15fは、クライアント端末30から受け付けたリクエストが防災AppからのWebアクセスである場合、前回のWebアクセスを受け付けたリクエストにレスポンスを行った災害情報のバージョンと、記憶部13に記憶された最新の災害情報のバージョンとの間に違いがあるか否かを判定する。このとき、通知部15fは、バージョンに違いがない場合、災害情報の通知をスキップする。一方、通知部15fは、クライアント端末30から受け付けたリクエストがHTTPリクエストである場合、あるいは防災AppからのWebアクセスであっても災害情報のバージョンに違いがない場合、記憶部13に記憶された災害情報のうち最新の災害情報をクライアント端末30に通知する。
設定部15gは、クライアント端末30に災害情報のリクエストの周期を設定する処理部である。
一実施形態として、設定部15gは、クライアント端末30から災害情報のリクエストを受け付けた場合、内部メモリのワークエリアを参照する。そして、設定部15gは、災害情報のリクエストを行うクライアント端末30に対し、内部メモリのワークエリアに保存された周期を設定する。例えば、クライアント端末30上で動作するブラウザにリクエストの周期を設定する場合、設定部15gは、ブラウザのCookieに設定されたWebページのリロードの周期に内部メモリのワークエリアに保存された周期を上書きする。また、クライアント端末30上で動作する防災Appにリクエストの周期を設定する場合、設定部15gは、防災Appのコンフィグファイル等に内部メモリのワークエリアに保存された周期を上書きする。
[処理の流れ]
次に、本実施例に係るサーバ装置10の処理の流れについて説明する。ここでは、サーバ装置10により実行される(1)周期決定処理を説明した後に(2)通知処理を説明することとする。
(1)周期決定処理
図9は、実施例1に係る周期決定処理の手順を示すフローチャートである。この処理は、一例として、取得部15aにより災害情報が取得された場合に実行される。図9に示すように、取得部15aにより災害情報が取得されると(ステップS101)、算出部15bは、ステップS101で取得された災害情報に基づいて災害の規模を算出する(ステップS102)。
続いて、決定部15cは、災害の規模とクライアント端末30に災害情報のリクエストを実行させる周期とが対応付けられた周期データ13bを参照して、ステップS102で算出された災害の規模に対応する周期の基本値を、クライアント端末30に災害情報のリクエストを実行させる周期として決定する(ステップS103)。
その後、最終報の災害情報が取得してから所定の期間が経過するまで(ステップS104No)、下記のステップS105〜ステップS107の処理が繰り返し実行される。すなわち、補正部15dは、通信トラフィックが所定の閾値、例えば100Mbps以下であるか否かを判定する(ステップS105)。ここで通信トラフィックと比較する閾値には、一例として、クライアント端末30からの災害情報のリクエストに対し、待機時間なしでレスポンスを行うことができる通信トラフィックの上限値を設定できる。
このとき、通信トラフィックが閾値以下である場合(ステップS105Yes)、現状の周期の設定で上記の通信サービスに支障が生じる可能性が低いと判断できる。この場合、ステップS106及びステップS107をスキップし、ステップS104の処理へ移行する。
一方、通信トラフィックが閾値以下でない場合(ステップS105No)、補正部15dは、補正部15dは、サーバ装置10の処理負荷として、ネットワークの使用率、CPUの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数を計測する(ステップS106)。
その上で、補正部15dは、ネットワークの使用率、CPUの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数の5項目うち負荷が最高である項目の数値に応じて上記の内部メモリのワークエリアに保存された周期を補正し(ステップS107)、ステップS104の処理へ移行する。
その後、最終報の災害情報が取得してから所定の期間が経過すると(ステップS104Yes)、図9に示す処理を終了する。
(2)通知処理
図10は、実施例1に係る通知処理の手順を示すフローチャートである。この処理は、一例として、上記の通知サービスが運営する限り、繰り返し実行される。図10に示すように、クライアント端末30から災害情報のリクエストを受け付けた場合(ステップS301Yes)、通知部15fは、ステップS301で受け付けたリクエストが防災AppからのWebアクセスであるか否かを判定する(ステップS302)。
このとき、ステップS301で受け付けたリクエストが防災AppからのWebアクセスである場合(ステップS302Yes)、通知部15fは、前回のWebアクセスを受け付けたリクエストにレスポンスを行った災害情報のバージョンと、記憶部13に記憶された最新の災害情報のバージョンとの間に違いがあるか否かを判定する(ステップS303)。なお、バージョンに違いがない場合(ステップS303No)、ステップS304の処理をスキップする。
また、ステップS301で受け付けたリクエストがHTTPリクエストである場合(ステップS302No)、あるいは防災AppからのWebアクセスであっても災害情報のバージョンに違いがない場合(ステップS303Yes)、通知部15fは、記憶部13に記憶された災害情報のうち最新の災害情報をクライアント端末30に通知する(ステップS304)。
その後、設定部15gは、ステップS301で災害情報のリクエストを行うクライアント端末30に対し、内部メモリのワークエリアに保存された周期を設定し(ステップS305)、ステップS301の処理へ移行する。
[効果の一側面]
上述してきたように、本実施例に係るサーバ装置10は、災害の規模ごとにクライアント端末30に災害情報をリクエストさせる周期が定められた周期データを参照して、発生した災害の規模に対応する周期をリクエストを行うクライアント端末30に設定する制御を実現する。したがって、本実施例に係るサーバ装置10によれば、災害発生時の通信トラフィックの増大を抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[周期の設定の応用例]
上記の実施例1では、周期データ13bを用いて周期の基本値を決定する場合を例示したが、他の方法により、周期の基本値を決定することもできる。例えば、サーバ装置10は、サーバ装置10の処理負荷に基づいて周期の基本値を決定することもできる。この場合、補正部15dが使用するルックアップテーブルにおける補正値の代わりに基本値を設定しておくこととすればよい。
[災害の応用例]
上記の実施例1では、災害情報の一例として、地震に関する災害情報を例示したが、上記の通知サービスの適用範囲は地震に限定されない。すなわち、地震以外にも、津波、台風、洪水などの天災の他、ミサイルなどを含む災害全般に上記の通知サービスを適用できる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部15a、算出部15b、決定部15c、補正部15d、受付部15e、通知部15fまたは設定部15gをサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部15a、算出部15b、決定部15c、補正部15d、受付部15e、通知部15fまたは設定部15gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもよい。また、記憶部に記憶される災害情報13aまたは周期データ13bの全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもかまわない。
[制御プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例と同様の機能を有する制御プログラムを実行するコンピュータの一例について説明する。
図11は、実施例1及び実施例2に係る制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図11に示すように、上記の実施例1で示した取得部15a、算出部15b、決定部15c、補正部15d、受付部15e、通知部15f及び設定部15gと同様の機能を発揮する制御プログラム170aが記憶される。この制御プログラム170aは、図2に示した取得部15a、算出部15b、決定部15c、補正部15d、受付部15e、通知部15f及び設定部15gの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から制御プログラム170aを読み出した上でRAM180へ展開する。この結果、制御プログラム170aは、図11に示すように、制御プロセス180aとして機能する。この制御プロセス180aは、RAM180が有する記憶領域のうち制御プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、制御プロセス180aが実行する処理の一例として、図9〜図10に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の制御プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に制御プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から制御プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに制御プログラム170aを記憶させておき、コンピュータ100がこれらから制御プログラム170aを取得して実行するようにしてもよい。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)災害情報を取得し、
災害の規模と端末装置に災害情報のリクエストを実行させる周期とが対応付けられた周期データを参照して、取得した災害情報により定まる災害の規模に対応する周期を前記災害情報のリクエストを行う端末装置に設定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
(付記2)前記災害情報を前記端末装置に提供する提供装置の処理負荷に基づいて、前記算出した災害の規模に対応する周期を補正する処理をさらにコンピュータに実行させ、
前記設定する処理は、補正後の周期を前記災害情報のリクエストを行う端末装置に設定することを特徴とする付記1に記載の制御プログラム。
(付記3)前記処理負荷は、ネットワークの使用率、プロセッサの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数のうち少なくともいずれか1つであることを特徴とする付記2に記載の制御プログラム。
(付記4)前記取得した災害情報に含まれる被災レベルのうち最高の被災レベルに基づいて前記災害の規模を算出する処理を前記コンピュータにさらに実行させることを特徴とする付記1、2または3に記載の制御プログラム。
(付記5)前記取得した災害情報に含まれる被災地の人口密度に基づいて前記災害の規模を算出する処理を前記コンピュータにさらに実行させることを特徴とする付記1、2または3に記載の制御プログラム。
(付記6)災害情報を取得し、
災害の規模と端末装置に災害情報のリクエストを実行させる周期とが対応付けられた周期データを参照して、取得した災害情報により定まる災害の規模に対応する周期を前記災害情報のリクエストを行う端末装置に設定する、
処理をコンピュータが実行することを特徴とする制御方法。
(付記7)前記災害情報を前記端末装置に提供する提供装置の処理負荷に基づいて、前記算出した災害の規模に対応する周期を補正する処理をさらにコンピュータが実行し、
前記設定する処理は、補正後の周期を前記災害情報のリクエストを行う端末装置に設定することを特徴とする付記6に記載の制御方法。
(付記8)前記処理負荷は、ネットワークの使用率、プロセッサの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数のうち少なくともいずれか1つであることを特徴とする付記7に記載の制御方法。
(付記9)前記取得した災害情報に含まれる被災レベルのうち最高の被災レベルに基づいて前記災害の規模を算出する処理を前記コンピュータがさらに実行することを特徴とする付記6、7または8に記載の制御方法。
(付記10)前記取得した災害情報に含まれる被災地の人口密度に基づいて前記災害の規模を算出する処理を前記コンピュータがさらに実行することを特徴とする付記6、7または8に記載の制御方法。
(付記11)災害情報を取得する取得部と、
災害の規模と端末装置に災害情報のリクエストを実行させる周期とが対応付けられた周期データを参照して、取得した災害情報により定まる災害の規模に対応する周期を前記災害情報のリクエストを行う端末装置に設定する設定部と、
を有することを特徴とする制御装置。
(付記12)前記災害情報を前記端末装置に提供する提供装置の処理負荷に基づいて、前記算出した災害の規模に対応する周期を補正する補正部をさらに有し、
前記設定部は、補正後の周期を前記災害情報のリクエストを行う端末装置に設定することを特徴とする付記11に記載の制御装置。
(付記13)前記処理負荷は、ネットワークの使用率、プロセッサの使用率、メモリの使用率、データベースコネクションの数およびストレージへのアクセス数のうち少なくともいずれか1つであることを特徴とする付記12に記載の制御装置。
(付記14)前記取得した災害情報に含まれる被災レベルのうち最高の被災レベルに基づいて前記災害の規模を算出する算出部をさらに有することを特徴とする付記11、12または13に記載の制御装置。
(付記15)前記取得した災害情報に含まれる被災地の人口密度に基づいて前記災害の規模を算出する算出部をさらに有することを特徴とする付記11、12または13に記載の制御装置。