(58)【調査した分野】(Int.Cl.,DB名)
通信ネットワークを介して相互通信可能に接続されている、分散処理システムを構成する複数の演算処理資源のそれぞれに対して複数のタスクを割り当てるタスク制御システムであって、
前記複数のタスクのそれぞれの実行に要する演算処理負荷の多少を表わす指標値を検知する負荷検知要素と、
前記負荷検知要素により検知された指標値が所定条件を満たしているか否かを判定する判定要素と、
前記複数のタスクの実行に関連する状態または発生事象を検知する状態検知要素と、
前記判定要素により前記指標値が前記所定条件を満たしていると判定されたことを要件として、前記状態検知要素により検知された状態の相違に応じて、前記複数の演算処理資源のそれぞれに対して前記複数のタスクのそれぞれを異なる優先順位にしたがって割り当てる割当要素と、を備えていることを特徴とするタスク制御システム。
【発明を実施するための形態】
【0017】
(構成)
図1に示されているタスク制御システム10は、第1ネットワークを介して相互通信可能に接続されている複数のサーバS1〜Sn(たとえばn=8)のそれぞれに対して複数のタスクを割り当てるように構成されている。複数のサーバS1〜Snのそれぞれは、本発明の「演算処理資源」を構成する。複数のサーバS1〜Snは、複数のクライアントCi(i=1,2,‥,m)との第2ネットワークを介した通信を伴う複数のタスクを分散処理するシステムを構成する。複数のサーバS1〜Snのうち少なくとも一部が各クライアントCiとの通信機能を有している。第1および第2ネットワークは共通の通信ネットワークであってもよい。複数のクライアントCiのうち少なくとも一部が演算処理資源を構成していてもよい。
【0018】
タスク制御システム10は、コンピュータ(CPU、ROMおよびRAMなどのメモリ、I/O回路などにより構成されている。)により構成されている。タスク制御システム10は、後述する演算処理を実行するように構成されている負荷検知要素11、判定要素12、状態検知要素13および割当要素14を備えている。
【0019】
本発明の構成要素が担当演算処理を実行するように「構成されている」とは、当該構成要素を構成するCPU等の演算処理装置が、ROM、RAM等のメモリまたは記録媒体から必要な情報に加えてソフトウェアを読み出し、当該情報に対して当該ソフトウェアにしたがって演算処理を実行するように「プログラムされている」または「デザイン(設計)されている」ことを意味する。各構成要素が共通のプロセッサ(演算処理装置)により構成されてもよく、各構成要素が相互通信可能な複数のプロセッサにより構成されてもよい。
【0020】
クライアントCiは、タブレット型端末、スマートフォンまたはウェアラブル端末(たとえば腕時計型端末)など、ユーザによる携帯が可能なようにサイズ、形状および重量が設計されている情報端末により構成されている。クライアントCiは、車両に搭載可能なようにサイズ等が設計されている情報端末であってもよい。各クライアントCiは「第1クライアント」および「第2クライアント」のそれぞれとして機能する。
【0021】
一の装置が他の装置との通信に基づいて情報を「認識する」とは、一の装置が他の装置から当該情報を受信すること、一の装置が他の装置から受信した信号を対象として所定の演算処理(計算処理または探索処理など)を実行することにより当該情報を導出すること、一の装置が他の装置による演算処理結果としての当該情報を当該他の装置から受信すること、から一の装置が当該受信信号にしたがって内部記憶装置または外部記憶装置から当該情報を読み取ること等、通信を伴って当該情報を取得するためのあらゆる演算処理が実行されることを意味する。
【0022】
(機能)
本発明の一実施形態において、複数のサーバS1〜Snのうち、原則的に第1サーバS1が「第1タスク」を実行するように構成され、第2サーバS2が「第2タスク」を実行するように構成されている。その他のサーバS3〜Snは、必要に応じて第1タスクおよび第2タスクのうち一方または両方を実行するように構成されている。例外的に第1サーバS1に対して第2タスクが割り当てられてもよく、これとは逆に第2サーバS2に対して第1タスクが割り当てられてもよい。
【0023】
「第1タスク」は、第1クライアントCi1(i1=1,2,‥,m)からリクエストを受信し、当該リクエストに応じた第1情報を導出し、第1情報を当該第1クライアントCi1に対して送信するタスクである。「リクエスト」には、第1クライアントCi1のユーザの出発地(または現在地)および目的地のそれぞれを表わす経緯度または経緯度および高度を表わす情報が含まれている。「第1情報」には、当該出発地および当該目的地を結ぶ複数のリンクにより構成されるサーバルートの少なくとも一部を表わす情報が含まれている。第1情報には、リクエストに含まれている出発地から目的地までの移動コスト(所要時間のほか、所要燃費または所要電費なども含まれる。)に関する情報が含まれていてもよい。第1情報の導出に際して、第1サーバS1を構成する地図データベースに格納されている地図データのほか、道路交通情報センターサーバ(図示略)から供給される第1種の道路交通情報および第2サーバS2から供給される第2種の道路交通情報が用いられる。各種の道路交通情報には、道路を構成するリンク(交差点などのノードを両端点として有する。)ごと、さらには当該リンクにおける進行方向ごと(または移動先となるリンクに対応する車線ごと)の移動コストに関する情報が含まれている。
【0024】
「第2タスク」は、第2クライアントCi2(i2=1,2,‥,m)から基礎情報を受信し、第1情報の導出に際して用いられる第2情報を基礎情報に基づいて導出し、複数のサーバS1〜Snのうち第1タスクが割り当てられているサーバまたは各クライアントCiに対して送信するタスクである。「基礎情報」には、第2クライアントCi2の位置を表わす経緯度または経緯度および高度を表わす位置情報に加えて、当該位置における存在時刻を表わす時刻情報が含まれている。「第2情報」には、各リンクにおける移動コストを含む第2種の道路交通情報が含まれている。
【0025】
負荷検知要素11が、「第1指標値」および「第2指標値」を定常的または周期的に検知する(
図2/STEP02)。「第1指標値」は、複数のサーバS1〜Snのうち少なくとも一部による第1タスクの実行に必要な演算処理負荷の多少を表わす。「第2指標値」は、複数のサーバS1〜Snのうち少なくとも一部による第2タスクの実行に必要な演算処理負荷の多少を表わす。各指標値として、たとえば、第1サーバS1など第1タスクが割り当てられているサーバを構成するCPU(演算処理装置)の使用率が検知される。なお、CPU使用率の一定期間(たとえば1分間、5分間、など)にわたる時間積分値または当該サーバの間またはその他の機器(クライアントCiなど)との通信負荷量(処理ノード間の通信負荷量)などが各指標値として検知または算出されてもよい。CPU使用率またはその時間積分値の増加関数の値が各指標値として検知されてもよい。
【0026】
判定要素12が、第1指標値が第1基準値以下であるか否かを判定する(
図2/STEP04)。たとえば、複数のサーバS1〜Snのうち第1タスクが割り当てられて実行しているサーバの演算処理能力(CPU使用率などの許容値)の合計が第1基準値として用いられる。
【0027】
第1指標値が第1基準値以下であると判定された場合(
図2/STEP04‥YES)、割当要素14によって第1タスクが割り当てられるサーバの数が維持または減少される(
図2/STEP06)。その一方、第1指標値が第1基準値を超えていると判定された場合(
図2/STEP04‥NO)、割当要素14によって第1タスクが割り当てられるサーバの数が増加される(
図2/STEP08)。当該増加数は、第1基準値に対する第1指標値の超過量の多少に応じて制御され、第1タスクが割り当てられるサーバの数が1だけ増加される場合もあれば、複数増加される場合もある。第1基準値は、第1指標値にとって「第1閾値」および「第2閾値」の両方に相当する。第1タスクの割り当て対象となるサーバの増加要件に関する第1閾値と、第1タスクの割り当て対象となるサーバの減少要件に関する第2閾値とが同一ではなく異なっていてもよい。
【0028】
第1タスクが割り当てられるサーバの数が維持または減少された後(
図2/STEP06)、判定要素12が、第2指標値が第2基準値以下であるか否かを判定する(
図2/STEP10)。たとえば、複数のサーバS1〜Snのうち第2タスクが割り当てられて実行しているサーバの演算処理能力(CPU使用率などの許容値)の合計が第2基準値として用いられる。
【0029】
第2指標値が第2基準値以下であると判定された場合(
図2/STEP10‥YES)、割当要素14によって第2タスクが割り当てられるサーバの数が維持または減少される(
図2/STEP14)。一方、第2指標値が第2基準値を超えていると判定された場合(
図2/STEP10‥NO)、割当要素14によって第2タスクが割り当てられるサーバの数が増加される(
図2/STEP16)。当該増加数は、第2基準値に対する第2指標値の超過量の多少に応じて制御され、第2タスクが割り当てられるサーバの数が1だけ増加される場合もあれば、複数増加される場合もある。その後、第1および第2指標値の検知(
図2/STEP02)以降の処理が繰り返される。第2基準値は、第2指標値にとって「第1閾値」および「第2閾値」の両方に相当する。第2タスクの割り当て対象となるサーバの増加要件に関する第1閾値と、第2タスクの割り当て対象となるサーバの減少要件に関する第2閾値とが同一ではなく異なっていてもよい。
【0030】
第1タスクが割り当てられるサーバの数が増加された後(
図2/STEP08)、判定要素12が、第1および第2指標値の合計指標値が基準値以下であるか否かを判定する(
図2/STEP12)。たとえば、複数のサーバS1〜Snの全部の演算処理能力(CPU使用率などの許容値)の合計が基準値として用いられる。たとえば
図3Aに概念的に示されているように、第1タスクの所要演算処理負荷(〜第1指標値)および第2タスクの所要演算処理負荷(〜第2指標値)が許容値(〜基準値)を超えている場合、当該判定結果は否定的になる。合計指標値が基準値を超えていることが「所定条件」に相当する。合計指標値が基準値を超えている累計時間または連続時間が所定時間を超えたことが所定条件として採用されてもよい。
【0031】
合計指標値が基準値以下であると判定された場合(
図2/STEP12‥YES)、第1および第2指標値の検知(
図2/STEP02)以降の処理が繰り返される。その一方、合計指標値が基準値を超えていると判定された場合(
図2/STEP12‥NO)、状態検知要素13により検知された状態が判別される(
図2/STEP18)。たとえば、気象情報センターまたは災害情報センターなどのサーバ(図示略)からタスク制御システム10が取得した各種情報に基づいて検知状態が判別される。
【0032】
検知状態が「第1状態」である場合(
図2/STEP18‥A)、割当要素14によって第1タスクが複数のサーバS1〜Snに対して優先的に割り当てられる(
図2/STEP20)。これにより、たとえば
図3Bに示されているように、第1タスクの実行に必要な演算処理負荷が複数のサーバS1〜Snに対して最大限に割り当てられるように、第1および第2タスクが複数のサーバS1〜Snに対して割り当てられる。第1タスクの実行に必要な演算処理負荷に対する演算処理資源の割り当て比率が、第2タスクの実行に必要な演算処理負荷に対する演算処理資源の割り当て比率よりも高くなるように当該演算処理資源の割り当て態様が制御されてもよい。
【0033】
「第1状態」には、リクエストの送信元である第1クライアントCi1が存在する地域において交通混雑が生じる蓋然性が高い指定時間帯(たとえば大型連休、行楽シーズン、平日の通学・通勤時間帯)に現在時刻が含まれていること、当該地域において交通混雑が生じる蓋然性が高い気象条件(たとえば降雨、降雪または低気温)であること、当該地域において交通混雑が生じる蓋然性が高いイベント開催(たとえば花火大会、商業施設における娯楽イベント)などが含まれる。
【0034】
検知状態が「第2状態」である場合(
図2/STEP18‥B)、割当要素14によって第2タスクが複数のサーバS1〜Snに対して優先的に割り当てられる(
図2/STEP22)。これにより、たとえば
図3Cに示されているように、第2タスクの実行に必要な演算処理負荷が複数のサーバS1〜Snに対して最大限に割り当てられるように、第1および第2タスクが複数のサーバS1〜Snに対して割り当てられる。第2タスクの実行に必要な演算処理負荷に対する演算処理資源の割り当て比率が、第1タスクの実行に必要な演算処理負荷に対する演算処理資源の割り当て比率よりも高くなるように当該演算処理資源の割り当て態様が制御されてもよい。
【0035】
「第2状態」には、災害(たとえば地震、津波、土砂崩れ、土石流などの自然災害のほか人的災害)など、第1状態と比較して各クライアントCiのユーザ(エンティティ)に対する影響度が高い状態が含まれる。第2状態は各クライアントCiのユーザが可能な限りそれを回避することが適当であるような状態であるともいえる。
【0036】
各種の状態にあらかじめ影響度を表わすスコアが割り当てられているテーブルが記憶装置に格納され、当該テーブルにしたがって検知状態に応じたスコアが当該影響度として評価されてもよい。スコアに対して、当該状態が生じている地点または地域と、各クライアントCiとの距離に応じた重みが掛けられたうえで累積されることによって影響度が評価されてもよい。当該評価結果が一定値以上であるか否かに応じて状態が判別されてもよい。
【0037】
なお、検知状態が第1および第2状態のいずれにも該当しない場合、たとえば
図3Dに示されているように、第1および第2タスクのそれぞれの実行に必要な演算処理負荷が複数のサーバS1〜Snに対して最大限に満たない範囲で割り当てられるように、第1および第2タスクが複数のサーバS1〜Snに対して割り当てられてもよい。
【0038】
(作用効果)
前記機能を発揮するタスク制御システム10によれば、第1および第2タスクの実行に必要な演算処理負荷が許容値を超えた場合(
図2/STEP12‥NOおよび
図3A参照)、状態(正確には、各タスクが割り当てられているサーバS1〜Snと通信するクライアントCiが存在する地域において発生している状態)の別に応じて、複数のサーバS1〜Sn(演算処理資源)に対する第1および第2タスクの割り当て態様が差別化される。よって、複数のタスクのそれぞれの実行に必要な演算処理負荷の増大に関連する地域における状態または事象に鑑みて適当に各タスクを複数の演算処理資源(サーバ)に対して割り当てることができる。
【0039】
具体的には、第1状態が検知された場合、第1タスクが複数のサーバS1〜Snに対して優先的に割り当てられる(
図2/STEP18‥A→STEP20、
図3B参照)。第1状態が検知された場合、第2情報(第2種の道路交通情報)の精度の向上よりも、第1情報の導出および第1クライアントCi1に対する送信の迅速化を図るほうが適当である蓋然性が高い。このことに鑑みて、第2情報の精度が若干低下したとしても、第1情報の迅速な取得という第1クライアントCi1のユーザのニーズに適当な態様で各タスクがサーバS1〜Snに対して割り当てられうる。
【0040】
図4には、第1タスクの実行に必要な演算処理負荷の時系列的変化態様が不規則な波状の実線で示され、「第1状態」が検知された場合における第1タスクが割り当てられているサーバの数の時系列的変化態様が階段状の一点鎖線で示されている。
図4には、第2タスクの実行に必要な演算処理負荷の時系列的変化態様が不規則な波状の破線で示され、「第1状態」が検知された場合における第2タスクが割り当てられているサーバの数の時系列的変化態様が階段状の二点鎖線で示されている。
【0041】
図4に示されているように、第1タスクが割り当てられているサーバの数が「4」であり、かつ、第2タスクが割り当てられているサーバの数が「6」である状態で、第1タスクおよび第2タスクのそれぞれの実行に必要な演算処理負荷が共に徐々に増加している。このような状態は、たとえば車両の交通量が全体的に多く、第1タスクおよび第2タスクの実行要求が増加している場合に生じる。
【0042】
「第1状態」が検知された場合、第1タスクが第2タスクよりも優先的に複数のサーバに対して割り当てられる。このため、時刻t
11において、第1タスクが割り当てられているサーバの数が「4」から「6」に増加され、その後の時刻t
12において第2タスクが割り当てられているサーバの数が「6」から「8」に増加されている。さらに、時刻t
13において、第1タスクが割り当てられているサーバの数が「6」から「8」に増加され、その後の時刻t
14において第2タスクが割り当てられているサーバの数が「8」から「10」に増加されている。その後、時刻t
15において、第1タスクが割り当てられているサーバの数が「8」から「10」に増加され、その後の時刻t
16において第2タスクが割り当てられているサーバの数が「10」から「12」に増加されている。
【0043】
また、第2状態が検知された場合、第2タスクが複数のサーバS1〜Snに対して優先的に割り当てられる(
図2/STEP18‥B→STEP22、
図3C参照)。第2状態が検知された場合、第1情報の導出および当該第1クライアントCi1に対する送信の迅速化よりも、第2情報(第2種の道路交通情報)の精度の向上を図るほうが適当である蓋然性が高い。このことに鑑みて、第1情報の取得が若干遅滞したとしても、第2情報の精度向上という各クライアントCiのユーザのニーズに適当な態様で各タスクがサーバS1〜Snに対して割り当てられうる。
【0044】
図5には、第2タスクの実行に必要な演算処理負荷の時系列的変化態様が不規則な波状の実線で示され、「第2状態」が検知された場合における第2タスクが割り当てられているサーバの数の時系列的変化態様が階段状の一点鎖線で示されている。
図5には、第1タスクの実行に必要な演算処理負荷の時系列的変化態様が不規則な波状の破線で示され、「第2状態」が検知された場合における第1タスクが割り当てられているサーバの数の時系列的変化態様が階段状の二点鎖線で示されている。
【0045】
図5に示されているように、第1タスクが割り当てられているサーバの数が「6」であり、かつ、第2タスクが割り当てられているサーバの数が「4」である状態で、第1タスクおよび第2タスクのそれぞれの実行に必要な演算処理負荷が共に徐々に増加している。
【0046】
「第2状態」が検知された場合、第2タスクが第1タスクよりも優先的に複数のサーバに対して割り当てられる。このため、時刻t
21において、第2タスクが割り当てられているサーバの数が「4」から「6」に増加され、その後の時刻t
22において第1タスクが割り当てられているサーバの数が「6」から「8」に増加されている。さらに、時刻t
23において、第2タスクが割り当てられているサーバの数が「6」から「8」に増加され、その後の時刻t
24において第1タスクが割り当てられているサーバの数が「8」から「10」に増加されている。その後、時刻t
25において、第2タスクが割り当てられているサーバの数が「8」から「10」に増加され、その後の時刻t
26において第1タスクが割り当てられているサーバの数が「10」から「12」に増加されている。
【0047】
(本発明の他の実施形態)
前記実施形態ではタスクの種類は2であったが、他の実施形態としてタスクの種類が3以上であってもよい。これに応じて、状態検知要素13によって検知状態が3以上に区別されて認識されてもよい。
【0048】
前記実施形態では第1状態および第2状態が、各クライアントCiのユーザ(エンティティ)に対する影響度の高低によって区分されているが、他の実施形態として複数の状態が、各クライアントCiのユーザ(エンティティ)の嗜好性に対する合致度など、別の観点から区分されてもよい。
【0049】
演算処理資源の割り当て単位がサーバではなく、各サーバを構成する複数のプロセッサ(CPU)であってもよい。この場合、サーバを構成する一のプロセッサに対して一のタスクが割り当てられ、同一サーバを構成する他のプロセッサに対して他のタスクが割り当てられる。
【0050】
「第1状態」が検知された場合、第2タスクが第1タスクよりも優先的に複数のサーバに対して割り当てられてもよい。「第2状態」が検知された場合、第1タスクが第2タスクよりも優先的に複数のサーバに対して割り当てられてもよい。
図6には、第1および第2タスクのそれぞれが割り当てられているサーバの数の変化態様が
図5と同様の形態で示されている。
【0051】
図6の例では、時刻t
320において、第2タスクが割り当てられているサーバの数が「4」から「6」に増加された後で「第2状態」が検知された場合、第1タスクが第2タスクよりも優先的に複数のサーバに対して割り当てられる。このため、時刻t
310において、第1タスクが割り当てられているサーバの数が「6」から「8」に増加され、時刻t
321において第2タスクが割り当てられているサーバの数が「6」から「8」に増加されている。さらに、時刻t
311において、第1タスクが割り当てられているサーバの数が「8」から「10」に増加され、時刻t
322において第2タスクが割り当てられているサーバの数が「8」から「10」に増加されている。そして、時刻t
312において、第1タスクが割り当てられているサーバの数が「10」から「12」に増加され、時刻t
323において第2タスクが割り当てられているサーバの数が「10」から「12」に増加され、さらにその後の時刻t
324において第2タスクが割り当てられているサーバの数が「12」から「14」に増加されている。
【0052】
その後、第1および第2タスクのそれぞれの実行に必要な演算処理負荷(不規則な波状の実線および破線参照)が低下する。これに伴って時刻t
313およびt
314のそれぞれにおいて、第1タスクが割り当てられているサーバの数が「12」から「10」、「10」から「8」に順次減少されている。この段階で第2状態が検知されなくなっていてもよい。さらに、時刻t
325およびt
326のそれぞれにおいて第2タスクが割り当てられているサーバの数が「14」から「12」、「12」から「10」に順次減少されている。時刻t
315において、第1タスクが割り当てられているサーバの数が「8」から「6」に減少され、時刻t
327において第2タスクが割り当てられているサーバの数が「10」から「8」に減少されている。そして、時刻t
328およびt
329のそれぞれにおいて、第2タスクが割り当てられているサーバの数が「8」から「6」、「6」から「4」に順次減少されている。
【0053】
当該構成のタスク制御システム10によれば、第1タスクの優先実行により、複数のユーザのそれぞれに対してその要求に応じた道路交通情報等の提供の迅速化が図られる。このため、たとえば第2状態が災害発生状態である場合に有意義である。