(57)【要約】【課題】計算タスクを適切に管理する。【解決手段】計算タスクを受信するステップと、前記計算タスクの処理リソース要件を判定するステップと、第１のタイムスタンプにおける、第１の参加車両を含む第１のＴＶＶＳの利用可能な処理リソースを判定するステップと、前記第１の参加車両の車両移動データを判定するステップと、前記車両移動データに基づいて、第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、を含む。【選択図】図１Ａ
2020030813.tif 000002
【特許請求の範囲】
【請求項１】
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、
前記第１の参加車両の車両移動データを判定するステップと、
前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、
前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を含む、方法。
【請求項２】
前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースを推定するステップが、
前記第１の参加車両から、前記第１の参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第２の参加車両を判定するステップであって、前記第１のＴＶＶＳが、前記第２のタイムスタンプにおいて前記第２の参加車両を含むステップと、
前記第２のタイムスタンプにおける、前記第２の参加車両の利用可能な処理リソースを、前記第１のＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに含む、
請求項１に記載の方法。
【請求項４】
前記第１の参加車両に含まれる各参加車両の前記車両移動データは、前記参加車両の速度、地理的位置、経路のうちの１つ以上を記述するものである、
請求項１に記載の方法。
【請求項５】
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを判定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第１のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースとに基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳが第２の参加車両を含むことを判定するステップと、
前記第２の参加車両の車両移動データに基づいて、前記第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第２のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記計算タスクのタスク進捗メトリックを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが事前定義されたタスク進捗閾値を満たしていることを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが前記事前定義されたタスク進捗閾値を満たしていると判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの完了処理リソース要件を判定するステップと、
ＴＶＶＳのセットを判定するステップであって、前記セットの各ＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含み、各ＴＶＶＳが前記チェックポイントタイムスタンプにおいて利用可能な処理リソースと、前記第２のタイムスタンプにおける推定された利用可能な処理リソースとを有するステップと、
前記ＴＶＶＳのセットから、前記計算タスクの前記完了処理リソース要件と、前記チェックポイントタイムスタンプにおける第２のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第２のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第２のＴＶＶＳを選択するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの通信プロファイルを判定するステップと、
前記チェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの地理的位置を判定するステップと、
前記チェックポイントタイムスタンプにおいて第２のＴＶＶＳの地理的位置を判定するステップであって、前記第２のＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含むステップと、
前記計算タスクの前記通信プロファイルと、前記チェックポイントタイムスタンプにおける前記第１のＴＶＶＳの地理的位置と、前記チェックポイントタイムスタンプにおける前記第２のＴＶＶＳの地理的位置と、を使用して、前記第２のＴＶＶＳに関連付けられた前記計算タスクの通信リソース要件を判定するステップと、
前記第２のＴＶＶＳに関連付けられた前記計算タスクの前記通信リソース要件に基づいて、前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定したことに応答して、前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記計算タスクの前記通信プロファイルが、
タスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク実行データサイズ、前記タスク入力データの要求頻度、前記計算タスクに関連付けられた前記タスク出力データの要求頻度、
前記計算タスクの前記タスク入力データが受信される１つ以上の計算エンティティの地理的位置、前記計算タスクの前記タスク出力データが送信される１つ以上の計算エンティティの地理的位置、
のうちの１つ以上を指定するものである、
請求項９に記載の方法。
【請求項１１】
前記計算タスクのタスク入力データが前記道路セグメントに関連付けられていることを判定するステップと、
前記道路セグメントに関連付けられた追加の入力データであって、前記第１のＴＶＶＳに含まれる前記第１の参加車両の１つ以上のセンサによって生成された入力データを判定し、
前記計算タスクの前記タスク入力データと、前記第１の参加車両の前記１つ以上のセンサによって生成された前記追加の入力データとを使用して、前記計算タスクの実行を行うように、前記第１のＴＶＶＳに指示するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１２】
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の互いに近接して位置する候補参加車両を判定するステップと、
前記候補参加車両の車両移動データを判定するステップと、
前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムスタンプにおいて前記候補参加車両を含むステップと、
前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、
前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を含む、方法。
【請求項１３】
前記候補参加車両は、所定の相対距離閾値を満たす前記道路セグメント上で互いに対する相対距離を有する、
請求項１２に記載の方法。
【請求項１４】
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップが、
前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
を含む、請求項１２に記載の方法。
【請求項１５】
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに含む、
請求項１２に記載の方法。
【請求項１６】
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースを推定するステップが、
前記候補参加車両から、前記候補参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第１の候補参加車両を判定するステップであって、前記候補ＴＶＶＳが、前記第２のタイムスタンプにおいて前記第１の候補参加車両を含むステップと、
前記第２のタイムスタンプにおける、前記第１の候補参加車両の利用可能な処理リソースを、前記候補ＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、
を含む、請求項１２に記載の方法。
【請求項１７】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行された場合に、システムに、
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、
前記第１の参加車両の車両移動データを判定するステップと、
前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、
前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を実行させる命令を記憶する１つ以上のメモリと、を備える、システム。
【請求項１８】
前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースを推定するステップが、
前記第１の参加車両から、前記第１の参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第２の参加車両を判定するステップであって、前記第１のＴＶＶＳが、前記第２のタイムスタンプにおいて前記第２の参加車両を含むステップと、
前記第２のタイムスタンプにおける、前記第２の参加車両の利用可能な処理リソースを、前記第１のＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、
を含む、請求項１７に記載のシステム。
【請求項１９】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、さらに、
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップを行わせる、
請求項１７に記載のシステム。
【請求項２０】
前記第１の参加車両に含まれる各参加車両の前記車両移動データは、前記参加車両の速度、地理的位置、経路のうちの１つ以上を記述するものである、
請求項１７に記載のシステム。
【請求項２１】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを判定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第１のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースとに基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２２】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳが第２の参加車両を含むことを判定するステップと、
前記第２の参加車両の車両移動データに基づいて、前記第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第２のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２３】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクのタスク進捗メトリックを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが事前定義されたタスク進捗閾値を満たしていることを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが前記事前定義されたタスク進捗閾値を満たしていると判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２４】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの完了処理リソース要件を判定するステップと、
ＴＶＶＳのセットを判定するステップであって、前記セットの各ＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含み、各ＴＶＶＳが前記チェックポイントタイムスタンプにおいて利用可能な処理リソースと、前記第２のタイムスタンプにおける推定された利用可能な処理リソースとを有するステップと、
前記ＴＶＶＳのセットから、前記計算タスクの前記完了処理リソース要件と、前記チェックポイントタイムスタンプにおける第２のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第２のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第２のＴＶＶＳを選択するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２５】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの通信プロファイルを判定するステップと、
前記チェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの地理的位置を判定するステップと、
前記チェックポイントタイムスタンプにおいて第２のＴＶＶＳの地理的位置を判定するステップであって、前記第２のＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含むステップと、
前記計算タスクの前記通信プロファイルと、前記チェックポイントタイムスタンプにおける前記第１のＴＶＶＳの地理的位置と、前記チェックポイントタイムスタンプにおける前記第２のＴＶＶＳの地理的位置と、を使用して、前記第２のＴＶＶＳに関連付けられた前記計算タスクの通信リソース要件を判定するステップと、
前記第２のＴＶＶＳに関連付けられた前記計算タスクの前記通信リソース要件に基づいて、前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定したことに応答して、前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２６】
前記計算タスクの前記通信プロファイルが、
タスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク実行データサイズ、前記タスク入力データの要求頻度、前記計算タスクに関連付けられた前記タスク出力データの要求頻度、
前記計算タスクの前記タスク入力データが受信される１つ以上の計算エンティティの地理的位置、前記計算タスクの前記タスク出力データが送信される１つ以上の計算エンティティの地理的位置、
のうちの１つ以上を指定するものである、
請求項２５に記載のシステム。
【請求項２７】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記計算タスクのタスク入力データが前記道路セグメントに関連付けられていることを
判定するステップと、
前記道路セグメントに関連付けられた追加の入力データであって、前記第１のＴＶＶＳに含まれる前記第１の参加車両の１つ以上のセンサによって生成された入力データを判定し、
前記計算タスクの前記タスク入力データと、前記第１の参加車両の前記１つ以上のセンサによって生成された前記追加の入力データとを使用して、前記計算タスクの実行を行うように、前記第１のＴＶＶＳに指示するステップと、
をさらに行わせる、請求項１７に記載のシステム。
【請求項２８】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行された場合に、システムに、
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の互いに近接して位置する候補参加車両を判定するステップと、
前記候補参加車両の車両移動データを判定するステップと、
前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムスタンプにおいて前記候補参加車両を含むステップと、
前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、
前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を実行させる命令を記憶する１つ以上のメモリと、を備える、システム。
【請求項２９】
前記候補参加車両は、所定の相対距離閾値を満たす前記道路セグメント上で互いに対する相対距離を有する、
請求項２８に記載のシステム。
【請求項３０】
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップが、
前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
を含む、
請求項２８に記載のシステム。
【請求項３１】
前記命令が、前記１つ以上のプロセッサによって実行された場合に、前記システムに、
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに行わせる、
請求項２８に記載のシステム。
【請求項３２】
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースを
推定するステップが、
前記候補参加車両から、前記候補参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第１の候補参加車両を判定するステップであって、前記候補ＴＶＶＳが、前記第２のタイムスタンプにおいて前記第１の候補参加車両を含むステップと、
前記第２のタイムスタンプにおける、前記第１の候補参加車両の利用可能な処理リソースを、前記候補ＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、を含む、
請求項２８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、計算タスクの管理に関する。より具体的な例では、本開示は、車両コンテキストにおける計算タスクを管理するための技術に関する。
【背景技術】
【０００２】
車両コンテキストにおいて、コンピューティングシステムは、一般的に、車両から入力データを受信して様々な計算タスクを実行し、計算タスクの出力データを車両に提供することで、それらの操作を容易にする。今日、現代のコンピューティングシステムは、複数の計算エンティティを含むことが多く、リソースモニタリングに依存して、計算エンティティによって実行される計算タスクを管理することが多い。しかしながら、これらのコンピューティングシステムは、多くの場合、計算エンティティとの間でデータを送信するために大量の通信リソースを必要とする。したがって、これらのコンピューティングシステムを車両ネットワークで動作させることは、動的で制限された通信リソースに起因して、一般に非実用的または不可能である。さらに、既存のソリューションは、通常、１つの計算タスクを複数の計算エンティティに割り当てて実行し、タスク失敗の潜在的なリスクに対処する。その結果、これらの既存のソリューションは、一般に、計算エンティティの計算リソースを利用するのに非効率的である。
【発明の概要】
【０００３】
本開示に記載の主題は、車両コンテキストにおける計算タスクを管理するための新たな技術を提供することにより、既存のソリューションの欠陥および制限を克服する。
【０００４】
本開示に記載の主題の革新的な一態様によれば、コンピュータ実装方法は、
計算タスクを受信するステップと、前記計算タスクの処理リソース要件を判定するステップと、第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、前記第１の参加車両の車両移動データを判定するステップと、前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、を含む。
【０００５】
一般に、本開示に記載の主題の他の革新的な態様は、
計算タスクを受信するステップと、前記計算タスクの処理リソース要件を判定するステップと、道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の互いに近接して位置する候補参加車両を判定するステップと、前記候補参加車両の車両移動データを判定するステップと、前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムスタンプにおいて前記候補参加車両を含むステップと、前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおけ
る前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、を含むコンピュータ実装方法において具現化されることができる。
【０００６】
一般に、本開示に記載の主題の他の革新的な態様は、
１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行された場合に、システムに、計算タスクを受信するステップと、前記計算タスクの処理リソース要件を判定するステップと、第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、前記第１の参加車両の車両移動データを判定するステップと、前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、を実行させる命令を記憶する１つ以上のメモリと、を備えるシステムにおいて具現化されることができる。
【０００７】
一般に、本開示に記載の主題の他の革新的な態様は、
１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行された場合に、システムに、計算タスクを受信するステップと、前記計算タスクの処理リソース要件を判定するステップと、道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の互いに近接して位置する候補参加車両を判定するステップと、前記候補参加車両の車両移動データを判定するステップと、前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムスタンプにおいて前記候補参加車両を含むステップと、前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、を実行させる命令を記憶する１つ以上のメモリと、を備えるシステムにおいて具現化されることができる。
【０００８】
これらのおよび他の実装は、それぞれ、必要に応じて以下の特徴のうちの１つ以上を含むことができる。
前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースを推定するステップが、前記第１の参加車両から、前記第１の参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接
して位置する第２の参加車両を判定するステップであって、前記第１のＴＶＶＳが、前記第２のタイムスタンプにおいて前記第２の参加車両を含むステップと、前記第２のタイムスタンプにおける、前記第２の参加車両の利用可能な処理リソースを、前記第１のＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、を含むこと。
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに含むこと。
前記第１の参加車両に含まれる各参加車両の前記車両移動データは、前記参加車両の速度、地理的位置、経路のうちの１つ以上を記述するものであること。
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを判定するステップと、前記計算タスクの前記完了処理リソース要件と、前記第１のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースとに基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、をさらに含むこと。
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳが第２の参加車両を含むことを判定するステップと、前記第２の参加車両の車両移動データに基づいて、前記第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第２のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、をさらに含むこと。
前記計算タスクのタスク進捗メトリックを判定するステップと、前記計算タスクの前記タスク進捗メトリックが事前定義されたタスク進捗閾値を満たしていることを判定するステップと、前記計算タスクの前記タスク進捗メトリックが前記事前定義されたタスク進捗閾値を満たしていると判定したことに応答して、前記計算タスクを再割り当てするステップと、をさらに含むこと。
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、前記計算タスクの完了処理リソース要件を判定するステップと、ＴＶＶＳのセットを判定するステップであって、前記セットの各ＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含み、各ＴＶＶＳが前記チェックポイントタイムスタンプにおいて利用可能な処理リソースと、前記第２のタイムスタンプにおける推定された利用可能な処理リソースとを有するステップと、前記ＴＶＶＳのセットから、前記計算タスクの前記完了処理リソース要件と、前記チェックポイントタイムスタンプにおける第２のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第２のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第２のＴＶＶＳを選択するステップと、前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、をさらに含むこと。
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、前記計算タスクの通信プロファイルを判定するステップと、前記チェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの地理的位置を判定するステップと、前記チェックポイントタイムスタンプにおいて第２のＴＶＶＳの地理的位置を判定するステップであって、前記第２のＴＶＶＳが、前
記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含むステップと、前記計算タスクの前記通信プロファイルと、前記チェックポイントタイムスタンプにおける前記第１のＴＶＶＳの地理的位置と、前記チェックポイントタイムスタンプにおける前記第２のＴＶＶＳの地理的位置と、を使用して、前記第２のＴＶＶＳに関連付けられた前記計算タスクの通信リソース要件を判定するステップと、前記第２のＴＶＶＳに関連付けられた前記計算タスクの前記通信リソース要件に基づいて、前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定するステップと、前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定したことに応答して、前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、をさらに含むこと。
前記計算タスクの前記通信プロファイルが、タスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク実行データサイズ、前記タスク入力データの要求頻度、前記計算タスクに関連付けられた前記タスク出力データの要求頻度、前記計算タスクの前記タスク入力データが受信される１つ以上の計算エンティティの地理的位置、前記計算タスクの前記タスク出力データが送信される１つ以上の計算エンティティの地理的位置、のうちの１つ以上を指定するものであること。
前記計算タスクのタスク入力データが前記道路セグメントに関連付けられていることを判定するステップと、前記道路セグメントに関連付けられた追加の入力データであって、前記第１のＴＶＶＳに含まれる前記第１の参加車両の１つ以上のセンサによって生成された入力データを判定し、前記計算タスクの前記タスク入力データと、前記第１の参加車両の前記１つ以上のセンサによって生成された前記追加の入力データとを使用して、前記計算タスクの実行を行うように、前記第１のＴＶＶＳに指示するステップと、をさらに含むこと。
【０００９】
これらのおよび他の実装は、それぞれ、必要に応じて以下の特徴のうちの１つ以上を含むことができる。
前記候補参加車両は、所定の相対距離閾値を満たす前記道路セグメント上で互いに対する相対距離を有すること。
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップが、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、を含むこと。
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに含むこと。
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースを推定するステップが、前記候補参加車両から、前記候補参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第１の候補参加車両を判定するステップであって、前記候補ＴＶＶＳが、前記第２のタイムスタンプにおいて前記第１の候補参加車両を含むステップと、前記第２のタイムスタンプにおける、前記第１の候補参加車両の利用可能な処理リソースを、前記候補ＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、を含むこと。
【００１０】
これらのおよび他の態様のうちの１つ以上の他の実装は、非一時的コンピュータ記憶装置上で符号化された方法の動作を実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【００１１】
本開示において提示される車両コンテキストにおける計算タスクを管理するための新規な技術は、多くの点で特に有利である。例えば、本明細書に記載の技術は、計算エンティ
ティ（例えば、一時的車両仮想サーバ）の利用可能な処理リソースを監視および推定し、必要に応じて計算タスクを実行する現在の計算エンティティから他の計算エンティティに計算タスクを再割り当てすることができる。現在計算タスクを実行している一時的車両仮想サーバが消失する前に、および／または現在の計算エンティティの利用可能な処理リソースが計算タスクを完了するのに不十分になる前に、計算タスクが再割り当てされるため、本技術は、コンピューティングシステムの複数の計算エンティティに計算タスクを重複して割り当てることを回避することができる。その結果、タスク失敗のリスクを高めたりまたはサービス品質を低下させたりすることなく、コンピューティングシステムによって提供される処理リソースの利用が最適化されることができる。さらなる例として、本技術は、通信タスクの通信プロファイルに基づいて計算エンティティに計算タスクを割り当てることができる。したがって、各計算タスクは、通信タスクの関連データを受信および配信するために必要な通信リソースを最小限に抑え、および／またはデータ送信に金銭的コストを招く通信ネットワーク上の通信帯域幅を最小限に抑える計算エンティティによって実行されることができる。
【００１２】
前述の利点は、例として提供されており、本技術は、他の多くの利点および利益を有することができることを理解されたい。
【００１３】
本開示は、添付図面の図において限定ではなく例として示されており、同様の参照符号は、同様の要素を指すために使用されている。
【図面の簡単な説明】
【００１４】
【図１Ａ】図１Ａは、車両コンテキストにおいて計算タスクを管理するための例示的なシステムのブロック図である。
【００１５】
【図１Ｂ】図１Ｂは、車両コンテキストにおいて計算タスクを管理するための例示的なシステムの構造図である。
【００１６】
【図２Ａ】図２Ａは、例示的なタスク管理アプリケーションのブロック図である。
【００１７】
【図２Ｂ】図２Ｂは、様々な計算エンティティにおいて実装される例示的なタスク管理アプリケーションの構造図である。
【００１８】
【図３】図３は、計算タスクを割り当てるための例示的な方法のフローチャートである。
【００１９】
【図４】図４は、計算タスクの実行を行うために一時的車両仮想サーバを決定するための例示的な方法のフローチャートである。
【００２０】
【図５】図５は、計算タスクの実行を行うために一時的車両仮想サーバを確立するための例示的な方法のフローチャートである。
【００２１】
【図６Ａ】図６Ａおよび図６Ｂは、計算タスクを再割り当てするための第１の例示的な方法のフローチャートを示す。
【図６Ｂ】図６Ａおよび図６Ｂは、計算タスクを再割り当てするための第１の例示的な方法のフローチャートを示す。
【００２２】
【図７】図７は、計算タスクを再割り当てするための第２の例示的な方法のフローチャートを示す。
【００２３】
【図８】図８は、計算タスクの実行を監視するための例示的な方法のフローチャートである。
【００２４】
【図９】図９は、計算タスクを再割り当てするかどうかを決定するための例示的な方法のフローチャートである。
【発明を実施するための形態】
【００２５】
本明細書で説明する技術は、計算車両タスクを効率的に管理することができる。以下でさらに詳細に説明するように、本技術は、第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定し、第１のタイムスタンプにおける第１のＴＶＶＳに含まれる第１の参加車両の車両移動データを受信し、第１の参加車両の車両移動データに基づいて、第１のタイムスタンプに続く第２のタイムスタンプにおける第１のＴＶＶＳの利用可能な処理リソースを推定することができる方法、および、対応するシステムなどの様々な態様を含むが、これらに限定されない。第１のタイムスタンプにおける第１のＴＶＶＳの利用可能な処理リソースと、第２のタイムスタンプにおける第１のＴＶＶＳの推定された利用可能な処理リソースとを使用して、第１のＴＶＶＳ上で処理リソース要件を有する計算タスクを実行すべきかどうかを判定し、それに応じて計算タスクを第１のＴＶＶＳに割り当てることができる。計算タスクの実行中に、計算タスクは、必要に応じてタスク実行を継続するために、第２のＴＶＶＳまたは固定の計算サーバに再割り当てされてもよい。
【００２６】
図１Ａは、計算タスクを管理するための例示的なシステム１００のブロック図である。図示のように、システム１００は、１つまたは複数の集中サーバ１０１ａ…１０１ｎ、１つまたは複数のローカルサーバ１０７ａ…１０７ｎ、１つまたは複数の車両プラットフォーム１０３ａ…１０３ｎ、および１つまたは複数の一時的車両仮想サーバ（ＴＶＶＳ）１０９ａ…１０９ｎを含む。図示したように、各ＴＶＶＳ１０９は互いに接続されて車両クラスタを形成する１つまたは複数の車両プラットフォーム１０３を備えることができ、車両クラスタ内の車両プラットフォーム１０３は、一時的車両仮想サーバ（ＴＶＶＳ）１０９の機能を協働して実行するために、それらの利用可能な処理リソースに寄与することができる。集中サーバ１０１およびローカルサーバ１０７は、固定の計算サーバであってもよく、ネットワーク１０５を介して電子通信のために結合されてもよい。ＴＶＶＳ１０９は、信号線１５６によって示したようにネットワーク１０５に通信可能に結合され、信号線１６０によって示したようにローカルサーバ１０７に通信可能に結合され、信号線１７０によって示したように他のＴＶＶＳ１０９に通信可能に結合されうる。車両プラットフォーム１０３は、信号線１６４によって示したようにＴＶＶＳ１０９に通信可能に結合され、信号線１６８によって示したようにローカルサーバ１０７に通信可能に結合され、信号線１６６によって、ネットワーク１０５を介してシステム１００の他の構成要素に通信可能に結合され得る。
【００２７】
図１Ａおよび残りの図において、参照番号、例えば「１０３ａ」の後の文字は、その特定の参照番号を有する要素への参照を表す。例えば、「１０３」のような、後続の文字のないテキスト内の参照数は、その参照数を有する要素のインスタンスに対する一般的な参照を表す。図１Ａに示されるシステム１００は、例として提供され、システム１００および／または本開示によって企図されるさらなるシステムは、さらなるおよび／またはより少ない構成要素を含んでもよく、構成要素を組み合わせてもよく、および／または構成要素のうちの１つ以上をさらなる構成要素に分割してもよいことを理解されるべきである。例えば、システム１００は、任意の数の車両プラットフォーム１０３、ＴＶＶＳ１０９、ネットワーク１０５、ローカルサーバ１０７、または集中サーバ１０１を含むことができる。
【００２８】
ネットワーク１０５は、従来のタイプ、有線および／または無線であってもよく、スター構成、トークンリング構成、または他の構成を含む多数の異なる構成を有する可能性がある。例えば、ネットワーク１０５は１つまたは複数のローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク(ＷＡＮ)(例えば、インターネット）、パーソナルエ
リアネットワーク（ＰＡＮ）、パブリックネットワーク、プライベートネットワーク、仮想プライベートネットワーク、ピアツーピアネットワーク、近距離ネットワーク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣなど）、および／または複数のデバイスが通信することができる他の相互接続されたデータ経路を含むことができる。
【００２９】
また、ネットワーク１０５は様々な異なる通信プロトコルでデータを送信するために、電気通信ネットワークの一部に結合されるか、またはその一部を含むことができる。プロトコルの例には伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、伝送制御プロトコル（ＴＣＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、セキュアハイパーテキスト転送プロトコル（ＨＴＴＰＳ）、ＨＴＴＰ上の動的適応ストリーミング（ＤＡＳＨ）、リアルタイムストリーミングプロトコル（ＲＴＳＰ）、リアルタイムトランスポートプロトコル（ＲＴＣＰ）、リアルタイムトランスポート制御プロトコル（ＲＴＣＰ）、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、ファイル転送プロトコル（ＦＴＰ）、ＷｅｂＳｏｃｋｅｔ(ＷＳ)、ワイヤレスアクセスプロトコル（ＷＡＰ）、様々なメッセージングプロトコル（ＳＭＳ、ＭＭＳ、ＸＭＳ、ＩＭＡＰ、ＳＭＴＰ、ＰＯＰ、ＷｅｂＤＡＶなど）、または他の適切なプロトコルが含まれるが、これらに限定されない。いくつかの実施形態では、ネットワーク１０５がＤＳＲＣ(専用短距離通信）、ＷＡＶＥ、８０２．１１ｐ、３Ｇ、４Ｇ、５Ｇ＋
ネットワーク、ＷｉＦｉ（登録商標）、衛星ネットワーク、車両−インフラ間／インフラ−車両間（Ｖ２Ｉ／Ｉ２Ｖ）ネットワーク、車両−インフラ間／インフラ−クラウド間（Ｖ２Ｉ／Ｉ２Ｃ）ネットワーク、車両−インフラ間／車両−モノ間（Ｖ２Ｉ／Ｖ２Ｘ）ネットワーク、車両間（Ｖ２Ｖ）ネットワーク、セルラネットワーク、または任意の他のワイヤレスネットワークなどのコネクションを使用するワイヤレスネットワークである。いくつかの実施形態では、ネットワーク１０５が、ネットワーク１０５を介した各データ伝送のための金銭的コストを必要とすることがある。図１Ａは集中サーバ１０１、ローカルサーバ１０７、および／またはＴＶＶＳ１０９に結合するネットワーク１０５の単一のブロックを示すが、ネットワーク１０５は実際には上述のように、任意の数のネットワークの組合せを含むことができることを理解されたい。
【００３０】
車両プラットフォーム１０３は、センサ１１３と、プロセッサ１１５と、記憶１１７と、通信ユニット１１９と、車両データストア１２３と、タスク管理アプリケーション１２０とを有する計算デバイス１５２を含む。計算デバイス１５２の例は、１つまたは複数のセンサ１１３、アクチュエータ、モチベータなどの車両プラットフォーム１０３の他の構成要素に結合された、仮想または物理コンピュータプロセッサ、制御ユニット、マイクロコントローラなどを含むことができる。いくつかの実施形態では、車両プラットフォーム１０３は、１つの地点から別の地点へ移動することができる。車両プラットフォーム１０３の非限定的な例には、車両、自動車、バス、ボート、飛行機、バイオニックインプラント、ロボット、または非一時的なコンピュータエレクトロニクス（例えば、プロセッサ、メモリ、または非一時的なコンピュータエレクトロニクスの任意の組み合わせ）を有する任意の他のプラットフォームが含まれる。車両プラットフォーム１０３は、本明細書では「車両」とも呼ばれる。
【００３１】
いくつかの実施形態では、車両プラットフォーム１０３が道路に沿って移動する際に、互いにデータを送受信するために、車両間（Ｖ２Ｖ）接続（例えば、ＤＳＲＣ、ＷｉＦｉ（登録商標）など）を介して互いに通信可能に結合されてもよい。一例として、図１Ｂは、システム１００の様々な構成要素間の複数の通信接続を有するシステム１００の構造図
１９０を示す。図１Ｂに示すように、各車両プラットフォーム１０３は、近くの車両プラットフォーム１０３（例えば、信号線１７２など）とのＶ２Ｖ接続を確立して、一時的車両仮想サーバ（ＴＶＶＳ）１０９の機能を実行する車両クラスタを形成することができる。いくつかの実施形態では、ＴＶＶＳ１０９がＶ２Ｖ接続（例えば、信号線１６４など）を介して他の車両プラットフォーム１０３との間でデータを送受信することができる。ＴＶＶＳ１０９は、Ｖ２Ｖ接続（例えば、信号線１７０など）を介して他のＴＶＶＳ１０９との間でデータを送受信することもできる。車両プラットフォーム１０３とＴＶＶＳ１０９との間のデータ伝送のためのＶ２Ｖ接続１６４およびＶ２Ｖ接続１７０の実装は、これらのエンティティとの間でデータを送受信するための伝送待ち時間および金銭的コストを大幅に低減することができるので、特に有利である。
【００３２】
いくつかの実施形態では、車両プラットフォーム１０３が車両対インフラストラクチャ（Ｖ２Ｉ）接続（例えば、信号線１６８）を介してローカルサーバ１０７との間でデータを送受信するために、ローカルサーバ１０７に通信可能に結合されてもよい。具体的には、いくつかの実施形態ではローカルサーバ１０７が、車両プラットフォーム１０３が移動する道路セグメントの路側に位置する計算インフラストラクチャとすることができる。したがって、車両プラットフォーム１０３はローカルサーバ１０７との間でデータを送受信するために、ローカルサーバ１０７とのＶ２Ｉ接続１６８を確立することができる。いくつかの実施形態では、車両プラットフォーム１０３はまた、ネットワーク１０５を介してシステム１００の他の構成要素との間でデータを送受信するために、ネットワーク１０５に通信可能に結合されてもよい。例えば、車両プラットフォーム１０３はネットワーク接続（例えば、信号線１６６）を介して、ネットワーク１０５経由で、集中サーバ１０１、ローカルサーバ１０７、ＴＶＶＳ１０９、他の車両プラットフォーム１０３等との間でデータを送受信することができる。本明細書の他の箇所で論じられるように、いくつかの実施形態では、ネットワーク接続１６６を通じたネットワーク１０５を介するデータ伝送が金銭的コストを必要とすることがある。
【００３３】
プロセッサ１１５は様々な入力／出力、論理、および／または数学的演算を実行することによって、ソフトウェア命令（たとえば、タスク）を実行することができる。プロセッサ１１５は、データ信号を処理するための様々な計算アーキテクチャを有することができる。プロセッサ１１５は、物理的および／または仮想的であってもよく、単一のコアまたは複数の処理ユニットおよび／またはコアを含んでもよい。車両プラットフォーム１０３のコンテキストでは、プロセッサが自動車などの車両プラットフォーム１０３に実装される電子制御ユニット（ＥＣＵ）とすることができるが、他のタイプのプラットフォームも可能であり、企図される。ＥＣＵはセンサデータ（例えば、全地球測位システム（ＧＰＳ）データ）、リソースデータ（例えば、処理能力データ）などを受信し、タスク管理アプリケーション１２０によるアクセスおよび／または検索のために車両データストア１２３に車両動作データとして記憶させることができる。いくつかの実装形態では、プロセッサ１１５が電子表示信号を生成し、入力／出力デバイスに提供し、画像の表示をサポートし、画像をキャプチャし、送信し、様々なタイプのタスク実行監視およびリソース推定などを含む複雑なタスクを実行することが可能である。いくつかの実装形態では、プロセッサ１１５がバス１５４を介してメモリ１１７に結合されて、そこからデータおよび命令にアクセスし、そこにデータを記憶することができる。バス１５４はプロセッサ１１５を、例えば、センサ１１３、記憶１１７、通信ユニット１１９、および／または車両データストア１２３を含む車両プラットフォーム１０３の他の構成要素に結合することができる。
【００３４】
タスク管理アプリケーション１２０は、車両コンテキストにおける計算タスクを管理するために実行可能なコンピュータロジックである。図１Ａに示すように、集中サーバ１０１はインスタンス１２０ａを含むことができ、ローカルサーバ１０７はインスタンス１２０ｂを含むことができ、車両プラットフォーム１０３ａ…１０３ｎは、インスタンス１２
０ｃ…１２０ｎを含むことができ、一時的車両仮想サーバ（ＴＶＶＳ）１０９は、タスク管理アプリケーション１２０の仮想インスタンス１２０ｐ（図示せず）を含むことができる。いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９に含まれる仮想インスタンス１２０ｐが集中的に実装されてもよい。例えば、仮想インスタンス１２０ｐは、一時的車両仮想サーバ（ＴＶＶＳ）１０９を形成する車両クラスタに含まれる車両プラットフォーム１０３のインスタンス１２０であってもよい。いくつかの実施形態では、仮想インスタンス１２０ｐが分散方式で実装されてもよい。例えば、車両クラスタの複数の車両プラットフォーム１０３に含まれるインスタンス１２０は、仮想インスタンス１２０ｐの機能を協働して実行することができる。いくつかの実施形態では、各インスタンス１２０ａ…１２０ｎおよび１２０ｐが、図２Ａに示すタスク管理アプリケーション１２０の１つまたは複数のコンポーネントを備えることができ、インスタンスが存在する場所に応じて、本明細書で説明する機能を完全にまたは部分的に実行するように構成することができる。
【００３５】
いくつかの実施形態では、タスク管理アプリケーション１２０がフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）などのハードウェア、および／またはハードウェアとソフトウェアの組合せなどを使用して、１つまたは複数のコンピュータデバイスの１つまたは複数のプロセッサによって実行可能なソフトウェアを使用して実装され得るが、これらに限定されない。タスク管理アプリケーション１２０は車両データを受信して処理し、メモリ１１７、通信ユニット１１９、車両データストア１２３などのバス１５４を介して車両プラットフォーム１０３の他の要素と通信することができる。タスク管理アプリケーション１２０は、少なくとも図１Ｂ〜図９を参照して以下に詳細に説明される。
【００３６】
メモリ１１７は、非一時的なコンピュータ利用可能（例えば、可読可能、書込み可能など）媒体を含み、これらは、プロセッサ１１５によって、またはそれに関連して処理するために、指示、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを含む、貯蔵、通信、伝播または搬送することができる、任意の有形の非一時的な装置または装置であり得る。例えば、メモリ１１７は、タスク管理アプリケーション１２０を記憶することができる。いくつかの実装形態では、メモリ（複数可）１１７が揮発性メモリおよび不揮発性メモリのうちの１つまたは複数を含むことができる。例えば、メモリ１１７はダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、ディスクリートメモリデバイス（例えば、ＰＲＯＭ、ＦＰＲＯＭ、ＲＯＭ）、ハードディスクドライブ、光ディスクドライブ（ＣＤ、ＤＶＤ、ブルーレイTMなど）のうちの１つ以上を含み得るが、これらに限定されない。メモリ（複数可）１１７は、単一のデバイスであってもよく、または複数のタイプのデバイスおよび構成を含んでもよいことを理解されたい。
【００３７】
通信ユニット１１９は（例えば、Ｖ２Ｖ接続１６４を介して、Ｖ２Ｉ接続１６８を介して、および／またはネットワーク接続１６６を介してネットワーク１０５を介して）通信可能に結合された他の計算デバイスにデータを送信し、他の計算デバイスからデータを受信する。通信ユニット１１９は、有線および／または無線接続を利用してデータを送受信するための１つまたは複数の有線インターフェースおよび／または無線トランシーバを含むことができる。通信ユニット１１９は、上述したような標準的な通信方法を利用して、他の計算ノードとデータを交換することができる。
【００３８】
センサ１１３は、車両プラットフォーム１０３に適した任意のタイプのセンサを含む。センサ１１３は、車両プラットフォーム１０３および／またはその内部および外部環境の特性を判定するのに適した任意のタイプの信号データを収集するように構成することができる。センサ１１３の非限定的な例には、様々な光学センサ（ＣＣＤ、ＣＭＯＳ、２Ｄ、
３Ｄ、光検出および測距（ＬＩＤＡＲ）、カメラなど）、音声センサ、動き検出センサ、気圧計、高度計、熱電対、湿度センサ、赤外線（ＩＲ）センサ、レーダセンサ、他の光センサ、ジャイロスコープ、加速度計、速度計、ステアリングセンサ、ブレーキセンサ、スイッチ、車両インジケータセンサ、フロントガラスワイパセンサ、ジオロケーションセンサ（例えば、ＧＰＳセンサ）、方位センサ、ワイヤレストランシーバ（例えば、セルラ、ＷｉＦｉ（登録商標）、近距離など）、ソナーセンサ、超音波センサ、タッチセンサ、近接センサ、距離センサなどが含まれる。いくつかの実施形態では、１つまたは複数のセンサ１１３が車両プラットフォーム１０３を取り囲む状況コンテキストを捉えるために、車両プラットフォーム１０３の前側、後側、右側、および／または左側に設けられた外部に面するセンサを含むことができる。いくつかの実施形態では、車両プラットフォーム１０３が相互に接続して一時的車両仮想サーバ（ＴＶＶＳ）１０９を形成してもよい。よって、ＴＶＶＳ１０９はまた、これらの複数の車両プラットフォーム１０３のセンサ１１３によって提供される感知能力を有することもできる。
【００３９】
車両データストア１２３は、様々なタイプのデータを記憶する非一時的記憶媒体を含む。例えば、車両データストア１２３は、コントローラエリアネットワーク（ＣＡＮ）バスなどのバスを使用して、所与の車両プラットフォーム１０３の異なる構成要素間で通信される車両データを記憶することができる。いくつかの実施形態では、車両データが車両プラットフォーム１０３の異なる構成要素に結合された複数のセンサ１１３から収集された車両動作データを含むことができ、これらの構成要素の動作状態、例えば、加速、減速度、車輪速度（毎分回転数−ＲＰＭ）、操舵角、制動力などを監視する。いくつかの実施形態では、車両データが車両プラットフォーム１０３を一意に識別する車両識別子（ＩＤ）（例えば、車両識別番号（ＶＩＮ））、および／または、参加車両である車両プラットフォーム１０３を含む一時的車両仮想サーバ（ＴＶＶＳ）１０９を一意に識別する一時的車両仮想サーバＩＤを含むことができる。いくつかの実施形態では、車両データはまた、車両プラットフォーム１０３の車両移動を記述する車両移動データを含むことができる。いくつかの実施形態では、車両移動データは、車両速度、車両プラットフォーム１０３の地理的位置を示す車両地理的位置（例えば、ＧＰＳ座標）、目的地に到達するために車両プラットフォーム１０３が現在たどっている車両経路などを含むことができる。他のタイプの車両移動データも可能であり、企図される。
【００４０】
いくつかの実施形態では、車両データストア１２３は、車両プラットフォーム１０３のリソース可用性データを記憶することができる。いくつかの実施形態では、車両プラットフォーム１０３のリソース可用性データは、複数のリソース可用性エントリを含むことができ、各リソース可用性エントリは特定のタイムスタンプにおける車両プラットフォーム１０３の利用可能な処理リソースを記述することができる。具体的には、リソース可用性エントリが、特定のタイムスタンプにおける、車両プラットフォーム１０３で使用可能な様々なリソースコンポーネントの量を示すことができる。いくつかの実施形態では、リソース可用性エントリは、車両プラットフォーム１０３の利用可能な計算リソースの量（例えば、利用可能な中央処理装置（ＣＰＵ）サイクルの数）、利用可能なデータ記憶リソースの量（例えば、空き記憶容量）、利用可能なメモリリソースの量（例えば、空きメモリ空間の容量）、利用可能な通信リソースの量（例えば、占有されていない通信帯域幅）、利用可能なセンサリソースの量（例えば、センサ１１３によって取り込まれたセンサデータの量）などを含むことができる。一例として、第１のタイムスタンプt = t 1に関連す
るリソース可用性エントリは、第１のタイムスタンプt = t 1において、車両プラットフ
ォーム１０３が１ＧＨｚの利用可能な計算リソース（例えば、１０9のＣＰＵサイクル）
、１．５ＧＢの利用可能なデータストレージリソース、５００ＭＢの利用可能なメモリリソース、２Ｍｂｐｓの利用可能な通信リソース、および第１のタイムスタンプt = t 1に
おいて車両プラットフォーム１０３のイメージセンサ１１３によって取り込まれた４枚の道路シーン画像を含むセンサリソースを有することを示すことができる。
【００４１】
いくつかの実施形態では、車両データストア１２３が、データを記憶し、データへのアクセスを提供するためのデータ記憶システム（例えば、標準データまたはデータベース管理システム）の一部であってもよい。車両データストア１２３に記憶される他のタイプのデータも可能であり、企図される。
【００４２】
一時的車両仮想サーバ（ＴＶＶＳ）１０９は、１つまたは複数の車両プラットフォーム１０３によって形成される仮想的な車両サーバである。いくつかの実施形態では、道路セグメント上で互いに対して近接して位置する車両プラットフォーム１０３が、Ｖ２Ｖ接続１７２を介して互いに接続して車両クラスタを生成することができる。車両クラスタに含まれる車両プラットフォーム１０３は一時的車両仮想サーバ（ＴＶＶＳ）１０９の機能を協働して実行するために、利用可能な処理リソース（例えば、処理容量、データ記憶空間、メモリ空間、通信帯域幅など）をリソースプールに寄与することができる。いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９の機能を実行する車両クラスタに含まれる車両プラットフォーム１０３を、一時的車両仮想サーバ（ＴＶＶＳ）１０９の「参加車両」と呼ぶことができる。いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両が道路セグメントに沿って移動する際に、一時的車両仮想サーバ（ＴＶＶＳ）１０９は、道路セグメント上の１つの地点から別の地点に移動することができる。
【００４３】
いくつかの実施形態では、車両プラットフォーム１０３が一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両であるために、一時的車両仮想サーバ（ＴＶＶＳ）１０９の他の参加車両に対する車両プラットフォーム１０３の相対距離が所定の相対距離閾値（例えば、１５０ｍ）を満たす必要があり得る。車両プラットフォーム１０３が道路セグメントに沿って移動するにつれて、そのような相対距離は経時的に変化することがあり、車両プラットフォーム１０３は、一時的車両仮想サーバ（ＴＶＶＳ）１０９の車両クラスタに動的に参加するか、またはそこから離れることがある。各参加車両は一時的車両仮想サーバ（ＴＶＶＳ）１０９の車両クラスタに動的に参加し、離脱することができるので、これらの参加車両によって寄与される一時的車両仮想サーバ（ＴＶＶＳ）１０９の利用可能な処理リソースは、それらの車両の移動に従って著しく変化することができる。なお、一時的車両仮想サーバ（ＴＶＶＳ)１０９の存在は一時的であってもよい。
【００４４】
図１Ｂに示すように、ＴＶＶＳ１０９は、Ｖ２Ｖ接続１６４を介して他の車両プラットフォーム１０３との間でデータを送受信するために、他の車両プラットフォーム１０３と通信可能に結合することができる。ＴＶＶＳ１０９はまた、Ｖ２Ｖ接続１７０を介して他のＴＶＶＳ１０９との間でデータを送受信するために、他のＴＶＶＳ１０９と通信可能に結合されてもよい。いくつかの実施形態では、ＴＶＶＳ１０９がＶ２Ｉ接続（例えば、信号線１６０）を介してローカルサーバ１０７との間でデータを送受信するために、ローカルサーバ１０７と通信可能に結合されてもよい。具体的には、いくつかの実施形態では、ローカルサーバ１０７を、一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両が移動する道路セグメントの路側に位置する計算インフラストラクチャとすることができる。したがって、ＴＶＶＳ１０９はローカルサーバ１０７との間でデータを送受信するために、ローカルサーバ１０７とのＶ２Ｉ接続１６０を確立することができる。いくつかの実施形態では、ＴＶＶＳ１０９はまた、ネットワーク１０５を介してシステム１００の他の構成要素との間でデータを送受信するために、ネットワーク１０５に通信可能に結合されてもよい。例えば、ＴＶＶＳ１０９はネットワーク接続（例えば、信号線１５６）を介して、ネットワーク１０５を介して、集中サーバ１０１、ローカルサーバ１０７、他のＴＶＶＳ１０９などとの間でデータを送受信することができる。本明細書の他の箇所で論じられるように、いくつかの実施形態では、ネットワーク接続１５６を介したネットワーク１０５を介したデータ伝送が金銭的コストを必要とすることがある。
【００４５】
いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９は、仮想プロセッサ、仮想メモリ、および一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両によって寄与された利用可能な処理リソースから仮想化された仮想通信ユニットを含むことができる。いくつかの実施形態では、一時的車両仮想サーバ１０９は、タスク管理アプリケーション１２０の仮想インスタンス１２０ｐおよび仮想データストア１２８（図示せず）を含むことができる。いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両が仮想データストア１２８を形成するために、その車両データストア１２３のデータ記憶リソースに寄与することができる。したがって、仮想データストア１２８は、タスク管理アプリケーション１２０によるアクセスおよび／または取り出しのための様々なタイプのデータを記憶する非一時的記憶媒体を含むことができる。
【００４６】
いくつかの実施形態では、仮想データストア１２８は、ＴＶＶＳ１０９の固有の一時的車両仮想サーバＩＤ、ＴＶＶＳ１０９の地理的位置（例えば、ＧＰＳ座標）を示す地理的位置、および一時的車両仮想サーバ（ＴＶＶＳ）１０９を形成する車両クラスタを記述する車両クラスタデータを記憶することができる。いくつかの実施形態では、ＴＶＶＳ１０９の地理的位置を、車両クラスタの先頭に立ち、かつ／または一時的車両仮想サーバ（ＴＶＶＳ）１０９の確立を調整する先頭車両プラットフォーム１０３の地理的位置とすることができる。いくつかの実施形態では、車両クラスタデータが１つまたは複数の参加車両エントリを含むことができ、各参加車両エントリは一時的車両仮想サーバ（ＴＶＶＳ）１０９の車両クラスタ内の参加車両を記述することができる。いくつかの実施形態では、参加車両エントリは、参加車両の車両ＩＤ、参加車両の車両移動データ、参加車両が車両クラスタに参加した参加開始時刻、参加車両が車両クラスタを離脱した、または離脱する可能性がある参加終了時刻などを含むことができる。本明細書の他の箇所で説明するように、参加車両の車両移動データは参加車両の車両速度、車両地理位置（例えば、ＧＰＳ座標）、車両経路などを含むことができる。
【００４７】
いくつかの実施形態では、仮想データストア１２８は、一時的車両仮想サーバ（ＴＶＶＳ）１０９のリソースプールを記述するリソースデータを記憶することができる。いくつかの実施形態では、リソースデータがＴＶＶＳ１０９に関連付けられたリソース可用性データ、リソースマッピングデータ、リソース割り振りデータなどを含むことができる。いくつかの実施形態では、ＴＶＶＳ１０９のリソース可用性データは、複数のリソース可用性エントリを含むことができ、各リソース可用性エントリは特定のタイムスタンプにおけるＴＶＶＳ１０９の利用可能な処理リソースを記述することができる。具体的には、リソース可用性エントリが、特定のタイムスタンプにおける、一時的車両仮想サーバ（ＴＶＶＳ）１０９の、各参加車両によって寄与された利用可能な処理リソースの量と、特定のタイムスタンプにおける、ＴＶＶＳ１０９のリソースプール内の利用可能な処理リソースの総量とを示すことができる。
【００４８】
いくつかの実施形態では、一時的車両仮想サーバ（ＴＶＶＳ）１０９の参加車両によって寄与される利用可能な処理リソースが、複数の物理リソースユニットを含むことができる。これらの物理リソースユニットは、仮想化技法を利用して、ＴＶＶＳ１０９の複数の仮想リソースユニットに編成および／または集約することができる。いくつかの実施形態では、ＴＶＶＳ１０９のリソースプール内の各仮想リソースユニットについて、ＴＶＶＳ１０９のリソースマッピングデータは、仮想リソースユニットを１つまたは複数の参加車両の１つまたは複数の対応する物理リソースユニットにマッピングすることができる。いくつかの実施形態では、ＴＶＶＳ１０９のリソースプール内の仮想リソースユニットが必要に応じてタスク実行を行うために様々な計算タスクに割り当てられてもよい。いくつかの実施形態では、仮想リソースユニットが計算タスクに割り当てられる場合、ＴＶＶＳ１０９のリソース割り当てデータは仮想リソースユニットが割り当てられる計算タスクを指
定することができる。いくつかの実施形態では、ＴＶＶＳ１０９のリソースデータが他のタイプのリソースマッピングデータおよびリソース割り当てデータを含むことができる。
【００４９】
いくつかの実施形態では、仮想データストア１２８が、ＴＶＶＳ１０９のタスク実行リストを記憶することができる。タスク実行リストは１つまたは複数の計算タスクエントリを含むことができ、各計算タスクエントリは、タスク実行を行うためにＴＶＶＳ１０９に割り当てられた計算タスクを記述することができる。いくつかの実施形態では、計算タスクがシステム１００の計算エンティティ（例えば、集中サーバ１０１、ローカルサーバ１０７、ＴＶＶＳ１０９、車両プラットフォーム１０３など）に割り当てられ、かつ／または、システム１００の計算エンティティによって実行される処理作業負荷の単位とすることができる。計算タスクを実行する計算エンティティは、計算タスクをホストする計算エンティティと呼ぶことができる。計算タスクの実行は、計算タスクのタスク入力データを検索、および／または、受信することと、計算タスクのタスク出力データを生成するためにタスク入力データを処理することと、計算タスクのタスク出力データを１つまたは複数の要求エンティティに送信することと、を含むことができる。いくつかの実施形態では、計算タスクの実行は、１つまたは複数の処理動作を含むことができる。処理動作の非限定的な例として、データ感知動作、データ処理動作、データ記憶動作、データ通信動作などが含まれるが、これらに限定されない。いくつかの実施形態では、各処理動作自体を計算タスクと見なすことができ、異なる計算エンティティによって実行することができる。他のタイプの処理動作も可能であり、企図される。
【００５０】
一例として、ＴＶＶＳ１０９によって実行される計算タスクの実行は、道路セグメント上に位置する第１の車両プラットフォーム１０３によって取り込まれた道路シーン画像を受信することと、道路セグメントの動的マップを生成するために道路シーン画像を処理することと、道路セグメントの動的マップを、近接する地理的領域（例えば、道路セグメントから半径２マイル内の地理的領域）内に位置する第２の車両プラットフォーム１０３に送信することと、他のエンティティの要求に応じて後で取り出すために、仮想データストア１２８内に道路セグメントの動的マップを格納することと、を含むことができる。この例では、計算タスクの実行が、第１の車両プラットフォーム１０３によって実行されるデータ感知動作およびデータ通信動作、ＴＶＶＳ１０９によって実行されるデータ処理動作、データ記憶動作、およびデータ通信動作、ならびに／または第２の車両プラットフォーム１０３によって実行されるデータ通信動作を含むことができる。
【００５１】
上述のように、仮想データストア１２８に格納されたＴＶＶＳ１０９のタスク実行リストは１つまたは複数の計算タスクエントリを含むことができ、各計算タスクエントリは、計算タスクを記述する様々なタイプのタスクデータを含むことができる。いくつかの実施形態では、計算タスクのタスクデータが計算タスクの複数のプロパティを指定するタスクメタデータを含むことができる。タスクメタデータの非限定的な例は、計算タスクの一意のタスクＩＤ、計算タスクが分類されるタスクカテゴリ（例えば、「画像処理タスク」のタスクカテゴリ、「マップ生成タスク」のタスクカテゴリなど）、計算タスクの優先度レベルを示すタスク優先度メトリック（例えば、０．２のタスク優先度メトリック、０．９のタスク優先度メトリックなど）、計算タスクが要求される要求タイムスタンプを含むが、これらに限定されない。いくつかの実施形態では、タスクメタデータが計算タスクの現在の実行ステータス（例えば、「前処理」のタスク実行ステータス、「実行完了」のタスク実行ステータスなど）を示すタスク実行ステータス、計算タスクが実行された時間量（例えば、００：０３：３０）を示すタスク実行時間、計算タスクを完了するのに必要な追加時間量を示す残りの実行時間、計算タスクのタスク完了パーセンテージ（例えば、８７％）および／またはタスク実行速度（例えば、１１％毎秒）などを含むこともできる。
【００５２】
いくつかの実施形態では、計算タスクのタスクメタデータは、計算タスクのパフォーマ
ンス要件を含むことができる。パフォーマンス要件は、計算タスクの実行が満たす必要があるパフォーマンス要件を記述することができる。例えば、計算タスクのパフォーマンス要件は、計算タスクの実行時間閾値（例えば、００：０５：３０）、要求エンティティが計算タスクのタスク出力データを受信する必要があるターゲット配信タイムスタンプ（例えば、２０１８年１１月０５日、１４：００：００）、計算タスクのタスク入力データに関連する通信待ち時間閾値（例えば、２秒）、計算タスクのタスク出力データに関連する通信待ち時間閾値（例えば、４秒）などを示すタスク持続時間を指定することができる。他のタイプの性能要件も可能であり、企図される。
【００５３】
いくつかの実施形態では、計算タスクのタスクメタデータは、計算タスクの実行を行うための様々なリソースコンポーネントの要件を記述する処理リソース要件を含むことができる。いくつかの実施形態では、処理リソース要件は、計算プロファイルおよび通信プロファイルを含むことができる。いくつかの実施形態では、計算タスクの計算プロファイルが、計算タスクの実行を行うために必要な計算リソースの量、データ記憶リソースの量、メモリリソースの量、センシングリソースの量などを指定することができる。
【００５４】
いくつかの実施形態では、計算タスクの実行を行うために必要とされる通信リソースの量が、計算タスクが割り当てられる計算エンティティの地理的位置に依存し得るので、計算タスクの通信プロファイルはそのような通信リソースの量（例えば、必要な通信帯域幅）を計算するために使用され得る様々な要因を指定し得る。いくつかの実施形態では、計算タスクの通信プロファイルは、計算タスクに関連するタスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク入力データの要求頻度、タスク出力データの要求頻度などを指定することができる。いくつかの実施形態では、通信プロファイルが、計算タスクのタスク入力データに関連付けられた地理的位置と、計算タスクのタスク出力データに関連付けられた地理的位置とを指定することもできる。いくつかの実施形態では、タスク入力データに関連する地理的位置が、計算タスクのタスク入力データが受信される計算エンティティの地理的位置とすることができ、タスク出力データに関連する地理的位置は、計算タスクのタスク出力データが送信される計算エンティティの地理的位置とすることができる。
【００５５】
いくつかの実施形態では、計算タスクのタスクメタデータは、計算タスクの完了処理リソース要件を含むことができる。完了処理リソース要件は、実行中のチェックポイントタイムスタンプにおける、計算タスクの実行を完了するための様々なリソースコンポーネントの要件を記述することができる。いくつかの実施形態では、計算タスクの完了処理リソース要件で指定されたデータ構成要素は、計算タスクの処理リソース要件で指定されたデータ構成要素と同様であってもよく、したがって、簡潔にするために再び繰り返さない。
【００５６】
いくつかの実施形態では、計算タスクのタスクデータは、実行可能な方法で計算タスクを記述するタスク記述を含むことができる。いくつかの実施形態では、タスク記述は、計算タスクを行うために実行されるプログラムソースコード、計算タスクのタスク入力データ、タスク実行データなどを含むことができる。いくつかの実施形態では、タスク入力データが、計算タスクのタスク記述（例えば、格納されるコンテンツアイテムなど）に含まれてもよく、計算タスクをホストする計算エンティティから取り出されてもよく、計算タスクをホストする計算エンティティによって生成されてもよく、および／または、計算タスクが実行されるときにシステム１００の他のエンティティから受信されてもよい。上記の例では、道路セグメントの動的マップを生成する計算タスクがＴＶＶＳ１０９によって実行されるので、計算タスクのタスク入力データは、道路セグメント上に位置する第１の車両プラットフォーム１０３から受信された道路シーン画像と、ＴＶＶＳ１０９の参加車両によって生成された道路シーン画像との両方を含むことができる。いくつかの実施形態では、タスク実行データは、計算タスクの実行中に生成される一時データであってもよい
。例えば、タスク実行データは、タスク変数（例えば、HOG(Histogram of Oriented Gradients)特徴ベクトルなど）、計算タスクの現在の実行ステータスを記述する仮想マシンイメージなどを含むことができる。いくつかの実施形態では、タスクメタデータおよびタスク記述に加えて、タスクデータは、計算タスクの実行または実行の継続に必要な任意のタイプのデータを含むことができる。
【００５７】
いくつかの実施形態では、仮想データストア１２８は、データを格納し、データへのアクセスを提供するためのデータストレージシステム（例えば、標準データまたはデータベース管理システム）の一部であってもよい。仮想データストア１２８に記憶される他のタイプのデータも可能であり、企図される。
【００５８】
ローカルサーバ１０７は、プロセッサ、メモリ、およびネットワーク通信機能（例えば、通信ユニット）を含むハードウェアおよび／または仮想サーバを含む。いくつかの実施形態では、ローカルサーバ１０７は、システム１００の計算エンティティのための計算タスクの実行を管理および／または実行することができる。いくつかの実施形態では、ローカルサーバ１０７が、車両プラットフォーム１０３および複数のＴＶＶＳ１０９の参加車両が走行する道路セグメントを含むカバレッジエリア１９２を有することができる。これらの車両プラットフォーム１０３および／またはＴＶＶＳ１０９のこれらの参加車両は、ローカルサーバ１０７によって管理および／または実行される計算タスクを有することができる。いくつかの実施形態では、ローカルサーバ１０７が、他のローカルサーバ１０７および集中サーバ１０１のための計算タスクを管理および／または実行することもできる。いくつかの実施形態では、ローカルサーバ１０７は、道路セグメントの路側に位置する計算インフラストラクチャ（例えば、路側ユニット）として実装されてもよい。いくつかの実施形態では、ローカルサーバ１０７が、対応するカバレッジエリア１９２から所定の距離（例えば、３０ｋｍ）内に位置する固定の計算サーバとして実装されてもよい。
【００５９】
図１Ｂに示すように、ローカルサーバ１０７は、ネットワーク１０５を介してシステム１００の他の構成要素との間でデータを送受信するために、ネットワーク１０５に通信可能に結合することができる。例えば、ローカルサーバ１０７は、ネットワーク接続（例えば、信号線１６２）経由で、ネットワーク１０５を介して、集中サーバ１０１、他のローカルサーバ１０７、ＴＶＶＳ１０９、車両プラットフォーム１０３等との間でデータを送受信することができる。上述したように、ローカルサーバ１０７は、車両プラットフォーム１０３及びＴＶＶＳ１０９の参加車両が走行する道路セグメントの路側に配置された計算インフラストラクチャとして実装することができる。したがって、いくつかの実施形態では、ローカルサーバ１０７は、Ｖ２Ｉ接続１６８を介してこれらの車両プラットフォーム１０３との間でデータを送受信することができる。ローカルサーバ１０７は、Ｖ２Ｉ接続１６０を介してこれらのＴＶＶＳ１０９との間でデータを送受信することもできる。ローカルサーバ１０７と車両プラットフォーム１０３および／またはＴＶＶＳ１０９との間のデータ伝送のためのＶ２Ｉ接続１６８およびＶ２Ｖ接続１６０の実装は、これらのエンティティとの間でデータを送受信するための伝送待ち時間および金銭的コストを大幅に低減することができるので、特に有利である。いくつかの実施形態では図１Ａに示すように、ローカルサーバ１０７はタスク管理アプリケーション１２０ｂのインスタンスと、このアプリケーションによるアクセスおよび／または取り出しのための様々なタイプのデータを格納するデータストア１２６とを含むことができる。
【００６０】
いくつかの実施形態では、データストア１２６は、ローカルサーバ１０７の固有のローカルサーバＩＤ、ローカルサーバ１０７の地理的位置（例えば、ＧＰＳ座標）を示すローカルサーバ地理的位置、ローカルサーバ１０７のカバレッジエリア１９２を記述するカバレッジデータ（例えば、カバレッジ地理的位置、カバレッジ境界など）を記憶する非一時的記憶媒体を含む。いくつかの実施形態では、データストア１２６が、ローカルサーバ１
０７のリソースプールを記述するリソースデータを格納することもできる。いくつかの実施形態では、リソースデータが、複数のタイムスタンプにおけるローカルサーバ１０７の利用可能な処理リソースを記述する複数のリソース可用性エントリを含むことができる。いくつかの実施形態では、各リソース可用性エントリは、特定のタイムスタンプにおけるローカルサーバ１０７の利用可能な計算リソースの量（例えば、利用可能なＣＰＵサイクルの数）、利用可能なデータ記憶リソースの量（例えば、空き記憶容量）、利用可能なメモリリソースの量（例えば、空きメモリ空間の容量）、利用可能な通信リソースの量（例えば、占有されていない通信帯域幅）などを示すことができる。いくつかの実施形態では、データストア１２６は、ローカルサーバ１０７のタスク実行リストを格納することもできる。タスク実行リストは、タスク実行を行うためにローカルサーバ１０７に割り当てられた１つまたは複数の計算タスクを記述する１つまたは複数の計算タスクエントリを含むことができる。本明細書の他の箇所で説明するように、各計算タスクエントリは、計算タスクの様々な特性を指定するタスクメタデータと、実行可能な方法で計算タスクを記述するタスク記述とを含むことができる。
【００６１】
いくつかの実施形態では、データストア１２６は、ローカルサーバ１０７のカバレッジエリア１９２内に位置する１つまたは複数の車両プラットフォーム１０３を記述する車両情報を記憶することができる。これらの車両プラットフォーム１０３は、一時的車両仮想サーバ（ＴＶＶＳ）１０９に現在参加していない個々の車両プラットフォーム１０３とすることができる。いくつかの実施形態では、車両情報は、複数の車両エントリを含むことができ、各車両エントリは、カバレッジエリア１９２内に位置する個々の車両プラットフォーム１０３の車両ＩＤ、車両移動データ、リソース可用性データなどを含むことができる。本明細書の他の箇所で説明するように、車両プラットフォーム１０３の車両移動データは、車両プラットフォーム１０３の車両速度、車両地理位置（例えば、ＧＰＳ座標）、車両経路などを示すことができる。車両プラットフォーム１０３のリソース可用性データは、複数のタイムスタンプにおける車両プラットフォーム１０３の利用可能な計算リソースの量、利用可能なデータ記憶リソースの量、利用可能なメモリリソースの量、利用可能な通信リソースの量などを示すことができる。いくつかの実施形態では、データストア１２６は、他のローカルサーバ１０７のカバレッジエリア１９２内に位置する車両プラットフォーム１０３を記述する車両情報を格納することもできる。
【００６２】
いくつかの実施形態では、データストア１２６は、１つまたは複数の集中サーバ１０１を記述する集中サーバ情報を記憶することができる。いくつかの実施形態では、集中サーバ情報は、複数の集中サーバエントリを含むことができ、各集中サーバエントリは、集中サーバ１０１の固有の集中サーバＩＤ、集中サーバ地理的位置、リソース可用性データなどを含むことができる。集中サーバ１０１のリソース可用性データは、複数のタイムスタンプにおける集中サーバ１０１の利用可能な計算リソースの量、利用可能なデータ記憶リソースの量、利用可能なメモリリソースの量、利用可能な通信リソースの量などを示すことができる。いくつかの実施形態では、データストア１２６は、他のローカルサーバ１０７を記述するローカルサーバ情報も記憶することができる。いくつかの実施形態では、ローカルサーバ情報は、複数のローカルサーバエントリを含むことができ、各ローカルサーバエントリは、別のローカルサーバ１０７の固有のローカルサーバＩＤ、ローカルサーバジオロケーション、カバレッジデータ、リソース可用性データなどを含むことができる。別のローカルサーバ１０７のリソース可用性データは、複数のタイムスタンプにおける、別のローカルサーバ１０７の利用可能な計算リソースの量、利用可能なデータ記憶リソースの量、利用可能なメモリリソースの量、利用可能な通信リソースの量などを示すことができる。
【００６３】
いくつかの実施形態では、データストア１２６は、ローカルサーバ１０７のカバレッジエリア１９２内に位置するＴＶＶＳおよび候補ＴＶＶＳを記述する一時的車両仮想サーバ
情報（ＴＶＶＳ情報）を記憶することができる。具体的には、ローカルサーバ１０７は、１つまたは複数の既存のＴＶＶＳ１０９を含む１組のＴＶＶＳと、そのカバレッジエリア１９２内の道路セグメント上に位置する１つまたは複数の候補ＴＶＶＳを含む１組の候補ＴＶＶＳと、を管理することができる。いくつかの実施形態では、ＴＶＶＳのセット内の各ＴＶＶＳ１０９について、ＴＶＶＳ情報は、ＴＶＶＳ１０９の固有のＴＶＶＳ−ＩＤ、ＴＶＶＳ地理的位置、車両クラスタデータ、リソース可用性データなどを示すＴＶＶＳエントリを含むことができる。いくつかの実施形態ではＴＶＶＳ地理的位置は、ＴＶＶＳ１０９の地理的位置を示してもよい（例えば、ＴＶＶＳ１０９のＴＶＶＳ地理的位置は、ＴＶＶＳ１０９の確立を調整する先頭車両プラットフォーム１０３の車両地理的位置として決定されてもよい）。いくつかの実施形態では、車両クラスタデータは、ＴＶＶＳ１０９を形成する車両クラスタを記述することができる。本明細書の他の箇所で説明するように、ＴＶＶＳ１０９の車両クラスタデータは、各参加車両の車両ＩＤ、車両移動データ、参加開始時刻、参加終了時刻などを含むことができる。いくつかの実施形態では、ＴＶＶＳ１０９のリソース可用性データは、複数のタイムスタンプにおけるＴＶＶＳ１０９の利用可能な処理リソースを記述することができる。各特定のタイムスタンプについて、リソース可用性データは、ＴＶＶＳ１０９の各参加車両によって寄与された利用可能な処理リソースの量と、特定のタイムスタンプにおけるＴＶＶＳ１０９のリソースプール内の利用可能な処理リソースの総量とを示すことができる。
【００６４】
いくつかの実施形態では、候補ＴＶＶＳは、潜在的に互いに接続して新しい一時的車両仮想サーバ（ＴＶＶＳ）１０９を形成することができる候補参加車両を含むことができる。候補参加車両は、ローカルサーバ１０７のカバレッジエリア１９２内に位置する既存のＴＶＶＳ１０９の個々の車両プラットフォーム１０３および／または参加車両であってもよい。いくつかの実施形態では、候補ＴＶＶＳのセット内の各候補ＴＶＶＳについて、ＴＶＶＳ情報は、候補ＴＶＶＳ地理的位置、候補車両クラスタデータ、候補ＴＶＶＳのリソース可用性データなどを示す候補ＴＶＶＳエントリを含むことができる。いくつかの実施形態では、候補ＴＶＶＳ地理的位置は、候補ＴＶＶＳの地理的位置を示してもよい（例えば、候補ＴＶＶＳ地理的位置は、候補ＴＶＶＳに含まれる任意の候補参加車両の車両地理的位置として決定されてもよい）。いくつかの実施形態では、候補車両クラスタデータは、候補ＴＶＶＳに対応する新しいＴＶＶＳ１０９を潜在的に形成する候補車両クラスタを記述することができる。候補ＴＶＶＳの候補車両クラスタデータは、各候補参加車両の車両ＩＤ、車両移動データ等を含むことができる。いくつかの実施形態では、候補ＴＶＶＳのリソース可用性データは、候補ＴＶＶＳの利用可能な処理リソースを記述することができる。特に、リソース可用性データは、候補ＴＶＶＳの各候補参加者車両によって潜在的に寄与される利用可能な処理リソースの量と、候補ＴＶＶＳが実際に確立された場合に候補ＴＶＶＳに関連する利用可能な処理リソースの総量とを示すことができる。いくつかの実施形態では、データストア１２６はまた、他のローカルサーバ１０７のカバレッジエリア１９２内に位置するＴＶＶＳおよび候補ＴＶＶＳを記述するＴＶＶＳ情報を記憶することができる。
【００６５】
いくつかの実施形態では、データストア１２６は、システム１００の様々な計算エンティティ（例えば、集中サーバ１０１、ローカルサーバ１０７、ＴＶＶＳ１０９、車両プラットフォーム１０３など）に現在割り当てられている複数の計算タスクを記述するタスク割り当てリストを記憶することができる。いくつかの実施形態では、タスク割り当てリストは、複数の計算タスクに対応する複数のタスク割り当てエントリを含むことができ、各タスク割り当てエントリは、計算タスクの一意のタスクＩＤ、計算タスクが割り当てられる計算エンティティの一意のエンティティＩＤ（例えば、集中サーバＩＤ、ローカルサーバＩＤ、ＴＶＶＳ−ＩＤ、車両ＩＤなど）、計算タスクのタスク性能メトリックなどを含むことができる。いくつかの実施形態では、タスク割り当てエントリは、計算タスクに関連する他のタイプのタスクメタデータを含むこともできる。
【００６６】
いくつかの実施形態では、データストア１２６は、データを記憶し、データへのアクセスを提供するためのデータ記憶システム（例えば、標準データまたはデータベース管理システム）の一部であってもよい。データストア１２６に記憶される他のタイプのデータも可能であり、企図される。
【００６７】
集中サーバ１０１は、プロセッサ、メモリ、およびネットワーク通信機能（例えば、通信ユニット）を含むハードウェアおよび／または仮想サーバを含む。いくつかの実施形態では、集中サーバ１０１は、車両プラットフォーム１０３および複数のＴＶＶＳ１０９の参加車両が走行する道路から離れて配置された固定の計算サーバであってもよい。例えば、集中サーバ１０１は、データセンタに存在するクラウドサーバであってもよい。集中サーバ１０１は、信号線１５８によって反映されるように、ネットワーク１０５に通信可能に結合されてもよい。いくつかの実施形態では、集中サーバ１０１は、ネットワーク１０５を介して、システム１００の他のエンティティ、例えば、ローカルサーバ１０７、一時的車両仮想サーバ（ＴＶＶＳ）１０９、車両プラットフォーム１０３などとの間でデータを送受信することができる。いくつかの実施形態では、集中サーバ１０１は、ローカルサーバ１０７と比較してより大量の処理リソースを提供されてもよい。例えば、集中サーバ１０１は、大きな処理容量、データ記憶空間、メモリ空間、大きな通信帯域幅を有する信頼性のあるネットワーク接続などを有することができる。図１Ａに示すように、集中サーバ１０１は、タスク管理アプリケーション１２０ａのインスタンスと、このアプリケーションによるアクセスおよび／または検索のための様々なタイプのデータを格納するデータストア１２４とを含むことができる。
【００６８】
いくつかの実施形態では、データストア１２４は、集中サーバ１０１の固有の集中サーバＩＤと、集中サーバ１０１の地理的位置（例えば、ＧＰＳ座標）を示す集中サーバ地理的位置とを記憶する非一時的記憶媒体を含む。いくつかの実施形態では、データストア１２４は、集中サーバ１０１のリソースプールを記述するリソースデータと、タスク実行を行うために集中サーバ１０１に割り当てられた１つまたは複数の計算タスクを記述するタスク実行リストとを格納することもできる。いくつかの実施形態では、データストア１２４は、他の集中サーバ１０１を記述する集中サーバ情報、複数のローカルサーバ１０７を記述するローカルサーバ情報、およびこれらの複数のローカルサーバ１０７のカバレッジエリア１９２内に位置する複数の車両プラットフォーム１０３を記述する車両情報も記憶することができる。
【００６９】
いくつかの実施形態では、データストア１２４は、これらの複数のローカルサーバ１０７のカバレッジエリア１９２内に位置するＴＶＶＳおよび候補ＴＶＶＳを記述するＴＶＶＳ情報を記憶することができる。いくつかの実施形態では、データストア１２４は、システム１００の様々な計算エンティティ（例えば、集中サーバ１０１、ローカルサーバ１０７、ＴＶＶＳ１０９、車両プラットフォーム１０３など）上で現在実行されている複数の計算タスクを記述するタスク割り当てリストを格納することもできる。いくつかの実施形態では、集中サーバ１０１のデータストア１２４に格納されたデータのデータコンポーネントは、ローカルサーバ１０７のデータストア１２６に格納されたデータのデータコンポーネントと同様であってもよく、したがって、簡潔にするために再び繰り返さない。いくつかの実施形態では、データストア１２４が、データを記憶し、データへのアクセスを提供するためのデータ記憶システム（例えば、標準データまたはデータベース管理システム）の一部であってもよい。データストア１２４に記憶される他のタイプのデータも可能であり、企図される。
【００７０】
他の変形および／または組み合わせも可能であり、企図される。図１Ａおよび図１Ｂに示されるシステム１００は例示的なシステムを表すものであり、様々な異なるシステム環
境および構成が企図され、本開示の範囲内にあることを理解されたい。例えば、様々な動作および／または機能はサーバからクライアントに移動されてもよく、またはその逆であってもよく、データは単一のデータストアに統合されてもよく、または追加のデータストアにさらにセグメント化されてもよく、いくつかの実装形態は追加の、または、より少ない計算デバイス、サービス、および／またはネットワークを含んでもよく、様々な機能性クライアントまたはサーバ側を実装してもよい。さらに、システムの様々なエンティティは、単一の計算デバイスまたはシステムに統合されてもよく、または追加の計算デバイスまたはシステムなどに分割されてもよい。
【００７１】
図２Ａは、例示的なタスク管理アプリケーション１２０のブロック図である。図示されているように、タスク管理アプリケーション１２０は、メッセージプロセッサ２０２、一時的車両仮想サーバ（ＴＶＶＳ）マネージャ２０４、タスクマネージャ２０６、タスク実行部２０８、およびリソースマネージャ２１０を含むことができるが、タスク管理アプリケーション１２０は構成エンジン、トレーニングエンジン、暗号化／復号化エンジンなどの追加の構成要素を含むことができ、かつ／またはこれらの様々な構成要素を単一のエンジンに組み合わせるか、または追加のエンジンに分割することができることを理解されたい。
【００７２】
メッセージプロセッサ２０２、ＴＶＶＳマネージャ２０４、タスクマネージャ２０６、タスク実行部２０８、およびリソースマネージャ２１０は、ソフトウェア、ハードウェア、または前述のもの組合せとして実装することができる。メッセージプロセッサ２０２、ＴＶＶＳマネージャ２０４、タスクマネージャ２０６、タスク実行部２０８、およびリソースマネージャ２１０は、バス（たとえば、バス１５４）および／またはプロセッサ（たとえば、プロセッサ１１５）によって、互いに、および／またはエンティティの計算デバイスの他の構成要素（たとえば、車両プラットフォーム１０３の計算デバイス１５２）に通信可能に結合され得る。いくつかの実施形態では、構成要素１２０、２０２、２０４、２０６、２０８、および／または２１０のうちの１つまたは複数はそれらの機能を提供するためにプロセッサ（たとえば、プロセッサ１１５）によって実行可能な命令のセットである。さらなる実施形態では、構成要素１２０、２０２、２０４、２０６、２０８、および／または２１０のうちの１つまたは複数はメモリ（たとえば、メモリ１１７）に格納可能であり、プロセッサ（たとえば、プロセッサ１１５）によってアクセス可能および実行可能であり、それらの機能を提供する。前述の実施形態のいずれにおいても、これらの構成要素１２０、２０２、２０４、２０６、２０８および／または２１０はプロセッサ（例えば、プロセッサ１１５）およびエンティティの計算デバイスの他の構成要素（例えば、車両プラットフォーム１０３の計算デバイス１５２）との協働および通信のために適合され得る。
【００７３】
図２Ｂは、システム１００の様々な計算エンティティ（例えば、一時的車両仮想サーバ（ＴＶＶＳ）１０９、ローカルサーバ１０７、および／または集中サーバ１０１など）に実装されたタスク管理アプリケーション１２０の構造図２５０である。図２Ｂに示すように、タスク管理アプリケーション１２０がＴＶＶＳ１０９に実装されている場合、タスク管理アプリケーション１２０は、メッセージプロセッサ２０２、タスク実行部２０８、リソースマネージャ２１０を有効にし、タスク管理アプリケーション１２０の他の構成要素を無効にするように任意選択で構成することができる。図示のように、ＴＶＶＳ１０９は、リソースマネージャ２１０によって管理されるリソースプール２５２を含むことができる。リソースプール２５２内の処理リソースは、様々なリソースコンポーネント、例えば、計算リソース（例えば、ＣＰＵサイクル数）、データ記憶リソース、メモリリソース、通信リソース、センシングリソース（例えば、ＴＶＶＳ１０９に含まれる参加車両のセンサ１１３によって取り込まれたセンサデータ）などを含むことができる。本明細書の他の箇所で説明するように、これらのリソースコンポーネントは、タスク実行を行うために様
々な計算タスクに割り当てることができる仮想リソースユニットの形態とすることがで
きる。
【００７４】
図２Ｂに示すように、タスク管理アプリケーション１２０がローカルサーバ１０７および／または集中サーバ１０１に実装される場合、タスク管理アプリケーション１２０は、メッセージプロセッサ２０２、ＴＶＶＳマネージャ２０４、タスクマネージャ２０６、タスク実行部２０８、およびリソースマネージャ２１０を使用可能にするように任意選択で構成することができる。図示のように、ローカルサーバ１０７および／または集中サーバ１０１は、リソースマネージャ２１０によって管理されるリソースプール２５４を含むことができる。リソースプール２５４内の処理リソースは計算リソース（例えば、ＣＰＵサイクル数）、データストレージリソース、メモリリソース、通信リソースなどを含むことができる。いくつかの実施形態では、ローカルサーバ１０７および／または集中サーバ１０１のリソースプール２５４がこれらの計算サーバがセンサデバイスによって提供されるセンシング能力を有さない場合があるため、センシングリソースを含まない場合がある。タスク管理アプリケーション１２０、およびその構成要素２０２、２０４、２０６、２０８、および２１０は、少なくとも図３〜９を参照して以下でさらに詳細に説明される。
【００７５】
本明細書の他の箇所で説明されるように、タスク管理アプリケーション１２０は、車両コンテキストにおいて計算タスクを管理するために実行可能なコンピュータロジックである。いくつかの実施形態では、タスク管理アプリケーション１２０が計算タスクを受信し、計算タスクの処理リソース要件を決定することができる。タスク管理アプリケーション１２０は計算タスクを実行するための計算エンティティを決定することができ、計算タスクを実行する計算エンティティは、道路セグメント上で互いに対して近接して位置する参加車両を含む一時的車両仮想サーバ（ＴＶＶＳ）１０９とすることができる。具体的には、タスク管理アプリケーション１２０は、第１のタイムスタンプにおけるＴＶＶＳ１０９の利用可能な処理リソースを決定することができる。タスク管理アプリケーション１２０は、ＴＶＶＳ１０９に含まれる参加車両の車両移動データを決定し、これらの参加車両の車両移動データに基づいて、第２のタイムスタンプにおけるＴＶＶＳ１０９の利用可能な処理リソースを推定することができる。タスク管理アプリケーション１２０は、計算タスクの処理リソース要件、第１のタイムスタンプにおけるＴＶＶＳ１０９の利用可能な処理リソース、および第２のタイムスタンプにおけるＴＶＶＳ１０９の推定された利用可能な処理リソースに基づいて、ＴＶＶＳ１０９上で計算タスクを実行することを決定することができる。ＴＶＶＳ１０９上で計算タスクを実行する決定に応答して、タスク管理アプリケーション１２０は計算タスクの実行を行うために、計算タスクをＴＶＶＳ１０９に割り当てることができる。
【００７６】
図３は、車両コンテキストにおいて計算タスクを割り当てるための例示的な方法３００のフローチャートである。ブロック３０２において、一時的車両仮想サーバ（ＴＶＶＳ）１０９は、それらの利用可能な処理リソースを監視することができる。具体的には、各ＴＶＶＳ１０９において、リソースマネージャ２１０は、ＴＶＶＳ１０９のリソースプール２５２内の様々なリソース部品を監視し、複数のタイムスタンプ（例えば、２秒毎など）において、リソースプール２５２内で使用可能なこれらのリソース部品の量を頻繁に決定することができる。いくつかの実施形態では、特定のタイムスタンプについて、リソースマネージャ２１０は、特定のタイムスタンプにおけるＴＶＶＳ１０９の各参加車両によって寄与された利用可能な処理リソースの量と、特定のタイムスタンプにおけるＴＶＶＳ１０９のリソースプール２５２内の利用可能な処理リソースの総量とを決定することができる。いくつかの実施形態では、リソースマネージャ２１０が利用可能な処理リソースのこれらの量を示すリソース可用性エントリを生成し、特定のタイムスタンプに関連付けられたリソース可用性エントリを仮想データストア１２８に格納することができる。
【００７７】
例えば、第１のタイムスタンプt = t 1 ＝ １４：００：００において、リソースマネ
ージャ２１０は、その仮想データストア１２８から、第１のＴＶＶＳ１０９の車両クラスタデータを検索し、第１のＴＶＶＳ１０９が、第１のタイムスタンプt = t 1において第
１の参加車両１０３ａ、第２の参加車両１０３ｂ、および第３の参加車両１０３ｃを含むことを決定することができる。したがって、第１のタイムスタンプt = t 1において、こ
れらの参加車両は、それらの利用可能な処理リソースを第１のＴＶＶＳ１０９のリソースプール２５２に寄与することができる。
【００７８】
この例では、リソースマネージャ２１０が、第１の参加車両１０３ａによって寄与された利用可能な処理リソースが１ＧＨｚの計算リソース（例えば、１０9のＣＰＵサイクル
）、１．５ＧＢのデータストレージリソース、５００ＭＢのメモリリソース、２Ｍｂｐｓの通信リソース、および第１のタイムスタンプt = t 1において第１の参加車両１０３ａ
のイメージセンサ１１３によって取り込まれた４つの道路シーン画像を含むセンシングリソースを含むと判定することができる。リソースマネージャ２１０は、第２の参加車両１０３ｂによって寄与された利用可能な処理リソースが１．５ＧＨｚ(例えば、１．５×１
０9のＣＰＵサイクル）の計算リソース、２ＧＢのデータストレージリソース、７５０Ｍ
Ｂのメモリリソース、１．５Ｍｂｐｓの通信リソース、および第１のタイムスタンプt = t 1において第２の参加車両１０３ｂのイメージセンサ１１３によって取り込まれた４枚
の道路シーン画像を含むセンサリソースを含むと判定することができる。リソースマネージャ２１０はまた、第３の参加車両１０３ｃによって寄与された利用可能なプロセッシングリソースが、１ＧＨｚの計算リソース、２．５ＧＢのデータストレージリソース、２５０ＭＢのメモリリソース、１．５Ｍｂｐｓの通信リソース、および第１のタイムスタンプt = t 1において第３の参加車両１０３ｃのイメージセンサ１１３によって取り込まれた
２つの道路シーン画像を含むセンシングリソースを含むことを決定することができる。
【００７９】
したがって、この例では、リソースマネージャ２１０が、第１のタイムスタンプt = t 1における第１のＴＶＶＳ１０９のリソースプール２５２内の利用可能なプロセッシング
リソースの合計が、３．５ＧＨｚの利用可能な計算リソース、６ＧＢの利用可能なデータストレージリソース、１．５ＧＢの利用可能なメモリリソース、５Ｍｂｐｓの利用可能な通信リソース、および第１の参加車両１０３ａ、第２の参加車両１０３ｂ、および第３の参加車両１０３ｃによって集合的に寄与された、第１のタイムスタンプt = t 1において
取り込まれた１０個の道路シーン画像を含む利用可能な感知リソースを含むと判断することができる。リソースマネージャ２１０は、第１の参加車両１０３ａによって寄与された利用可能な処理リソース、第２の参加車両１０３ｂによって寄与された利用可能な処理リソース、第３の参加車両１０３ｃによって寄与された利用可能な処理リソース、および第１のＴＶＶＳ１０９のリソースプール２５２内の利用可能な総処理リソースを示すリソース可用性エントリを生成することができる。次に、リソースマネージャ２１０は、第１のタイムスタンプt = t 1 ＝ １４：００：００に関連付けられたリソース可用性エントリ
を、第１のタイムスタンプt = t 1における第１のＴＶＶＳ１０９のリソース可用性デー
タとして仮想データストア１２８に格納することができる。
【００８０】
ブロック３０４において、ＴＶＶＳ１０９は、システム１００の計算エンティティの計算タスクを管理するローカルサーバ１０７および／または集中サーバ１０１に、リソース可用性ステータスを送信することができる。本開示における説明を簡単にするために、システム１００の計算エンティティのための計算タスクの管理がローカルサーバ１０７によって実行されると仮定すると、そのようなローカルサーバ１０７は、本明細書ではローカル管理サーバ１０７と呼ばれることがある。計算タスクの管理は、他の計算エンティティ（例えば、集中サーバ１０１、ＴＶＶＳ１０９、車両プラットフォーム１０３など）によって実行されてもよいことを理解されたい。いくつかの実施形態ではＴＶＶＳ１０９において、リソースマネージャ２１０は特定のタイムスタンプと、特定のタイムスタンプにお
けるＴＶＶＳ１０９のリソース可用性データとを含むリソース可用性ステータスを生成することができる。次いで、メッセージプロセッサ２０２は、リソース可用性ステータスをローカル管理サーバ１０７に送信することができる。
【００８１】
ブロック３０６において、ローカル管理サーバ１０７は、リソース可用性ステータスを処理することができる。特に、ローカル管理サーバ１０７において、メッセージプロセッサ２０２は、特定のタイムスタンプおよび特定のタイムスタンプにおけるＴＶＶＳ１０９のリソース可用性データを抽出するために、リソース可用性ステータスを分析することができる。次いで、メッセージプロセッサ２０２は、ＴＶＶＳ１０９のリソース可用性データを、ＴＶＶＳ１０９に関連付けられたＴＶＶＳエントリ内の特定のタイムスタンプとともに、データストア１２６に格納することができる。上述のように、ＴＶＶＳ１０９のリソース可用性データは、特定のタイムスタンプにおける、ＴＶＶＳ１０９の各参加車両によって寄与された利用可能な処理リソースの量と、特定のタイムスタンプにおける、ＴＶＶＳ１０９のリソースプール２５２内の利用可能な処理リソースの総量とを示すことができる。いくつかの実施形態では、システム１００の他の計算エンティティ（例えば、個々の車両プラットフォーム１０３、他のローカルサーバ１０７、集中サーバ１０１など）も、同様に、それらの利用可能な処理リソースを監視し、リソース可用性ステータスをローカル管理サーバ１０７に送信することができる。その結果、ローカル管理サーバ１０７は、様々なタイムスタンプにおける、システム１００の様々な計算エンティティ上の利用可能な処理リソースの量を追跡することができる。
【００８２】
ブロック３０８において、ローカル管理サーバ１０７は、要求エンティティから計算タスクを受信することができる。いくつかの実施形態では、システム１００の任意のエンティティが実行されるべき計算タスクを要求することができる。一例として、集中サーバ１０１は、道路セグメント上に位置する第１の車両プラットフォーム１０３によって取り込まれた道路シーン画像を受信することと、道路シーン画像を処理して道路セグメントの動的マップを生成することと、道路セグメントの動的マップを、近接する地理的領域（例えば、道路セグメントから２マイルの半径内の地理的領域）に位置する第２の車両プラットフォーム１０３に送信することと、を含む第１の計算タスクを要求することができる。いくつかの実施形態では、ローカル管理サーバ１０７は、計算タスクの処理リソース要件を決定することができる。具体的にはローカル管理サーバ１０７において、タスク実行部２０８は計算タスクを分析して、タスクメタデータおよび計算タスクのタスク記述を決定することができる。本明細書の他の場所で論じられるように、タスクメタデータは計算タスクの様々な特性を指定することができ、タスク記述は、実行可能な方法で計算タスクを記述することができる。タスクメタデータは、計算タスクの処理リソース要件を含むことができる。
【００８３】
上記の例では、第１の計算タスクのタスクメタデータについて、タスク実行部２０８は、第１の計算タスクに固有のタスクＩＤを割り当て、第１の計算タスクを「マップ生成タスク」のタスクカテゴリに分類することができる タスク実行部２０８は、第１の計算タ
スクのタスク優先度メトリックを「０．８」に、第１の計算タスクのタスク実行ステータスを「前処理」に、第１の計算タスクのタスク完了率を「０％」に指定してもよい。タスク実行部２０８はまた、第１の計算タスクの性能要件を決定してもよい。この例では、タスク実行部２０８が、第１の計算タスクのタスク継続時間（例えば、Δt_task_duration
）を００：０２：３０と推定し、第１の計算タスクの対象配信タイムスタンプを「２０１８年１１月０５日、１４：０２：４５」と推定し、タスク入力データに関連付けられた通信レイテンシ閾値を２秒と推定し、タスク出力データに関連付けられた通信レイテンシ閾値を４秒と推定してもよい。
【００８４】
タスク実行部２０８は、第１の計算タスクの計算プロファイルおよび通信プロファイル
を含む処理リソース要件を決定することもできる。本明細書の他の箇所で説明するように、計算タスクの計算プロファイルは、計算タスクの実行を行うために必要な計算リソースの量、データ記憶リソースの量、メモリリソースの量、センシングリソースの量などを指定することができる。この例では、第１の計算タスクの計算プロファイルが、第１の計算タスクの実行が０．３ＧＨｚの計算リソース、４５０ＭＢのデータ記憶リソース、３００ＭＢのメモリリソース、および第１の計算タスクをホストする計算エンティティのセンシングリソース（該当する場合）を必要とすることを示すことができる。この例では、タスク実行部２０８が第１の計算タスクのタスク入力データが、道路セグメント（例えば、道路シーン画像）に関連付けられていると判定することができる。したがって、第１の計算タスクがＴＶＶＳ１０９上で実行される場合、センシングリソースは、ＴＶＶＳ１０９の参加車両によってそれらのイメージセンサ１１３を使用して取り込まれた道路シーン画像を含むことができる。
【００８５】
本明細書の他の箇所で説明するように、計算タスクの通信プロファイルは、計算タスクの実行を行うために必要な通信リソースの量を計算するために使用することができる様々な要因を指定することができる。この例では、第１の計算タスクのタスク入力データが、道路セグメント上に位置する第１の車両プラットフォーム１０３から受信された道路シーン画像であってもよく、第１の計算タスクのタスク出力データは、近接した地理的領域（例えば、道路セグメントから２マイル以内の地理的領域）に位置する第２の車両プラットフォーム１０３に送信された道路セグメントの動的マップであってもよい。したがって、第１の計算タスクの通信プロファイルは、タスク入力データの入力データサイズを、取り込まれた道路シーン画像の推定データサイズ（例えば、５０ｋＢ）に指定し、タスク出力データの出力データサイズを、道路セグメント動的マップの推定データサイズ（例えば、１００ＭＢ）に指定することができる。この例では、第１の計算タスクの通信プロファイルが、第１の車両プラットフォーム１０３から道路シーン画像が受信される頻度（例えば、３秒）となるようにタスク入力データに対する要求の頻度を指定し、道路セグメントの動的マップが、第２の車両プラットフォーム１０３に送信される頻度（例えば、６０秒）となるようにタスク出力データに対する要求の頻度を指定することができる。第１の計算タスクの通信プロファイルはまた、タスク入力データに関連する地理的位置を、第１の車両プラットフォーム１０３が位置する道路セグメントの地理的位置となるように指定し、タスク出力データに関連する地理的位置を、第２の車両プラットフォーム１０３が位置する近接地理的領域の地理的位置となるように指定することができる。
【００８６】
この例では、第１の計算タスクのタスク記述のために、タスク実行部２０８は、第１の計算タスクを実行するために実行されるプログラムソースコードをデータストア１２６から取り出し、タスク入力データを、道路セグメント上に位置する第１の車両プラットフォーム１０３から受信される道路シーン画像となるように指定することができる。第１の計算タスクがＴＶＶＳ１０９に割り当てられる場合、タスク入力データはまた、本明細書の他の箇所で説明されるように、それらのイメージセンサ１１３を使用してＴＶＶＳ１０９の参加車両によって取り込まれた道路シーン画像を含むことができる。
【００８７】
いくつかの実施形態では、システム１００の他の計算エンティティは、要求エンティティから計算タスクを受信し、ローカル管理サーバ１０７に計算タスクを通知することができる。例えば、ブロック３１０において、一時的車両仮想サーバ（ＴＶＶＳ）１０９は、要求エンティティから計算タスクを受信することができる。一例として、ＴＶＶＳ１０９は、道路セグメント上のＴＶＶＳ１０９に近接して位置する車両プラットフォーム１０３から計算タスクを受信することができる。いくつかの実施形態ではＴＶＶＳ１０９において、タスク実行部２０８は計算タスクを分析して、タスクメタデータおよび計算タスクのタスク記述を決定することができる。ブロック３１２において、ＴＶＶＳ１０９は、ローカル管理サーバ１０７にタスク要求通知を送信することができる。具体的には、ＴＶＶＳ
１０９において、タスク実行部２０８は、計算タスクが要求されたことを示すタスク要求通知を生成し、ローカル管理サーバ１０７に送信してもよい。いくつかの実施形態では、タスク要求通知が計算タスクの様々なプロパティを指定するタスクメタデータ、および／または上述したように実行可能な方法で計算タスクを記述するタスク記述を含むことができる。いくつかの実施形態では、システム１００の他の計算エンティティ（例えば、個々の車両プラットフォーム１０３、他のローカルサーバ１０７、集中サーバ１０１など）も、同様の方法で、要求エンティティから計算タスクを受信し、ローカル管理サーバ１０７に計算タスクを通知することができる。
【００８８】
ブロック３１４において、ローカル管理サーバ１０７は、タスク要求通知を処理することができる。具体的にはローカル管理サーバ１０７において、メッセージプロセッサ２０２はタスク要求通知を分析して、タスクメタデータおよび／または計算タスクのタスク記述を抽出することができる。ブロック３１６において、ローカル管理サーバ１０７は、計算タスクを実行する計算エンティティを決定することができる。いくつかの実施形態では、ローカル管理サーバ１０７がタスク実行を行うために、計算タスクを個々の車両プラットフォーム１０３または固定の計算サーバ（例えば、集中サーバ１０１、ローカル管理サーバ１０７自体、別のローカルサーバ１０７など）に割り当てることができる。特に、ローカル管理サーバ１０７では、タスクマネージャ２０６がデータストア１２６から、個々の車両プラットフォーム１０３、集中サーバ１０１、ローカル管理サーバ１０７、および／または他のローカルサーバ１０７のリソース可用性データを取り出すことができる。本明細書の他の箇所で説明するように、リソース可用性データは、これらの計算エンティティの利用可能な処理リソースを記述することができる。いくつかの実施形態では、タスクマネージャ２０６が利用可能な処理リソースに基づいて、これらの計算エンティティから計算タスクを実行する計算エンティティを決定することができる。例えば、計算タスクを実行する計算エンティティは、タスクメタデータに示される計算タスクの処理リソース要件を満たす利用可能な処理リソースを有する計算エンティティであってもよい。
【００８９】
いくつかの実施形態では、ローカル管理サーバ１０７は、計算タスクを一時的車両仮想サーバ（ＴＶＶＳ）１０９に割り当てて、タスク実行を行うことができる。ＴＶＶＳ１０９上で計算タスクの実行を行うことは、ＴＶＶＳ１０９が要求エンティティ（例えば、ＴＶＶＳ１０９と同じ道路セグメント上を移動する他の車両プラットフォーム１０３）から小さい距離内に位置することができ、したがって、タスク入力データを受信し、計算タスクのタスク出力データを送信するための通信待ち時間を大幅に低減することができるので、特に有利である。さらに、ＴＶＶＳ１０９は、Ｖ２Ｖ接続１６４、Ｖ２Ｖ接続１７０、およびＶ２Ｉ接続１６０を介してデータを送受信することができ、したがって、ネットワーク１０５を介するデータ伝送によって引き起こされる金銭的コストを制限することができる。
【００９０】
図４は、計算タスクの実行を行うためにＴＶＶＳ１０９を決定するための例示的な方法４００のフローチャートである。方法４００は、ローカル管理サーバ１０７に含まれるタスク管理アプリケーション１２０のＴＶＶＳマネージャ２０４およびタスクマネージャ２０６によって実行することができる。本明細書の他の箇所で論じるように、ローカル管理サーバ１０７は、そのカバレッジエリア１９２内の道路セグメント上に位置する１つまたは複数の既存のＴＶＶＳ１０９を含む１組のＴＶＶＳを管理することができる。１組のＴＶＶＳに含まれる第１のＴＶＶＳ１０９が計算タスクを実行できるかどうかを評価するために、ブロック４０２において、ＴＶＶＳマネージャ２０４は、第１のＴＶＶＳ１０９に関連する第１の参加車両の車両移動データを判定することができる。
【００９１】
具体的には、ＴＶＶＳマネージャ２０４がデータストア１２６から第１のＴＶＶＳ１０９の車両クラスタデータを取り出し、したがって、第１のＴＶＶＳ１０９が第１のタイム
スタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むと判定することができる。いくつかの実施形態では、第１のタイムスタンプは、計算タスクのためのＴＶＶＳの選択が実行されるカレントタイムスタンプｔcurrentであってもよい。
いくつかの実施形態では、ＴＶＶＳマネージャ２０４が、第１のＴＶＶＳ１０９の第１の参加車両から第１の参加車両の車両移動データを受信することができる。いくつかの実施形態では、第１のＴＶＶＳ１０９の第１の参加車両が、自身の車両移動データをローカル管理サーバ１０７に頻繁に（例えば、１秒毎に）送信することができ、したがって、ＴＶＶＳマネージャ２０４はデータストア１２６から第１の参加車両の車両移動データを取り出すことができる。本明細書の他の場所で論じられるように、第１の参加車両の車両移動データは第１の参加車両の車両速度、車両地理位置（例えば、ＧＰＳ座標）、車両経路などを含むことができる。
【００９２】
ブロック４０４において、タスクマネージャ２０６は、第１のタイムスタンプにおける、第１のＴＶＶＳの利用可能な処理リソースを判定することができる。本明細書の他の箇所で説明するように、第１のＴＶＶＳ１０９はその利用可能な処理リソースを指定するリソース可用性データをローカル管理サーバ１０７に頻繁に（例えば、１秒ごとに）送信することができ、したがって、タスクマネージャ２０６は、データストア１２６から第１のタイムスタンプにおける第１のＴＶＶＳ１０９のリソース可用性データを取り出すことができる。リソース可用性データは、第１のタイムスタンプにおける第１のＴＶＶＳ１０９の各第１の参加車両によって寄与された利用可能な処理リソースの量と、第１のタイムスタンプにおける第１のＴＶＶＳ１０９のリソースプール２５２内の利用可能な処理リソースの総量とを示すことができる。
【００９３】
ブロック４０６において、タスクマネージャ２０６は、第１のタイムスタンプに続く第２のタイムスタンプにおける、第１のＴＶＶＳの利用可能な処理リソースを推定することができる。いくつかの実施形態では、第２のタイムスタンプは、それによって計算タスクが完了される必要があるターゲット完了タイムスタンプであってもよく、第１のタイムスタンプおよび計算タスクのタスク持続時間に基づいて決定されてもよい（例えば、２つのタイムスタンプ間の時間距離はタスク持続時間であってもよい）。いくつかの実施形態では、タスクマネージャ２０６は、第１のＴＶＶＳ１０９に含まれる第１の参加車両の車両移動データに基づいて、第２のタイムスタンプにおける第１のＴＶＶＳの利用可能な処理リソースを推定することができる。特に、ＴＶＶＳマネージャ２０４は、第１のＴＶＶＳ１０９に含まれる第１の参加車両の車両移動データを評価し、第２のタイムスタンプにおいて、第１の参加車両と道路セグメント上で互いに近接して位置する第２の参加車両を決定することができる。第１のＴＶＶＳ１０９は潜在的に、第２のタイムスタンプにおいて第２の参加車両を含むことができ、したがって、これらの第２の参加車両は、第２のタイムスタンプにおいて、第１のＴＶＶＳ１０９のリソースプール２５２にそれらの利用可能な処理リソースを寄与することができる。いくつかの実施形態では、タスクマネージャ２０６が、これらの第２の参加者車両の利用可能な処理リソースを、第２のタイムスタンプにおける第１のＴＶＶＳの推定された利用可能な処理リソースに集約することができる。
【００９４】
本明細書の他の場所で論じられるように、第１の参加車両の車両移動データは、第１の参加車両の車両速度、車両地理位置（例えば、ＧＰＳ座標）、車両経路などを含むことができる。いくつかの実施形態では、第１の参加車両から第２の参加車両を決定するために、ＴＶＶＳマネージャ２０４は互換性のある車両速度を有する第１の参加車両を決定することができる。具体的には、ＴＶＶＳマネージャ２０４は、第１の参加車両の車両速度間の速度差を計算し、速度差を有する第１の参加車両が、第２の参加車両である所定の速度差閾値（例えば、０．５ｍ／秒未満）を満たすと判定することができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４は、各第１の参加車両がその車両経路に従って第１のタイムスタンプと第２のタイムスタンプとの間を移動する車両経路部分を決定すること
ができる。次に、ＴＶＶＳマネージャ２０４は、重なり合う車両経路部分を有する第１の参加車両を第２の参加車両と判定することができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４は、第１の参加車両間の相対距離を、それらの車両の地理的位置を使用して計算し、そのような相対距離を経時的に監視することができる。ＴＶＶＳマネージャ２０４は、互いに対する相対距離を有し、少なくとも所定の期間（例えば、最後の３秒間に２０ｍ未満）において所定の相対距離閾値を満たす第１の参加車両が第２の参加車両であると判定することができる。
【００９５】
これらの実施形態では、第２の参加車両が互換性のある車両速度、重なり合う車両経路部分、および／または最近の過去において互いに対して近接して位置するので、これらの第２の参加車両は潜在的に、第２のタイムスタンプにおいて依然として互いに近接して位置し得る。第１の参加車両から第２の参加車両を決定するために、他のタイプの車両移動データを使用することもできる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４はまた、道路セグメント上に位置する個々の車両プラットフォーム１０３の車両移動データを評価して、第２の参加車両を決定することができる。１つまたは複数の個々の車両プラットフォーム１０３は、第２のタイムスタンプで第１のＴＶＶＳ１０９の１つまたは複数の第１の参加車両に対して近接して位置することができるので、これらの個々の車両プラットフォーム１０３は第２のタイムスタンプで第１のＴＶＶＳ１０９に加わり、第２のタイムスタンプで第１のＴＶＶＳ１０９のリソースプール２５２にそれらの利用可能な処理リソースを寄与することができる。
【００９６】
上記の例を続けると、ローカル管理サーバ１０７は、そのカバレッジエリア１９２内に位置するＴＶＶＳのセット内の第１のＴＶＶＳ１０９を評価して、第１の計算タスクを第１のＴＶＶＳ１０９によって実行することができるかどうかを判定することができる。この例では、ＴＶＶＳマネージャ２０４がデータストア１２６から第１のＴＶＶＳ１０９の車両クラスタデータを取り出し、したがって、第１のＴＶＶＳ１０９が第１のタイムスタンプt = t 1 = tcurrent＝１４：００：００において高速道路Ｉ−１５を走行する第１の参加車両１０３ａ、第２の参加車両１０３ｂ、および第３の参加車両１０３ｃを備えることを決定することができる。この例では、タスクマネージャ２０６がデータストア１２６から第１のタイムスタンプt = t 1 における第１のＴＶＶＳ１０９のリソース可用性データを取り出すことができる。リソース可用性データは、第１のタイムスタンプt = t 1に
おける第１のＴＶＶＳ１０９のリソースプール２５２内の全利用可能プロセスリソースが、３．５ＧＨｚの利用可能な計算リソースと、６ＧＢの利用可能なデータ記憶リソースと、１．５ＧＢの利用可能な記憶リソースと、５Ｍｂｐｓの利用可能な通信リソースと、第１の参加車両１０３ａ、第２の参加車両１０３ｂ、および第３の参加車両１０３ｃによって集合的に寄与された第１のタイムスタンプt = t 1で取り込まれた１０個の道路シーン
画像を含む利用可能なセンサリソースと、を含むことを示すことができる。
【００９７】
この実施形態では、タスクマネージャ２０６は、第１の計算タスクのタスク持続時間を使用して、第２のタイムスタンプt = t 2 を決定することができる。例えば、タスクマネージャ２０６は、第２のタイムスタンプｔ 2 = t 1＋Δt_task_duration＝１４：００：
００＋００：０２：３０＝１４：０２：３０を計算することができる。この例では、ＴＶＶＳマネージャ２０４は、第２のタイムスタンプt = t 2 ＝ １４：０２：３０において
、第１の参加車両１０３ａおよび第２の参加車両１０３ｂがそれらの車両移動データに従って３０ｍ／秒の車両速度で高速道路Ｉ−１５上を走行し続けることができ、一方、第３の参加車両１０３ｃはその車両経路に従って高速道路の出口２９５へ向かうと判定することができる。したがって、ＴＶＶＳマネージャ２０４は第１のＴＶＶＳ１０９が第１の参加車両１０３ａ、第２の参加車両１０３ｂを含む可能性があるが、第２のタイムスタンプt = t 2において第３の参加車両１０３ｃを含まないと判断することができる。したがっ
て、タスクマネージャ２０６は、第２のタイムスタンプt = t 2における第１のＴＶＶＳ
１０９のリソースプール２５２内の全利用可能プロセスリソースが潜在的に、２．５ＧＨｚの利用可能な計算リソース、３．５ＧＢの利用可能なデータストレージリソース、１．２５ＧＢの利用可能なメモリリソース、３．５Ｍｂｐｓの利用可能な通信リソース、および第１の参加車両１０３ａおよび第２の参加車両１０３ｂによって集合的に寄与された第２のタイムスタンプt = t 2で取り込まれた８つの道路シーン画像を含む利用可能な感知
リソースを含むと判断することができる。
【００９８】
ブロック４０８において、タスクマネージャ２０６は、計算タスクが第１のＴＶＶＳ１０９によって実行可能であるかどうかを判定することができる。いくつかの実施形態では、タスクマネージャ２０６が計算タスクの処理リソース要件、第１のタイムスタンプにおける第１のＴＶＶＳ１０９の利用可能な処理リソース、および第２のタイムスタンプにおける第１のＴＶＶＳ１０９の利用可能な処理リソースに基づいて、第１のＴＶＶＳ１０９上で計算タスクを実行すべきかどうかを決定することができる。上述のように、第１のタイムスタンプは、第１のＴＶＶＳ１０９が評価される現在のタイムスタンプとすることができ、第２のタイムスタンプは、計算タスクのタスク持続時間に等しい第１のタイムスタンプまでの時間距離を有する将来のタイムスタンプとすることができる。いくつかの実施形態では、タスクマネージャ２０６が第１のタイムスタンプにおける第１のＴＶＶＳ１０９の利用可能な処理リソースが計算タスクの処理リソース要件を満たすことを決定することができ、かつ／または、第２のタイムスタンプにおける第１のＴＶＶＳ１０９の利用可能な処理リソースが計算タスクの処理リソース要件を満たすことを決定することができる。したがって、タスクマネージャ２０６は第１のＴＶＶＳ１０９が計算タスクの実行を完了するのに十分な処理リソースを潜在的に有し、したがって、計算タスクが第１のＴＶＶＳ１０９によって実行可能であると判定することができる。
【００９９】
本明細書の他の場所で論じられるように、計算タスクの処理リソース要件は、計算タスクの計算プロファイルおよび通信プロファイルを含むことができる。計算タスクの計算プロファイルは、計算タスクの実行を行うのに必要な計算リソースの量、データ記憶リソースの量、メモリリソースの量、センシングリソースの量などを指定することができる。いくつかの実施形態では、タスクマネージャ２０６は、通信プロファイルを使用して計算タスクの実行を行うために必要とされる通信リソースの量を推定することができる。いくつかの実施形態では、そのような必要な通信リソースの量が第１のＴＶＶＳ１０９のＴＶＶＳ地理的位置から計算タスクのタスク入力データに関連する地理的位置までの距離、および／または、第１のＴＶＶＳ１０９のＴＶＶＳ地理的位置から計算タスクのタスク出力データに関連する地理的位置までの距離に正比例し得る。いくつかの実施形態では、必要な通信リソースの量が計算タスクに関連するタスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク入力データの要求頻度、タスク出力データの要求頻度などに正比例することもできる。いくつかの実施形態では、タスクマネージャ２０６が必要な通信リソースの推定量を含むように、計算タスクの処理リソース要件を更新することができる。
【０１００】
上記の例を続けると、第１の計算タスクの計算プロファイルは、第１の計算タスクの実行が０．３ＧＨｚの計算リソース、４５０ＭＢのデータ記憶リソース、３００ＭＢのメモリリソース、および第１の計算タスクをホストする計算エンティティによって取り込まれた道路シーン画像を含むセンシングリソース（適用可能な場合）を必要とすることを示すことができる。この例では、タスクマネージャ２０６が第１の計算タスクの通信プロファイルを評価し、第１の計算タスクを実行するのに必要な通信リソースの量を１Ｍｂｐｓと推定することができる。タスクマネージャ２０６は、第１のタイムスタンプt = t 1 ＝ 
１４：００：００、および第２のタイムスタンプt = t 2 ＝ １４：０２：３０における
第１のＴＶＶＳ１０９のリソースプール２５２内の利用可能な処理リソース全体を、第１の計算タスクの処理リソース要件と比較することができる。第１のタイムスタンプt = t 
1 ＝ １４：００：００および第２のタイムスタンプt = t 2 ＝ １４：０２：３０における第１のＴＶＶＳ１０９のリソースプール２５２に含まれるそれぞれのリソースコンポーネントの量は、第１の計算タスクの実行を行うために必要とされる対応するリソースコンポーネントの量よりも大きいので、タスクマネージャ２０６は、第１の計算タスクが第１のＴＶＶＳ１０９によって実行可能であると判定することができる。
【０１０１】
ブロック４０８において、タスクマネージャ２０６が、計算タスクが第１のＴＶＶＳ１０９によって実行可能であると判定した場合、方法４００はブロック４１０に進む。ブロック４１０において、タスクマネージャ２０６は、計算タスクを実行するために第１のＴＶＶＳ１０９を選択することができ、方法４００は終了することができる。ブロック４０８において、タスクマネージャ２０６が、計算タスクが第１のＴＶＶＳ１０９によって実行可能でないと判定した場合、方法４００はブロック４１２に進む。ブロック４１２において、タスクマネージャ２０６は、評価すべきＴＶＶＳのセット内に別の既存のＴＶＶＳ１０９があるかどうかを判定することができる。ブロック４１２において、タスクマネージャ２０６が、ＴＶＶＳのセットが評価されるべき別の既存のＴＶＶＳ１０９（例えば、第２のＴＶＶＳ１０９）を含むと判定した場合、方法４００はブロック４０２に進み、第２のＴＶＶＳ１０９が計算タスクを実行することができるかどうかを評価する。ブロック４１２において、タスクマネージャ２０６が、ＴＶＶＳのセットが評価されるべき別の既存のＴＶＶＳ１０９を含まないと判定した場合、方法４００はブロック４１４に進む。ブロック４１４において、ＴＶＶＳマネージャ２０４およびタスクマネージャ２０６は、計算タスクを実行するために新しいＴＶＶＳ１０９を形成することができる。新しいＴＶＶＳ１０９は計算タスクの実行が必要とするときに動的に確立することができ、計算タスクの処理リソース要件に適応させることができるので、この実装は特に有利である。
【０１０２】
いくつかの実施形態では、計算タスクを実行するための新しいＴＶＶＳ１０９を形成するために、ブロック４３０において、ＴＶＶＳマネージャ２０４は道路セグメント上に位置する車両プラットフォーム１０３から新しいＴＶＶＳ１０９の参加車両を選択することができる。ブロック４３２において、ＴＶＶＳマネージャ２０４はこれらの参加車両に、新しいＴＶＶＳ１０９を形成するよう命令することができる。図５は、計算タスクの実行を行うために新しいＴＶＶＳ１０９を確立するための例示的な方法５００のフローチャートである。方法５００は、ローカル管理サーバ１０７に含まれるタスク管理アプリケーション１２０のＴＶＶＳマネージャ２０４およびタスクマネージャ２０６によって実行することができる。本明細書の他の箇所で説明するように、ローカル管理サーバ１０７は、既存のＴＶＶＳ１０９の参加車両と、そのカバレッジエリア１９２内の道路セグメント上に位置する個々の車両プラットフォーム１０３とを管理することができる。ブロック５０２において、ＴＶＶＳマネージャ２０４は、これらの車両からの第１のタイムスタンプで、道路セグメント上で互いに近接して位置する候補参加車両を決定することができる。いくつかの実施形態では、第１のタイムスタンプが、新しいＴＶＶＳ１０９の確立が実行される現在のタイムスタンプｔcurrentであってもよい。いくつかの実施形態では、ＴＶＶＳ
マネージャ２０４が所定の相対距離閾値（例えば、１５０ｍ）を満たす、互いに相対距離を有する車両のセットを候補参加者車両であると決定することができる。
【０１０３】
ブロック５０４において、タスクマネージャ２０６は、第１のタイムスタンプにおける候補ＴＶＶＳの最初の利用可能な処理リソースを判定することができ、候補ＴＶＶＳは、候補参加者車両を含むことができる。いくつかの実施形態では、候補ＴＶＶＳの最初の利用可能な処理リソースは、候補参加者車両が第１のタイムスタンプで集合的に寄与することができる利用可能な処理リソースの量を含むことができる。ブロック５０６において、タスクマネージャ２０６は、第１のタイムスタンプにおける候補ＴＶＶＳの最初の利用可能な処理リソースが、計算タスクの処理リソース要件を満たすかどうかを判定することができる。ブロック５０６において、タスクマネージャ２０６が、第１のタイムスタンプに
おける候補ＴＶＶＳの最初の利用可能な処理リソースが計算タスクの処理リソース要件を満たさないと判定した場合、方法５００はブロック５０２に進み、別の組の車両を候補ＴＶＶＳの候補参加車両として判定する。
【０１０４】
ブロック５０６において、タスクマネージャ２０６が、第１のタイムスタンプにおける候補ＴＶＶＳの最初の利用可能な処理リソースが計算タスクの処理リソース要件を満たすと判定した場合、方法５００はブロック５０８に進む。ブロック５０８において、タスクマネージャ２０６は、第１のタイムスタンプに続く第２のタイムスタンプにおいて候補ＴＶＶＳの将来の利用可能な処理リソースを推定することができる。いくつかの実施形態では、第２のタイムスタンプがそれによって計算タスクが完了される必要があるターゲット完了タイムスタンプであってもよく、第１のタイムスタンプおよび計算タスクのタスク持続時間に基づいて決定されてもよい（例えば、２つのタイムスタンプ間の時間距離はタスク持続時間であってもよい）。いくつかの実施形態では、ＴＶＶＳマネージャ２０４は、候補参加車両の車両移動データを決定することができる。例えば、ＴＶＶＳマネージャ２０４は、候補参加車両から車両移動データを受信するか、またはデータストア１２６から車両移動データを取り出すことができる。
【０１０５】
いくつかの実施形態では、タスクマネージャ２０６が候補参加車両の車両移動データに基づいて、第２のタイムスタンプにおける候補ＴＶＶＳの将来の利用可能な処理リソースを推定することができる。具体的には、ＴＶＶＳマネージャ２０４が候補参加車両の車両移動データを評価し、候補参加車両から第２のタイムスタンプで道路セグメント上で互いに近接して位置する第１の候補参加車両を決定することができる。候補ＴＶＶＳは潜在的に、第２のタイムスタンプで第１の候補参加者車両を含むことができ、したがって、これらの第１の候補参加者車両は、候補ＴＶＶＳが実際に確立された場合、第２のタイムスタンプで候補ＴＶＶＳのリソースプール２５２にそれらの利用可能な処理リソースを寄与することができる。いくつかの実施形態では、第１の候補参加車両が図４を参照して上述した第１のＴＶＶＳ１０９の第１の参加車両から決定される第２の参加車両と同様の方法で、候補ＴＶＶＳの候補参加車両から決定されてもよく、したがって、簡潔にするために再び繰り返さない。いくつかの実施形態では、タスクマネージャ２０６が第１の候補参加者車両の利用可能な処理リソースを、第２のタイムスタンプにおける候補ＴＶＶＳの推定された将来の利用可能な処理リソースに集約することができる。
【０１０６】
ブロック５１０において、タスクマネージャ２０６は、第２のタイムスタンプにおける候補ＴＶＶＳの推定された将来の利用可能な処理リソースが計算タスクの処理リソース要件を満たすかどうかを判定することができる。ブロック５１０において、タスクマネージャ２０６が、第２のタイムスタンプにおける候補ＴＶＶＳの推定された将来の利用可能な処理リソースが計算タスクの処理リソース要件を満たさないと判定した場合、方法５００はブロック５０２に進み、別の組の車両を候補ＴＶＶＳの候補参加車両として判定する。ブロック５１０において、タスクマネージャ２０６が、第２のタイムスタンプにおける候補ＴＶＶＳの推定された将来の利用可能な処理リソースが計算タスクの処理リソース要件を満たすと判定した場合、方法５００はブロック５１２に進む。
【０１０７】
ブロック５１２において、ＴＶＶＳマネージャ２０４は、候補ＴＶＶＳに対応する新しいＴＶＶＳ１０９を形成するよう候補参加者車両に命令することができる。上述のように、タスクマネージャ２０６は、第１のタイムスタンプにおける候補ＴＶＶＳの最初の利用可能な処理リソースが計算タスクの処理リソース要件を満たすこと（例えば、ブロック５０６において）、および第２のタイムスタンプにおける候補ＴＶＶＳの推定された将来の利用可能な処理リソースも、計算タスクの処理リソース要件を満たすこと（例えば、ブロック５１０において）を決定することができる。したがって、タスクマネージャ２０６は、候補ＴＶＶＳが計算タスクの実行を完了するのに十分な処理リソースを潜在的に有し、
したがって、計算タスクが候補ＴＶＶＳ上で実行可能であると判定することができる。次いで、ＴＶＶＳマネージャ２０４は、候補ＴＶＶＳに対応する新しいＴＶＶＳ１０９を形成するよう候補参加者車両に命令することができる。図４に戻って参照すると、ブロック４３４において、タスクマネージャ２０６は、計算タスクを実行するために新しいＴＶＶＳ１０９を選択することができる。
【０１０８】
図３に戻って参照すると、ローカル管理サーバ１０７が計算タスクを実行するために計算エンティティを決定すると、ローカル管理サーバ１０７は、決定された計算エンティティに計算タスクを割り当てることができる。例えば、ローカル管理サーバ１０７は、既存の第１のＴＶＶＳ１０９に、またはタスク実行を行うために上述したように計算タスクを実行可能であると判定された新しいＴＶＶＳ１０９に、計算タスクを割り当てることができる。ブロック３１８において、ローカル管理サーバ１０７は、タスク実行命令を生成し、判定された計算エンティティ（例えば、第１のＴＶＶＳ１０９）に送信することができる。いくつかの実施形態では、タスク実行命令がタスクメタデータおよび計算タスクのタスク記述を含むことができる。計算タスクを実行すると決定された計算エンティティが要求エンティティから計算タスクを受信する計算エンティティと同じである場合、タスク実行命令は、計算タスクのタスクデータを含まず、計算タスク自体を実行するよう計算エンティティに命令するだけでよい。
【０１０９】
いくつかの実施形態では、タスク実行命令は、適用可能である場合に、拡張入力データを使用して計算タスクを実行するよう、決定された計算エンティティに命令することができる。具体的には、ローカル管理サーバ１０７が計算タスクのタスク入力データが道路セグメント（例えば、道路シーン画像）に関連付けられていると判定することができ、計算タスクを実行すると判定された計算エンティティもまた、道路セグメント上に位置し、感知能力を有する（例えば、第１のＴＶＶＳ１０９）。したがって、ローカル管理サーバ１０７は、第１のＴＶＶＳ１０９に、道路セグメントに関連する追加の入力データを決定するよう命令することができ、追加の入力データは、第１のＴＶＶＳ１０９に含まれる第１の参加車両のセンサ１１３によって生成することができる。ローカル管理サーバ１０７は第１のＴＶＶＳ１０９に、計算タスクのタスク入力データと追加入力データとを用いて、計算タスクの実行を指示してもよい。タスク入力データは、第１の参加車両の異なる視点から収集された追加の入力データで強化することができるので、計算タスクの実行を容易にすることができる。ブロック３２０において、判定された計算エンティティ（例えば、第１のＴＶＶＳ１０９）は、計算タスクを実行することができる。
【０１１０】
図６Ａおよび図６Ｂは、計算タスクを再割り当てするための例示的な方法６００のフローチャートを示す。本明細書の他の箇所で説明されるように、ＴＶＶＳ１０９の利用可能な処理リソースは、参加車両の移動のため、時間の経過と共に著しく変化し得る。したがって、ＴＶＶＳ１０９上で実行されている計算タスクは、ＴＶＶＳ１０９の利用可能な処理リソースが計算タスクの実行を完了するのに不十分になるので、別の計算エンティティに再割り当てされる必要があり得る。ブロック６０２において、ローカル管理サーバ１０７は、タスク実行命令を生成し、第１のＴＶＶＳ１０９ａに送信することができる。タスク実行命令は、計算タスクを実行するよう第１のＴＶＶＳ１０９ａに命令することができる。本明細書の他の箇所で説明するように、タスク実行命令は、タスクメタデータおよび計算タスクのタスク記述を含むことができる。
【０１１１】
ブロック６０４において、第１のＴＶＶＳ１０９ａは、計算タスクを実行することができる。特に、第１のＴＶＶＳ１０９ａでは、メッセージプロセッサ２０２がタスクメタデータおよび計算タスクのタスク記述を抽出するためにタスク実行命令を分析することができ、タスクメタデータは本明細書の他の箇所で説明されるように、計算タスクの処理リソース要件を含むことができる。リソースマネージャ２１０は、処理リソース要件で指定さ
れた様々なリソースコンポーネントの量に従って、リソースプール２５２内の処理リソースを計算タスクに割り当てることができる。次いで、タスク実行部２０８は、割り当てられた処理リソースを使用して、計算タスクの実行を行うことができる。
【０１１２】
ブロック６０６において、第１のＴＶＶＳ１０９ａは、計算タスクの実行を監視することができる。特に、第１のＴＶＶＳ１０９ａでは、タスク実行部２０８が複数のチェックポイントタイムスタンプ（例えば、２秒毎など）での計算タスクの実行を記述する複数のタスクパフォーマンスメトリックを頻繁に判定することができる。いくつかの実施形態では、チェックポイントタイムスタンプは、計算タスクの実行中のタイムスタンプであってもよい。図８は、計算タスクの実行を監視するための例示的な方法８００のフローチャートである。ブロック８０２において、タスク実行部２０８は計算タスクのタスク実行時間を判定することができ、タスク実行時間はチェックポイントタイムスタンプ（例えば、８秒）まで計算タスクが実行された時間量を示すことができる。ブロック８０４において、タスク実行部２０８は、計算タスクのタスク進捗メトリックを判定することができる。特に、タスク実行部２０８はチェックポイントタイムスタンプにおける計算タスクのタスク完了パーセンテージ（例えば、８８％）を判定することができる。タスク実行部２０８は、計算タスクのタスク実行速度を計算することもできる。いくつかの実施形態では、タスク実行速度は、計算タスクがタスク実行部２０８によって実行される速度を示すことができ、タスク完了パーセンテージと計算タスクのタスク実行時間との間の比（例えば、１１％／秒）として計算することができる。他のタイプのタスク進捗メトリックも可能であり、企図される。
【０１１３】
ブロック８０６において、タスク実行部２０８は、計算タスクの残りの実行時間を推定することができ、残りの実行時間はチェックポイントタイムスタンプ（例えば、７秒）から計算タスクを完了するのに必要な追加時間の量を示すことができる。ブロック８０８において、タスク実行部２０８は、計算タスクの完了処理リソース要件を推定することができ、完了処理リソース要件は、チェックポイントタイムスタンプにおいて計算タスクの実行を完了するための様々なリソースコンポーネントの要件を記述することができる。いくつかの実施形態では、完了処理リソース要件は、完了計算プロファイルおよび完了通信プロファイルを含むことができる。完了計算プロファイルは、チェックポイントタイムスタンプで計算タスクの実行を完了するのに必要な計算リソースの量、データ記憶リソースの量、メモリリソースの量、センシングリソースの量などを指定することができる。完了通信プロファイルは、チェックポイントタイムスタンプで計算タスクの実行を完了するために必要な通信リソースの量を計算するために使用することができる様々な要因を指定することができる。いくつかの実施形態では、タスク実行部２０８は、仮想データストア１２８内の計算タスクに関連する計算タスクエントリを更新して、タスクパフォーマンスメトリックのこれらの更新された値を含めることができる。ブロック８１０において、リソースマネージャ２１０は、チェックポイントタイムスタンプにおいて第１のＴＶＶＳ１０９ａの利用可能な処理リソースを任意選択で判定することができる。本明細書の他の箇所で説明するように、リソースマネージャ２１０は、チェックポイントタイムスタンプにおいて第１のＴＶＶＳ１０９ａの各参加車両によって寄与された利用可能な処理リソースの量と、チェックポイントタイムスタンプにおいて第１のＴＶＶＳ１０９ａのリソースプール２５２内の利用可能な処理リソースの総量とを決定することができる。
【０１１４】
図６Ａに戻って参照すると、ブロック６０８において、第１のＴＶＶＳ１０９ａは、タスク実行ステータスをローカル管理サーバ１０７に送信することができる。特に、第１のＴＶＶＳ１０９ａでは、メッセージプロセッサ２０２が計算タスクのタスクＩＤ、第１のチェックポイントタイムスタンプにおける計算タスクのタスク性能メトリック、および／または、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースを含むタスク実行ステータスを生成することができる。次に、メッセ
ージプロセッサ２０２は、タスク実行ステータスをローカル管理サーバ１０７に送信することができる。ブロック６１０において、ローカル管理サーバ１０７は、タスク実行ステータスを処理することができる。特に、ローカル管理サーバ１０７において、メッセージプロセッサ２０２は、タスク実行ステータスを分析して、計算タスクのタスクＩＤ、計算タスクのタスク性能メトリック、および／または、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースを抽出することができる。上述のように、タスクパフォーマンスメトリックは、第１のチェックポイントタイムスタンプにおける計算タスクのタスク実行時間、タスク進捗メトリック完了パーセンテージ、タスク実行速度など）、推定残り実行時間、完了処理リソース要件などを含むことができる。
【０１１５】
ブロック６１２において、ローカル管理サーバ１０７は、第１のチェックポイントタイムスタンプで計算タスクを再割り当てするかどうかを決定することができる。特に、ローカル管理サーバ１０７では、タスクマネージャ２０６が計算タスクのタスク性能メトリックおよび／または第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースを評価して、計算タスクを再割り当てする必要があるかどうかを判定することができる。図９は、計算タスクを再割り当てするかどうかを決定するための例示的な方法９００のフローチャートである。ブロック９０２において、タスクマネージャ２０６は、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースが計算タスクの完了処理リソース要件を満たすかどうかを判定することができる。ブロック９０２において、タスクマネージャ２０６が、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースが計算タスクの完了処理リソース要件を満たさないと判定した場合、タスクマネージャ２０６は、第１のＴＶＶＳ１０９ａがその現在の利用可能な処理リソースが不十分であるために、計算タスクの実行を完了することができないと判定することができる。次に、方法９００はブロック９１２に進む。ブロック９１２において、タスクマネージャ２０６は、計算タスクが再割り当てされるべきであることを決定することができる。
【０１１６】
ブロック９０４において、タスクマネージャ２０６は、第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプにおいて、第１のＴＶＶＳ１０９ａの利用可能な処理リソースを推定することができる。いくつかの実施形態では、第２のチェックポイントタイムスタンプは、計算タスクを完了する必要がある第２のタイムスタンプであってもよい。いくつかの実施形態では、第２のチェックポイントタイムスタンプは、第１のチェックポイントタイムスタンプおよび事前定義されたチェックポイント間隔に基づいて決定され得る（例えば、２つのチェックポイントタイムスタンプ間の時間距離は３秒の事前定義されたチェックポイント間隔であり得る）。いくつかの実施形態では、タスクマネージャ２０６が、第１のＴＶＶＳ１０９ａに含まれる参加車両の車両移動データに基づいて、第２のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースを推定することができる。
【０１１７】
具体的には、ＴＶＶＳマネージャ２０４は、データストア１２６から第１のＴＶＶＳ１０９ａの車両クラスタデータを取り出し、第１のＴＶＶＳ１０９ａが第１のチェックポイントタイムスタンプで道路セグメント上を移動する第１の参加車両を含むことを判定することができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４が、第１の参加車両の車両移動データを決定することができる。例えば、ＴＶＶＳマネージャ２０４は、第１の参加車両から車両移動データを受信するか、またはデータストア１２６から車両移動データを取り出すことができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４が第１の参加車両の車両移動データを評価し、第１の参加車両からの第２のチェックポイントタイムスタンプにおいて道路セグメント上で互いに近接して位置する第２の参加車両を決定することができる。第１のＴＶＶＳ１０９ａは、潜在的に、第２のチェックポイントタ
イムスタンプで第２の参加車両を含むことができ、したがって、これらの第２の参加車両は、第２のチェックポイントタイムスタンプで第１のＴＶＶＳ１０９ａのリソースプール２５２にそれらの利用可能な処理リソースを寄与することができる。いくつかの実施形態では、タスクマネージャ２０６が、第２の候補参加者車両の利用可能な処理リソースを、第２のチェックポイントタイムスタンプで第１のＴＶＶＳ１０９ａの推定された利用可能な処理リソースに集約することができる。
【０１１８】
ブロック９０６において、タスクマネージャ２０６は、第２のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの推定された利用可能な処理リソースが計算タスクの完了処理リソース要件を満たすかどうかを判定することができる。ブロック９０６で、タスクマネージャ２０６が第２のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの推定された利用可能な処理リソースが計算タスクの完了処理リソース要件を満たさないと判定した場合、タスクマネージャ２０６は、第１のＴＶＶＳ１０９ａがその利用可能な処理リソースがすぐに減少し、タスク実行を継続するのに不十分になる可能性があるので、計算タスクの実行を完了することができないと判定することができる。次に、方法９００はブロック９１２に進む。ブロック９１２において、タスクマネージャ２０６は、計算タスクが再割り当てされるべきであることを決定することができる。第１のＴＶＶＳ１０９ａの利用可能な処理リソースが計算タスクを完了するのに不十分になる前であっても、計算タスクを再割り当てすることができるので、計算タスクに関連するタスク障害のリスクを低減することができ、タスク出力データを要求側エンティティに時間通りに配信することができ、それによって、必要なサービス品質を提供することができる。
【０１１９】
ブロック９０８において、タスクマネージャ２０６は、計算タスクのタスク進捗メトリック所定のタスク進行閾値を満たすかどうかを判定することができる。本明細書の他の箇所で説明するように、計算タスクのタスク進捗メトリックは、計算タスクのタスク完了パーセンテージ、タスク実行速度などを含むことができる。ブロック９０８において、タスクマネージャ２０６が、計算タスクのタスク進捗メトリック所定のタスク進行閾値を満たすと判定した場合、方法９００はブロック９１２に進む。ブロック９１２において、タスクマネージャ２０６は、計算タスクが効率的に実行されていないので、計算タスクが再割り当てされるべきであると決定することができる。一例として、タスクマネージャ２０６は計算タスクのタスク実行速度が所定のタスク実行速度閾値（例えば、５％／秒未満）を満たすと判定し、したがって、計算タスクを再割り当てすることを判定することができる。
【０１２０】
いくつかの実施形態では、タスクマネージャ２０６は、計算タスクのタスク実行速度、タスク完了パーセンテージ、および／または残りの実行時間を評価して、計算タスクが再割り当てされるべきかどうかを判定することができる。一例として、計算タスクのタスク実行速度が３％、タスク完了率が９０％、タスク実行状況から抽出された第１チェックポイントタイムスタンプの推定残実行時間が１５秒であるとする。この例ではタスクマネージャ２０６が計算タスクのタスク実行速度が所定のタスク実行速度閾値（例えば、５％／秒未満）を満たすが、計算タスクのタスク完了パーセンテージが所定のタスク完了パーセンテージ閾値（例えば、７５％未満）を満たさないと判定することができる。この例では計算タスクの実行は完了に近い（タスク完了パーセンテージ＝９０％）ので、別の計算エンティティへのタスク再割り当てを実行するのに必要な処理リソースは第１のＴＶＶＳ１０９ａ上で計算タスクを完了するのに必要な処理リソースよりも高いことがある。したがって、タスクマネージャ２０６は、タスク再割り当てを実行するのに必要な処理リソースを確保するために計算タスクを再割り当てしないことを決定することができる。
【０１２１】
ブロック９１０において、タスクマネージャ２０６は、高いタスク優先度メトリックを
有する別の計算タスクが第１のＴＶＶＳ１０９ａに割り当てられているかどうかを判定することができる。特に、タスクマネージャ２０６は、データストア１２６内のタスク割り当てリストから第１のＴＶＶＳ１０９ａに関連するタスク割り当てエントリを取り出し、第１のＴＶＶＳ１０９ａが所定のタスク優先度メトリック閾値（例えば、０．８より高い）を満たすタスク優先度メトリックを有する別の計算タスクを割り当てられているかどうかを判定することができる。ブロック９１０において、タスクマネージャ２０６が、高いタスク優先度メトリックを有する別の計算タスクが第１のＴＶＶＳ１０９ａに割り当てられていると判定した場合、方法９００はブロック９１２に進む。ブロック９１２において、タスクマネージャ２０６は計算タスクが再割り当てされるべきであることを決定することができ、その結果、リソースプール２５２内の計算タスクに割り当てられた処理リソースを、別の計算タスクの実行のために再割り当てすることができる。
【０１２２】
図６Ａに戻って参照すると、ブロック６１２において、ローカル管理サーバ１０７が、第１のチェックポイントタイムスタンプで計算タスクを再割り当てしないと決定した場合、第１のＴＶＶＳ１０９ａは、計算タスクの実行を継続することができる。ブロック６１２において、ローカル管理サーバ１０７が第１のチェックポイントタイムスタンプで計算タスクを再割り当てすることを決定した場合（例えば、第１のＴＶＶＳ１０９ａが計算タスクの実行を完了することができないため、および／または計算タスクのタスク進捗メトリック所定のタスク進行閾値を満たすためなど）、方法６００はブロック６１４に進む。ブロック６１４において、ローカル管理サーバ１０７は、計算タスクの実行を継続するために計算エンティティを決定することができる。次いで、ローカル管理サーバ１０７は、第１のＴＶＶＳ１０９ａから判定された計算エンティティに計算タスクを再割り当てすることができる。いくつかの実施形態では、第１のチェックポイントタイムスタンプで計算タスクの実行を継続するように計算エンティティを決定することは、図４および図５を参照して上述したように、計算タスクの実行を行うように計算エンティティを決定することと同様の方法で実行されてもよい。
【０１２３】
例えば、ローカル管理サーバ１０７において、タスクマネージャ２０６は、計算タスクの完了処理リソース要件を決定することができる。本明細書の他の箇所で説明するように、計算タスクの完了処理リソース要件は、第１のチェックポイントタイムスタンプで計算タスクの実行を完了するための様々なリソースコンポーネントの要件を記述することができ、タスク実行ステータスから抽出することができる。ここで説明するように、ローカル管理サーバ１０７は、カバレッジエリア１９２内の道路セグメント上に位置する１つ以上のＴＶＶＳ１０９を含む一組のＴＶＶＳを管理することができ、一組のＴＶＶＳ内の各ＴＶＶＳ１０９は、第１のチェックポイントタイムスタンプにおいて道路セグメント上で互いに近接して位置する参加車両を含むことができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４が、ＴＶＶＳのセットを決定することができ、タスクマネージャ２０６はＴＶＶＳのセット内のＴＶＶＳ１０９を評価して、計算タスクの実行を継続することができる第２のＴＶＶＳ１０９ｂを決定することができる。いくつかの実施形態では、他のローカルサーバ１０７のカバレッジエリア１９２内に位置するＴＶＶＳの他のセットも、第２のＴＶＶＳ１０９ｂを決定するために評価されてもよい。
【０１２４】
いくつかの実施形態では、ＴＶＶＳのセット内の各ＴＶＶＳ１０９について、タスクマネージャ２０６は、第１のチェックポイントタイムスタンプでＴＶＶＳ１０９の利用可能な処理リソースを決定し、第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプでＴＶＶＳ１０９の利用可能な処理リソースを推定することができる。いくつかの実施形態では、第２のチェックポイントタイムスタンプが計算タスクを完了する必要がある第２のタイムスタンプであってもよい。いくつかの実施形態では、タスクマネージャ２０６がデータストア１２６から第１のチェックポイントタイムスタンプでＴＶＶＳ１０９の利用可能な処理リソースを取り出し、本明細書の他の箇所で説明する
ように、ＴＶＶＳ１０９に含まれる参加車両の車両移動データに基づいて、第２のタイムスタンプでＴＶＶＳ１０９の利用可能な処理リソースを推定することができる。
【０１２５】
いくつかの実施形態では、タスクマネージャ２０６は、計算タスクの完了処理リソース要件、第１のチェックポイントタイムスタンプにおける第２のＴＶＶＳ１０９ｂの利用可能な処理リソース、および第２のタイムスタンプにおける第２のＴＶＶＳ１０９ｂの推定された利用可能な処理リソースに基づいて、ＴＶＶＳのセットから第２のＴＶＶＳ１０９ｂを選択することができる。例えば、タスクマネージャ２０６は、第１のタイムスタンプにおける第２のＴＶＶＳ１０９ｂの利用可能な処理リソースが計算タスクの完了処理リソース要件を満たすことを決定することができ、かつ／または、第２のタイムスタンプにおける第２のＴＶＶＳ１０９ｂの利用可能な処理リソースが計算タスクの完了処理リソース要件を満たすことを決定することができる。したがって、タスクマネージャ２０６は第２のＴＶＶＳ１０９ｂが計算タスクの実行を継続し完了するのに十分な処理リソースを潜在的に有すると判断し、したがって、タスク実行を継続するために、第１のＴＶＶＳ１０９ａから第２のＴＶＶＳ１０９ｂに計算タスクを再割り当てすることができる。いくつかの実施形態では、ＴＶＶＳマネージャ２０４およびタスクマネージャ２０６が本明細書の他の箇所で説明するように、新しいＴＶＶＳ１０９を形成し、計算タスクを新しいＴＶＶＳ１０９に再割り当てすることができる。計算タスクは、タスク実行を継続するために、システム１００の他の計算エンティティ（例えば、集中サーバ１０１、ローカル管理サーバ１０７、他のローカルサーバ１０７など）に再割り当てされてもよいことを理解されたい。
【０１２６】
いくつかの実施形態では、タスクマネージャ２０６は、通信リソース要件を評価して、１組のＴＶＶＳから第２のＴＶＶＳ１０９ｂを決定し、計算タスクを再割り当てすることができる。例えば、１組のＴＶＶＳ内のＴＶＶＳ１０９に計算タスクを再割り当てするかどうかを決定するために、タスクマネージャ２０６は、ＴＶＶＳ１０９に関連する計算タスクの通信リソース要件を決定することができる。具体的には、タスクマネージャ２０６が、ＴＶＶＳ１０９上での計算タスクの実行を完了するのに必要な通信リソースの量を推定することができる。そのような必要な通信リソースの量は、第１のＴＶＶＳ１０９ａからＴＶＶＳ１０９に計算タスクを送信するための通信リソースの量と、ＴＶＶＳ１０９上で計算タスクの実行を継続するための通信リソースの量とを含むことができる。
【０１２７】
いくつかの実施形態では、タスクマネージャ２０６が、計算タスクの完了通信プロファイルを決定することができる。完了通信プロファイルは計算タスクの実行を完了するために必要とされる通信リソースの量を計算するために使用することができ、タスク実行ステータスから抽出することができる様々な要因を指定することができる。いくつかの実施形態では、完了通信プロファイルがタスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク実行データの実行データサイズ（例えば、計算タスクの仮想マシンイメージ）、タスク入力データに関連する地理的位置、計算タスクのタスク出力データに関連する地理的位置などを指定することができる。いくつかの実施形態では、タスクマネージャ２０６が第１のチェックポイントタイムスタンプにおけるＴＶＶＳ１０９の地理的位置と、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの地理的位置とを決定することができる。いくつかの実施形態では、ＴＶＶＳのセット内のＴＶＶＳ１０９が、そのＴＶＶＳ地理的位置をローカル管理サーバ１０７に頻繁に（例えば、１つ毎に）送信することができ、したがって、タスクマネージャ２０６はデータストア１２６から、ＴＶＶＳ１０９のＴＶＶＳ地理的位置と、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａのＴＶＶＳ地理的位置とを取り出すことができる。
【０１２８】
いくつかの実施形態では、タスクマネージャ２０６は、計算タスクの完了通信プロファ
イル、第１のチェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの地理的位置、および第１のチェックポイントタイムスタンプにおけるＴＶＶＳ１０９の地理的位置を使用して、ＴＶＶＳ１０９上での計算タスクの実行を完了するために必要な通信リソースの量を推定することができる。いくつかの実施形態では、そのような必要な通信リソースの量は、第１のＴＶＶＳ１０９ａのＴＶＶＳ地理的位置からＴＶＶＳ１０９のＴＶＶＳ地理的位置までの距離、ＴＶＶＳ１０９のＴＶＶＳ地理的位置から計算タスクのタスク入力データに関連する地理的位置までの距離、および／または、ＴＶＶＳ１０９のＴＶＶＳ地理的位置から計算タスクのタスク出力データに関連する地理的位置までの距離に正比例することができる。いくつかの実施形態では、そのような必要な通信リソースの量は、計算タスクに関連するタスク実行データの実行データサイズ、タスク入力データの入力データサイズ、タスク出力データの出力データサイズなどに正比例することもできる。
【０１２９】
いくつかの実施形態では、タスクマネージャ２０６は、ＴＶＶＳ１０９に関連する計算タスクの通信リソース要件に基づいて、計算タスクをＴＶＶＳ１０９に再割り当てするかどうかを決定することができる。例えば、タスクマネージャ２０６は、ＴＶＶＳ１０９上の計算タスクの実行を完了するのに必要な通信リソースの量が所定の通信リソース要件閾値（例えば、３Ｍｂｐｓ未満）を満たすと判定し、したがって、計算タスクを、第１のＴＶＶＳ１０９ａからＴＶＶＳ１０９に再割り当てすることができる。いくつかの実施形態では、タスクマネージャ２０６は、ＴＶＶＳ１０９が計算タスクの実行を継続および完了するのに十分な処理リソースを潜在的に有し、ＴＶＶＳ１０９上での計算タスクの実行を完了するのに必要な通信リソースの量が事前定義された通信リソース要件閾値を満たす場合にのみ、計算タスクをＴＶＶＳ１０９に再割り当てすることができる。この実装は、第１のＴＶＶＳ１０９ａから計算タスクを受信し、ＴＶＶＳ１０９上で計算タスクの実行を継続するために大量の通信リソースを必要とするＴＶＶＳ１０９への計算タスクの再割り当てを回避するので、特に有利である。その結果、Ｖ２Ｘ接続（例えば、Ｖ２Ｖ接続、Ｖ２Ｉ接続など）によって提供される制限された通信リソースの利用を最適化することができる。
【０１３０】
再び図６Ａを参照すると、ブロック６１６において、ローカル管理サーバ１０７は、タスク再割り当て命令を生成し、第１のＴＶＶＳ１０９ａに送信することができる。いくつかの実施形態では、タスク再割り当て命令は、第１のＴＶＶＳ１０９ａに、計算タスクの実行を継続すると判定された計算エンティティ（例えば、第２のＴＶＶＳ１０９ｂ）に計算タスクを転送するよう命令することができる。タスク再割り当て命令は、計算タスクのタスクＩＤ及び第２のＴＶＶＳ１０９ｂのＴＶＶＳ−ＩＤを含むことができる。タスク再割り当て命令の受信に応答して、第１のＴＶＶＳ１０９ａは、第１のＴＶＶＳ１０９ａ上の計算タスクの実行を終了することができる。ブロック６１８において、第１のＴＶＶＳ１０９ａは、計算タスクのタスクデータを含むようにタスク再割り当て命令を更新することができる。特に、第１のＴＶＶＳ１０９ａでは、メッセージプロセッサ２０２が、タスク再割り当て命令を分析して、計算タスクのタスクＩＤおよび第２のＴＶＶＳ１０９ｂのＴＶＶＳ−ＩＤを抽出することができる。次いで、タスク実行部２０８は（例えば、タスクＩＤを使用して）仮想データストア１２８内のタスク実行リストから計算タスクに関連する計算タスクエントリを取り出し、計算タスクエントリに格納されたタスクデータを含むようにタスク再割り当て命令を更新することができる。本明細書の他の場所で論じられるように、タスクデータは、計算タスクの様々な特性を指定するタスクメタデータ、実行可能な方法で計算タスクを記述するタスク記述（例えば、計算タスクの現在の状態を記述する仮想マシンイメージなど）、および／または、計算タスクの実行を継続するために必要な任意の他のタイプのデータを含むことができる。
【０１３１】
ブロック６２０において、第１のＴＶＶＳ１０９ａは、更新されたタスク割り当て命令を第２のＴＶＶＳ１０９ｂに送信することができる。ブロック６２２において、第２のＴ
ＶＶＳ１０９ｂは、更新されたタスク割り当て命令を処理することができる。具体的には、第２のＴＶＶＳ１０９ｂにおいて、メッセージプロセッサ２０２が、更新されたタスク割り当て命令を分析して、計算タスクのタスクＩＤおよび他のタスクデータを抽出することができる。ブロック６２４において、第２のＴＶＶＳ１０９ｂは、タスク再割り当て確認を生成し、第１のＴＶＶＳ１０９ａに送信することができる。いくつかの実施形態では、タスク再割り当て確認は、計算タスクが第２のＴＶＶＳ１０９ｂで受信され、第２のＴＶＶＳ１０９ｂが計算タスクの実行を引き継ぐことを確認することができる。いくつかの実施形態では、タスク再割り当て確認は、計算タスクのタスクＩＤを含むことができる。ブロック６３２において、第２のＴＶＶＳ１０９ｂは、計算タスクの実行を継続することができる。特に、第２のＴＶＶＳ１０９ｂでは、タスク実行部２０８が仮想データストア１２８内のタスク実行リストを更新して計算タスクを含め、更新されたタスク割当命令から抽出されたタスクデータを用いて計算タスクの実行を継続することができる。
【０１３２】
ブロック６２６において、第２のＴＶＶＳ１０９ｂからタスク再割り当て確認を受信することに応答して、第１のＴＶＶＳ１０９ａは、計算タスクに関連する処理リソースを解放することができる。特に、第１のＴＶＶＳ１０９ａでは、リソースマネージャ２１０が、第１のＴＶＶＳ１０９ａのリソースプール２５２内の計算タスクに割り振られた処理リソースを解放し、それに応じて第１のＴＶＶＳ１０９ａのリソース割り振りデータを更新することができる。いくつかの実施形態では、タスク実行部２０８が、（例えば、タスクＩＤを使用して）仮想データストア１２８内のタスク実行リストから計算タスクに関連する計算タスクエントリを取り出し、計算タスクエントリ内の計算タスクのタスク実行ステータスを「再割り当て完了」に更新することができる。
【０１３３】
ブロック６２８において、第１のＴＶＶＳ１０９ａは、タスク終了通知を生成し、ローカル管理サーバ１０７に送信することができる。いくつかの実施形態では、タスク終了通知は、計算タスクが第１のＴＶＶＳ１０９ａから第２のＴＶＶＳ１０９ｂに転送され、計算タスクが第１のＴＶＶＳ１０９ａ上で終了することを示すことができる。タスク終了通知は、計算タスクのタスクＩＤおよび第２のＴＶＶＳ１０９ｂのＴＶＶＳ−ＩＤを含むことができる。第１のＴＶＶＳ１０９ａからタスク終了通知を受信することに応答して、ブロック６３０において、ローカル管理サーバ１０７は、タスク割り当てを更新することができる。具体的にはローカル管理サーバ１０７において、メッセージプロセッサ２０２はタスク終了通知を解析して、計算タスクのタスクＩＤおよび第２のＴＶＶＳ１０９ｂのＴＶＶＳ−ＩＤを抽出することができる。次に、タスクマネージャ２０６は（例えば、タスクＩＤを使用して）データストア１２６内のタスク割り当てリストから計算タスクに関連するタスク割り当てエントリを取り出し、計算タスクを第２のＴＶＶＳ１０９ｂに関連付けるためにタスク割り当てエントリを更新することができる。これにより、第１のＴＶＶＳ１０９ａから第２のＴＶＶＳ１０９ｂへの計算タスクのタスク再割当が完了する。
【０１３４】
図７は、計算タスクを再割り当てするための別の例示的な方法７００のフローチャートである。ブロック７０２において、ローカル管理サーバ１０７は、タスク実行命令を生成し、第１のＴＶＶＳ１０９ａに送信することができ、タスク実行命令は、第１のＴＶＶＳ１０９ａに計算タスクを実行するように命令することができる。ブロック７０４において、第１のＴＶＶＳ１０９ａは、計算タスクを実行することができる。ブロック７０６において、第１のＴＶＶＳ１０９ａは、計算タスクの実行を監視することができる。例えば、第１のＴＶＶＳ１０９ａは、チェックポイントタイムスタンプにおける計算タスクの実行と、チェックポイントタイムスタンプにおける第１のＴＶＶＳ１０９ａの利用可能な処理リソースとを記述する複数のタスクパフォーマンスメトリックを決定することができる。ブロック７０８において、第１のＴＶＶＳ１０９ａは、チェックポイントタイムスタンプにおいて計算タスクを再割り当てするかどうかを決定することができる。いくつかの実施形態では、第１のＴＶＶＳ１０９ａが図６Ａおよび図６Ｂを参照して上述したように、ロ
ーカル管理サーバ１０７が第１のチェックポイントタイムスタンプで計算タスクを再割り当てするかどうかを決定するのと同様の方法で、チェックポイントタイムスタンプで計算タスクを再割り当てするかどうかを決定することができる。たとえば、第１のＴＶＶＳ１０９ａはそのリソースプール２５２内の利用可能な処理リソースがすぐに減少し、（たとえば、１つまたは複数の参加車両が発車するため）計算タスクの実行を完了するのに不十分になる可能性があると判断することができる。したがって、第１のＴＶＶＳ１０９ａは、計算タスクをチェックポイントタイムスタンプで再割り当てする必要があると判定することができる。
【０１３５】
ブロック７０８で、第１のＴＶＶＳ１０９ａが、計算タスクをチェックポイントタイムスタンプで再割り当てする必要があると判定した場合、方法７００はブロック７１０に進む。ブロック７１０において、第１のＴＶＶＳ１０９ａはタスク割り当て要求を生成し、ローカル管理サーバ１０７に送信することができる。いくつかの実施形態では、タスク割り当て要求が計算タスクの実行を継続するために、計算タスクを別の計算エンティティに再割り当てするようにローカル管理サーバ１０７に要求することができる。タスク割当要求は、計算タスクのタスクＩＤ及び他のタスクデータを含むことができる。ブロック７１２において、ローカル管理サーバ１０７は、計算タスクの実行を継続するために計算エンティティを決定することができる。いくつかの実施形態では、計算タスクの実行を継続するための計算エンティティは、図６Ａおよび図６Ｂを参照して上述したのと同様の方法で決定することができる。例えば、ローカル管理サーバ１０７は、計算タスクの実行を継続する計算エンティティを、第２のＴＶＶＳ１０９ｂであると決定することができる。
【０１３６】
ブロック７１４において、ローカル管理サーバ１０７は、タスク再割り当て命令を生成し、第２のＴＶＶＳ１０９ｂに送信することができる。いくつかの実施形態では、タスク再割り当て命令が計算タスクの実行を継続するように第２のＴＶＶＳ１０９ｂに命令することができる。タスク再割り当て命令は計算タスクのタスクＩＤおよび他のタスクデータ（例えば、タスクメタデータ、タスク記述など）を含むことができる。ブロック７１６において、第２のＴＶＶＳ１０９ｂは、タスク再割り当て命令を処理することができる。具体的には、第２のＴＶＶＳ１０９ｂがタスク割り当て命令を分析して、計算タスクのタスクＩＤおよび他のタスクデータを抽出することができる。ブロック７１８において、第２のＴＶＶＳ１０９ｂはタスク再割り当て確認を生成し、ローカル管理サーバ１０７に送信することができる。いくつかの実施形態では、タスク再割り当て確認が、計算タスクが第２のＴＶＶＳ１０９ｂで受信され、第２のＴＶＶＳ１０９ｂが計算タスクの実行を継続することを確認することができる。いくつかの実施形態では、タスク再割り当て確認が計算タスクのタスクＩＤを含むことができる。ブロック７３０において、第２のＴＶＶＳ１０９ｂは、タスク割り当て命令から抽出されたタスクデータを使用して計算タスクの実行を継続することができる。
【０１３７】
ブロック７２０において、第２のＴＶＶＳ１０９ｂからタスク再割り当て確認を受信することに応答して、ローカル管理サーバ１０７は、タスク終了命令を生成し、第１のＴＶＶＳ１０９ａに送信することができる。いくつかの実施形態では、タスク終了命令が、計算タスクを終了するよう第１のＴＶＶＳ１０９ａに命令することができる。いくつかの実施形態では、タスク終了命令が計算タスクのタスクＩＤを含むことができる。ローカル管理サーバ１０７からタスク終了命令を受信することに応答して、第１のＴＶＶＳ１０９ａは、第１のＴＶＶＳ１０９ａ上の計算タスクの実行を終了することができる。ブロック７２４において、第１のＴＶＶＳ１０９ａは、計算タスクに関連する処理リソースを解放することができる。いくつかの実施形態では、第１のＴＶＶＳ１０９ａが（例えば、タスクＩＤを使用して）仮想データストア１２８内の計算タスクに関連する計算タスクエントリを取り出し、計算タスクエントリ内の計算タスクのタスク実行ステータスを「再割り当て完了」に更新することができる。
【０１３８】
ブロック７２６において、第１のＴＶＶＳ１０９ａは、タスク終了通知を生成し、ローカル管理サーバ１０７に送信することができる。いくつかの実施形態では、タスク終了通知が計算タスクの実行が第１のＴＶＶＳ１０９ａ上で終了されることを示すことができる。ブロック７２８において、第１のＴＶＶＳ１０９ａからタスク終了通知を受信することに応答して、ローカル管理サーバ１０７は、タスク割り当てを更新することができる。特に、ローカル管理サーバ１０７では、タスクマネージャ２０６がデータストア１２６内のタスク割り当てリストから計算タスクに関連するタスク割り当てエントリを（例えば、タスクＩＤを使用して）取り出し、計算タスクを第２のＴＶＶＳ１０９ｂに関連付けるためにタスク割り当てエントリを更新することができる。これにより、第１のＴＶＶＳ１０９ａから第２のＴＶＶＳ１０９ｂへの計算タスクのタスク再割当が完了する。
【０１３９】
ブロック７０８で、第１のＴＶＶＳ１０９ａが、計算タスクをチェックポイントタイムスタンプで再割り当てする必要がないと判定した場合、方法７００はブロック７２２に進む。ブロック７２２において、第１のＴＶＶＳ１０９ａは、計算タスクが完了したかどうかを判定することができる。ブロック７２２において、第１のＴＶＶＳ１０９ａが、計算タスクが完了していないと判定した場合、方法７００はブロック７０６に進み、計算タスクが第１のＴＶＶＳ１０９ａ上で実行される際に、計算タスクの実行を監視し続ける。ブロック７２２において、第１のＴＶＶＳ１０９ａが、計算タスクが完了したと判定した場合、第１のＴＶＶＳ１０９ａは、計算タスクの実行を終了することができる。ブロック７２４において、第１のＴＶＶＳ１０９ａは、計算タスクに関連する処理リソースを解放することができる。いくつかの実施形態では、第１のＴＶＶＳ１０９ａが（例えば、タスクＩＤを使用して）仮想データストア１２８内の計算タスクに関連する計算タスクエントリを取り出し、計算タスクエントリ内の計算タスクのタスク実行ステータスを「実行完了」に更新することができる。
【０１４０】
ブロック７２６において、第１のＴＶＶＳ１０９ａは、タスク終了通知を生成し、ローカル管理サーバ１０７に送信することができる。いくつかの実施形態では、タスク終了通知が計算タスクの実行が第１のＴＶＶＳ１０９ａ上で完了したことを示すことができる。ブロック７２８において、第１のＴＶＶＳ１０９ａからタスク終了通知を受信することに応答して、ローカル管理サーバ１０７は、タスク割り当てを更新することができる。いくつかの実施形態では、計算タスクの実行が完了すると、ローカル管理サーバ１０７はデータストア１２６内のタスク割り当てリストから、計算タスクに関連するタスク割り当てエントリを削除することができる。
【０１４１】
したがって、上述のように、計算タスクは計算タスクの処理リソース要件を満たす第１のタイムスタンプ（例えば、現在のタイムスタンプ）に初期の利用可能な処理リソースを有し、計算タスクの処理リソース要件を満たす第２のタイムスタンプ（例えば、ターゲット完了タイムスタンプ）に将来の利用可能な処理リソースを有する第１のＴＶＶＳ１０９ａに割り当てることができる。したがって、第１のＴＶＶＳ１０９ａは、タスク再割り当てを必要とせずに計算タスクの実行を完了することができる可能性が高い。計算タスクの実行中に、第１のＴＶＶＳ１０９ａが予想通りに計算タスクの実行を完了することができない場合、計算タスクはタスク実行を完了するために、別の計算エンティティ（例えば、第２のＴＶＶＳ１０９ｂ）に適時に再割り当てされてもよい。上述したように、計算タスクは、計算タスクの処理リソース要件を満たす第１のチェックポイントタイムスタンプ（例えば、現在のタイムスタンプ）に、初期の利用可能な処理リソースを有し、計算タスクの完了処理リソース要件を満たす第２のタイムチェックポイントスタンプ（例えば、ターゲット完了タイムスタンプ）に、将来の利用可能な処理リソースを有する第２のＴＶＶＳ１０９ｂに再割り当てされてもよい。したがって、第２のＴＶＶＳ１０９ｂは別のタスク再割り当てを必要とせずに、計算タスクの実行を継続し、完了することができる可能性が
高い。その結果、計算タスクの性能要件は、タスク失敗の非常に限定されたリスクで満たすことができる。したがって、特に、交通状況検出、車線逸脱警告、緊急ブレーキなどの時間に敏感で安全性が重要な計算タスクの場合に、サービス品質を改善することができる。
【０１４２】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実装形態はこれらの具体的な詳細無しでも実施できることは当業者にとって明らかであろう。また、発明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。たとえば、本発明は、クライアント装置および特定のソフトウェア／ハードウェアとともに実装される。しかし、明細書の記載は、データおよびコマンドを受信する任意のタイプの計算装置、および、サービスを提供する任意の周辺機器について適用できる。
【０１４３】
以上の詳細な説明の一部は、コンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１４４】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」といった用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１４５】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光学式カード、ＵＳＢキーを含む不揮発性フラッシュメモリ、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【０１４６】
発明の具体的な実装形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。実装形態は、ソフトウェアによって実現されてもよい。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
さらに、ある実装形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信
、伝搬および転送可能な任意の装置を指す。
【０１４７】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１４８】
データ処理システムが、介在するプライベートネットワークおよび／またはパブリックネットワークを介して、他のデータ処理システム、ストレージデバイス、リモートプリンタなどに結合されるようになることを可能にするために、ネットワークアダプタもシステムに結合されうる。ワイヤレス（たとえば、Ｗｉ−Ｆｉ（登録商標））トランシーバ、イーサネット（登録商標）アダプタ、およびモデムは、ネットワークアダプタのほんの数例に過ぎない。プライベートネットワークおよびパブリックネットワークは、任意の数の構成および／またはトポロジを有しうる。データは、たとえば、様々なインターネットレイヤ、トランスポートレイヤ、またはアプリケーションレイヤのプロトコルを含む、様々な異なる通信プロトコルを使用して、ネットワークを介してこれらのデバイス間で送信されうる。たとえば、データは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、伝送制御プロトコル（ＴＣＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、セキュアハイパーテキスト転送プロトコル（ＨＴＴＰＳ）、動的適応ストリーミングオーバーＨＴＴＰ（ＤＡＳＨ）、リアルタイムストリーミングプロトコル（ＲＴＳＰ）、リアルタイムトランスポートプロトコル（ＲＴＰ）およびリアルタイムトランスポート制御プロトコル（ＲＴＣＰ）、ボイスオーバーインターネットプロトコル（ＶＯＩＰ）、ファイル転送プロトコル（ＦＴＰ）、ウェブソケット（ＷＳ）、ワイヤレスアクセスプロトコル（ＷＡＰ）、様々なメッセージングプロトコル（ＳＭＳ、ＭＭＳ、ＸＭＳ、ＩＭＡＰ、ＳＭＴＰ、ＰＯＰ、ＷｅｂＤＡＶなど）、または他の既知のプロトコルを使用して、ネットワークを介して送信されうる。
【０１４９】
最後に、本明細書において提示される構造、アルゴリズム、および／または
インターフェースは、特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を構築することが適した場合もある。これら種々のシステムに要求される構成は、以上の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。様々な実装形態で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１５０】
実装形態の前述の説明は、例示と説明を目的として行われたものである。したがって、明細書を、網羅的または開示された正確な形式に限定することを意図するものではない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実装形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。
【０１５１】
さらに、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できる。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。
【図１Ａ】
2020030813.tif 000003
【図１Ｂ】
2020030813.tif 000004
【図２Ａ】
2020030813.tif 000005
【図２Ｂ】
2020030813.tif 000006
【図３】
2020030813.tif 000007
【図４】
2020030813.tif 000008
【図５】
2020030813.tif 000009
【図６Ａ】
2020030813.tif 000010
【図６Ｂ】
2020030813.tif 000011
【図７】
2020030813.tif 000012
【図８】
2020030813.tif 000013
【図９】
2020030813.tif 000014
【手続補正書】
【提出日】令和1年11月11日(2019.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、
前記第１の参加車両の車両移動データを判定するステップと、
前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、
前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を含む、方法。
【請求項２】
前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースを推定するステップが、
前記第１の参加車両から、前記第１の参加車両の前記車両移動データに基づいて、前記第２のタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する第２の参加車両を判定するステップであって、前記第１のＴＶＶＳが、前記第２のタイムスタンプにおいて前記第２の参加車両を含むステップと、
前記第２のタイムスタンプにおける、前記第２の参加車両の利用可能な処理リソースを、前記第１のＴＶＶＳの前記推定された利用可能な処理リソースに集約するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のタイムスタンプと、前記計算タスクのタスク期間とに基づいて、前記第２のタイムスタンプを判定するステップをさらに含む、
請求項１または２に記載の方法。
【請求項４】
前記第１の参加車両に含まれる各参加車両の前記車両移動データは、前記参加車両の速度、地理的位置、経路のうちの１つ以上を記述するものである、
請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを判定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第１のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースとに基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記計算タスクの実行中の第１のチェックポイントタイムスタンプにおいて、前記計算タスクの完了処理リソース要件を判定するステップと、
前記第１のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳが第２の参加車両を含むことを判定するステップと、
前記第２の参加車両の車両移動データに基づいて、前記第１のチェックポイントタイムスタンプに続く第２のチェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記完了処理リソース要件と、前記第２のチェックポイントタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないことを判定するステップと、
前記第１のＴＶＶＳが前記計算タスクの実行を完了することができないと判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１から４のいずれか１項に記載の方法。
【請求項７】
前記計算タスクのタスク進捗メトリックを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが事前定義されたタスク進捗閾値を満たしていることを判定するステップと、
前記計算タスクの前記タスク進捗メトリックが前記事前定義されたタスク進捗閾値を満たしていると判定したことに応答して、前記計算タスクを再割り当てするステップと、
をさらに含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの完了処理リソース要件を判定するステップと、
ＴＶＶＳのセットを判定するステップであって、前記セットの各ＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含み、各ＴＶＶＳが前記チェックポイントタイムスタンプにおいて利用可能な処理リソースと、前記第２のタイムスタンプにおける推定された利用可能な処理リソースとを有するステップと、
前記ＴＶＶＳのセットから、前記計算タスクの前記完了処理リソース要件と、前記チェックポイントタイムスタンプにおける第２のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第２のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第２のＴＶＶＳを選択するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記計算タスクの実行中のチェックポイントタイムスタンプにおいて前記計算タスクが再割り当てされるべきであることを判定するステップと、
前記計算タスクの通信プロファイルを判定するステップと、
前記チェックポイントタイムスタンプにおいて前記第１のＴＶＶＳの地理的位置を判定するステップと、
前記チェックポイントタイムスタンプにおいて第２のＴＶＶＳの地理的位置を判定するステップであって、前記第２のＴＶＶＳが、前記チェックポイントタイムスタンプにおいて前記道路セグメント上で互いに近接して位置する参加車両を含むステップと、
前記計算タスクの前記通信プロファイルと、前記チェックポイントタイムスタンプにおける前記第１のＴＶＶＳの地理的位置と、前記チェックポイントタイムスタンプにおける前記第２のＴＶＶＳの地理的位置と、を使用して、前記第２のＴＶＶＳに関連付けられた前記計算タスクの通信リソース要件を判定するステップと、
前記第２のＴＶＶＳに関連付けられた前記計算タスクの前記通信リソース要件に基づいて、前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定するステップと、
前記計算タスクを前記第２のＴＶＶＳに再割り当てすることを決定したことに応答して、前記計算タスクを前記第２のＴＶＶＳに再割り当てして前記計算タスクの実行を継続するステップと、
をさらに含む、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記計算タスクの前記通信プロファイルが、
タスク入力データの入力データサイズ、タスク出力データの出力データサイズ、タスク実行データサイズ、前記タスク入力データの要求頻度、前記計算タスクに関連付けられた前記タスク出力データの要求頻度、
前記計算タスクの前記タスク入力データが受信される１つ以上の計算エンティティの地理的位置、前記計算タスクの前記タスク出力データが送信される１つ以上の計算エンティティの地理的位置、
のうちの１つ以上を指定するものである、
請求項９に記載の方法。
【請求項１１】
前記計算タスクのタスク入力データが前記道路セグメントに関連付けられていることを判定するステップと、
前記道路セグメントに関連付けられた追加の入力データであって、前記第１のＴＶＶＳに含まれる前記第１の参加車両の１つ以上のセンサによって生成された入力データを判定し、
前記計算タスクの前記タスク入力データと、前記第１の参加車両の前記１つ以上のセンサによって生成された前記追加の入力データとを使用して、前記計算タスクの実行を行うように、前記第１のＴＶＶＳに指示するステップと、
をさらに含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の互いに近接して位置する候補参加車両を判定するステップと、
前記候補参加車両の車両移動データを判定するステップと、
前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムス
タンプにおいて前記候補参加車両を含むステップと、
前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、
前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を含む、方法。
【請求項１３】
前記候補参加車両は、所定の相対距離閾値を満たす前記道路セグメント上で互いに対する相対距離を有する、
請求項１２に記載の方法。
【請求項１４】
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップが、
前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースが前記計算タスクの前記処理リソース要件を満たしていることを判定するステップと、
を含む、請求項１２または１３に記載の方法。
【請求項１５】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行された場合に、システムに、
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
第１のタイムスタンプにおける第１の一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記第１のＴＶＶＳが、前記第１のタイムスタンプにおいて道路セグメント上で互いに近接して位置する第１の参加車両を含むステップと、
前記第１の参加車両の車両移動データを判定するステップと、
前記第１の参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記第１のＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記第１のＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記第１のＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記第１のＴＶＶＳにおいて前記計算タスクを実行することを決定するステップと、
前記第１のＴＶＶＳにおいて前記計算タスクを実行すると決定したことに応答して、前記計算タスクを前記第１のＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を実行させる命令を記憶する１つ以上のメモリと、を備える、システム。
【請求項１６】
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行された場合に、システムに、
計算タスクを受信するステップと、
前記計算タスクの処理リソース要件を判定するステップと、
道路セグメント上の車両から、第１のタイムスタンプにおいて前記道路セグメント上の
互いに近接して位置する候補参加車両を判定するステップと、
前記候補参加車両の車両移動データを判定するステップと、
前記第１のタイムスタンプにおける候補一時的車両仮想サーバ（ＴＶＶＳ）の利用可能な処理リソースを判定するステップであって、前記候補ＴＶＶＳが、前記第１のタイムスタンプにおいて前記候補参加車両を含むステップと、
前記候補参加車両の前記車両移動データに基づいて、前記第１のタイムスタンプに続く第２のタイムスタンプにおける前記候補ＴＶＶＳの利用可能な処理リソースを推定するステップと、
前記計算タスクの前記処理リソース要件と、前記第１のタイムスタンプにおける前記候補ＴＶＶＳの前記利用可能な処理リソースと、前記第２のタイムスタンプにおける前記候補ＴＶＶＳの前記推定された利用可能な処理リソースと、に基づいて、前記計算タスクが前記候補ＴＶＶＳ上で実行可能であることを判定するステップと、
前記計算タスクが前記候補ＴＶＶＳ上で実行可能であると判定したことに応答して、前記候補参加車両にＴＶＶＳを形成するように指示するステップと、
前記計算タスクを前記ＴＶＶＳに割り当てて前記計算タスクを実行するステップと、
を実行させる命令を記憶する１つ以上のメモリと、を備える、システム。
【外国語明細書】
2020030813000001.pdf