(57)【要約】  処理（Ａ１）と処理（Ａ２）と処理（Ａ３）とを含む処理（Ａ）に対する実行要求を受け付けた端末装置（１０１−ｉ）は、まず、基地局（１０２）との間の通信強度（Ｓｔｉ）を取得する。（ａ）において、端末装置（１０１−１）における通信強度（Ｓｔ１）は８０［％］、端末装置（１０１−２）における通信強度（Ｓｔ２）は１５［％］、端末装置（１０１−３）における通信強度（Ｓｔ３）は６０［％］である。次に、端末装置（１０１−ｉ）は、通信強度（Ｓｔｉ）が第１閾値の２０［％］以上である端末装置に対し、処理を割り当てる。通信強度（Ｓｔ１）および通信強度（Ｓｔ３）は第１閾値以上であり、通信強度（Ｓｔ２）は第１閾値未満である。そのため、端末装置（１０１−１）に処理（Ａ１）が、端末装置（１０１−３）に処理（Ａ２）および処理（Ａ３）が、それぞれ割り当てられる。端末装置（１０１−２）に処理は割り当てられない。
2012144013.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置に含まれる第１装置は、
前記複数の装置の通信強度を含む第１テーブルに基づいて前記複数の装置の少なくとも一の装置に処理を割り当て、
前記第１装置以外の前記少なくとも一の装置から処理の実行結果と通信強度とを受信し、
前記受信した通信強度に基づいて前記第１テーブルを作成すること
を特徴とするスケジューリング方法。
【請求項２】
前記第１テーブルに基づいて、前記複数の装置へのデータ割当を示す第２テーブルを作成し、
前記第２テーブルを前記複数の装置に通知すること
を特徴とする請求項１に記載のスケジューリング方法。
【請求項３】
前記第１テーブルは前記複数の装置の通信速度を含み、
前記通信速度に基づいて前記第２テーブルが作成されること
を特徴とする請求項２に記載のスケジューリング方法。
【請求項４】
前記第２テーブルが変更されたとき、変更された前記第２テーブルに基づいて前記複数の装置の少なくとも一の装置にデータが割り当てられること
を特徴とする請求項２または請求項３に記載のスケジューリング方法。
【請求項５】
前記第１テーブルに基づいて、前記複数の装置の中から次の処理の割当を行う第２装置を決定すること
を特徴とする請求項１乃至請求項４の何れか一に記載のスケジューリング方法。
【請求項６】
前記第１装置は、
前記複数の装置に含まれる第３装置の通信強度が第１閾値以上であるときは前記第３装置に処理を割り当て、
前記通信強度が前記第１閾値より小さいときは前記第３装置に処理を割り当てないこと
を特徴とする請求項１乃至請求項５の何れか一に記載のスケジューリング方法。
【請求項７】
前記第１装置は、
前記複数の装置に含まれる第３装置の通信強度が前記第１閾値より小さいときに前記第３装置に処理を割り当て、
前記第３装置の通信強度の変化に基づいて前記第３装置から前記処理の実行コンテキストを受信すること
を特徴とする請求項１乃至請求項５の何れか一に記載のスケジューリング方法。
【請求項８】
前記第１装置は前記処理を割り当てるときに前記第３装置へのデータの割当を行わず、
前記第１装置は前記実行コンテキストに基づいて前記処理を実行すること
を特徴とする請求項７に記載のスケジューリング方法。
【請求項９】
前記第１装置は前記処理を割り当てるときに前記複数の装置に含まれる第４装置にデータを割り当て、
前記実行コンテキストを前記第４装置に送信すること
を特徴とする請求項７に記載のスケジューリング方法。
【請求項１０】
前記第４装置の通信強度は前記第１閾値以上であること
を特徴とする請求項９に記載のスケジューリング方法。
【請求項１１】
前記第１装置は前記第３装置の通信強度を所定周期で受信すること
を特徴とする請求項６乃至請求項１０に記載のスケジューリング方法。
【請求項１２】
第１装置から第２装置へのタスクの実行要求を受信し、
前記第２装置の通信強度を取得し、
前記タスクの実行結果と前記通信強度とを前記第１装置に送信すること
を特徴とするタスク処理方法。
【請求項１３】
前記第１装置からタスクの実行要求を所定期間受信しないとき、前記通信強度を取得し、
前記通信強度が第１閾値より大きいとき、前記通信強度を前記第１装置に送信すること
を特徴とする請求項１２に記載のタスク処理方法。
【請求項１４】
前記第２装置が前記タスクを実行するとき、所定周期で前記第２装置の通信強度を取得し、
前記通信強度が第１閾値より小さいとき、前記通信強度を前記第１装置に送信すること
を特徴とする請求項１２または請求項１３に記載のタスク処理方法。
【請求項１５】
前記第２装置が前記タスクを実行するとき、前記第２装置の通信強度が第２閾値より小さいときに前記タスクの実行コンテキストを前記第１装置に送信すること
を特徴とする請求項１２乃至請求項１４の何れか一に記載のタスク処理方法。
【請求項１６】
前記第２装置は前記通信強度とともに通信速度を前記第１装置に送信すること
を特徴とする請求項１２乃至請求項１５の何れか一に記載のタスク処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリング方法およびタスク処理方法に関する。
【背景技術】
【０００２】
従来、通信可能な複数の端末装置でデータを共有したり、該データを用いた処理を該複数の端末装置に行ったりするグリッドコンピューティングと呼ばれる技術が知られている。端末装置は、例えば、携帯電話や、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）や、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。【０００３】
グリッドコンピューティングにおいて、共有するデータを用いた処理を、複数の端末装置において並行して行うことにより、処理による負荷の分散を図ることがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１４０２２４号公報
【特許文献２】特開２００６−１２６８９４号公報
【特許文献３】特開２００６−７９３８９号公報
【特許文献４】特開平８−７９２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、端末装置の通信状態が悪化することにより、処理が停止されてしまい、処理を完遂することができないという問題がある。例えば、処理を実行中の端末装置の通信状態が悪化した場合、該端末装置による処理の処理結果を他の端末装置と同期することができないことにより、処理を完遂することができない。【０００６】
本発明は、上述した従来技術による問題点を解消するため、データを共有するいずれかの端末装置の通信状態が悪化した場合にも、処理を完遂することのできるスケジューリング方法およびタスク処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数の装置に含まれる第１装置は、前記複数の装置の通信強度を含む第１テーブルに基づいて前記複数の装置の少なくとも一の装置に処理を割り当て、前記第１装置以外の前記少なくとも一の装置から処理の実行結果と通信強度とを受信し、前記受信した通信強度に基づいて前記第１テーブルを書き換えるスケジューリング方法およびタスク処理方法が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、データを共有するいずれかの端末装置の通信状態が悪化した場合にも、処理を完遂することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかるスケジューリング例を示す説明図である。
【図２】図２は、実施の形態１にかかるスケジューリングシステムの一例を示す説明図である。
【図３】図３は、実施の形態１にかかる端末装置のハードウェア例を示すブロック図である。
【図４】図４は、実施の形態１における端末装置情報テーブルの記憶内容の一例を示す説明図である。
【図５】図５は、実施の形態１におけるデータ割当テーブルの記憶内容の一例を示す説明図である。
【図６】図６は、実施の形態１における共有データの割当方法の一例を示す説明図である。
【図７】図７は、実施の形態１におけるマスタ端末装置およびスレイブ端末装置の機能の一例を示すブロック図である。
【図８】図８は、実施の形態１にかかるマスタ端末装置のマスタ端末処理手順の一例を示すフローチャートである。
【図９】図９は、実施の形態１にかかるマスタ端末装置のテーブル更新処理手順の一例を示すフローチャートである。
【図１０】図１０は、実施の形態１にかかるスレイブ端末装置のスレイブ端末処理手順の一例を示すフローチャート（その１）である。
【図１１】図１１は、実施の形態１にかかるスレイブ端末装置のスレイブ端末処理手順の一例を示すフローチャート（その２）である。
【図１２】図１２は、実施の形態２における端末装置情報テーブルの記憶内容の一例を示す説明図である。
【図１３】図１３は、実施の形態２にかかるマスタ端末装置のマスタ端末処理手順の一例を示すフローチャート（その１）である。
【図１４】図１４は、実施の形態２にかかるマスタ端末装置のマスタ端末処理手順の一例を示すフローチャート（その２）である。
【図１５】図１５は、実施の形態２にかかるスレイブ端末装置のスレイブ実行中処理手順の一例を示すフローチャートである。
【図１６】図１６は、実施の形態３における端末装置情報テーブルの記憶内容の一例を示す説明図である。
【図１７】図１７は、実施の形態３におけるデータ割当テーブルの記憶内容の一例を示す説明図である。
【図１８】図１８は、実施の形態３における共有データの割当方法の一例を示す説明図である。
【図１９】図１９は、実施の形態３にかかるマスタ端末装置のマスタ実行中処理手順の一例を示すフローチャートである。
【図２０】図２０は、実施の形態３にかかるスレイブ端末装置のスレイブ実行中処理手順の一例を示すフローチャートである。
【図２１】図２１は、実施の形態３にかかるスレイブ端末装置の再割当実行処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかるスケジューリング方法およびタスク処理方法の実施の形態を詳細に説明する。
【００１１】
＜実施の形態１＞
まず、本発明にかかるスケジューリング方法およびタスク処理方法の実施の形態１について説明する。実施の形態１では、データを共有するｍ個（ｍ＞１）の端末装置のうち、各端末装置と基地局との間の通信強度に基づいて選択される端末装置に、ｍ個の端末装置にて共有する共有データを用いた処理が割り当てられる。これにより、複数の端末装置のうち、いずれかの端末装置の通信が途切れた場合にも、共有データを用いた処理を続行し、完遂することができる。
【００１２】
（スケジューリング例）
図１は、実施の形態１にかかるスケジューリング例を示す説明図である。図１においては、ｍ＝「３」とし、３個の端末装置１０１−１〜１０１−３が共有する共有データを用いた処理の実行要求を、いずれかの端末装置が受け付けた場合のスケジューリング方法例について説明する。なお、以下の説明では、端末装置１０１−１〜１０１−ｍのうち任意の端末装置を「端末装置１０１−ｉ」と表記する（ｉ＝１，２，…，ｍ）。
【００１３】
端末装置１０１−１〜１０１−３は、基地局１０２を介して互いに通信可能である。端末装置１０１−１〜１０１−ｍは、例えば、携帯電話や、ＰＤＡや、ノートＰＣである。また、端末装置１０１−１〜１０１−３は、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、３Ｇ、４Ｇなどの通信規格の電波を用いて通信可能である。基地局１０２は、電波を端末装置１０１−１〜１０１−３に送信する装置である。
【００１４】
ここで、端末装置１０１−ｉが特定の処理Ａに対する実行要求を受け付けた場合におけるスケジューリング方法例について説明する。処理Ａは、処理Ａ１と処理Ａ２と処理Ａ３とを含む処理である。処理Ａ１と処理Ａ２と処理Ａ３とは、複数の端末装置によって並列した実行が可能な処理である。処理Ａは、例えば、位置情報に基づいて地図画像を作成して表示するアプリである。その場合、処理Ａ１と処理Ａ２と処理Ａ３とは、作成する地図のうちの部分的な画像を作成する処理である。このとき、処理Ａ１と処理Ａ２と処理Ａ３とによって作成される部分的な画像は、それぞれ異なる画像である。
【００１５】
まず、端末装置１０１−ｉは、端末装置１０１−ｉと基地局１０２との間の通信強度Ｓｔを取得する。通信強度Ｓｔは、基地局１０２から送信された電波の強度に対する、各端末装置が受信する電波の強度の割合を示している。通信強度Ｓｔが高いほど、安定した通信接続がなされている。また、通信強度Ｓｔが低いほど、不安定な通信接続がなされており、通信接続が途切れる可能性が高い。以下、任意の端末装置１０１−ｉにおける通信強度Ｓｔを「通信強度Ｓｔｉ」と記す。
【００１６】
図１の（ａ）において、端末装置１０１−１における通信強度Ｓｔ１として８０［％］が、端末装置１０１−２における通信強度Ｓｔ２として１５［％］が、端末装置１０１−３における通信強度Ｓｔ３として６０［％］が、端末装置１０１−ｉによって取得される。また、図１の（ｂ）において、通信強度Ｓｔ１として８０［％］が、通信強度Ｓｔ２として４０［％］が、通信強度Ｓｔ３として６０［％］が、端末装置１０１−ｉによって取得される。
【００１７】
次に、通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉに対して、実行要求を受け付けた処理が割り当てられる。第１閾値とは、予め定められた所定の値である。実施の形態１においては、第１閾値を２０［％］とした場合について説明する。処理を割り当てるとは、処理を実行させることである。
【００１８】
図１の（ａ）において、通信強度Ｓｔ１および通信強度Ｓｔ３は第１閾値以上であり、通信強度Ｓｔ２は第１閾値未満である。そのため、端末装置１０１−１に対して処理Ａ１が、端末装置１０１−３に対して処理Ａ２および処理Ａ３が、それぞれ割り当てられる。そして、端末装置１０１−２に対しては処理が割り当てられない。このとき、端末装置１０１−１および端末装置１０１−３に処理が割り当てられることとすれば、割り当てられる処理の内訳はこれに限るものではない。例えば、端末装置１０１−１に対して処理Ａ１および処理Ａ３が、端末装置１０１−３に対して処理Ａ２が、それぞれ割り当てられることとしてもよい。
【００１９】
一方、図１の（ｂ）において、通信強度Ｓｔ１、通信強度Ｓｔ２、通信強度Ｓｔ３はすべて第１閾値以上である。そのため、端末装置１０１−１に対して処理Ａ１が、端末装置１０１−２に対して処理Ａ２が、端末装置１０１−３に対して処理Ａ３が、それぞれ割り当てられる。このとき、各端末装置に割り当てられる処理の内訳は、処理Ａ１と処理Ａ２と処理Ａ３とがそれぞれいずれかの端末装置１０１−ｉに割り当てられることとすれば、これに限るものではない。例えば、端末装置１０１−１に対して処理Ａ２が、端末装置１０１−２に対して処理Ａ３が、端末装置１０１−３に対して処理Ａ１が、それぞれ割り当てられることとしてもよい。
【００２０】
このように、通信強度Ｓｔｉに基づいて処理が割り当てられることにより、処理の実行中に通信状態が悪化しないことが予測される端末装置１０１−ｉに処理を実行させることができる。これにより、端末装置１０１−ｉの通信状態の悪化による、共有データに対する処理の停止の可能性を低減することができる。したがって、処理実行中の端末装置１０１−ｉの通信が途切れないため、通信状態の悪化による処理結果の欠落を回避し、処理を完遂できる。
【００２１】
（スケジューリングシステムの一例）
図２は、実施の形態１にかかるスケジューリングシステムの一例を示す説明図である。図２において、ｍ＝「４」とし、スケジューリングシステム２００は、４個の端末装置１０１−１〜１０１−４と基地局１０２とを含む。端末装置１０１−１〜１０１−４は基地局１０２を介して通信可能である。端末装置１０１−４は、端末装置１０１−１と直接通信可能である。また、端末装置１０１−４は、端末装置１０１−２および端末装置１０１−３と、端末装置１０１−１を介して通信可能である。
【００２２】
基地局１０２は、インターネット、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク２１０を介して、他の基地局（不図示）に接続されている。他の基地局には端末装置が接続されていることとしてもよく、端末装置１０１−１〜１０１−４は、他の基地局に接続された端末装置と通信可能であってもよい。
【００２３】
端末装置１０１−ｉは、ユーザから共有データを用いた処理の実行要求の入力を受け付けた場合に、各端末装置の通信強度Ｓｔｉおよび通信速度に基づいて、共有データの割当および処理の割当を行う。ユーザとは、端末装置１０１−ｉを操作する人物である。通信速度とは、各端末装置における単位時間あたりに通信可能なデータのサイズである。通信速度の単位は、例えば、［Ｍｂｐｓ］や［ｋｂｐｓ］である。以下、端末装置１０１−ｉにおける通信速度を「通信速度Ｓｐｉ」と記す。
【００２４】
共有データを割り当てるとは、共有データを記憶させることである。実施の形態１においては、共有データを分割し、端末装置１０１−１〜１０１−４のうち、複数の端末装置の記憶領域に記憶させることにより、共有データを割り当てる。なお、分割された共有データが記憶される記憶領域は、いずれの端末装置１０１−ｉからもアクセス可能な記憶領域である。
【００２５】
具体的に、端末装置１０１−ｉは、各端末装置の通信強度Ｓｔｉおよび通信速度Ｓｐｉに基づいて端末装置情報テーブルおよびデータ割当テーブルを作成し、端末装置情報テーブルおよびデータ割当テーブルに基づいて、共有データの割当および処理の割当を行う。端末装置情報テーブルは、共有データを記憶する比率や、処理の割当が可能であるか否かを示す情報が端末装置毎に登録されるテーブルであり、その詳細は、図４に後述する。また、データ割当テーブルは、共有データを記憶する端末装置１０１−ｉを示す情報を含むテーブルであり、その詳細は図５に後述する。
【００２６】
以下、共有データの割当および処理の割当を行う端末装置１０１−ｉを「マスタ端末装置」と記す。マスタ端末装置は、通信強度Ｓｔｉの最も高い端末装置１０１−ｉ、またはユーザから共有データの処理の実行要求の入力を最初に受け付けた端末装置１０１−ｉである。また、以下、マスタ端末装置から割り当てられた処理を実行する端末装置１０１−ｉを「スレイブ端末装置」と記す。スレイブ端末装置は、複数の端末装置１０１−１〜１０１−ｍのうち、マスタ端末装置以外の端末装置１０１−ｉである。
【００２７】
マスタ端末装置は、通信強度Ｓｔｉが最も高い端末装置１０１−ｉでなくなった場合にスレイブ端末装置へ遷移する。また、スレイブ端末装置は、マスタ端末装置から、最も通信強度Ｓｔｉが高くなった旨を示す情報の通知を受信することにより、マスタ端末装置へ遷移する。
【００２８】
（端末装置１０１−ｉのハードウェア例）
図３は、実施の形態１にかかる端末装置１０１−ｉのハードウェア例を示すブロック図である。図３において、端末装置１０１−ｉは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、メモリコントローラ３０４と、フラッシュメモリ３０５と、ディスプレイ３０６と、キーボード３０７と、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）回路３０８とを含む。また、各部はバス３００によってそれぞれ接続されている。
【００２９】
ここで、ＣＰＵ３０１は、端末装置１０１−ｉの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。なお、端末装置１０１−ｉは、単一のＣＰＵ３０１を有することとするが、これに限るものではなく、複数のＣＰＵ３０１を有することとしてもよい。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。メモリコントローラ３０４は、ＲＡＭ３０３のデータの書き込みや読み出しを統括したり、ＲＡＭ３０３がＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である場合にはＲＡＭ３０３のリフレッシュを統括したりする。フラッシュメモリ３０５は、データを書き換え可能な不揮発性の半導体メモリである。
【００３０】
ディスプレイ３０６は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０６は、例えば、ＴＦＴ液晶ディスプレイなどを採用することができる。
【００３１】
キーボード３０７は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。ＲＦ回路３０８は、無線信号を送受信するアンテナ３０９と接続されている。ＲＦ回路３０８は、高周波処理部であり、アンテナ３０９を介してインターネットなどのネットワークからデータを受信したり、ネットワークへデータを送信したりする。
【００３２】
次に、端末装置情報テーブルの記憶内容について説明する。端末装置情報テーブルは、例えば、図３に示した端末装置１０１−ｉのＲＡＭ３０３、フラッシュメモリ３０５などの記憶装置により実現される。ここでは、端末装置１０１−ｉが有する端末装置情報テーブル４００を例に挙げて説明する。
【００３３】
（端末装置情報テーブル４００の記憶内容）
図４は、実施の形態１における端末装置情報テーブル４００の記憶内容の一例を示す説明図である。図４において、端末装置１０１−ｉが有する端末装置情報テーブル４００は、端末装置ＩＤ、通信強度Ｓｔｉ、通信速度Ｓｐｉ、データ比率および処理割当可能フラグのフィールドを有する。各フィールドに情報を設定することで、端末装置特性データ４００−１〜４０１−４がレコードとして記憶されている。以下、任意の端末装置１０１−ｉに対する端末装置特性データを「端末装置特性データ４００−ｉ」と記す。
【００３４】
端末装置ＩＤは、端末装置１０１−ｉを識別するための情報であり、例えば、「＃１」〜「＃４」である。通信強度Ｓｔｉおよび通信速度Ｓｐｉは、上述した通りである。データ比率は、各端末装置に記憶される共有データの内訳の比率である。例えば、一方の端末装置のデータ比率が「１００」、他方の端末装置のデータ比率が「１０」である二つの端末装置を例に挙げて説明する。この場合、一方の端末装置が記憶する共有データの内訳と、他方の端末装置が記憶する共有データの内訳との比率が「１００：１０」であることを示している。すなわち、一方の端末装置が共有データの１００／１１０を記憶し、他方の端末装置が共有データの１０／１１０を記憶することを示している。また、データ比率が「０」であるとは、共有データが記憶されないことを示す。例えば、実施の形態１においては、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−４の端末装置特性データ４００−４におけるデータ比率は「０」である。
【００３５】
処理割当可能フラグは、処理の割当が可能であるか否かを示すフラグであり、処理割当可能フラグがＯＮである端末装置１０１−ｉは、マスタ端末装置にとって処理の割当が可能な端末装置１０１−ｉである。また、処理割当可能フラグがＯＦＦである端末装置１０１−ｉは、マスタ端末装置にとって処理の割当が不可能な端末装置１０１−ｉである。すなわち、マスタ端末装置は、処理割当可能フラグがＯＮである端末装置１０１−ｉに対して、処理を割り当てる。例えば、実施の形態１においては、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−４の端末装置特性データ４００−４における処理割当可能フラグはＯＦＦであるため、端末装置１０１−４には処理が割り当てられない。
【００３６】
一例として、端末装置特性データ４００−１を例に挙げると、端末装置ＩＤ「＃１」、通信強度Ｓｔ１＝６０［％］、通信速度Ｓｐ１＝１０［Ｍｂｐｓ］、データ比率「１００」、処理割当可能フラグ「ＯＮ」が記憶されている。
【００３７】
次に、データ割当テーブルの記憶内容について説明する。データ割当テーブルは、例えば、図３に示した端末装置１０１−ｉのＲＡＭ３０３、フラッシュメモリ３０５などの記憶装置により実現される。ここでは、端末装置１０１−ｉが有するデータ割当テーブル５００を例に挙げて説明する。
【００３８】
（データ割当テーブル５００の記憶内容）
図５は、実施の形態１におけるデータ割当テーブル５００の記憶内容の一例を示す説明図である。図５において、端末装置１０１−ｉが有するデータ割当テーブル５００は、割当データ配列および割当端末装置ＩＤのフィールドを有する。各フィールドに情報を設定することで、データ割当特性データ５００−１〜５００−（Ｎ＋１）がレコードとして記憶されている。
【００３９】
割当データ配列は、共有データがＮ＋１個に分割されて割り当てられる割当データの配列を示しており、例えば、「ａｒｒａｙ＃０」〜「ａｒｒａｙ＃Ｎ」である。割当端末装置ＩＤは、割当データが割り当てられる端末装置１０１−ｉの端末装置ＩＤを示しており、例えば、「＃１」〜「＃４」である。実施の形態１において、ａｒｒａｙ＃０〜ａｒｒａｙ＃Ｎは、＃１〜＃４に対して、端末装置情報テーブル４００に含まれるデータ比率に応じて若い番号から順に割り当てられることとする。
【００４０】
一例として、データ割当特性データ５００−１を例に挙げると、割当データ配列「ａｒｒａｙ＃０」、割当端末装置ＩＤ「＃１」が記憶されている。また、上述したように、実施の形態１においては、端末装置１０１−４の通信強度Ｓｔ４は第１閾値未満であるため、端末装置１０１−４には割当データが割り当てられず、割当端末装置ＩＤに＃４は含まれない。ここで、各端末装置に対する共有データの割当方法の一例について説明する。
【００４１】
（共有データの割当方法の一例）
図６は、実施の形態１における共有データの割当方法の一例を示す説明図である。図６に示す共有データの割当方法において、まず、マスタ端末装置は、端末装置１０１−ｉと基地局１０２との通信強度Ｓｔｉと、端末装置１０１−ｉにおける通信速度Ｓｐｉを取得する。以下、複数の端末装置１０１−１〜１０１−ｍにて共有する共有データを「共有データＤ」と記す。
【００４２】
具体的には、（１）に示すように、マスタ端末装置は、端末装置１０１−１と基地局１０２との間の通信強度Ｓｔ１として６０［％］を、端末装置１０１−１における通信速度Ｓｐ１として１０［Ｍｂｐｓ］を取得する。
【００４３】
また、（２）に示すように、マスタ端末装置は、端末装置１０１−２と基地局１０２との間の通信強度Ｓｔ２として５０［％］を、端末装置１０１−２における通信速度Ｓｐ２として１０［Ｍｂｐｓ］を取得する。また、（３）に示すように、マスタ端末装置は、端末装置１０１−３と基地局１０２との間の通信強度Ｓｔ３として９０［％］を、端末装置１０１−３における通信速度Ｓｐ３として１［Ｍｂｐｓ］を取得する。
【００４４】
ここで、基地局１０２と直接接続されていない端末装置１０１−４の通信強度Ｓｔ４は、基地局１０２から端末装置１０１−４までに経由するパスにおける通信強度Ｓｔｉの積である。すなわち、端末装置１０１−４の通信強度Ｓｔ４は、端末装置１０１−１と基地局１０２との間の通信強度Ｓｔ１と、端末装置１０１−４と端末装置１０１−１との間の通信強度Ｓｔ１４との積である。
【００４５】
（４）に示すように、端末装置１０１−４と端末装置１０１−１との間の通信強度Ｓｔ１４は３０［％］である。そのため、（５）に示すように、マスタ端末装置は、端末装置１０１−４と基地局１０２との間の通信強度Ｓｔ４として、通信強度Ｓｔ１である６０［％］と通信強度Ｓｔ１４である３０［％］との積である１８［％］を取得する。また、マスタ端末装置は、端末装置１０１−４における通信速度Ｓｐ４として１００［ｋｂｐｓ］を取得する。そして、マスタ端末装置は取得した通信強度Ｓｔｉおよび通信速度Ｓｐｉを端末装置情報テーブル４００に登録する。
【００４６】
次に、マスタ端末装置は、端末装置１０１−ｉの通信速度Ｓｐｉの比率に応じた割合にて、共有データＤを各端末装置に割り当てる。その際、マスタ端末装置は、第１閾値の２０［％］以上の通信強度Ｓｔｉである端末装置１０１−ｉ以外の端末装置１０１−ｉを対象として処理を割り当てる。以下、端末装置１０１−ｉに分割されて割り当てられる共有データＤを「割当データＤｉ」と記す。
【００４７】
具体的には、（６）に示すように、割当データＤ１と割当データＤ２と割当データＤ３との比率は、通信速度Ｓｐ１と通信速度Ｓｐ２と通信速度Ｓｐ３との比率である。Ｓｐ１：Ｓｐ２：Ｓｐ３は、１０［Ｍｂｐｓ］：１０［Ｍｂｐｓ］：１［Ｍｂｐｓ］であるため、割当データＤ１と割当データＤ２と割当データＤ３との比率は、１００：１００：１０と求められる。通信強度Ｓｔ４は第１閾値の２０［％］よりも低いため、端末装置１０１−４に対しては共有データＤの割当は行われない。
【００４８】
マスタ端末装置は、ここで求められた比率を端末装置情報テーブル４００に登録する。そして、マスタ端末装置は、端末装置情報テーブル４００に応じてデータ割当テーブル５００を作成し、作成したデータ割当テーブル５００に応じて共有データＤを各端末装置に割り当てる。
【００４９】
（マスタ端末装置およびスレイブ端末装置の機能の一例）
次に、マスタ端末装置およびスレイブ端末装置の機能の一例について説明する。図７は、実施の形態１におけるマスタ端末装置およびスレイブ端末装置の機能の一例を示すブロック図である。以下、マスタ端末装置を「マスタ端末装置Ｔ１」、スレイブ端末装置を「スレイブ端末装置Ｔ２」、と記す。
【００５０】
まず、マスタ端末装置Ｔ１は、機能部として、取得部７１０と、受信部７１１と、作成部７１２と、処理割当部７１３と、実行部７１４と、データ割当部７１５と、通知部７１６と、決定部７１７と、遷移部７１８と、を有する。また、マスタ端末装置Ｔ１は、各機能部における処理に用いられる端末装置情報テーブル４００と、データ割当テーブル５００とを有する。この制御部となる機能（取得部７１０〜遷移部７１８）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、フラッシュメモリ３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。
【００５１】
ここで、マスタ端末装置Ｔ１における説明において、第１装置とはマスタ端末装置Ｔ１であり、第２装置とは次の処理におけるマスタ端末装置Ｔ１となる端末装置１０１−ｉであり、第３装置とはスレイブ端末装置Ｔ２である。
【００５２】
取得部７１０は、複数の端末装置１０１−１〜１０１−ｍの通信強度Ｓｔｉを取得する。取得部７１０は、例えば、マスタ端末装置Ｔ１と基地局１０２との通信強度Ｓｔｉと、スレイブ端末装置Ｔ２と基地局１０２との通信強度Ｓｔｉとを取得する。例えば、取得部７１０は、マスタ端末装置Ｔ１のアンテナ３０９に含まれるＲＳＳＩ（Ｒｅｃｅｉｖｅｄ  Ｓｉｇｎａｌ  Ｓｔｒｅｎｇｔｈ  Ｉｎｄｉｃａｔｉｏｎ）によって通信強度Ｓｔｉが測定されることにより、通信強度Ｓｔｉを取得する。また、取得部７１０は、後述する受信部７１１を用いて、スレイブ端末装置Ｔ２と基地局１０２との通信強度Ｓｔｉを取得する。
【００５３】
また、取得部７１０は、複数の端末装置１０１−１〜１０１−ｍの通信速度Ｓｐｉを取得することとしてもよい。取得部７１０は、例えば、マスタ端末装置Ｔ１の通信速度Ｓｐｉと、スレイブ端末装置Ｔ２の通信速度Ｓｐｉとを取得する。具体的に、例えば、取得部７１０は、他端末装置１０１−ｉに対してｐｉｎｇを送信し、ｐｉｎｇに対応する応答を受信するまでの時間を計測し、計測された時間に基づいて、マスタ端末装置Ｔ１の通信速度Ｓｐｉを算出する。また、取得部７１０は、後述する受信部７１１を用いて、スレイブ端末装置Ｔ２の通信速度Ｓｐｉを取得する。
【００５４】
受信部７１１は、第１装置以外の少なくとも一の端末装置１０１−ｉから処理の実行結果と通信強度Ｓｔｉとを受信する。マスタ端末装置Ｔ１以外の少なくとも一の端末装置１０１−ｉとは、具体的には、スレイブ端末装置Ｔ２である。すなわち、ここで受信される通信強度Ｓｔｉは、スレイブ端末装置Ｔ２の通信強度Ｓｔｉである。処理の実行結果とは、マスタ端末装置Ｔ１がスレイブ端末装置Ｔ２に割り当てる処理の処理結果である。例えば、処理が、図１に上述した地図画像を作成するアプリである場合、処理結果は、作成する地図画像のうち部分的な画像である。具体的に、例えば、受信部７１１が、スレイブ端末装置Ｔ２から送信されるスレイブ端末装置Ｔ２の通信強度Ｓｔｉおよび処理の実行結果に関する情報を含む信号を受信する。
【００５５】
また、受信部７１１は、スレイブ端末装置Ｔ２の識別情報毎に、処理の実行結果や通信強度Ｓｔｉを受信することとしてもよい。端末装置１０１−ｉの識別情報とは、端末装置１０１−ｉがいずれの端末装置１０１−ｉであるかを識別するための情報であり、例えば、上述した端末装置ＩＤである。また、受信部７１１は、スレイブ端末装置Ｔ２の通信速度Ｓｐｉを受信する。具体的には、スレイブ端末装置Ｔ２からスレイブ端末装置Ｔ２の識別情報と通信速度Ｓｐｉとを含む信号を受信する。
【００５６】
また、受信部７１１は、第３装置の通信強度Ｓｔｉを所定周期で受信する。具体的に、例えば、受信部７１１は、実行可能状態であるタスクが存在しない場合に、スレイブ端末装置Ｔ２から通信強度Ｓｔｉを所定の周期毎に受信する。
【００５７】
作成部７１２は、取得部７１０によって取得された通信強度Ｓｔｉに基づいて、端末装置情報テーブル４００を作成する。具体的に、例えば、作成部７１２が、受信部７１１によって受信された通信強度Ｓｔｉを、識別情報毎に端末装置情報テーブル４００に登録する。そして、作成部７１２が、処理割当可能フラグを、通信強度Ｓｔｉに応じて登録する。その際、作成部７１２は、取得部７１０によって取得された各通信強度が第１閾値以上であるか否かを判定し、第１閾値以上であると判定された通信強度Ｓｔｉを有する端末装置１０１−ｉに対して処理割当可能フラグにＯＮを登録することとしてもよい。具体的に、作成部７１２は、図４に上述したように、端末装置１０１−１〜１０１−３に対応する端末装置特性データ４００−１〜４００−３の処理割当可能フラグにＯＮを登録する。なお、上述したように第１閾値を２０［％］としたが、これに限るものではない。
【００５８】
また、作成部７１２は、取得部７１０によって取得された通信速度Ｓｐｉに基づいて、データ割当テーブル５００を作成することとしてもよい。具体的に、作成部７１２は、通信速度Ｓｐｉに基づいて端末装置情報テーブル４００を作成し、作成した端末装置情報テーブル４００に基づいてデータ割当テーブル５００を作成する。例えば、作成部７１２は、まず、取得部７１０によって取得された通信速度Ｓｐｉを、端末装置１０１−ｉの識別情報毎に端末装置情報テーブル４００に登録し、登録した通信速度Ｓｐｉの比率をデータ比率として登録する。そして、作成部７１２は、登録したデータ比率に基づいて、共有データＤをいずれの端末装置１０１−ｉに割り当てるかを特定する。そして作成部７１２は、特定した端末装置１０１−ｉの識別情報をデータ割当テーブル５００の割当端末装置ＩＤとして、該当する割当データ配列に応じて登録する。
【００５９】
処理割当部７１３は、取得部７１０によって取得された通信強度Ｓｔｉに基づいて、複数の端末装置１０１−１〜１０１−ｍのうちいずれかの端末装置１０１−ｉに、共有データＤを用いた処理を割り当てる。具体的に、処理割当部７１３は、端末装置情報テーブル４００に基づいて複数の端末装置１０１−１〜１０１−ｍの少なくとも一の端末装置に処理を割り当てる。例えば、処理割当部７１３は、タスクの実行要求をスレイブ端末装置Ｔ２に送信することにより、スレイブ端末装置Ｔ２に共有データＤを用いた処理を割り当てる。また、例えば、処理割当部７１３は、実行部７１４に処理の実行要求を送信することにより、マスタ端末装置Ｔ１に処理を割り当てる。具体的に、例えば、処理割当部７１３が、端末装置情報テーブル４００における処理割当可能フラグにＯＮが登録された端末装置特性データ４００−ｉの端末装置１０１−ｉに、共有データＤを用いた処理を割り当てる。
【００６０】
また、複数の端末装置を割当対象とする場合、処理割当部７１３は、実行する処理を複数の処理に分割し、分割した複数の処理を各端末装置に割り当てる。具体的には、処理割当部７１３は、実行するプログラムを分割し、分割されたプログラムの実行コードをスレイブ端末装置Ｔ２に送信することにより、分割した処理を端末装置１０１−ｉに割り当てる。なお、スレイブ端末装置Ｔ２が分割前のプログラムの実行コードを有している場合、処理割当部７１３は、実行コードのオフセット値を送信してもよい。
【００６１】
また、処理割当部７１３は、取得部７１０によって取得された通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉに対して共有データＤを用いた処理を割り当てる。具体的に、処理割当部７１３は、複数の端末装置に含まれる第３装置の通信強度Ｓｔｉが第１閾値以上であるときは該第３装置に処理を割り当て、通信強度Ｓｔｉが第１閾値より小さいときは該第３装置に処理を割り当てない。通信強度Ｓｔｉが第１閾値以上であるか否かは、例えば、端末装置情報テーブル４００の処理割当可能フラグにおいて判別可能である。
【００６２】
具体的に、処理割当部７１３が、端末装置情報テーブル４００に登録された各端末装置特性データ４００−ｉの処理割当可能フラグが「ＯＮ」である端末装置１０１−ｉを特定し、特定した端末装置１０１−ｉに処理を割り当てる。より具体的に、例えば、処理割当部７１３が、処理割当可能フラグにＯＮが登録された端末装置特性データ４００−１〜４００−３の端末装置１０１−１〜１０１−３に処理を割り当てる。これにより、マスタ端末装置Ｔ１は、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉよりも、通信状態が悪化する可能性が低い端末装置１０１−ｉに処理を割り当てることができる。したがって、処理の実行中に通信状態が悪化することによる処理の停止の可能性を低減させることができる。
【００６３】
また、処理割当部７１３は、取得部７１０によって取得された通信強度Ｓｔｉに基づいて、共有データＤを用いた処理を割り当てることとすれば、例えば、取得された通信強度Ｓｔｉが大きい方から所定数の端末装置１０１−ｉに処理を割り当てることとしてもよい。
【００６４】
実行部７１４は、処理割当部７１３から処理の実行要求を受け付けた場合に、処理を実行する。具体的に、実行部７１４は、ＲＯＭ３０２、ＲＡＭ３０３、フラッシュメモリ３０５などの記憶装置に記憶されたプログラムから、実行要求を受け付けた処理に応じたプログラムを特定し、特定したプログラムを実行する。また、実行部７１４は、データ割当テーブル５００を参照することにより、実行要求を受け付けた処理に用いる共有データＤが割り当てられている端末装置１０１−ｉを特定し、特定した端末装置１０１−ｉから共有データＤを参照して処理を実行する。
【００６５】
データ割当部７１５は、取得部７１０によって取得された通信強度Ｓｔｉに基づいて、複数の端末装置１０１−１〜１０１−ｍのうち、いずれかの端末装置１０１−ｉに共有データＤを割り当てる。具体的に、例えば、データ割当部７１５は、割当データを送信することにより、スレイブ端末装置Ｔ２に共有データＤを割り当てる。また、例えば、データ割当部７１５は、マスタ端末装置Ｔ１のＲＡＭ３０３やフラッシュメモリ３０５などの記憶装置に割当データを書き込むことにより、マスタ端末装置Ｔ１に共有データＤを割り当てる。これにより、マスタ端末装置Ｔ１は、通信強度Ｓｔｉを考慮した端末装置１０１−ｉに共有データＤを割り当てることができる。
【００６６】
また、データ割当部７１５は、データ割当テーブル５００が変更されたとき、変更されたデータ割当テーブル５００に基づいて複数の端末装置の少なくとも一の端末装置に共有データＤを割り当てる。データ割当テーブル５００が変更されたときとは、作成部７１２によってデータ割当テーブル５００が更新されるときである。すなわち、データ割当部７１５は、データ割当テーブル５００装置に登録されている端末装置１０１−ｉの通信強度Ｓｔｉや通信速度Ｓｐｉに変更があった場合に、データ割当テーブル５００に基づいて共有データＤを割り当てる。また、データ割当部７１５は、ユーザから処理の実行要求を受け付けて作成部７１２によってデータ割当テーブル５００が作成された際に、共有データＤを割り当てる。また、データ割当部７１５は、他端末装置に対して、データ割当テーブル５００に基づいた割当データを端末装置間にて送受信する旨を示す情報を送信することにより、共有データＤを割り当てることとしてもよい。
【００６７】
また、データ割当部７１５は、複数の端末装置に共有データＤを割り当てる場合、まず、割り当てる共有データＤを複数の割当データに分割し、分割した割当データを複数の端末装置に割り当てる。その際、割当データのサイズは、各端末装置の通信速度Ｓｐｉに基づいて決定されることとしてもよい。具体的に、例えば、データ割当部７１５は、各端末装置の通信速度Ｓｐｉの値が大きいほど、大きなサイズの割当データを割り当てることとしてもよい。これにより、割当データの送受信に要する時間の短縮化を図ることができ、共有データＤに対する処理の効率化を図ることができる。また、例えば、データ割当部７１５は、各端末装置の通信速度Ｓｐｉの比率と同じ比率にて割当データを割り当てることとしてもよい。
【００６８】
また、データ割当部７１５は、取得部７１０によって取得された通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉに対して共有データＤを割り当てることとしてもよい。具体的に、データ割当部７１５は、端末装置情報テーブル４００に登録された各端末装置特性データ４００−ｉの通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉを特定し、特定した端末装置１０１−ｉに共有データＤを割り当てる。例えば、処理割当部７１３が、通信強度Ｓｔｉが第１閾値以上である端末装置１０１−１〜１０１−３に共有データＤを割り当てる。これにより、マスタ端末装置Ｔ１は、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉよりも、通信状態が悪化する可能性が低い端末装置１０１−ｉに共有データＤを割り当てることができる。したがって、端末装置１０１−ｉの通信状態が悪化を起因として共有データＤへアクセスができなくなる可能性を低減させることができる。
【００６９】
また、データ割当部７１５は、取得部７１０によって取得された通信強度Ｓｔｉに基づいて共有データＤを割り当てることとすれば、例えば、取得された通信強度Ｓｔｉが大きい方から所定数の端末装置に共有データＤを割り当てることとしてもよい。
【００７０】
通知部７１６は、データ割当テーブル５００を複数の端末装置１０１−１〜１０１−ｍに通知する。例えば、通知部７１６は、作成部７１２によって作成されたデータ割当テーブル５００をスレイブ端末装置Ｔ２に送信することにより、データ割当テーブル５００を通知する。また、通知部７１６は、作成部７１２によるデータ割当テーブル５００の更新部分をスレイブ端末装置Ｔ２に送信することにより、データ割当テーブル５００を通知することとしてもよい。
【００７１】
決定部７１７は、端末装置情報テーブル４００に基づいて、複数の端末装置の中から次の処理の割当を行う第２装置を決定する。具体的に、決定部７１７は、複数の端末装置１０１−１〜１０１−ｍのうち、通信強度Ｓｔｉが最も高い端末装置１０１−ｉを第２装置として決定する。より具体的に、例えば、処理割当部７１３が、通信強度Ｓｔｉが最も高い端末装置１０１−３を第２装置として決定する。これにより、通信が途切れる可能性が最も低い端末装置１０１−ｉに、処理の割当、または共有データＤの割当を実行させることができる。したがって、通信状態が悪化することにより処理や共有データＤの割当が行われずに、処理が停止してしまう可能性を極力低減することができる。
【００７２】
また、決定部７１７は、第２装置として決定した端末装置１０１−ｉに対して、次の処理の割当要求を含む情報を送信する。次の処理の割当要求を含む情報とは、すなわち、スレイブ端末装置Ｔ２からマスタ端末装置Ｔ１へ遷移することを示す情報である。
【００７３】
遷移部７１８は、決定部７１７によって決定された第２装置が、マスタ端末装置Ｔ１でない場合に、マスタ端末装置Ｔ１をスレイブ端末装置Ｔ２に遷移させる。マスタ端末装置Ｔ１をスレイブ端末装置Ｔ２に遷移させるとは、例えば、マスタ端末装置Ｔ１である旨を示すマスタフラグをＯＦＦにすることにより、スレイブ端末装置Ｔ２における機能を実行可能な状態とすることである。
【００７４】
このように、実施の形態１にかかるマスタ端末装置Ｔ１は、共有データＤを共有する複数の端末装置１０１−１〜１０１−ｍの各通信強度を取得する。そして、マスタ端末装置Ｔ１は、取得した各通信強度に基づいて、複数の端末装置のうちいずかの端末装置１０１−ｉを選択する。例えば、マスタ端末装置Ｔ１は、取得した各通信強度が第１閾値以上であるか否かを判定し、第１閾値以上であると判定された通信強度Ｓｔｉを有する端末装置１０１−ｉを選択する。
【００７５】
そして、マスタ端末装置Ｔ１は、選択したいずれかの端末装置１０１−ｉに、共有データＤを用いた処理を割り当てる。これにより、通信状態の悪化の可能性が極力低い端末装置１０１−ｉに、処理を割り当てることができ、処理の実行中の端末装置１０１−ｉの通信強度Ｓｔｉが悪化することなく、処理を続行することができる。したがって、処理結果を同期できないことを起因とした処理結果の欠落を回避し、共有データＤを用いた処理を完遂することができる。
【００７６】
また、マスタ端末装置Ｔ１は、選択したいずれかの端末装置１０１−ｉに、共有データＤを割り当てる。これにより、通信状態の悪化の可能性が極力低い端末装置１０１−ｉに、共有データＤを割り当てることができ、共有データＤを記憶する端末装置１０１−ｉの通信強度Ｓｔｉが悪化することなく、処理を続行することができる。したがって、共有データＤにアクセスできないことを起因とした処理結果の欠落を回避し、共有データＤを用いた処理を完遂することができる。
【００７７】
また、マスタ端末装置Ｔ１は、共有データＤを共有する複数の端末装置１０１−１〜１０１−ｍの通信速度Ｓｐｉを取得し、取得した通信速度Ｓｐｉが速い端末装置１０１−ｉほど大きなサイズの割当データを割り当てる。例えば、マスタ端末装置Ｔ１は、各端末装置の通信速度Ｓｐｉの比率と同じ比率のサイズの割当データを割り当てる。これにより、共有データＤの送受信に要する時間の短縮化を図ることができる。
【００７８】
また、マスタ端末装置Ｔ１は、複数の端末装置１０１−１〜１０１−ｍのうち、通信強度Ｓｔｉが最も高い端末装置１０１−ｉである。これにより、処理の割当や共有データＤの割当を行う端末装置１０１−ｉの通信状態が悪化する可能性を低減することができ、処理を続行することができる。
【００７９】
次に、スレイブ端末装置Ｔ２は、受信部７２１と、実行部７２２と、取得部７２３と、送信部７２４と、遷移部７２５とを含む。この制御部となる機能（受信部７２１〜遷移部７２５）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、フラッシュメモリ３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。
【００８０】
ここで、スレイブ端末装置Ｔ２の説明において、第１装置とはマスタ端末装置Ｔ１であり、第２装置とはスレイブ端末装置Ｔ２である。
【００８１】
受信部７２１は、第１装置から第２装置へのタスクの実行要求を受信する。具体的に、例えば、受信部７２１は、マスタ端末装置Ｔ１のデータ割当部７１５から送信されるタスクの実行要求を受信する。その際、受信部７２１は、プログラムの実行コードを受信することとしてもよい。また、受信部７２１は、プログラムの実行コードのオフセット値を受信してもよい。
【００８２】
また、受信部７２１は、割当データを受信する。具体的に、例えば、受信部７２１は、マスタ端末装置Ｔ１のデータ割当部７１５から送信される割当データや、他のスレイブ端末装置Ｔ２から送信される割当データを受信する。受信部７２１によって受信された割当データは、ＲＡＭ３０３やフラッシュメモリ３０５などの記憶装置に書き込まれる。また、受信部７２１は、マスタ端末装置Ｔ１から、割当データを端末装置間にて送受信する旨を示す情報を受信することとしてもよい。
【００８３】
また、受信部７２１は、マスタ端末装置Ｔ１からデータ割当テーブル５００の通知部７１６からの通知を受信することとしてもよい。例えば、受信部７２１は、通知部７１６から送信されるデータ割当テーブル５００の情報を含む信号を受信することにより、通知部７１６からの通知を受信することとしてもよい。また、例えば、受信部７２１は、通知部７１６から送信される、データ割当テーブル５００が更新された旨を示す信号を受信することにより、通知部７１６からの通知を受信することとしてもよい。
【００８４】
また、受信部７２１は、次の処理の割当要求を含む情報を受信することとしてもよい。具体的に、例えば、受信部７２１は、マスタ端末装置Ｔ１の決定部７１７から送信される、マスタ端末装置Ｔ１への遷移を要求する情報を取得する。
【００８５】
実行部７２２は、受信部７２１によって受信されたタスクの実行要求に基づいて処理を実行する。受信部７２１によってプログラムの実行コードが受信された場合、実行部７２２は、実行コードを読み出して、タスクを実行する。また、受信部７２１によって実行コードのオフセット値が受信された場合、実行部７２２は、実行コード内のオフセット値から実行コードを読み出して、タスクを実行する。また、実行部７２２は、データ割当テーブル５００を参照することにより、処理の実行に用いる共有データＤが割り当てられている端末装置１０１−ｉを特定する。そして、実行部７２２は、特定した端末装置１０１−ｉから共有データＤにアクセスして処理を実行する。
【００８６】
取得部７２３は、スレイブ端末装置Ｔ２の通信強度Ｓｔｉを取得する。具体的に、例えば、アンテナ３０９に受信された電波からＲＳＳＩによって通信強度Ｓｔｉが測定され、取得部７２３は、ＲＳＳＩによって測定された通信強度Ｓｔｉを取得する。
【００８７】
また、取得部７２３は、マスタ端末装置Ｔ１からタスクの実行要求を所定期間受信しないとき、通信強度Ｓｔｉを取得する。実行要求を所定期間受信しないときとは、すなわち、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが第１閾値未満であるため、処理が割り当てられていない状態である。具体的に、例えば、取得部７２３は、実行要求を受信していない状態において通信強度Ｓｔｉを取得する。また、例えば、取得部７２３は、実行要求を受信した時点からの経過時間を測定し、経過時間が所定時間に達した場合に、通信強度Ｓｔｉを取得することとしてもよい。
【００８８】
また、取得部７２３は、スレイブ端末装置Ｔ２の通信速度Ｓｐｉを取得することとしてもよい。具体的に、例えば、取得部７２３は、他端末装置に対してｐｉｎｇを送信し、ｐｉｎｇに対応する応答を受信するまでの時間を計測し、計測された時間に基づいてスレイブ端末装置Ｔ２の通信速度Ｓｐｉを算出する。
【００８９】
送信部７２４は、タスクの実行結果と通信強度Ｓｔｉとをマスタ端末装置Ｔ１に送信する。具体的に、例えば、実行部７２２によって実行された処理の処理結果と、取得部７２３によって取得された通信強度Ｓｔｉとの情報を含む信号をマスタ端末装置Ｔ１に送信する。送信部７２４から送信されたタスクの実行結果と通信強度Ｓｔｉとは、マスタ端末装置Ｔ１の受信部７１１によって受信される。
【００９０】
また、送信部７２４は、通信強度Ｓｔｉが第１閾値より大きいとき、通信強度Ｓｔｉを第１装置に送信する。例えば、送信部７２４は、取得部７２３によって取得された通信強度Ｓｔｉが第１閾値以上であるか否かを判定し、取得された通信強度Ｓｔｉが第１閾値以上である場合に、処理結果と通信強度Ｓｔｉとの情報を含む信号をマスタ端末装置Ｔ１に送信する。
【００９１】
これにより、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが第１閾値未満から第１閾値以上へ変位した場合に、該スレイブ端末装置Ｔ２の通信強度Ｓｔｉをマスタ端末装置Ｔ１に通知する。仮に、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが継続して第１閾値未満である場合に該通信強度Ｓｔｉをマスタ端末装置Ｔ１に通知しても、処理の割当に変更はないため、無駄な通信である。そのため、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが第１閾値未満から該第１閾値以上へ変位した場合に、該通信強度Ｓｔｉをマスタ端末装置Ｔ１に通知することにより、無駄な通信を低減させることができる。
【００９２】
また、送信部７２４は、通信強度Ｓｔｉとともに通信速度Ｓｐｉをマスタ端末装置Ｔ１に送信する。具体的に、例えば、送信部７２４は、取得部７２３によって取得された自端末装置の通信強度Ｓｔｉおよび通信速度Ｓｐｉの情報を含む信号を、マスタ端末装置Ｔ１に送信する。
【００９３】
また、送信部７２４は、受信部７２１によって割当データを端末装置間にて送受信する旨を示す情報が受信された場合に、他の端末に対して、割当データを送信することとしてもよい。送信部７２４は、例えば、受信部７２１によって受信されたデータ割当テーブル５００に基づいて、他の端末に対して割当データを送信する。
【００９４】
遷移部７２５は、受信部７２１によってマスタ端末装置Ｔ１からマスタ端末装置Ｔ１への遷移を示す情報が受信された場合に、スレイブ端末装置Ｔ２をマスタ端末装置Ｔ１に遷移させる。スレイブ端末装置Ｔ２をマスタ端末装置Ｔ１に遷移させるとは、例えば、マスタ端末装置Ｔ１である旨を示すマスタフラグをＯＮにすることにより、マスタ端末装置Ｔ１における機能を実行可能な状態とすることである。
【００９５】
このように、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から割り当てられた処理を実行する。また、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から割り当てられた割当データを記憶する。
【００９６】
（マスタ端末装置Ｔ１のマスタ端末処理手順）
図８は、実施の形態１にかかるマスタ端末装置Ｔ１のマスタ端末処理手順の一例を示すフローチャートである。マスタ端末処理は、マスタ端末装置Ｔ１のＣＰＵ３０１によって実行される処理である。
【００９７】
マスタ端末処理において、まず、マスタ端末装置Ｔ１は、実行可能状態であるタスクが存在するか否かを判定する（ステップＳ８０１）。そして、実行可能状態であるタスクが存在しない場合（ステップＳ８０１：Ｎｏ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信したか否かを判定する（ステップＳ８０２）。
【００９８】
スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信した場合（ステップＳ８０２：Ｙｅｓ）、マスタ端末装置Ｔ１は、端末装置情報テーブル４００の端末装置特性データ４００−ｉを更新し（ステップＳ８０３）、ステップＳ８０１へ移行する。また、ステップＳ８０２において、スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信していない場合（ステップＳ８０２：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ８０１へ移行する。
【００９９】
ステップＳ８０１において、実行可能状態であるタスクが存在する場合（ステップＳ８０１：Ｙｅｓ）、マスタ端末装置Ｔ１は、端末装置情報テーブル４００を参照して、スレイブ端末装置Ｔ２へ処理割当通知を送信する（ステップＳ８０４）。具体的には、マスタ端末装置Ｔ１は、端末装置情報テーブル４００の処理割当可能フラグがＯＮである端末装置１０１−ｉに対して、処理割当通知を送信する。処理割当通知は、割り当てる処理の内容の情報を含む。また、割り当てる処理の内容については、このとき決定することとする。また、このとき、マスタ端末装置Ｔ１は、自端末装置に割り当てる処理を実行キューに登録する。
【０１００】
その後、マスタ端末装置Ｔ１は、データ割当テーブル５００に変更があるか否かを判定する（ステップＳ８０５）。このとき、マスタ端末装置Ｔ１は、例えば、データ割当テーブル５００を変更した旨を示す変更フラグがＯＮであるか否かを判定することにより、データ割当テーブル５００に変更があるか否かを判定する。その場合、例えば、マスタ端末装置Ｔ１は、データ割当テーブル５００を更新した際に変更フラグをＯＮにし、データ割当テーブル５００に変更があると判定した際に変更フラグをＯＦＦにする。
【０１０１】
ステップＳ８０５において、データ割当テーブル５００に変更があると判定した場合（ステップＳ８０５：Ｙｅｓ）、マスタ端末装置Ｔ１は、データ割当テーブル５００を参照して、割当データの送受信を端末装置間にて実施する（ステップＳ８０６）。このとき、マスタ端末装置Ｔ１は、他端末装置に対して割当データの送受信の要求を出力するとともに、自端末装置の割当データに変更があった場合は、変更内容に応じて割当データを他端末装置へ出力する。なお、マスタ端末装置Ｔ１は、データ割当テーブル５００の更新時に更新内容を記憶しておくこととする。これにより、マスタ端末装置Ｔ１は、共有データＤの割当を行う。
【０１０２】
ステップＳ８０６の後、またはステップＳ８０５においてデータ割当テーブル５００に変更がないと判定した場合（ステップＳ８０５：Ｎｏ）、マスタ端末装置Ｔ１は、自端末装置に割り当てた処理を実行する（ステップＳ８０７）。そして、マスタ端末装置Ｔ１は、処理の実行が完了したか否かを判定し（ステップＳ８０８）、完了しない場合（ステップＳ８０８：Ｎｏ）、完了するまで待機する。
【０１０３】
ステップＳ８０８において、処理の実行が完了した場合（ステップＳ８０８：Ｙｅｓ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２へ割り当てたすべての処理の処理結果を受信したか否かを判定する（ステップＳ８０９）。そして、マスタ端末装置Ｔ１は、他端末装置へ割り当てたすべての処理の処理結果を受信していない場合（ステップＳ８０９：Ｎｏ）、受信するまで待機する。
【０１０４】
ステップＳ８０９において、他端末装置へ割り当てたすべての処理の処理結果を受信した場合（ステップＳ８０９：Ｙｅｓ）、マスタ端末装置Ｔ１は、端末装置情報テーブル４００およびデータ割当テーブル５００を更新するテーブル更新処理を実行する（ステップＳ８１０）。テーブル更新処理の詳細は、図９に後述する。
【０１０５】
その後、マスタ端末装置Ｔ１は、端末装置情報テーブル４００を参照して、通信強度Ｓｔｉの値が最も大きい端末装置１０１−ｉを、次のマスタ端末装置Ｔ１として決定する（ステップＳ８１１）。そして、マスタ端末装置Ｔ１は、次のマスタ端末装置Ｔ１として決定した端末装置１０１−ｉに対して、マスタ端末装置遷移情報を送信する（ステップＳ８１２）。マスタ端末装置遷移情報は、次の処理の割当の実行要求を含む情報であり、すなわち、マスタ端末装置Ｔ１へ遷移する旨を示す情報である。
【０１０６】
ステップＳ８１２の後、マスタ端末装置Ｔ１は、次のマスタ端末装置Ｔ１として決定した端末装置１０１−ｉが自端末装置であるか否かを判定する（ステップＳ８１３）。そして、次の処理におけるマスタ端末装置Ｔ１が自端末装置である場合（ステップＳ８１３：Ｙｅｓ）、マスタ端末装置Ｔ１は、ステップＳ８０１へ移行する。また、次の処理におけるマスタ端末装置Ｔ１が自端末装置でない場合（ステップＳ８１３：Ｎｏ）、マスタ端末装置Ｔ１は、本フローチャートの一連の処理を終了する。マスタ端末装置Ｔ１は、本フローチャートの一連の処理を終了した場合、スレイブ端末装置Ｔ２へ遷移し、図１０に後述するスレイブ端末処理を実行する。
【０１０７】
上述したマスタ端末処理を実行することにより、マスタ端末装置Ｔ１は、端末装置情報テーブル４００に基づいて共有データＤを用いた処理を割り当てることができる。すなわち、端末装置１０１−ｉは、通信強度Ｓｔｉに基づいて、共有データＤを用いた処理を割り当てることができる。これにより、通信が途切れる可能性の極力低い端末装置１０１−ｉに処理を割り当てることができる。したがって、処理結果の同期ができずに処理停止する可能性を低減させることができる。
【０１０８】
また、上述したマスタ端末処理を実行することにより、端末装置１０１−ｉは、端末装置情報テーブル４００に基づいて共有データＤを割り当てることができる。すなわち、端末装置１０１−ｉは、端末装置１０１−ｉと基地局１０２との通信強度Ｓｔｉに基づいて、共有データＤを割り当てることができる。これにより、通信が途切れる可能性の低い端末装置１０１−ｉに共有データＤを割り当てることができる。したがって、共有データＤにアクセスができなくなることを起因とした処理停止の可能性を低減させることができる。
【０１０９】
（マスタ端末装置Ｔ１のテーブル更新処理手順）
図９は、実施の形態１にかかるマスタ端末装置Ｔ１のテーブル更新処理手順の一例を示すフローチャートである。テーブル更新処理は、マスタ端末装置Ｔ１のＣＰＵ３０１によって実行される処理である。
【０１１０】
テーブル更新処理において、マスタ端末装置Ｔ１は、まず、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとを取得する（ステップＳ９０１）。そして、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２の通信強度Ｓｔｉと通信速度Ｓｐｉとを受信し（ステップＳ９０２）、取得および受信した通信強度Ｓｔｉと通信速度Ｓｐｉとを参照して、端末装置情報テーブル４００を作成する（ステップＳ９０３）。
【０１１１】
ステップＳ９０３の後、マスタ端末装置Ｔ１は、端末装置情報テーブル４００を参照して、データ割当テーブル５００を作成する（ステップＳ９０４）。その後、マスタ端末装置Ｔ１は、作成したデータ割当テーブル５００をスレイブ端末装置Ｔ２へ送信し（ステップＳ９０５）、本フローチャートにおける一連の処理を終了する。
【０１１２】
上述したテーブル更新処理を実行することにより、マスタ端末装置Ｔ１は、端末装置情報テーブル４００およびデータ割当テーブル５００を、最新の通信状態における通信強度Ｓｔｉおよび通信速度Ｓｐｉによって更新することができる。これにより、マスタ端末装置Ｔ１は、最新の通信状態を考慮して処理の割当や共有データＤの割当を行うことができる。
【０１１３】
（スレイブ端末装置Ｔ２のスレイブ端末処理手順）
図１０および図１１は、実施の形態１にかかるスレイブ端末装置Ｔ２のスレイブ端末処理手順の一例を示すフローチャートである。スレイブ端末処理は、スレイブ端末装置Ｔ２のＣＰＵ３０１によって実行される処理である。
【０１１４】
スレイブ端末処理において、スレイブ端末装置Ｔ２は、まず、データ割当テーブル５００をマスタ端末装置Ｔ１から受信したか否かを判定する（ステップＳ１００１）。そして、データ割当テーブル５００を受信した場合（ステップＳ１００１：Ｙｅｓ）、スレイブ端末装置Ｔ２は、受信したデータ割当テーブル５００を記憶する（ステップＳ１００２）。
【０１１５】
ステップＳ１００１においてデータ割当テーブル５００を受信していない場合（ステップＳ１００１：Ｎｏ）、またはステップＳ１００２の後、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１からマスタ端末装置遷移情報を受信したか否かを判定する（ステップＳ１００３）。マスタ端末装置遷移情報を受信した場合（ステップＳ１００３：Ｙｅｓ）、スレイブ端末装置Ｔ２は、本フローチャートの一連の処理を終了し、図８に上述したマスタ端末処理を実行する。これにより、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１へ遷移する。
【０１１６】
ステップＳ１００３において、マスタ端末装置Ｔ１からマスタ端末装置遷移情報を受信しない場合（ステップＳ１００３：Ｎｏ）、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から処理割当通知を受信したか否かを判定する（ステップＳ１００４）。処理割当通知を受信していない場合（ステップＳ１００４：Ｎｏ）、スレイブ端末装置Ｔ２は、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとを取得し（ステップＳ１００５）、通信強度Ｓｔｉが第１閾値以上であるか否かを判定する（ステップＳ１００６）。
【０１１７】
ステップＳ１００６において、通信強度Ｓｔｉが第１閾値以上である場合（ステップＳ１００６：Ｙｅｓ）、スレイブ端末装置Ｔ２は、取得した自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとをマスタ端末装置Ｔ１に送信する（ステップＳ１００７）。ステップＳ１００７の後、スレイブ端末装置Ｔ２は、ステップＳ１００１へ移行する。また、ステップＳ１００６において、通信強度Ｓｔｉが第１閾値未満である場合（ステップＳ１００６：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１００１へ移行する。
【０１１８】
ステップＳ１００４において、処理割当通知を受信していないスレイブ端末装置Ｔ２とは、処理を割り当てられていないスレイブ端末装置Ｔ２であり、端末装置情報テーブル４００に第１閾値未満の通信強度Ｓｔｉが登録されている端末装置１０１−ｉである。すなわち、ステップＳ１００５〜Ｓ１００７を実行することにより、第１閾値未満であったスレイブ端末装置Ｔ２の通信強度Ｓｔｉが、第１閾値以上に回復した場合に、その旨をマスタ端末装置Ｔ１に通知することとしている。
【０１１９】
ステップＳ１００４において、マスタ端末装置Ｔ１から処理割当通知を受信した場合（ステップＳ１００４：Ｙｅｓ）、スレイブ端末装置Ｔ２は、記憶したデータ割当テーブル５００に変更があったか否かを判定する（ステップＳ１１０１）。このとき、スレイブ端末装置Ｔ２は、例えば、マスタ端末装置Ｔ１にアクセスし、変更フラグがＯＮであるか否かを判定することにより、データ割当テーブル５００に変更があるか否かを判定する。
【０１２０】
ステップＳ１１０１において、データ割当テーブル５００に変更があった場合（ステップＳ１１０１：Ｙｅｓ）、スレイブ端末装置Ｔ２は、割当データの送受信を端末装置間にて実施する（ステップＳ１１０２）。その際、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１に記憶されているデータ割当テーブル５００を参照して、割当データの送受信を端末装置間にて実施する。
【０１２１】
ステップＳ１１０２の後、またはステップＳ１１０１においてデータ割当テーブル５００に変更がないと判定した場合（ステップＳ１１０１：Ｎｏ）、スレイブ端末装置Ｔ２は、受信した処理割当通知に応じた処理を実行する（ステップＳ１１０３）。そして、スレイブ端末装置Ｔ２は、処理の実行が完了したか否かを判定し（ステップＳ１１０４）、完了しない場合（ステップＳ１１０４：Ｎｏ）、完了するまで待機する。
【０１２２】
ステップＳ１１０４において、処理の実行が完了した場合（ステップＳ１１０４：Ｙｅｓ）、スレイブ端末装置Ｔ２は、処理の実行結果をマスタ端末装置Ｔ１に送信する（ステップＳ１１０５）。そして、スレイブ端末装置Ｔ２は、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとを取得する（ステップＳ１１０６）。その後、スレイブ端末装置Ｔ２は、取得した自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとをマスタ端末装置Ｔ１に送信し（ステップＳ１１０７）、ステップＳ１００１へ移行する。
【０１２３】
上述したスレイブ端末処理を実行することにより、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１によって通信強度Ｓｔｉに基づいて割り当てられた処理を実行することができる。
【０１２４】
以上説明した実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、端末装置１０１−ｉと基地局１０２との通信強度Ｓｔｉに基づいて、共有データＤを用いた処理を割り当てることとした。これにより、通信が安定している端末装置１０１−ｉに処理を割り当てることができる。したがって、処理実行中の端末装置の通信が途切れる可能性を低減させ、処理結果を同期できないことを起因とした処理結果の欠落を回避し、共有データＤを用いた処理を完遂することができる。
【０１２５】
また、実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、端末装置１０１−ｉと基地局１０２との通信強度Ｓｔｉに基づいて、共有データＤを割り当てることとした。これにより、通信が安定している端末装置１０１−ｉに共有データＤを割り当てることができる。したがって、共有データＤを記憶する端末装置の通信が途切れないため、共有データＤにアクセスできないことを起因とした処理結果の欠落を回避し、共有データＤを用いた処理を完遂することができる。
【０１２６】
また、実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉに対して、処理を割り当てることとした。これにより、通信が途切れる可能性がより低い端末装置１０１−ｉに処理を割り当てることができる。したがって、処理結果を同期できないことを起因とした処理結果の欠落の可能性をより低減させ、処理結果を同期できないことを起因とした処理結果の欠落を回避し、共有データＤを用いた処理を完遂することができる。
【０１２７】
また、実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、通信強度Ｓｔｉが第１閾値以上である端末装置１０１−ｉに対して、共有データＤを割り当てることとした。これにより、通信が途切れる可能性がより低い端末装置１０１−ｉに共有データＤを割り当てることができ、共有データＤにアクセスできないことを起因とした処理結果の欠落の可能性を低減させることができ、共有データＤを用いた処理を完遂することができる。
【０１２８】
また、実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、複数の端末装置に処理を割り当てることにより、処理によるＣＰＵ３０１にかかる負荷を分散することができる。また、複数の端末装置に共有データＤを割り当てることにより、共有データＤにアクセスする際の通信負荷を分散することができる。
【０１２９】
また、実施の形態１にかかるスケジューリング方法およびタスク処理方法によれば、通信速度Ｓｐｉの値が大きい端末装置１０１−ｉほど、大きなサイズの共有データＤを割り当てることとした。これにより、共有データＤの送受信の時間の短縮化を図ることができる。したがって、処理の実行中における通信強度Ｓｔｉの低下幅が極力小さいうちに、効率的に処理を実行することができる。
【０１３０】
＜実施の形態２＞
次に、本発明にかかるスケジューリング方法およびタスク処理方法の実施の形態２について説明する。実施の形態２では、マスタ端末装置Ｔ１が、第１閾値未満のスレイブ端末装置Ｔ２に対しても処理を割り当てる点が実施の形態１と異なる。また、実施の形態２では、マスタ端末装置Ｔ１から処理が割り当てられたスレイブ端末装置Ｔ２の通信強度Ｓｔｉが第２閾値よりも下回った場合に、割り当てられた処理をマスタ端末装置Ｔ１が引き継ぐ点が実施の形態１と異なる。これにより、処理による負荷を分散させるとともに、いずれかの端末装置１０１−ｉの通信状態が悪化した場合にも、共有データＤを用いた処理を完遂することができる。なお、実施の形態１で説明した箇所と同一箇所については説明を省略する。
【０１３１】
（端末装置情報テーブル４００の記憶内容）
図１２は、実施の形態２における端末装置情報テーブル４００の記憶内容の一例を示す説明図である。図１２において、端末装置１０１−ｉが有する端末装置情報テーブル４００は、図４に上述したように、端末装置ＩＤ、通信強度Ｓｔｉ、通信速度Ｓｐｉ、データ比率および処理割当可能フラグのフィールドを有する。図示するように、実施の形態２の端末装置情報テーブル４００においては、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−４の端末装置特性データ４００−４であっても、処理割当可能フラグはＯＮである。
【０１３２】
（マスタ端末装置Ｔ１およびスレイブ端末装置Ｔ２の機能の一例）
次に、図７を用いて、実施の形態２にかかるマスタ端末装置Ｔ１およびスレイブ端末装置Ｔ２の機能の一例について説明する。まず、実施の形態１にかかるマスタ端末装置Ｔ１とは異なる機能を有する機能部（受信部７１１、作成部７１２、処理割当部７１３、実行部７１４）について説明する。
【０１３３】
受信部７１１は、第３装置の通信強度Ｓｔｉの変化に基づいて第３装置から処理の実行コンテキストを受信する。実行コンテキストは、ＣＰＵのレジスタの一つであるプログラムカウンタの値、変数の値等が格納される汎用レジスタの値、またスタックポインタの値、などといった、アプリを続行するために用いられるデータである。具体的に、例えば、受信部７１１が、スレイブ端末装置Ｔ２の送信部７２４から送信される実行コンテキストを受信する。
【０１３４】
作成部７１２は、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉの処理割当可能フラグにＯＮを登録する。具体的には、例えば、作成部７１２は、図１２の端末情報装置テーブル４００の端末装置特性データ４００−４において、通信強度Ｓｔ３が２０［％］未満であるため、処理割当可能フラグにＯＮを登録する。
【０１３５】
処理割当部７１３は、複数の端末装置１０１−１〜１０１−ｍに含まれる第３装置の通信強度Ｓｔｉが第１閾値より小さいときに第３装置に処理を割り当てる。具体的に、例えば、処理割当部７１３が、端末装置情報テーブル４００を参照して、処理割当可能フラグが「ＯＮ」である端末装置１０１−ｉ、すなわち、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉに処理を割り当てる。図１２の例では、処理割当部７１３は、端末装置１０１−４に処理を割り当てる。
【０１３６】
実行部７１４は、受信部７１１によって受信された実行コンテキストに基づいて処理を実行する。具体的に、例えば、実行部７１４は、受信された実行コンテキストに基づいて、第３装置に割り当てられた処理のうち、実行されていない処理を特定し、特定した処理を実行する。これにより、マスタ端末装置Ｔ１は、通信状態が悪化したスレイブ端末装置Ｔ２に割り当てた処理を、続行することができる。
【０１３７】
このように、実施の形態２にかかるマスタ端末装置Ｔ１は、共有データＤを用いた処理を割り当てたいずれかの端末装置１０１−ｉから、実行途中の処理の情報（例えば、実行コンテキスト）を受信する。その際、例えば、マスタ端末装置Ｔ１は、第１閾値よりも低い通信強度Ｓｔｉを有する端末装置１０１−ｉから、実行途中の処理の情報を受信する。
【０１３８】
そして、マスタ端末装置Ｔ１は、受信された実行途中の処理の情報に基づいて、実行途中の処理の情報の送信元の端末装置とは異なる端末装置に、実行途中の処理を割り当てる。例えば、マスタ端末装置Ｔ１は、自端末装置に、実行途中の処理を割り当てる。これにより、一の端末装置が途中まで実行した処理を、他端末装置が引き継いで実行することができる。したがって、該一の端末装置の通信状態が悪化した場合にも、処理を継続することができる。
【０１３９】
次に、実施の形態１にかかるスレイブ端末装置Ｔ２とは異なる機能を有する機能部（取得部７２３、送信部７２４）について説明する。
【０１４０】
取得部７２３は、スレイブ端末装置Ｔ２がタスクを実行するとき、所定周期でスレイブ端末装置Ｔ２の通信強度Ｓｔｉを取得する。そして、送信部７２４は、実行部７２２によって処理が実行されており、取得部７２３によって取得された通信強度Ｓｔｉが第１閾値より小さいとき、通信強度Ｓｔｉをマスタ端末装置Ｔ１に送信する。これにより、スレイブ端末装置Ｔ２は、割り当てられた処理の実行中に通信状態が悪化した場合に、マスタ端末装置Ｔ１に対して、該スレイブ端末装置Ｔ２に対する処理の割当を中止させることができる。
【０１４１】
また、送信部７２４は、第２装置がタスクを実行するとき、第２装置の通信強度Ｓｔｉが、第２閾値より小さいときにタスクの実行コンテキストを第１装置に送信する。第２閾値は、本実施の形態において５［％］とし、第１閾値と異なる値とするが、これに限るものではなく、同一の値であってもよい。具体的に、例えば、送信部７２４が、まず、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが第２閾値未満であるか否かを判定し、スレイブ端末装置Ｔ２の通信強度Ｓｔｉが第２閾値未満であると判定した場合に、タスクの実行コンテキストを第１装置に送信する。これにより、通信強度Ｓｔｉが第２閾値未満であり、処理が割り当てられたスレイブ端末装置Ｔ２の通信状態が悪化した場合にも、他端末装置に処理を継続させることができ、処理を続行することができる。
【０１４２】
このように、実施の形態２にかかるスレイブ端末装置Ｔ２は、自端末装置の通信強度Ｓｔｉを取得し、取得した通信強度Ｓｔｉが第２閾値未満であるか否かを判定する。そして、スレイブ端末装置Ｔ２は、割り当てられた処理の実行中における自端末装置の通信強度Ｓｔｉが第２閾値未満である場合に、実行途中の処理の情報を、他端末装置に送信する。これにより、一の端末装置が途中まで実行した処理を、他端末装置が引き継いで実行することができる。したがって、該一の端末装置の通信状態が悪化した場合にも、処理を継続することができる。
【０１４３】
（マスタ端末装置Ｔ１のマスタ端末処理手順）
図１３および図１４は、実施の形態２にかかるマスタ端末装置Ｔ１のマスタ端末処理手順の一例を示すフローチャートである。マスタ端末処理は、マスタ端末装置Ｔ１のＣＰＵ３０１によって実行される処理である。
【０１４４】
マスタ端末処理において、マスタ端末装置Ｔ１は、まず、実行可能状態であるタスクが存在するか否かを判定する（ステップＳ１３０１）。実行可能状態であるタスクが存在しない場合（ステップＳ１３０１：Ｎｏ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信したか否かを判定する（ステップＳ１３０２）。
【０１４５】
スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信した場合（ステップＳ１３０２：Ｙｅｓ）、マスタ端末装置Ｔ１は、端末装置情報テーブル４００の端末装置特性データ４００−ｉを更新し（ステップＳ１３０３）、ステップＳ１３０１へ移行する。また、ステップＳ１３０２において、スレイブ端末装置Ｔ２から通信強度Ｓｔｉと通信速度Ｓｐｉとを受信していない場合（ステップＳ１３０２：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ１３０１へ移行する。
【０１４６】
ステップＳ１３０１において、実行可能状態であるタスクが存在する場合（ステップＳ１３０１：Ｙｅｓ）、マスタ端末装置Ｔ１は、端末装置情報テーブル４００を参照して、処理を割り当てるスレイブ端末装置Ｔ２へ、処理割当通知を送信する（ステップＳ１３０４）。また、このとき、マスタ端末装置Ｔ１は、自端末装置に割り当てる処理を実行キューに登録する。
【０１４７】
その後、マスタ端末装置Ｔ１は、データ割当テーブル５００に変更があるか否かを判定する（ステップＳ１３０５）。このとき、マスタ端末装置Ｔ１は、例えば、データ割当テーブル５００を変更した旨を示す変更フラグがＯＮであるか否かを判定することにより、データ割当テーブル５００に変更があるか否かを判定する。その場合、例えば、マスタ端末装置Ｔ１は、データ割当テーブル５００を更新した際に変更フラグをＯＮにし、データ割当テーブル５００に変更があると判定した際に変更フラグをＯＦＦにする。
【０１４８】
ステップＳ１３０５において、データ割当テーブル５００に変更があると判定した場合（ステップＳ１３０５：Ｙｅｓ）、マスタ端末装置Ｔ１は、データ割当テーブル５００を参照して、割当データの送受信を端末装置間にて実施する（ステップＳ１３０６）。これにより、マスタ端末装置Ｔ１は、共有データＤの割当を行う。
【０１４９】
ステップＳ１３０６の後、また、ステップＳ１３０５においてデータ割当テーブル５００に変更がないと判定した場合（ステップＳ１３０５：Ｎｏ）、マスタ端末装置Ｔ１は、自端末装置に割り当てた処理を実行する（ステップＳ１３０７）。そして、マスタ端末装置Ｔ１は、処理の実行が完了したか否かを判定し（ステップＳ１３０８）、完了しない場合（ステップＳ１３０８：Ｎｏ）、スレイブ端末装置Ｔ２から実行コンテキストを受信したか否かを判定する（ステップＳ１３０９）。
【０１５０】
ステップＳ１３０９において、スレイブ端末装置Ｔ２から実行コンテキストを受信した場合（ステップＳ１３０９：Ｙｅｓ）、マスタ端末装置Ｔ１は、受信した実行コンテキストに基づいて、処理を実行キューに登録する（ステップＳ１３１０）。このとき、マスタ端末装置Ｔ１は、実行コンテキストの送信元のスレイブ端末装置Ｔ２に割り当てていた処理のうち、スレイブ端末装置Ｔ２に実行されていない処理を実行キューに登録する。
【０１５１】
ステップＳ１３１０の後、マスタ端末装置Ｔ１は、ステップＳ１３０８に移行する。また、ステップＳ１３０９において、スレイブ端末装置Ｔ２から実行コンテキストを受信しない場合（ステップＳ１３０９：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ１３０８に移行する。
【０１５２】
ステップＳ１３０８において、自端末装置に割り当てた処理の実行が完了した場合（ステップＳ１３０８：Ｙｅｓ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２に割り当てていた処理が実行キューに登録されているか否かを判定する（ステップＳ１４０１）。スレイブ端末装置Ｔ２に割り当てていた処理が実行キューに登録されている場合（ステップＳ１４０１：Ｙｅｓ）、マスタ端末装置Ｔ１は、実行キューに登録されている処理を実行する（ステップＳ１４０２）。すなわち、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２に割り当てていた処理のうち、スレイブ端末装置Ｔ２によって実行されていない処理を、スレイブ端末装置Ｔ２から引き継いで実行する。その後、マスタ端末装置Ｔ１は、ステップＳ１４０２において実行した処理の実行を完了したか否かを判定し（ステップＳ１４０３）、完了しない場合（ステップＳ１４０３：Ｎｏ）、完了するまで待機する。
【０１５３】
ステップＳ１４０３において、処理の実行を完了した場合（ステップＳ１４０３：Ｙｅｓ）、マスタ端末装置Ｔ１は、他端末装置へ割り当てたすべての処理の処理結果を受信したか否かを判定する（ステップＳ１４０４）。また、ステップＳ１４０１においてスレイブ端末装置Ｔ２に割り当てた処理が実行キューに登録されていない場合（ステップＳ１４０１：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ１４０４へ移行する。
【０１５４】
ステップＳ１４０４において、他端末装置へ割り当てたすべての処理の処理結果を受信していない場合（ステップＳ１４０４：Ｎｏ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から実行コンテキストを受信したか否かを判定する（ステップＳ１４０５）。スレイブ端末装置Ｔ２から実行コンテキストを受信した場合（ステップＳ１４０５：Ｙｅｓ）、マスタ端末装置Ｔ１は、実行コンテキストに基づいて、スレイブ端末装置Ｔ２に割り当てていた処理を実行する（ステップＳ１４０６）。その後、マスタ端末装置Ｔ１は、ステップＳ１４０６において実行した処理の実行を完了したか否かを判定し（ステップＳ１４０７）、完了しない場合（ステップＳ１４０７：Ｎｏ）、完了するまで待機する。
【０１５５】
ステップＳ１４０５において、スレイブ端末装置Ｔ２から実行コンテキストを受信しない場合（ステップＳ１４０５：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ１４０４へ移行する。また、ステップＳ１４０７において処理の実行を完了した場合（ステップＳ１４０７：Ｙｅｓ）、マスタ端末装置Ｔ１は、ステップＳ１４０４へ移行する。
【０１５６】
ステップＳ１４０４において、他端末装置へ割り当てたすべての処理の処理結果を受信した場合（ステップＳ１４０４：Ｙｅｓ）、マスタ端末装置Ｔ１はテーブル更新処理を実行する（ステップＳ１４０８）。
【０１５７】
その後、マスタ端末装置Ｔ１は、端末装置情報テーブル４００を参照して、通信強度Ｓｔｉの値が最も大きい端末装置１０１−ｉを、次のマスタ端末装置Ｔ１として決定する（ステップＳ１４０９）。そして、マスタ端末装置Ｔ１は、次のマスタ端末装置Ｔ１として決定した端末装置１０１−ｉに対して、マスタ端末装置遷移情報を送信する（ステップＳ１４１０）。
【０１５８】
ステップＳ１４１０の後、マスタ端末装置Ｔ１は、次のマスタ端末装置Ｔ１として決定した端末装置１０１−ｉが自端末装置であるか否かを判定する（ステップＳ１４１１）。そして、次の処理におけるマスタ端末装置Ｔ１が自端末装置である場合（ステップＳ１４１１：Ｙｅｓ）、マスタ端末装置Ｔ１は、ステップＳ１３０１へ移行する。また、次の処理におけるマスタ端末装置Ｔ１が自端末装置でない場合（ステップＳ１４１１：Ｎｏ）、マスタ端末装置Ｔ１は、本フローチャートの一連の処理を終了する。マスタ端末装置Ｔ１は、本フローチャートの一連の処理を終了した場合、スレイブ端末装置Ｔ２へ遷移し、上述したスレイブ端末処理を実行する。
【０１５９】
上述したマスタ端末処理を実行することにより、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から受信した実行コンテキストに基づいて処理を実行することとした。これにより、スレイブ端末装置Ｔ２に割り当てていた処理を継続して実行することができる。
【０１６０】
（スレイブ端末装置Ｔ２のスレイブ実行中処理手順）
図１５は、実施の形態２にかかるスレイブ端末装置Ｔ２のスレイブ実行中処理手順の一例を示すフローチャートである。図１５に示すスレイブ実行中処理は、図１１のステップＳ１１０４において、処理の実行が完了しない場合に（ステップＳ１１０４：Ｎｏ）、スレイブ端末装置Ｔ２によって実行される処理である。
【０１６１】
スレイブ実行中処理において、スレイブ端末装置Ｔ２は、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値未満であるか否かを判定する（ステップＳ１５０１）。その際、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１の記憶領域にアクセスし、該記憶領域に記憶されている端末装置情報テーブル４００を参照して、自端末装置の通信強度Ｓｔｉが第１閾値未満であるか否かを判定する。
【０１６２】
ステップＳ１５０１において、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値未満である場合（ステップＳ１５０１：Ｙｅｓ）、スレイブ端末装置Ｔ２は、ステップＳ１５０２を行う。ステップＳ１５０２において、スレイブ端末装置Ｔ２は、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとを取得する（ステップＳ１５０２）。ステップＳ１５０１において、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値未満である場合とは、スレイブ端末装置Ｔ２が、第１閾値未満の通信強度Ｓｔｉを有し、処理が割り当てられた端末装置１０１−４であることを示す。ステップＳ１５０２の後、スレイブ端末装置Ｔ２は、取得した通信強度Ｓｔｉが第２閾値未満であるか否かを判定する（ステップＳ１５０３）。
【０１６３】
ステップＳ１５０３において、取得した通信強度Ｓｔｉが第２閾値未満である場合（ステップＳ１５０３：Ｙｅｓ）、スレイブ端末装置Ｔ２は、実行コンテキストをマスタ端末装置Ｔ１へ送信する（ステップＳ１５０４）。ステップＳ１５０３において、取得した通信強度Ｓｔｉが第２閾値未満である場合とは、すなわち、端末装置１０１−４であるスレイブ端末装置Ｔ２の通信状態が悪化していることを示している。
【０１６４】
ステップＳ１５０４の後、スレイブ端末装置Ｔ２は、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとをマスタ端末装置Ｔ１に送信し（ステップＳ１５０５）、実行中の処理を停止し（ステップＳ１５０６）、ステップＳ１１０４へ移行する。
【０１６５】
また、ステップＳ１５０１において、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値以上である場合（ステップＳ１５０１：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１１０４へ移行する。また、ステップＳ１５０３において、取得した通信強度Ｓｔｉが規定の第２閾値以上であると判定された場合（ステップＳ１５０３：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１１０４へ移行する。
【０１６６】
上述したスレイブ実行中処理を実行することにより、スレイブ端末装置Ｔ２は、通信強度Ｓｔｉが第２閾値を下回る場合に、マスタ端末装置Ｔ１に対して、実行コンテキストを送信することができる。これにより、通信状態が悪化したスレイブ端末装置Ｔ２が実行中の処理を、マスタ端末装置Ｔ１に引き継がせることができる。したがって、通信強度Ｓｔｉが第２閾値を下回るまでは処理による負荷を分散できるとともに、通信強度Ｓｔｉが第２閾値を下回った場合にも、処理を続行することができる。
【０１６７】
以上説明した実施の形態２にかかるスケジューリング方法およびタスク処理方法によれば、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から受信した実行コンテキストに基づいた処理を行うこととした。これにより、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２に割り当てていた処理を引き継いで実行することができる。
【０１６８】
また、実施の形態２にかかるスケジューリング方法およびタスク処理方法によれば、スレイブ端末装置Ｔ２は、通信強度Ｓｔｉが第２閾値を下回る場合に、マスタ端末装置Ｔ１に対して、実行コンテキストを送信することができる。これにより、通信状態が悪化したスレイブ端末装置Ｔ２が実行中の処理を、マスタ端末装置Ｔ１に引き継がせることができる。したがって、通信強度Ｓｔｉが第２閾値を下回るまでは処理による負荷を分散できるとともに、通信強度Ｓｔｉが第２閾値を下回った場合にも、処理を続行し、完遂することができる。
【０１６９】
＜実施の形態３＞
次に、本発明にかかるスケジューリング方法およびタスク処理方法の実施の形態３について説明する。実施の形態３では、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉにも共有データＤを割り当てる点が実施の形態１および実施の形態２と異なる。その際、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉに割り当てた共有データＤのバックアップデータを、他端末装置に記憶する。これにより、他端末装置にアクセスすることを起因としたネットワークの負荷を軽減させるとともに、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉの通信状態が悪化した場合にも、バックアップデータを用いた処理を続行し、完遂することができる。なお、実施の形態１および実施の形態２で説明した箇所と同一箇所については説明を省略する。
【０１７０】
（端末装置情報テーブル４００の記憶内容）
図１６は、実施の形態３における端末装置情報テーブル４００の記憶内容の一例を示す説明図である。図１６において、端末装置１０１−ｉが有する端末装置情報テーブル４００は、図４に上述したように、端末装置ＩＤ、通信強度Ｓｔｉ、通信速度Ｓｐｉ、データ比率および処理割当可能フラグのフィールドを有する。
【０１７１】
図示するように、実施の形態３の端末装置情報テーブル４００においては、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−４の端末装置特性データ４００−４であっても、データ比率が「１」である。また、通信強度Ｓｔｉが第１閾値以上である端末装置１０１−３の端末装置特性データ４００−３におけるデータ比率は「１１（１０＋１）」である。データ比率が「１１（１０＋１）」であるとは、通信速度Ｓｐｉの比率に応じて割り当てられるデータ比率「１０」と、他端末装置のバックアップ分のデータ比率「１」とに対応する共有データＤを記憶することを示している。
【０１７２】
（データ割当テーブル５００の記憶内容）
図１７は、実施の形態３におけるデータ割当テーブル５００の記憶内容の一例を示す説明図である。図１７において、端末装置１０１−ｉが有するデータ割当テーブル５００は、割当データ配列、割当端末装置ＩＤおよび割当区分のフィールドを有する。各フィールドに情報を設定することで、データ割当特性データ５００−１〜５００−Ｐがレコードとして記憶されている。
【０１７３】
割当データ配列および割当端末装置ＩＤは、図５に上述した通りである。割当区分は、割り当てられる割当データの区分を示している。例えば、通信速度Ｓｐｉに応じて割り当てられる割当データの割当区分は「Ｍａｉｎ」であり、バックアップとして割り当てられる割当データの割当区分は「Ｓｕｂ」である。
【０１７４】
一例として、データ割当特性データ５００−１を例に挙げると、割当データ配列「ａｒｒａｙ＃０」、割当端末装置ＩＤ「＃１」、割当区分「Ｍａｉｎ」が記憶されている。また、通信強度Ｓｔ４が第１閾値未満であるため、端末装置１０１−４に割り当てられる割当データ配列「ａｒｒａｙ＃Ｎ」は、データ割当特性データ５００−Ｐに示すように、割当端末装置ＩＤ「＃３」の端末装置１０１−３にも記憶される。その際の割当区分は「Ｓｕｂ」である。
【０１７５】
（共有データＤの割当方法の一例）
図１８は、実施の形態３における共有データＤの割当方法の一例を示す説明図である。図１７に示す共有データＤの割当方法において、まず、マスタ端末装置Ｔ１は、各端末装置と基地局１０２との通信強度Ｓｔｉと、各端末装置における通信速度Ｓｐｉが取得する。具体的に、マスタ端末装置Ｔ１は、図６に上述した（１）〜（５）のように、各端末装置と基地局１０２との通信強度Ｓｔｉと、各端末装置における通信速度Ｓｐｉとを取得する。
【０１７６】
次に、マスタ端末装置Ｔ１は、端末装置１０１−ｉの通信速度Ｓｐｉの比率に応じた割合にて、共有データＤを各端末装置に割り当てる。具体的には、（６）に示すように、割当データＤ１と割当データＤ２と割当データＤ３と割当データＤ４の比率は、通信速度Ｓｐ１と通信速度Ｓｐ２と通信速度Ｓｐ３と通信速度Ｓｐ４との比率である。Ｓｐ１：Ｓｐ２：Ｓｐ３：Ｓｐ４は、１０［Ｍｂｐｓ］：１０［Ｍｂｐｓ］：１［Ｍｂｐｓ］：１００［ｋｂｐｓ］である。このため、割当データＤ１と割当データＤ２と割当データＤ３と割当データＤ４との比率は、１００：１００：１０：１と求められる。
【０１７７】
ここで、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−４に割り当てられる割当データＤ４は、端末装置１０１−４以外の端末装置１０１−ｉにバックアップとして割り当てられる。このとき、割当データＤ４は、最も通信強度Ｓｔｉが高い端末装置１０１−３にバックアップとして割り当てられる。これにより、通信が途切れる可能性が最も低い端末装置１０１−３にバックアップを持たせることができ、処理の停止の可能性をより低くすることができる。
【０１７８】
マスタ端末装置Ｔ１は、ここで求められた比率を端末装置情報テーブル４００に登録する。そして、マスタ端末装置Ｔ１は、端末装置情報テーブル４００に応じてデータ割当テーブル５００を作成し、作成したデータ割当テーブル５００に応じて共有データＤを各端末装置に割り当てる。
【０１７９】
（マスタ端末装置Ｔ１およびスレイブ端末装置Ｔ２の機能の一例）
次に、図７を用いて、実施の形態３にかかるマスタ端末装置Ｔ１およびスレイブ端末装置Ｔ２の機能の一例について説明する。まず、実施の形態１および実施の形態２にかかるマスタ端末装置Ｔ１とは異なる機能を有する機能部（作成部７１２、処理割当部７１３、データ割当部７１５）について説明する。
【０１８０】
作成部７１２は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに割り当てる割当データのバックアップデータを割り当てる旨を示す情報を、端末装置情報テーブル４００における第４装置に対応する端末装置情報特性データに登録する。例えば、作成部７１２は、図１６における第４装置に対応する端末装置特性データ４００−３のように、バックアップデータを考慮したデータ比率「１１（１０＋１）」を登録する。
【０１８１】
そして、作成部７１２は、バックアップデータを考慮したデータ割当テーブル５００を作成する。具体的に、作成部７１２は、第１閾値より低い通信強度Ｓｔｉの端末装置１０１−ｉに記憶される割当データ配列を、第４装置に対応する割当データ配列として登録する。例えば、割当データ配列「ａｒｒａｙ＃Ｎ」に対して、割当区分「Ｍａｉｎ」、割当端末装置ＩＤ「＃４」のデータ割当特性データ５００−（Ｐ−１）と、割当区分「Ｓｕｂ」、割当端末装置ＩＤ「＃３」のデータ割当特性データ５００−Ｐが登録される。
【０１８２】
データ割当部７１５は、処理を割り当てるときに複数の端末装置に含まれる第４装置にデータを割り当てる。具体的に、データ割当部７１５は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに共有データＤを割り当てるとともに、該端末装置に割り当てた割当データと同一の割当データを、第４装置に割り当てることとする。
【０１８３】
その際、例えば、データ割当部７１５は、作成部７１２によって作成されるデータ割当テーブル５００を参照して、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに割り当てた割当データと同一の割当データを、第４装置に割り当てる。具体的に、例えば、データ割当部７１５は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−４に共有データＤを割り当てるとともに、同一の割当データを、端末装置１０１−４以外の端末装置１０１−１〜１０１−３のいずれかに割り当てる。
【０１８４】
これにより、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉの割当データのバックアップを、他端末装置に記憶させることができる。したがって、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉの通信状態が悪化した場合にも、共有データＤにアクセスできなくなる可能性を低減させることができる。また、その際、バックアップデータを割り当てる端末装置１０１−ｉの通信強度Ｓｔｉが第１閾値以上である場合、バックアップデータにアクセスできなくなる可能性を低減させることができる。
【０１８５】
また、データ割当部７１５は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに共有データＤを割り当てるとともに、該端末装置に割り当てた割当データと同一の割当データを、通信強度Ｓｔｉが最も高い端末装置１０１−ｉに割り当てることとしてもよい。具体的に、例えば、データ割当部７１５は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−４に共有データＤを割り当てるとともに、同一の割当データを、端末装置１０１−３に割り当てる。
【０１８６】
これにより、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに割り当てる割当データを、通信状態が悪化する可能性の最も低い端末装置１０１−ｉにバックアップすることができる。したがって、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉの通信状態が悪化した場合にも、バックアップデータにアクセスできなくなる可能性を極力低減させることができる。
【０１８７】
処理割当部７１３は、実行コンテキストを第４装置に送信する。具体的に、処理割当部７１３は、受信部７１１によってスレイブ端末装置Ｔ２から受信された実行コンテキストを、バックアップデータを記憶する端末装置１０１−ｉに送信する。これにより、スレイブ端末装置Ｔ２に割り当てた処理を、バックアップデータを記憶する端末装置１０１−ｉに再割当することができる。したがって、スレイブ端末装置Ｔ２の通信状態が悪化した場合にも、バックアップデータを記憶する端末装置１０１−ｉに処理を続行させることができる。
【０１８８】
このように、実施の形態３におけるマスタ端末装置Ｔ１は、第１閾値より通信強度Ｓｔｉが低い端末装置１０１−ｉに共有データＤを割り当てる。そして、該端末装置１０１−ｉに割り当てた割当データと同一のデータを、マスタ端末装置Ｔ１は、該端末装置１０１−ｉとは異なる端末装置１０１−ｉに割り当てる。これにより、共有データＤを記憶している端末装置１０１−ｉの通信状態が悪化した場合にも、処理を実行中の端末装置１０１−ｉは、バックアップデータにアクセスすることにより、処理の停止を回避することができる。
【０１８９】
その際、具体的に、マスタ端末装置Ｔ１は、割当データと同一のデータを、第１閾値より通信強度Ｓｔｉが高い端末装置１０１−ｉに割り当てる。例えば、マスタ端末装置Ｔ１は、端末装置１０１−４に割り当てた割当データと同一のデータを、第１閾値より通信強度Ｓｔｉが高い端末装置１０１−１〜１０１−３のいずれかに割り当てる。これにより、バックアップデータにアクセスできなくなる可能性を低減させることができる。
【０１９０】
また、マスタ端末装置Ｔ１は、割当データと同一のデータを、通信強度Ｓｔｉの値が最も大きい端末装置１０１−ｉに割り当てることとしてもよい。例えば、マスタ端末装置Ｔ１は、端末装置１０１−４に割り当てた割当データと同一のデータを、通信強度Ｓｔｉの値が最も大きい端末装置１０１−３に割り当てる。これにより、バックアップデータにアクセスできなくなる可能性をより低減させることができる。
【０１９１】
また、マスタ端末装置Ｔ１は、共有データＤを用いた処理を割り当てたいずれかの端末装置１０１−ｉから、実行途中の処理の情報（例えば、実行コンテキスト）を受信する。その際、例えば、マスタ端末装置Ｔ１は、第１閾値よりも通信強度Ｓｔｉの低いいずれかの端末装置１０１−ｉから、実行途中の処理の情報を受信する。そして、マスタ端末装置Ｔ１は、受信した実行途中の処理の情報に基づいて、割当データと同一のデータを記憶する端末装置１０１−ｉに実行途中の処理を割り当てる。これにより、他端末装置にアクセスすることを起因としたネットワークの負荷を軽減させるとともに、通信強度Ｓｔｉが第１閾値未満である端末装置１０１−ｉの通信状態が悪化した場合にも、バックアップデータを用いた処理を続行し、完遂することができる。
【０１９２】
次に、実施の形態１および実施の形態２にかかるスレイブ端末装置Ｔ２とは異なる機能を有する機能部（受信部７２１、実行部７２２）について説明する。
【０１９３】
受信部７２１は、処理割当部７１３から送信される実行コンテキストを受信する。そして、実行部７２２は、受信部７２１によって受信された実行コンテキストに基づいて、処理を実行する。これにより、スレイブ端末装置Ｔ２は、通信状態が悪化した他のスレイブ端末装置Ｔ２に割り当てられた処理を続行することができる。
【０１９４】
このように、実施の形態３におけるスレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から割り当てられた実行途中の処理を実行する。
【０１９５】
（マスタ端末装置Ｔ１のマスタ実行中処理手順）
図１９は、実施の形態３にかかるマスタ端末装置Ｔ１のマスタ実行中処理手順の一例を示すフローチャートである。図１９に示すマスタ実行中処理は、図８のステップＳ８０８において、処理の実行が完了しない場合に（ステップＳ８０８：Ｎｏ）、マスタ端末装置Ｔ１のＣＰＵ３０１によって実行される処理である。また、図１９に示すマスタ端末処理は、図８のステップＳ８０９において、割り当てた処理の処理結果を受信しない場合に（ステップＳ８０９：Ｎｏ）、マスタ端末装置Ｔ１のＣＰＵ３０１によって実行される処理である。
【０１９６】
マスタ実行中処理において、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から実行コンテキストを受信したか否かを判定する（ステップＳ１９０１）。スレイブ端末装置Ｔ２から実行コンテキストを受信した場合（ステップＳ１９０１：Ｙｅｓ）、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２に割り当てていた処理を、バックアップデータを記憶している端末装置１０１−ｉに再割当する（ステップＳ１９０２）。具体的に、マスタ端末装置Ｔ１は、受信した実行コンテキストを、バックアップデータを記憶している端末装置１０１−３に送信することにより、割り当てていた処理を再割当する。
【０１９７】
ステップＳ１９０２の後、マスタ端末装置Ｔ１は、ステップＳ８０８またはステップＳ８０９へ移行する。このとき、マスタ端末装置Ｔ１は、ステップＳ８０８：Ｎｏの後にマスタ実行中処理を実行した場合、ステップＳ８０８へ移行する。また、マスタ端末装置Ｔ１は、ステップＳ８０９：Ｎｏの後にマスタ実行中処理を実行した場合、ステップＳ８０９へ移行する。
【０１９８】
また、ステップＳ１９０１において、スレイブ端末装置Ｔ２から実行コンテキストを受信しない場合（ステップＳ１９０１：Ｎｏ）、マスタ端末装置Ｔ１は、ステップＳ８０８またはステップＳ８０９へ移行する。このとき、同様に、マスタ端末装置Ｔ１は、ステップＳ８０８：Ｎｏの後にマスタ実行中処理を実行した場合、ステップＳ８０８へ移行する。また、マスタ端末装置Ｔ１は、ステップＳ８０９：Ｎｏの後にマスタ実行中処理を実行した場合、ステップＳ８０９へ移行する。
【０１９９】
上述したマスタ実行中処理を実行することにより、マスタ端末装置Ｔ１は、スレイブ端末装置Ｔ２から実行コンテキストを受信した場合に、該スレイブ端末装置Ｔ２に割り当てていた処理を、バックアップを記憶している端末装置１０１−ｉに再割当することとした。これにより、バックアップを記憶している端末装置１０１−ｉに、スレイブ端末装置Ｔ２が実行していた処理を引き継がせることができる。
【０２００】
（スレイブ端末装置Ｔ２のスレイブ実行中処理手順）
図２０は、実施の形態３にかかるスレイブ端末装置Ｔ２のスレイブ実行中処理手順の一例を示すフローチャートである。図２０に示すスレイブ実行中処理は、図１１のステップＳ１１０４において、処理の実行が完了しない場合に（ステップＳ１１０４：Ｎｏ）、スレイブ端末装置Ｔ２に実行される処理である。
【０２０１】
スレイブ実行中処理において、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から処理の再割当を受け付けたか否かを判定する（ステップＳ２００１）。具体的には、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から、実行コンテキストを受信したか否かを判定することにより、処理の再割当を受け付けたか否かを判定する。
【０２０２】
ステップＳ２００１において、マスタ端末装置Ｔ１から処理の再割当を受け付けた場合（ステップＳ２００１：Ｙｅｓ）、スレイブ端末装置Ｔ２は、再割当された処理を実行キューに登録し（ステップＳ２００２）、ステップＳ１１０４へ移行する。
【０２０３】
また、ステップＳ２００１において、マスタ端末装置Ｔ１から処理の再割当を受け付けない場合（ステップＳ２００１：Ｎｏ）、スレイブ端末装置Ｔ２は、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値未満であるか否かを判定する（ステップＳ２００３）。
【０２０４】
ステップＳ２００３において、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値未満である場合（ステップＳ２００３：Ｙｅｓ）、自端末装置の通信強度Ｓｔｉと通信速度Ｓｐｉとを取得する（ステップＳ２００４）。そして、スレイブ端末装置Ｔ２は、取得した通信強度Ｓｔｉが規定の第２閾値未満であるか否かを判定する（ステップＳ２００５）。
【０２０５】
ステップＳ２００５において、取得した通信強度Ｓｔｉが規定の第２閾値未満であると判定された場合（ステップＳ２００５：Ｙｅｓ）、スレイブ端末装置Ｔ２は、実行コンテキストをマスタ端末装置Ｔ１へ送信する（ステップＳ２００６）。そして、スレイブ端末装置Ｔ２は、バックアップデータを、自端末装置の記憶されている割当データに更新し（ステップＳ２００７）、実行中の処理を停止し（ステップＳ２００８）、ステップＳ１１０４へ移行する。ステップＳ２００７において、スレイブ端末装置Ｔ２は、図１７に示したデータ割当テーブル５００を参照して、バックアップデータを記憶する端末装置１０１−ｉを特定する。そして、スレイブ端末装置Ｔ２は、特定した端末装置１０１−ｉに対して、記憶している割当データを送信することにより、バックアップデータを更新する。これにより、バックアップデータを記憶する端末装置１０１−ｉに、最新の共有データＤを用いた処理を続行させることができる。
【０２０６】
また、ステップＳ２００３において、端末装置情報テーブル４００における自端末装置の通信強度Ｓｔｉが第１閾値以上である場合（ステップＳ２００３：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１１０４へ移行する。また、ステップＳ２００５において、取得した通信強度Ｓｔｉが規定の第２閾値以上であると判定された場合（ステップＳ２００５：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１１０４へ移行する。
【０２０７】
上述したスレイブ実行中処理を実行することにより、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から処理を再割当された場合に、再割当された処理を実行キューに登録することができる。
【０２０８】
また、上述したスレイブ実行中処理を実行することにより、スレイブ端末装置Ｔ２は、通信強度Ｓｔｉが第２閾値を下回った場合に、実行コンテキストをマスタ端末装置Ｔ１に送信し、バックアップされている共有データＤを更新することとした。これにより、処理による共有データＤの変更を考慮して、バックアップしている端末装置１０１−ｉに、処理を継続させることができる。
【０２０９】
（スレイブ端末装置Ｔ２の再割当実行処理手順）
図２１は、実施の形態３にかかるスレイブ端末装置Ｔ２の再割当実行処理手順の一例を示すフローチャートである。図２０に示す再割当実行処理は、図１１のステップＳ１１０４において、処理の実行が完了した場合に（ステップＳ１１０４：Ｙｅｓ）、スレイブ端末装置Ｔ２に実行される処理である。
【０２１０】
再割当実行処理において、スレイブ端末装置Ｔ２は、マスタ端末装置Ｔ１から再割当された処理が実行キューに登録されているか否かを判定する（ステップＳ２１０１）。マスタ端末装置Ｔ１から再割当された処理が実行キューに登録されている場合（ステップＳ２１０１：Ｙｅｓ）、スレイブ端末装置Ｔ２は、再割当された処理を実行する（ステップＳ２１０２）。
【０２１１】
そして、スレイブ端末装置Ｔ２は、再割当された処理の実行を完了したか否かを判定し（ステップＳ２１０３）、完了しない場合（ステップＳ２１０３：Ｎｏ）、完了するまで待機する。再割当された処理の実行を完了した場合（ステップＳ２１０３：Ｙｅｓ）、スレイブ端末装置Ｔ２は、ステップＳ１１０５へ移行する。また、ステップＳ２１０１において、マスタ端末装置Ｔ１から再割当された処理が実行キューに登録されていない場合（ステップＳ２１０１：Ｎｏ）、スレイブ端末装置Ｔ２は、ステップＳ１１０５へ移行する。
【０２１２】
上述した再割当実行処理を実行することにより、スレイブ端末装置Ｔ２は、再割当された処理を実行することができる。これにより、通信強度Ｓｔｉが第２閾値を下回ったスレイブ端末装置Ｔ２に割り当てられていた処理を、該スレイブ端末装置Ｔ２に割り当てられた割当データのバックアップデータを記憶する端末装置１０１−ｉによって、継続することができる。したがって、通信強度Ｓｔｉが第２閾値を下回るまでは、処理による負荷の分散および端末装置間のアクセスによるネットワークの負荷の分散を図るとともに、通信強度Ｓｔｉが第２閾値を下回った後にも、継続して処理を実行することができる。
【０２１３】
以上説明した実施の形態３にかかるスケジューリング方法およびタスク処理方法によれば、第１閾値よりも通信強度Ｓｔｉが低い端末装置にもデータを割り当てるとともに、割り当てたデータのバックアップデータを他端末装置に割り当てることとした。これにより、第１閾値よりも通信強度Ｓｔｉが低い端末装置１０１−ｉの通信状態が悪化するまではネットワークの負荷を分散させることができるとともに、通信状態が悪化した後にも、バックアップデータを用いて処理を継続し、完遂することができる。
【０２１４】
また、実施の形態３にかかるスケジューリング方法およびタスク処理方法によれば、第１閾値よりも高い通信強度Ｓｔｉを有する端末装置１０１−ｉに、バックアップデータを割り当てることとした。これにより、バックアップデータを記憶する端末装置１０１−ｉの通信状態が悪化する可能性を低減させることができ、バックアップデータにアクセスできなくなる可能性を低減させることができる。
【０２１５】
また、実施の形態３にかかるスケジューリング方法およびタスク処理方法によれば、通信強度Ｓｔｉが最も高い端末装置１０１−ｉに、バックアップデータを割り当てることとした。これにより、バックアップデータを記憶する端末装置１０１−ｉの通信状態が悪化する可能性をより低減させることができ、バックアップデータにアクセスできなくなる可能性をより低減させることができる。
【０２１６】
また、実施の形態３にかかるスケジューリング方法およびタスク処理方法によれば、処理中の端末装置１０１−ｉの通信状態が悪化した場合、該端末装置１０１−ｉに割り当てた処理を、バックアップデータを有する端末装置１０１−ｉに再割当することとした。これにより、第１閾値よりも通信強度Ｓｔｉが低いスレイブ端末装置Ｔ２の通信状態が悪化するまでは処理による負荷を分散させることができる。また、第１閾値よりも通信強度Ｓｔｉが低い端末装置１０１−ｉの通信状態が悪化した後にも、再割当された端末装置は、他端末装置のデータにアクセスせずに、バックアップデータにアクセスすればよいため、効率的に再割当された処理を実行させることができる。
【０２１７】
なお、本実施の形態で説明したスケジューリング方法およびタスク処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本スケジューリングプログラムおよびタスク処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録される。そして、記録された本スケジューリングプログラムおよびタスク処理プログラムは、コンピュータによって記録媒体から読み出されることによって実行される。また本スケジューリングプログラムおよびタスク処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０２１８】
１０１−ｉ  端末装置
１０２  基地局
４００  端末装置情報テーブル
５００  データ割当テーブル
７１０  取得部
７１１  受信部
７１２  作成部
７１３  処理割当部
７１４  実行部
７１５  データ割当部
７１６  通知部
７１７  決定部
７１８  遷移部
７２１  受信部
７２２  実行部
７２３  取得部
７２４  送信部
７２５  遷移部
Ｔ１  マスタ端末装置
Ｔ２  スレイブ端末装置
【図１】
2012144013.tif 000003
【図２】
2012144013.tif 000004
【図３】
2012144013.tif 000005
【図４】
2012144013.tif 000006
【図５】
2012144013.tif 000007
【図６】
2012144013.tif 000008
【図７】
2012144013.tif 000009
【図８】
2012144013.tif 000010
【図９】
2012144013.tif 000011
【図１０】
2012144013.tif 000012
【図１１】
2012144013.tif 000013
【図１２】
2012144013.tif 000014
【図１３】
2012144013.tif 000015
【図１４】
2012144013.tif 000016
【図１５】
2012144013.tif 000017
【図１６】
2012144013.tif 000018
【図１７】
2012144013.tif 000019
【図１８】
2012144013.tif 000020
【図１９】
2012144013.tif 000021
【図２０】
2012144013.tif 000022
【図２１】
2012144013.tif 000023
【国際調査報告】
2012144013.tif 000024
2012144013.tif 000025
2012144013.tif 000026
2012144013.tif 000027