(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096027
(43)【公開日】2024-07-11
(54)【発明の名称】タスクスケジューリング方法、電子機器及び記憶媒体
(51)【国際特許分類】
G06F 9/50 20060101AFI20240704BHJP
【FI】
G06F9/50 120B
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023216160
(22)【出願日】2023-12-21
(31)【優先権主張番号】202211710904.4
(32)【優先日】2022-12-29
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
(71)【出願人】
【識別番号】521254764
【氏名又は名称】北京図森智途科技有限公司
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】▲ユン▼軒
(72)【発明者】
【氏名】湯明旭
(72)【発明者】
【氏名】白集文
(72)【発明者】
【氏名】李芸▲サン▼
(57)【要約】 (修正有)
【課題】タスクスケジューリングの効率を向上させるための、タスクスケジューリング方法、電子機器及び記憶媒体を提供する。
【解決手段】方法は、ノード内のタスクのいずれかについて、前記タスクの優先度及びタスク状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定するステップと、前記マッチング関係に従って前記ノード内のタスクを実行するステップと、を含み、優先度及びタスク状態に従ってタスクとアクチュエータとをマッチングし、タスクの順序付けられた実行を保証し、タスクの実行効率を向上させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
タスクスケジューリング方法であって、
ノード内のタスクのいずれかについて、前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定するステップと、
前記マッチング関係に従って前記ノード内のタスクを実行するステップと、を含む、
ことを特徴とするタスクスケジューリング方法。
【請求項2】
前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定する前記ステップは、
前記ノード内の各タスクの優先度に基づいて、前記ノード内のタスクを順にソートし、タスクリストを得るステップと、
前記優先度に従って前記タスクリスト内のタスクをトラバースするステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記優先度に従って前記タスクリスト内のタスクをトラバースする前記ステップは、
優先度の高い順に、前記タスクリストをトラバースし、調整対象タスクを決定するステップを含み、
前記タスクの優先度及びタスク状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定する前記ステップは、
前記調整対象タスクが予め設定されたソート位置にあるか否かを決定するステップを含む、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記予め設定されたソート位置は、前記ノードのアクチュエータの数に対応し、前記調整対象タスクが予め設定されたソート位置にあるか否かを決定する前記ステップは、
優先度が前記調整対象タスクよりも高くタスク数が前記ノードのアクチュエータの数以上であることに応答して、前記調整対象タスクが予め設定されたソート位置にないことを確認するステップ、又は
優先度が前記調整対象タスクよりも高くタスク数が前記ノードのアクチュエータの数未満であることに応答して、前記調整対象タスクが予め設定されたソート位置にあることを確認するステップと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定する前記ステップは、
前記調整対象タスクが予め設定されたソート位置になく、且つ前記調整対象タスクのタスク状態が動作中であることに応答して、前記調整対象タスクに対応する第1アクチュエータを決定するステップと、
前記調整対象タスクを停止するステップと、
前記第1アクチュエータ状態をアイドルに設定するステップと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項6】
前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定する前記ステップは、
前記調整対象タスクが予め設定されたソート位置にあり、且つ前記調整対象タスクのタスク状態が動作中であることに応答して、前記調整対象タスクに対応する第2アクチュエータを確認するステップと、
前記第2アクチュエータが正常状態であることに応答して、前記調整対象タスクと前記第2アクチュエータとの対応関係を維持するステップと、
前記第2アクチュエータの状態を動作中に設定するステップと、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項7】
前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定する前記ステップは、
前記第2アクチュエータが異常状態であることに応答して、前記調整対象タスクの状態を実行待ちに設定するステップと、
前記第2アクチュエータの状態を異常に設定するステップと、を含む、
ことを特徴とする請求項6に記載の方法。
【請求項8】
前記方法は、さらに、
前記調整対象タスクの動作パラメータを取得するステップと、
前記動作パラメータの更新があることに応答して、更新後の動作パラメータに基づいて、前記調整対象タスクを調整するように前記第2アクチュエータを制御するステップと、を含む、
ことを特徴とする請求項6に記載の方法。
【請求項9】
電子機器であって、プロセッサと、前記プロセッサと通信可能に接続されたメモリと、を含み、
前記メモリは、コンピュータ実行命令を記憶し、
前記プロセッサは、請求項1~8のいずれか一項に記載のタスクスケジューリング方法を実現するために、前記メモリに記憶されたコンピュータ実行命令を実行する、
ことを特徴とする電子機器。
【請求項10】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体にコンピュータ実行命令が記憶されており、前記コンピュータ実行命令がプロセッサによって実行されるときに、請求項1~8のいずれか一項に記載のタスクスケジューリング方法を実現するために用いられる、
ことを特徴とするコンピュータ可読記憶媒体。
【請求項11】
コンピュータプログラム製品であって、コンピュータプログラムを含み、当該コンピュータプログラムがプロセッサによって実行されるときに、請求項1~8のいずれか一項に記載のタスクスケジューリング方法を実現する、
ことを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、通信技術に関し、特にタスクスケジューリング方法、電子機器及び記憶媒体に関する。
【背景技術】
【0002】
安定で効率的なデータ伝送処理フローは人工知能を実現する重要な基礎保障であり、現在のデータ伝送処理フローは、フローが長く、分岐が多く、単一ノードのリソースが限られているなどの特徴を有し、既存のオープンソースフローエンジン方式は我々のニーズシナリオを完全に満たすことができない。
【0003】
現在の業界のフローエンジンでは、動作時のタスクへの介入能力が比較的弱く、タスクの実行が開始されると、タスクに対する介入ができなくなり、現在のタスクを停止してタスクのスケジューリングを行うしかない。この方法は、柔軟でないだけでなく、リソースの浪費を招き、タスクスケジューリングの効率が比較的低い。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願は、タスクスケジューリングの効率を向上させるための、タスクスケジューリング方法、電子機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
第1態様において、本願は、タスクスケジューリング方法を提供し、
ノード内のタスクのいずれかについて、前記タスクの優先度及び状態に基づいて、前記タスクと前記ノード内のアクチュエータとのマッチング関係を決定するステップと、
前記マッチング関係に従って前記ノード内のタスクを実行するステップと、を含む。
【0006】
第2態様において、本願は、電子機器を提供し、プロセッサと、前記プロセッサと通信可能に接続されたメモリと、を含み、
前記メモリは、コンピュータ実行命令を記憶し、
前記プロセッサは、本願の第1態様に記載のタスクスケジューリング方法を実現するために、前記メモリに記憶されたコンピュータ実行命令を実行する。
【0007】
第3態様において、本願は、コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にコンピュータ実行命令が記憶されており、前記コンピュータ実行命令がプロセッサによって実行されるときに、本願の第1態様に記載のタスクスケジューリング方法を実現するために用いられる。
【0008】
第4態様において、本願は、コンピュータプログラム製品を提供し、コンピュータプログラムを含み、当該コンピュータプログラムがプロセッサによって実行されるときに、本願の第1態様に記載のタスクスケジューリング方法を実現する。
【発明の効果】
【0009】
本願にて提供されるタスクスケジューリング方法、電子機器及び記憶媒体は、ノード内に複数のアクチュエータが設置されてもよく、アクチュエータが複数のタスクを実行できる。ノード内の各タスクの優先度及び状態を決定し、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定し、それによりマッチング関係に基づいてノード内のタスクを実行する。ノードの作業中に、実際の作業状況に応じて、タスクを介入し、タスクとアクチュエータとのマッチング関係を適時に調整することを実現する。従来技術において、タスクの実行が開始されると、タスクに対する介入ができなくなるという問題を解決し、タスクスケジューリングの柔軟性及び効率を向上させる。
【図面の簡単な説明】
【0010】
ここでの添付図面は、明細書に組み込まれ、且つ本明細書の一部を構成し、本願に適合する実施例を示し、明細書と共に、本願の原理を解釈するために用いられる。
【
図1】本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図である。
【
図2】本願の実施例にて提供される動作時のパラメータ変更の介入フロー模式図である。
【
図3】本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図である。
【
図4】本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図である。
【
図5】本願の実施例にて提供される動作時の優先度変更の介入フロー模式図である。
【
図6】本願の実施例にて提供される電子機器の構造ブロック図である。 上記の図面により、本願に明示された実施例が示されており、さらに詳細に後述する。これらの図面及び文字による説明は、如何なる方法によっても本願の概念の範囲を限定するものではなく、特定の実施例を参照することによって、当業者のために本願の概念を説明するものである。
【発明を実施するための形態】
【0011】
本願の目的、技術的解決手段及び利点をより明確にするために、本願の実施例の態様について、以下に添付図面と関連してさらに詳細に説明する。
【0012】
明らかに、説明された実施例は、本願の一部の実施例に過ぎず、全ての実施例ではない。本願の実施例に基づいて、当業者が創造的な労働を行わないことを前提として取得した他の全ての実施例は、本願の保護の範囲に属する。
【0013】
以下の説明が図面に関する場合は、別段の表示がない限り、異なる図面における同一の数字は、同一又は類似の要素を表す。以下の例示的な実施例に説明される実施形態は、本願と一致する全ての実施形態を表すわけではない。むしろ、これらは、特許請求の範囲に詳述された、本願のいくつかの態様と一致する装置及び方法の一例に過ぎない。
【0014】
本願の説明において、「第1」、「第2」、「第3」などの用語は、類似の対象を区別するためにのみ用いられるものであり、特定の順序又は優先順位を説明するために用いられるものではなく、相対的重要性を示し又は暗示するものとしても理解できないことを理解されたい。本願における上記用語の具体的な意味は、当業者にとっては、具体的な状況に応じて理解することができる。さらに、本願の明細書において、別段の記載がない限り、「複数」とは、2つ以上を意味する。「及び/又は」は、関連オブジェクトの関連関係を記述し、3つの関係が存在することを示し、例えば、A及び/又はBは、Aが単独で存在する場合、AとBが同時に存在する場合、Bが単独で存在する場合の3つを表すことができる。文字「/」は、一般に前後の関連オブジェクトが「又は」の関係であることを表す。
【0015】
紙面の制限により、本願の明細書には全ての任意選択の実施形態が網羅されておらず、当業者は本願の明細書を読んだ後、技術的特徴が互いに矛盾しない限り、技術的特徴の任意の組み合わせがいずれも任意選択の実施形態を構成することができると考えることができることに留意すべきである。以下に各実施例について詳細に説明する。
【0016】
人工知能技術が急速に発展してきた今日、安定的で効率的なデータ伝送処理フローは、人工知能技術を実現する重要な基礎保障となっている。例えば、無人運転技術にとって、自動運転データ伝送処理フローは、フローが長く、分岐が多く、変動が頻繁で、単一ノードのリソースが限られているなどの特徴を有し、業界の既存のオープンソースフローエンジン方式は、我々のニーズシナリオを完全に満たすことができない。
【0017】
現在の業界のフローエンジンでは、動作時のタスクへの介入能力が比較的弱く、シングルノードの動作時にタスクの優先度を調整することによって動作中のタスクの状態に介入することはできず、即ち、アクチュエータなどの動作リソースをより優先度の高いタスクにリアルタイムで割り当てることができない。動作速度などの動作パラメータを調整したり、タスクとアクチュエータの優先度を変更したりしようとすると、現在のタスクの動作を停止させ、配置してから再起動するしかなく、柔軟でないだけでなく、リソースの浪費を招き、タスクスケジューリングの効率に影響を与える。
【0018】
本願にて提供されるタスクスケジューリング方法、電子機器及び記憶媒体は、従来技術の上記のような技術的問題を解決することを意図する。
【0019】
以下、具体的な実施例を挙げて本願の技術的解決手段及び本願の技術的解決手段がどのように上記技術的問題を解決するかを詳細に説明する。以下のいくつかの具体的な実施例は、互いに組み合わされてもよく、同じ又は類似の概念又はプロセスについて、いくつかの実施例では、再度説明しないことがある。以下、本願の実施例を図面に基づいて説明する。
【0020】
図1は、本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図であり、当該方法は、タスクスケジューリングエンジンによって実行され、当該スケジューリングエンジンは、あるノード内のアクチュエータ及びタスクの管理及びスケジューリングを担う。
図1に示すように、当該方法は、以下のステップを含む。
【0021】
S101、ノード内のタスクのいずれかについて、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定する。
【0022】
例示的には、ノードは、仮想マシン又は物理マシンであってもよく、例えば、サーバ、携帯電話、コンピュータ、スマートウォッチなどであってもよい。各ノード内では様々なTask(タスク)が動作してもよく、例えば、データをローカルからクラウドに伝送することを担うデータ伝送タスク、通信することを担う通信タスク、又はデータを処理することを担うコンピューティング・タスクであり、これらのTaskは、ノード内のWorker(アクチュエータ、Executorとも呼ばれる)によって実行されてもよい。1つのノード内には、複数のWorkerが含まれてもよく、1つのWorkerは、特定のタイプのTaskを実行するために用いられることができ、1つのWorkerに、実行するために複数のTaskが割り当てられてもよく、Workerの数は、現在のノードの動作リソースの数を表してもよい。
【0023】
異なるタイプのTaskを異なるWorkerに割り当てることができ、各Workerは割り当てられたTaskを順に実行することができる。TaskとWorkerとの間の初期マッチング関係を予め設置してもよく、例えば、各Taskの優先度を予め設置し、そして各Taskのタイプ及び優先度に基づいてTaskを割り当て、優先度の高いTaskが対応するタイプのWorkerによって優先して実行されるようにし、又はタスクタイプのみに基づいてTaskを割り当て、異なるWorkerが割り当てられたTaskを順に実行できるようにする。ノード内にタスクセンターが設置され、タスクセンターには当該ノードに割り当てられたタスクリスト及びタスクに関するパラメータ、及び実行状態情報などが保持され、ノードは、タスクセンターを介して各Taskの状態を随時取得することができ、状態とはTaskの現在の動作状態を指すことができる。例えば、状態は、動作中及び実行待ちなどを含む。
【0024】
ユーザは、各Taskの優先度を随時変更することができ、例えば、ユーザは、ノードの可視化インタフェースを介して優先度調整を行うことができる。ノードは、各Taskの優先度及び状態をリアルタイム又はタイミングで取得することができ、例えば、ノードは10分ごとに取得することができる。ユーザによる優先度変更指示に応答した後、各Taskの優先度及び状態を取得することもできる。
【0025】
各Taskの優先度及び状態を取得した後、Taskの優先度及び状態に基づいて、TaskとWorkerとの間のマッチング関係を調整することができる。予め設定されたソート位置に優先度が付けられたTaskを決定することができ、優先度の高いTaskが優先度に従って実行されていない場合、これらのTaskとWorkerとの間のマッチング関係を変更することができる。例えば、優先度が最も高いTaskを決定し、当該Taskの状態が動作中であるか否かを決定し、そうでなければ、当該taskをアイドル状態のWorkerに割り当て、当該アイドル状態のWorkerによって当該Taskを優先して実行する。各Workerは、ノードに登録されたときに実行できるタスクのタイプを確認し、例えば、Workerは、通信やコンピューティングなどに用いることができる。例えば、ノードのスケジューリングエンジンには、A、B、Cの3つのタスクを順に完了する作業フローが設置されている。Bタスクが実行されたとき、スケジューリングエンジンは、ノードに対応するWorkerリストからBを実行するworkerの有無を調べ、あれば、BタスクをこのWorkerに割り当てる。3つのWorkerがBを処理しているが、3つのWorkerがすでに作業状態にあり、このときスケジューリングエンジンは、この3つのWorkerが実行しているTaskの優先度に基づいて1つのWorkerの現在の作業を停止するか否かを判断し、且つBタスクを当該Workerに割り当てて実行する。
【0026】
本実施例において、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定するステップは、ノード内の各タスクの優先度に基づいて、ノード内のタスクを順にソートし、タスクリストを得るステップと、優先度に従ってタスクリスト内のタスクをトラバースするステップと、を含む。ここで、トラバースとは、優先度順に従って、タスクリスト内の全てのタスクを順に問い合わせることである。
【0027】
具体的には、ノードに複数のTaskが割り当てられ、Taskの優先度及び状態に基づいて、Taskとノード内のWorkerとのマッチング関係を調整する前に、まず各Taskの優先度を取得することができる。Taskの優先度に基づいて、ノード内のTaskをソートし、タスクリストを得る。例えば、優先度の高い順にソートすることができる。タスクリストを得た後、優先度に従ってタスクリスト内のタスクをトラバースし、即ち、タスクリスト内の最初のTaskからトラバースを開始することができる。タスクリストをトラバースし、タスクリスト内の各Taskの状態を決定し、それによりTaskの状態に基づいて、Taskとノード内のWorkerとのマッチング関係を決定する。
【0028】
このような設置の有益な効果は、タスクリストを生成し且つタスクリスト内のタスク状態を順に問い合わせることにより、Taskの欠落を回避し、且つ優先度順に従って、優先度の高いTaskとWorkerとのマッチング関係を優先して決定し、タスクスケジューリングの効率及び精度を向上させることができることである。
【0029】
本実施例において、優先度に従ってタスクリスト内のタスクをトラバースするステップは、優先度の高い順に、タスクリストをトラバースし、調整対象タスクを決定するステップを含み、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定するステップは、調整対象タスクが予め設定されたソート位置にあるか否かを決定するステップを含む。
【0030】
具体的には、優先度の高い順に、タスクリストをトラバースし、トラバースしたTaskを調整対象タスクとして決定する。即ち、タスクリスト内の各Taskは、調整対象タスクであってもよい。例えば、現在、最も優先度の高いTaskからトラバースを開始し、最初のTaskは調整対象タスクである。
【0031】
予め1つ以上のソート位置を設置し、調整対象タスクを決定した後、調整対象タスクのタスクリスト内での位置が予め設定されたソート位置であるか否かを判断する。例えば、予め設定されたソート位置が上位10位、即ち、最も優先度の高い最初の10つのTaskである。調整対象タスクを決定した後、調整対象タスクの優先度が上位10位にあるか否かを決定する。異なる位置にあるTaskは、異なるマッチング関係調整戦略に対応してもよく、例えば、調整戦略1と調整戦略2の2つの戦略が予め設定されてもよく、調整対象タスクが予め設定されたソート位置にある場合、調整戦略1を採用して当該調整対象タスクとWorkerとの間のマッチング関係を決定し、調整対象タスクが予め設定されたソート位置にない場合、調整戦略2を採用して当該調整対象タスクとWorkerとの間のマッチング関係を決定する。さらに、調整戦略1は、優先度を唯一の考慮要素として、タスクにworkerを割り当てることができ、調整戦略2は、優先度及びタスク実行時間長を総合的に考慮し、優先度が同じタスクについては、タスク実行時間長の少ないタスクにWorkerを優先して割り当てることができる。
【0032】
このような設置の有益な効果は、優先度の高い順に、優先度の高いTaskを優先してスケジューリングすることを実現でき、ノードの正常作業に影響を与えることを回避することである。調整対象タスクのソート位置を判断することにより、異なる優先度のTaskに対して異なる調整を実現することができ、タスクスケジューリングの柔軟性及び精度を向上させ、実際の業務需要を満たすのに有利である。
【0033】
本実施例において、予め設定されたソート位置は、ノードのアクチュエータの数に対応し、調整対象タスクが予め設定されたソート位置にあるか否かを決定するステップは、調整対象タスクのソート順序がノードのアクチュエータの数を超えることに応答して、調整対象タスクが予め設定されたソート位置にないことを確認するステップと、調整対象タスクのソート順序がノードのアクチュエータの数を超えないことに応答して、調整対象タスクが予め設定されたソート位置にあることを確認するステップと、を含む。
【0034】
具体的には、ノード内のWorkerの数を予め決定し、Workerの数に基づいて予め設定されたソート位置を決定する。予め設定されたソート位置の位置順序の範囲をWorkerの数以内に設定し、例えば、Workerの数が10の場合、予め設定されたソート位置は、上位10位となり、ソート位置が予め設定されたTaskは上位10位のTaskである。
【0035】
タスクリストをトラバースし、調整対象タスクのソート順序を決定し、即ち調整対象タスクのタスクリスト内での位置を決定する。調整対象タスクが予め設定されたソート位置にあるか否かを決定することにより、調整対象タスクのソート順序がノードのWorkerの数を超えるか否かを決定することができ、超える場合、調整対象タスクが予め設定されたソート位置にないことを決定し、超えない場合、調整対象タスクが予め設定されたソート位置にあることを決定する。例えば、ノード内のWorkerの数が10で、タスクリスト内の11番目のTaskをトラバースすると、当該Taskが予め設定されたソート位置にないことを決定することができる。
【0036】
このような設置の有益な効果は、Workerの数に基づいて予め設定されたソート位置を決定し、ノードのWorkerリソースを十分に利用でき、Workerがアイドル状態になることを回避し、同時に優先度の高いTaskが優先して実行されるようにし、Taskの実行効率を向上させ、ノードの作業効率を効果的に向上させることである。
【0037】
S102、マッチング関係に従ってノード内のタスクを実行する。
【0038】
例示的には、TaskとWorkerとのマッチング関係を決定した後、現在のマッチング関係に基づいて、各Taskを実行する。Workerによって自身に割り当てられたTaskを実行でき、各Workerに1つ以上のTaskが割り当てられることができ、1つのWorkerに複数のTaskが対応する場合、割り当てられた時間順序に基づいてTaskを順に実行できる。例えば、Workerが起動されると、ノードのタスクセンターから自身の実行対象Taskを取得し、Workerが予め設定された処理方法を呼び出してTaskを実行する。本実施例において、予め設定された処理方法は、実際の業務需要に応じて決定されてもよい。例えば、処理方法は、Workerで実現されるべき業務ロジックであってもよい。
【0039】
WorkerがTaskを実行している間、ユーザは、Taskの動作パラメータを随時修正することができ、例えば、伝送速度制限、元記憶パス及び最終記憶パスなどの動作パラメータを修正できる。WorkerがTaskを実行するとき、Taskが実行済みであるか否かをリアルタイムで判断することができ、実行済みであれば、Workerは当該Taskの実行記録などの情報をクリーンアップし、且つ当該Taskの実行結果をノードのタスクセンターに報告し、新しいTaskを取得し、さらに実行し、実行済みでなければ、タスクセンターに現在のTaskの実行情報を報告し、例えば、実行情報は実行進捗度などの内容であってもよい。且つ当該Taskの動作パラメータが変化したか否かを判断し、変化していなければ、実行を継続して動作パラメータが変化したか否かを判断し、変化していれば、変更後の動作パラメータを決定し、Workerは、自身の処理ロジックに基づいて、現在のTaskを調整し、即ち変更後の動作パラメータに従ってTaskの実行を行う。
【0040】
図2は、本実施例にて提供される動作時のパラメータ変更の介入フロー模式図である。WorkerがTaskを実行している間、一定周期でTaskが実行済みであるか否かを継続的に監視でき、実行済みでなければ、動作パラメータが修正されたか否かを判断することで、修正された動作パラメータを適時に用いてTaskを実行する。例えば、データ伝送を行うフローにおいて、1つのタスクXが実行中であり、このとき伝送の速度制限は20MB/sであり、業務需要により、できるだけ早く伝送を完了させることが望ましく、このとき伝送の速度制限パラメータを50MB/sに調整し、Workerが動作パラメータの変化を検出し、動作パラメータを更新し、伝送の速度制限を20MB/sから50MB/sに調整し、伝送タスクへの動作時介入を実現し、迅速な伝送の業務目的を達成する。
【0041】
本願の実施例にて提供されるタスクスケジューリング方法では、ノード内に複数のアクチュエータが設置されてもよく、アクチュエータが複数のタスクを実行できる。ノード内の各タスクの優先度及び状態を決定し、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定し、それによりマッチング関係に基づいてノード内のタスクを実行する。ノードの作業中に、実際の作業状況に応じて、タスクを介入し、タスクとアクチュエータとのマッチング関係を適時に調整することを実現する。従来技術において、タスクの実行が開始されると、タスクに対する介入ができなくなるという問題を解決し、タスクスケジューリングの柔軟性及び効率を向上させる。
【0042】
図3は、本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図であり、当該実施例は、上記実施例に基づく任意選択の実施例である。
【0043】
本実施例において、タスクの優先度及び状態に基づいて、タスクと前記ノード内のアクチュエータとのマッチング関係を決定するステップは、調整対象タスクが予め設定されたソート位置になく、且つ調整対象タスクの状態が動作中であることに応答して、調整対象タスクに対応する第1アクチュエータを決定するステップ、調整対象タスクを停止するステップ、及び第1アクチュエータの状態をアイドルに設定するステップに細分化することができる。
【0044】
図3に示すように、当該方法は、
ノード内のタスクのいずれかについて、ノード内の各タスクの優先度に基づいて、ノード内のタスクを順にソートし、タスクリストを得、及び優先度に従ってタスクリスト内のタスクをトラバースするステップS301と、
優先度の高い順に、タスクリストをトラバースし、調整対象タスクを決定し、調整対象タスクが予め設定されたソート位置にあるか否かを決定するS302と、
調整対象タスクが予め設定されたソート位置になく、且つ調整対象タスクの状態が動作中であることに応答して、調整対象タスクに対応する第1アクチュエータを決定し、調整対象タスクを停止し、及び第1アクチュエータの状態をアイドルに設定するS303と、を含む。
【0045】
例示的には、調整対象タスクが予め設定されたソート位置にあるか否かを決定し、且つ調整対象タスクの状態を決定する。例えば、予め設定されたソート位置が上位10位であり、調整対象タスクが20番目であれば、調整対象タスクが予め設定されたソート位置にないことを決定する。状態は、動作中であっても、動作中でなくてもよく、例えば、動作中でないことは、実行待ちの状態を指してもよい。
【0046】
調整対象タスクが予め設定されたソート位置になく、且つ調整対象タスクの状態が動作中であることを決定する場合、調整対象タスクに予め割り当てられたWorkerを、第1アクチュエータとして決定する。即ち、予め設定された初期マッチング関係に基づいて、調整対象タスクに対応する第1アクチュエータを決定する。調整対象タスクが予め設定されたソート位置にない場合、調整対象タスクの優先度が低いことを決定してもよく、まず調整対象タスクを実行しなくてもよい。したがって、調整対象タスクの実行を停止するように第1アクチュエータを制御する。このとき、第1アクチュエータは何らのTaskも実行しておらず、第1アクチュエータの状態をアイドルに設定することができる。
【0047】
ここで、Workerの作業状態は、正常状態と、異常状態と、を含んでもよく、正常状態とはWorkerがTaskを正常に実行できる状態を指し、異常状態とはWorkerが作業できない状態を指し、例えば、Workerに動作停止などの故障が発生する。Workerが正常状態にあるとき、作業状態は、アイドル及び作業をさらに含んでもよく、WorkerがTaskを実行していない場合、Workerの状態はアイドルであり、WorkerがTaskを実行している場合、Workerの状態は作業である。第1アクチュエータの状態をアイドルに設定することは、第1アクチュエータが現在タスクTaskを実行しておらず、より優先度の高いTaskを受けて実行することができることを示す。
【0048】
調整対象タスクを停止した後、調整対象タスクの状態を実行待ちに設定する。実行待ちリストを予め設置しておき、調整対象タスクを実行待ちリストに書き込むことで、その後の実行を容易にする。例えば、優先度の高いTaskの実行が完了した後、実行待ちリストから未実行のTaskを取得して実行してもよい。
【0049】
このような設置の有益な効果は、優先度の低いTaskを適時に停止し、アイドル状態のWorkerが優先度の高いTaskを処理できるようにすることができ、ノードの正常な作業を保証し、Taskの動作中の介入を実現し、タスクスケジューリングの柔軟性を向上させることである。
【0050】
調整対象タスクが予め設定されたソート位置になく、且つ調整対象タスクの状態が実行待ちであることを決定する場合、調整対象タスクに対して他の操作を行う必要はなく、調整対象タスクは実行待ちの状態を継続し、且つタスクリストのトラバースを継続する。
【0051】
S304、マッチング関係に従ってノード内のタスクを実行する。
【0052】
例示的には、本ステップは上記ステップS102を参照することができるので、ここで説明を省略する。
【0053】
本願の実施例にて提供されるタスクスケジューリング方法では、ノード内に複数のアクチュエータが設置されてもよく、アクチュエータが複数のタスクを実行できる。ノード内の各タスクの優先度及び状態を決定し、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定し、それによりマッチング関係に基づいてノード内のタスクを実行する。ノードの作業中に、実際の作業状況に応じて、タスクを介入し、タスクとアクチュエータとのマッチング関係を適時に調整することを実現する。従来技術において、タスクの実行が開始されると、タスクに対する介入ができなくなるという問題を解決し、タスクスケジューリングの柔軟性及び効率を向上させる。
【0054】
図4は、本願の実施例にて提供されるタスクスケジューリング方法のフロー模式図であり、当該実施例は、上記実施例に基づく任意選択の実施例である。
【0055】
本実施例において、タスクの優先度及び状態に基づいて、タスクと前記ノード内のアクチュエータとのマッチング関係を決定するステップは、調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が動作中であることに応答して、調整対象タスクに対応する第2アクチュエータを確認するステップ、第2アクチュエータが正常状態であることに応答して、調整対象タスクと第2アクチュエータとの対応関係を維持するステップ、及び第2アクチュエータの状態を動作中に設定するステップに細分化することができる。
【0056】
図4に示すように、当該方法は、
ノード内のタスクのいずれかについて、ノード内の各タスクの優先度に基づいて、ノード内のタスクを順にソートし、タスクリストを得、及び優先度に従ってタスクリスト内のタスクをトラバースするステップS401と、
優先度の高い順に、タスクリストをトラバースし、調整対象タスクを決定し、調整対象タスクが予め設定されたソート位置にあるか否かを決定するS402と、
調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が動作中であることに応答して、調整対象タスクに対応する第2アクチュエータを確認し、第2アクチュエータが正常状態であることに応答して、調整対象タスクと第2アクチュエータとの対応関係を維持し、及び第2アクチュエータの状態を動作中に設定するS403と、を含む。
【0057】
例示的には、調整対象タスクが予め設定されたソート位置にあるか否かを決定し、且つ調整対象タスクの状態を決定する。例えば、予め設定されたソート位置が上位10位であり、調整対象タスクが8番目であれば、調整対象タスクが予め設定されたソート位置にあることを決定する。状態は、動作中であっても、動作中でなくてもよく、例えば、動作中でないことは、実行待ちの状態を指してもよい。
【0058】
調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が動作中であることを決定する場合、調整対象タスクに予め割り当てられたWorkerを、第2アクチュエータとして決定する。即ち、予め設定された初期マッチング関係に基づいて、調整対象タスクに対応する第2アクチュエータを決定する。調整対象タスクが予め設定されたソート位置にある場合、調整対象タスクの優先度が高いことを決定してもよく、調整対象タスクの実行を継続する必要がある。第2アクチュエータの現在の作業状態を決定し、Workerの作業状態は、正常状態と、異常状態と、を含んでもよく、正常状態とはWorkerがTaskを正常に実行できる状態を指し、異常状態とはWorkerが作業できない状態を指し、例えば、Workerに動作停止などの故障が発生する。正常状態は、動作中及びアイドルをさらに含んでもよく、動作中とはWorkerがTaskを実行していることを指し、アイドルとはWorkerが何らのTaskも実行していないことを指す。第2アクチュエータが正常状態である場合、調整対象タスクと第2アクチュエータとの対応関係を維持し、且つ第2アクチュエータの状態を動作中に設定し、即ち、第2アクチュエータにより調整対象タスクの実行を継続する。アイドル状態のアクチュエータプールを予め構築し、全てのWorkerを全部アイドル状態のアクチュエータプールに予め入れ、第2アクチュエータの状態を動作中に設定することを決定する場合、第2アクチュエータをアイドル状態のアクチュエータプールから取り出すことができる。
【0059】
実行対象Taskを置くための実行待ちリストを予め設置することができる。調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が実行待ちである場合、当該調整対象タスクに対応するWorkerを決定する必要がなく、当該調整対象タスクを実行待ちリストに置いて対応するWorkerによって実行されるのを待つ。
【0060】
このような設置の有益な効果は、調整対象タスクのソート順序及び対応するWorkerの状態に基づいて、調整対象タスクとWorkerとの間のマッチング関係を調整する必要があるか否かを決定し、タスクスケジューリングプロセスを減らし、スケジューリングエラーを回避し、Taskの実行効率を向上させることである。
【0061】
本実施例において、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定するステップは、第2アクチュエータが異常状態であることに応答して、調整対象タスクの状態を実行待ちに設定するステップと、第2アクチュエータの状態を異常に設定するステップと、を含む。
【0062】
具体的には、調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が動作中であることを決定する場合、調整対象タスクに対応する第2アクチュエータを確認する。第2アクチュエータの現在の作業状態を判断し、第2アクチュエータが異常状態である場合、第2アクチュエータが調整対象タスクを正常に実行できないことを決定し、調整対象タスクの状態を実行待ちに設定し、且つ第2アクチュエータの状態を異常に設定する。調整対象タスクを実行待ちリストに置き、及び第2アクチュエータをアイドル状態のアクチュエータプールから削除し、第2アクチュエータが正常に戻った後、アイドル状態のアクチュエータプールに再び入れることができる。
【0063】
このような設置の有益な効果は、第2アクチュエータが異常状態である場合、調整対象タスクを実行待ち状態に設定することができ、調整対象タスクと第2アクチュエータとの間の初期マッチング関係を解除することもでき、その後の調整対象タスクにアイドル状態のWorkerを割り当てることが容易となり、スクスケジューリングの柔軟性を向上させ、さらにタスクの効率的な実行を保証することである。
【0064】
図5は、実施例にて提供される動作時の優先度変更の介入フロー模式図であり、Workerの数はNである。タスクリスト内のTaskを順にトラバースし、各Taskの状態及び対応するWorkerの状態を決定し、TaskとWorkerとの間のマッチング関係を解除又は維持する。タスクリストのトラバースが完了すると、実行待ちリスト内のTask、及びアイドル状態のアクチュエータプール内のWorkerを取得し、即ち、実行対象Task及びアイドル状態のWorkerを取得する。実行対象Task及びアイドル状態のWorkerを再び割り当て、例えば、実行対象Taskの優先度に基づいて順にマッチングする。本実施例において、実行対象Taskとアイドル状態のWorkerとの間のマッチングルールについては、特に限定しない。
【0065】
Taskの動作時に優先度を介入することにより、タスク実行フロー全体が、より柔軟で効率的なコンピューティングリソースの割り当てを可能にし、動作時でさえリソース割り当てを調整することができ、より柔軟なリソーススケジューリング、より少ないリソースの浪費、及びより低いコスト消費を実現する。
【0066】
S404、マッチング関係に従ってノード内のタスクを実行する。
【0067】
例示的には、TaskとWorkerとのマッチング関係を決定した後、現在のマッチング関係に基づいて、各Taskを実行する。Workerによって自身に割り当てられたWorkerのTaskを実行でき、各Workerに1つ以上のTaskが割り当てられることができ、1つのWorkerに複数のTaskが対応する場合、割り当てられた時間順序に基づいてTaskを順に実行できる。例えば、Workerが起動されると、ノードのタスクセンターから自身の実行対象Taskを取得し、Workerが予め設定された処理方法を呼び出してTaskを実行する。
【0068】
本実施例において、当該方法は、さらに、調整対象タスクの動作パラメータを取得するステップと、動作パラメータの更新があることに応答して、更新後の動作パラメータに基づいて、調整対象タスクを調整するように第2アクチュエータを制御するステップと、を含む。
【0069】
具体的には、調整対象タスクが予め設定されたソート位置にあり、且つ調整対象タスクの状態が動作中である場合、調整対象タスクに対応する第2アクチュエータを決定する。第2アクチュエータが正常状態である場合、第2アクチュエータにより調整対象タスクの実行を継続する。第2アクチュエータが調整対象タスクを実行している間、ユーザは、調整対象タスクの動作パラメータを随時修正することができ、例えば、タスク実行優先度、伝送速度制限、元記憶パス及び最終記憶パスなどの動作パラメータを修正できる。第2アクチュエータは、調整対象タスクが実行済みであるか否かをリアルタイムで判断することができ、実行済みであれば、調整対象タスクの実行記録などの情報をクリーンアップし、且つ調整対象タスクの実行結果をノードのタスクセンターに報告し、実行済みでなければ、タスクセンターに調整対象タスクの実行情報を報告することができ、例えば、実行情報は実行進捗度などの内容であってもよい。且つ調整対象タスクの動作パラメータが変化したか否かを判断し、変化していなければ、実行を継続して動作パラメータが変化したか否かを判断し、変化していれば、変更後の動作パラメータを決定し、第2アクチュエータは、自身の処理ロジックに基づき、調整対象タスクを調整し、即ち変更後の動作パラメータに従って調整対象タスクの実行を行う。
【0070】
このような設置の有益な効果は、動作時にパラメータの介入を行い、タスク実行プロセス全体をより柔軟で効率的にさせ、既存のコンピューティングリソースをより十分に利用し、動作の機械コスト及び時間コストを節約し、タスクスケジューリングの柔軟性及びタスク動作の効率を向上させることである。
【0071】
本願の実施例にて提供されるタスクスケジューリング方法では、ノード内に複数のアクチュエータが設置されてもよく、アクチュエータが複数のタスクを実行できる。ノード内の各タスクの優先度及び状態を決定し、タスクの優先度及び状態に基づいて、タスクとノード内のアクチュエータとのマッチング関係を決定し、それによりマッチング関係に基づいてノード内のタスクを実行する。ノードの作業中に、実際の作業状況に応じて、タスクを介入し、タスクとアクチュエータとのマッチング関係を適時に調整することを実現する。従来技術において、タスクの実行が開始されると、タスクに対する介入ができなくなるという問題を解決し、タスクスケジューリングの柔軟性及び効率を向上させる。
【0072】
図6は、コンピューティングデバイス600の例示的な形態の機械の図を示し、当該コンピューティングデバイス内では命令セットが実行されたとき及び/又は処理ロジックが起動されたとき、本明細書で説明及び/又は要求される方法のいずれか1つ又は複数を当該機械に実行させることができる。代替実施例では、機械は、スタンドアロンデバイスとして操作し、又は他の機械に接続されてもよい(例えば、ネットワーク化されてもよい)。ネットワーキング配置では、機械は、サーバ-クライアントネットワーク環境においてサーバ又はクライアント機械のアイデンティティで操作し、又はピアツーピア(又は分散)ネットワーク環境においてピア機械として操作してもよい。機械は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピューティングシステム、携帯情報端末(PDA)、セルラ電話、スマートフォン、ネットワークアプリケーション、セットトップボックス(STB)、ネットワークルータ、スイッチ、又はブリッジ、又は、当該機械により取られるべきアクションを指定する命令セット(連続的に又は他の方法で)を実行できるか又は処理ロジックを開始する任意の機械であってもよい。さらに、単一の機械のみが図示されているが、「機械」という用語はまた、本明細書で説明及び/又は要求される方法のいずれか1つ以上を実行するための命令セット(又は複数の命令セット)を個別に又は連携して実行する機械の任意のセットを含むと理解されてもよい。
【0073】
例示的なコンピューティングデバイス600は、バス606又は他のデータ伝送システムを介して互いに通信し得るデータプロセッサ602(例えば、システムチップ(SoC)、汎用処理コア、グラフィックスコア、及び任意選択の他の処理ロジック)及びメモリ604(例えば、メモリ)を含んでもよい。コンピューティングデバイス600は、タッチスクリーンディスプレイ、オーディオジャック、音声インタフェース、及び任意選択のネットワークインタフェース612などの様々な入出力(I/O)デバイス及び/又はインタフェース610も含んでもよい。例示的な実施例では、ネットワークインタフェース612は、任意の1つ以上の標準無線及び/又はセルラプロトコル又はアクセス技術(例えば、セルラシステムの第2世代(2G)、2.5世代、第3世代(3G)、第4世代(4G)及び次世代の無線アクセス、グローバル移動通信システム(GSM)、汎用パケット無線サービス(GPRS)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(WCDMA)、LTE、CDMA2000、WLAN、無線ルータ(WR)グリッドなど)と共に構成された1つ以上の無線トランシーバを含んでもよい。ネットワークインタフェース612は、様々な他の有線及び/又は無線通信プロトコル(TCP/IP、UDP、SIP、SMS、RTP、WAP、CDMA、TDMA、UMTS、UWB、WiFi、WiMax、Bluetooth(登録商標)、IEEE802.11xなどを含む)と共に使用するように構成されてもよい。本質的に、ネットワークインタフェース612は、事実上、情報/データがネットワーク614を介してコンピューティングデバイス600と別のコンピューティング又は通信システムとの間で伝播され得る任意の有線及び/又は無線通信並びにデータ処理機構を含み、又はサポートしてもよい。
【0074】
メモリ604は、本明細書で説明及び/又は要求される方法又は機能のいずれか1つ以上を実装する1つ以上の命令セット、ソフトウェア、ファームウェア、又は他の処理ロジック(例えば、ロジック608)を記憶する機械可読媒体(又はコンピュータ可読記憶媒体)を表してもよい。ロジック608又はその一部はまた、コンピューティングデバイス600による実行中に、プロセッサ602内に完全に又は少なくとも部分的に存在してもよい。このように、メモリ604及びプロセッサ602は、機械可読媒体(又はコンピュータ可読記憶媒体)を構成してもよい。ロジック608又はその一部は、少なくとも一部がハードウェアに部分的に実装される処理ロジック又はロジックとして構成されてもよい。ロジック608又はその一部は、ネットワークインタフェース612を介してネットワーク614を介して伝送又は受信されてもよい。例示的な実施例の機械可読媒体(又はコンピュータ可読記憶媒体)は単一の媒体であり得るが、「機械可読媒体」(又はコンピュータ可読記憶媒体)という用語は、1つ以上の命令セットを記憶する単一の非一時的媒体又は複数の非一時的媒体を含む(例えば、集中又は分散データベース及び/又は関連するキャッシュ及びコンピューティングシステム)と理解されるべきである。「機械可読媒体」(又はコンピュータ可読記憶媒体)という用語はまた、機械による実行のための命令セットを記憶、符号化、又は担持することができ、機械に様々な実施例の方法のうちのいずれか1つ以上を実行させるか、又はそのような命令セットによって利用又は関連付けられるデータ構造を記憶、符号化、又は担持することができる、任意の非一時的媒体を含むと理解される。したがって、「機械可読媒体」(又はコンピュータ可読記憶媒体)という用語は、固体メモリ、光媒体、及び磁気媒体を含むが、これらに限定されないものとして理解されてもよい。
【0075】
開示された実施例及び他の実施例、モジュール、及び本明細書に記載された機能操作は、デジタル電子回路システム、又はコンピュータソフトウェア、ファームウェア又はハードウェア(本明細書に開示された構造及びそれらの構造的等価物を含む)又はそれらの1つ以上の組み合わせにおいて実装され得る。開示された実施例及び他の実施例は、1つ以上のコンピュータプログラム製品、つまり、データ処理装置によって実行されるように又は当該データ処理装置の操作を制御するようにコンピュータ可読媒体上で符号化されるコンピュータプログラム命令の1つ以上のモジュールとして実装され得る。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号に影響を与える組成物、又はそれらの1つ以上の組み合わせであり得る。用語「データ処理装置」は、例えば、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するための全ての装置、デバイス、及び機械を包含する。ハードウェアに加えて、当該装置は、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコードなど、対象のコンピュータプログラムのための実行環境を作成するコードを含むことができる。伝播信号は、適切な受信装置に伝送される情報を符号化するために生成される、例えば機械によって生成される電気信号、光信号、又は電磁信号などの人工的に生成される信号である。
【0076】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても呼ばれる)は、任意の形態のプログラミング言語(コンパイラ型又はインタプリタ型言語を含む)で書かれてもよく、且つ当該コンピュータプログラムは、スタンドアロンプログラムとして配置されるか、又は、モジュール、コンポーネント、サブルーチン、もしくは、コンピューティング環境での使用に適した別のユニットとして配置されることを含む任意の形態で配置されてもよい。コンピュータプログラムは、必ずしもファイルシステム上のファイルに対応している必要はない。プログラムは、他のプログラム又はデータを保持する(例えば、マークアップ言語文書に記憶された1つ以上のスクリプト)ファイルの一部に記憶されてもよく、又は検討中のプログラム専用の単一ファイルに記憶されてもよく、又は複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの一部を記憶するファイル)に記憶されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように配置されてもよく、1つのサイトに配置された、又は複数のサイトに分散された、通信ネットワークを介して相互接続された複数のコンピュータ上で実行されてもよい。
【0077】
本明細書で説明されるプロセス及びロジックフローは、入力データを操作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行され得る。プロセス及びロジックフローはまた、専用論理回路システム(例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))によって実行され得、装置はまた、専用論理回路(例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路))として実装され得る。
【0078】
コンピュータプログラムを実行するのに適したプロセッサは、例えば、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリ、又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、並びに命令及びデータを記憶するための1つ以上のメモリデバイスである。典型的には、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス(例えば、磁気ディスク、光磁気ディスク、又は光ディスク)も含み、又はコンピュータは、1つ以上の大容量記憶デバイスからデータを受け取るか、データを当該1つ以上の大容量記憶デバイスに伝送するか、又はその両方を行うように操作可能に結合される。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体は、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスなどの半導体メモリデバイスを含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイス、内蔵ハードディスク又はリムーバブルディスクなどの磁気ディスク、光磁気ディスク、及びCD-ROMディスク、DVD-ROMディスクなどが挙げられる。プロセッサ及びメモリは、専用論理回路に補足されてもよく、又は専用論理回路に組み込まれてもよい。
【0079】
本明細書に記載されるいくつかの実施例は、方法又はプロセスの一般的な文脈において記載され、一実施例において、コンピュータ可読媒体に含まれるコンピュータプログラム製品によって実装されてもよく、当該コンピュータプログラム製品は、例えば、ネットワーキング環境においてコンピュータによって実行されてもよい、コンピュータ実行可能命令(例えばプログラムコード)を含んでもよい。コンピュータ可読媒体は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)などを含むが、これらに限定されない、リムーバブル及びリムーバブルでない記憶デバイスを含み得る。したがって、コンピュータ可読媒体は、非一時的記憶媒体を含み得る。一般に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むことができる。コンピュータ又はプロセッサ実行可能命令、関連するデータ構造、及びプログラムモジュールは、本明細書で開示される方法のステップを実行するためのプログラムコードの例を表す。そのような実行可能命令又は関連するデータ構造の特定のシーケンスは、これらのステップ又はプロセスにおいて説明される機能を実装するための対応する動作の例を表す。
【0080】
本願の方法を実施するためのプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせを用いて書かれ得る。これらのプログラムコードは、プログラムコードがプロセッサ又はコントローラによって実行されると、フローチャート及び/又はブロック図において特定された機能/操作が実施されるように、汎用コンピュータ、特殊目的コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサ又はコントローラに提供されてもよい。プログラムコードは、完全に機械上で、部分的に機械上で、独立型ソフトウェアパッケージとして部分的に機械上で、部分的にリモート機械上で、又は完全にリモート機械もしくは電子機器上で実行され得る。
【0081】
当業者が明細書を考慮し及び本明細書に開示された発明を実施した後、本願の他の実施形態を容易に想到するであろう。本願は、本願の一般原理に従い、本願の開示されていない当該技術分野における公知常識又は慣用技術手段を含む、本願の任意の変形、使用、又は適応変化を包含することを意図している。本明細書及び実施例は、単に例示的なものとしてみなされるべきであり、本願の真の範囲及び精神は、以下の特許請求の範囲によって示される。
【0082】
本願は、上記で説明し、添付図面に示された厳密な構造に限定されず、その範囲から逸脱することなく、様々な修正及び変更がなされ得ることを理解されたい。本願の範囲は、添付の特許請求の範囲によってのみ限定される。