(57)【要約】【課題】プログラム配信を前提にした実行系において、リソース欠乏等の問題によりプログラムの起動が不可能である場合がある。【解決手段】前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を１つ特定し、前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とする。【選択図】図１
2007108804.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、
前記所望のアプリケーションの起動の指示を行う起動指示手段と、
前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段を備え、
前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を１つ特定し、
前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とするアプリケーション起動調停システム。
【請求項２】
前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は
前記所望のアプリケーションを実行するアプリケーション実行手段と、
前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定する起動可否判定手段を備えたことを特徴とする請求項１に記載のアプリケーション起動調停システム。
【請求項３】
前記起動可否判定手段は、
前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、
前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、前記アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定することを特徴とする請求項１に記載のアプリケーション起動調停システム。
【請求項４】
特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、
前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、
前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動することを特徴とする請求項１〜３のいずれか１項に記載のアプリケーション起動調停システム。
【請求項５】
前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたことを特徴とする請求項１〜４のいずれか１項に記載のアプリケーション起動調停システム。
【請求項６】
前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、
前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、
前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする請求項５に記載のアプリケーション起動調停システム。
【請求項７】
ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、
前記所望のアプリケーションの起動の指示を行う起動指示手段と、
前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段と、
前記起動指示手段が指示した機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、
前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたことを特徴とするアプリケーション起動調停システム。
【請求項８】
前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知することを特徴とする、請求項６に記載のアプリケーション起動調停システム。
【請求項９】
前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、
前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、
前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする請求項７のアプリケーション起動調停システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク家電機器上におけるプログラム配信を前提にしたシステムにおいて、アプリケーションの起動を調停する機能を有するアプリケーション起動調停システムに関するものである。
【背景技術】
【０００２】
従来の技術として、ダウンロード配信されるプログラムを動作させるプログラム実行系の技術については、サンマイクロシステムズ社のＪＡＶＡ（Ｒ）や、マイクロソフト社の．ＮＥＴ（ドットネット）などがある。
【０００３】
これらはネットワーク家電を前提にした、ハードウェアに依存しないサービスプラットフォームを構成する技術となることが期待されている。
【０００４】
またネットワークを通じて、プログラムを実行する環境の自動設定を行う技術としては、マイクロソフト社によって提唱されている技術であるＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）や、サンマイクロシステムズ社によって提唱されている技術であるＪｉｎｉ（Ｒ）などが存在している。
【０００５】
これらの技術の特徴として、ネットワークに機器を繋ぐだけで、ユーザが複雑な設定作業を行わなくともすぐにネットワーク機能を利用可能な状態にすることができる、という利便性をユーザに対して提供する、という事が挙げられる。
【０００６】
ユーザの利用する端末から、ネットワークを通じて、ユーザ要求に対応する機能を持つ機器探し出すシステムとしては、特許文献１に示すものが提示されている。
【０００７】
また、ユーザの利用したい端末でサービスを実施できなかった場合に、代替となる機器を探し出し実施する方法としては、特許文献２に示すものが提示されている。
【特許文献１】特開２００３−１７８０３６号公報
【特許文献２】特開２００２−９４９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
家電システム上においてサービス実施のためにアプリケーションを起動しようとする際に、既に他のアプリケーションが実施されている場合、システム仕様の制限上の問題、あるいは資源の欠乏の問題から、直ちには新たなアプリケーションの起動が不可能である場合がある。
【０００９】
例えば、ＪＡＶＡ（Ｒ）のモバイル家電向け仕様の１つとして提示され、携帯電話製品などで既に多数の応用実績のあるＫＶＭ（Ｋ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）という仮想マシン仕様では、同時に２つ以上のアプリケーションを動かすことができない、という制約事項がある。
【００１０】
よって既にアプリケーションをＫＶＭを使って動作させている最中に、新たに他のアプリケーションを動かしたいという要求が発生したとしても、これを動作させることはできない。従来のシステムはこのような場合、新たに発生したアプリケーションの起動要求を却下するものがほとんどである。
【００１１】
従来のＪＡＶＡ（Ｒ）やマイクロソフト社の．ＮＥＴ（ドットネット）を前提にした、Ｊｉｎｉ（Ｒ）、ｕＰｎＰといった技術によって、ネットワーク家電環境における共通のサービスプラットフォームは構築可能になったものの、上記のような資源欠乏の問題に関しては、それぞれの機器で個別の解決策を実施するしかなく、ネットワーク環境を利用して有効な資源欠乏問題に関する回答を提示することはされてこなかった。
【００１２】
特許文献１にて示されている従来の技術は、家電ネットワークシステムにおけるユーザ環境の変化やユーザ要求を考慮に入れたシステムを提案しているものの、上記のアプリケーションの起動において資源欠乏問題が発生した時の具体的な処理方法に関しては言及しておらず、また、新たにアプリケーションを起動することが不可能と判明した場合の次善策に関しても、何ら言及するものではなかった。
【００１３】
また特許文献２にて示されている従来の技術は、利用予約した機器に不具合があった場合に、代替となる機器を探し出し利用予約を実施する方法について述べているものの、サービスプラットフォームの特性を利用して、代替機器がアプリケーションを新たに取得してサービスを実行する方式についてまで言及したものではなく、また、特許文献１に同じく、新たにアプリケーションを起動することが不可能と判明した場合の次善策に関しても、何ら言及するものではなかった。
【課題を解決するための手段】
【００１４】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を１つ特定し、前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とする。
【００１５】
また、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は前記所望のアプリケーションを実行するアプリケーション実行手段と、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定する起動可否判定手段を備えたことを特徴とする。
【００１６】
また、前記起動可否判定手段は、前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定することを特徴とする。
【００１７】
また、特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動することを特徴とする。
【００１８】
また、前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたことを特徴とする。
【００１９】
また、前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする。
【００２０】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段と、前記特定された機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたことを特徴とする。
【００２１】
また、前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知することを特徴とする。
【００２２】
また、前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする。
【発明の効果】
【００２３】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を１つ特定し、前記起動指示手段は前記特定された別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたので、所望のアプリケーションを起動できる能力のある機器が何らかの事情で起動ができない場合、別の機器へ起動の指示を指定することがでるので、所望のアプリケーションを起動できる機器をより確実かつ速やかに選定することが可能となる。
【００２４】
また、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は前記所望のアプリケーションを実行するアプリケーション実行手段と、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定するので、所望のアプリケーションを起動できる能力のある機器が何らかの事情で起動ができないことを判断できるようになるので、別の機器へ起動の指示を速やかに行うことが可能となる。
【００２５】
また、前記起動可否判定手段は、前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、前記アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定するので、所望のアプリケーションを起動できる能力のあるかどうかを確実に判断できるようになる。
【００２６】
また、特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動するので、優先度の高い所望のアプリケーションを起動できる能力があるかどうかを確実に判断できるようになるとともに所望のアプリケーションを起動できる機器の選択に柔軟性を持たせることができる。
【００２７】
また、前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたので、所望のアプリケーションを起動の指示を受けた機器を利用するユーザは必要に応じて所望のアプリケーションを起動しても良いかどうかを判断できるようになる。
【００２８】
また、前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたので、所望のアプリケーションを起動の要求を出した機器を利用するユーザは必要に応じて前記起動可能機器探索手段、前記代替起動指示手段、前記起動交渉手段を動作させることができるようになる。
【００２９】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を１つ特定する起動可能機器探索手段と、前記起動指示手段が指示した機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたので、所望のアプリケーションを起動できる能力のある機器が起動の指示を受けた時点で何らかの事情で起動ができない場合、所望のアプリケーションを起動できる状態になるのを待ってから起動の指示をすることができるので、起動の指示を受けた時点で何らかの事情で起動ができない場合であっても確実に所望のアプリケーションを起動させるとともに所望のアプリケーションの起動に柔軟性を持たせることができる。
【００３０】
また、前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知するので、所望のアプリケーションを起動の指示を受けた機器を利用するユーザは必要に応じて所望のアプリケーションを起動しても良いかどうかを判断できるようになり、所望のアプリケーションの起動に柔軟性を持たせることができる。
【００３１】
また、前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたので、所望のアプリケーションを起動の要求を出した機器を利用するユーザは必要に応じて前記起動監視手段、前記遅延起動監視手段、前記起動通知手段を動作させることができるようになる。
【発明を実施するための最良の形態】
【００３２】
（実施の形態１）
以下、本発明の実施の形態を説明する。図１は、本実施の形態のアプリケーション起動調停システムの全体の概要を示すものである。
【００３３】
本システムは、少なくとも２つ以上の電子機器がネットワークを介して接続された環境下において実行されるものである。ネットワークは、接続された機器間でデータの通信が可能なものであれば実施形態および通信の規格は何でもよい。インタネットのようなパブリックなネットワークであっても、ＬＡＮのように限られたドメインの中で閉じられたネットワークであっても良いし、その両者の組み合わせからなっていても良い。
【００３４】
本実施の形態では説明を簡単にするために図１に示すようにネットワーク１００を介して電子機器１０と電子機器２０、電子機器４０の３つが接続されているものを例に説明を行う。もちろん実施の際には２つ以上の電子機器が接続されていればよい。
【００３５】
電子機器１０は、ネットワーク１００を通じて配信されてくるアプリケーションプログラム１０１（以下アプリケーションと称す）を解釈し、実行するためのアプリケーション実行手段１０２（以下アプリ実行手段と称す）と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段１０３、電子機器１０が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段１０４（以下アプリ実行履歴記録手段と称す）を備えたものである。
【００３６】
電子機器２０は、ネットワーク１００を通じて配信されてくるアプリケーションプログラム２０１（以下アプリケーションと称す）を解釈し、実行するためのアプリケーション実行手段２０２（以下アプリ実行手段と称す）と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段２０３、電子機器２０が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段２０４（以下アプリ実行履歴記録手段と称す）を備えたものである。
【００３７】
電子機器４０は、ネットワーク１００を通じて配信されてくるアプリケーションプログラム４０１（以下アプリケーションと称す）を解釈し、実行するためのアプリケーション実行手段４０２（以下アプリ実行手段と称す）と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段４０３、電子機器４０が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段４０４（以下アプリ実行履歴記録手段と称す）を備えたものである。
【００３８】
図１では電子機器１０、電子機器２０、電子機器４０に、アプリ実行手段１０２、２０２、４０２と起動可否判定手段１０３、２０３、４０３がそれぞれ備わっているが、もちろん実施の際にはアプリケーションの起動要求を受ける側の電子機器に備わっているような構成であれば良く、アプリケーションの起動を要求する側の電子機器には必ずしも備わっている必要はない。
【００３９】
アプリ実行手段１０２、２０２、４０２は、ネットワーク１００を通じて配信されてくるアプリケーション１０１、２０１を解釈実行することが可能なものであれば何でも良く、例えばＪＡＶＡ（Ｒ）仮想マシン、．ＮＥＴ実行環境、ＫＤＤＩ社製の携帯電話にて採用されているプログラム配信実行環境であるＢＲＥＷなど、既存の環境によって実現することができる。
【００４０】
本実施の形態にあたっては、アプリ実行手段１０２、２０２、４０２をＪＡＶＡ（Ｒ）仮想マシン環境、配信されるアプリケーション１０１、２０１、４０１はＪＡＶＡ（Ｒ）アプリケーションとしたものを例に説明を行う。
【００４１】
アプリ実行手段１０２、２０２、４０２は、自身の機器に関して以下の情報を取得することができるものとする。
【００４２】
（１）アプリ実行手段１０２、２０２、４０２が使用することのできる、自身の電子機器内において使用することができるハードウェアの空き資源量（例えば電子機器のメモリ（図示せず）におけるアプリケーション実行用に割り当てられた容量のうち、起動要求を受けた時点に使用できる容量など）
（２）何らかのアプリケーションを動作させている最中である場合、動作中のアプリケーションが使用しているハードウェアの資源量と、動作中のアプリケーションが終了した場合に解放される（使用可能となる）ハードウェアの資源量
これは、電子機器内でアプリ実行手段が使用することができる資源量を監視することによって、実現することができる。アプリ実行手段をＪＡＶＡ（Ｒ）仮想マシンで実現する場合には、ＪＡＶＡ（Ｒ）仮想マシンの保持するヒープメモリ全体の使用量・未使用量、アプリケーション毎のヒープメモリの使用量など、ヒープメモリの使用状況を記録するレジスタ（図示せず）を設け、必要に応じて（例えばアプリケーション起動前、アプリケーションの動作中、アプリケーションの開放時など）レジスタの記録情報を調べるレジスタ記録情報調査手段（図示せず）を設けることによってアプリ実行手段が使用することができる資源量を監視することを実現することができる。
【００４３】
起動可否判定手段１０３、２０３、４０３は、アプリ実行手段１０２、２０２、４０２により得られるハードウェアの空き資源量から要求を受けたアプリケーションの起動が可能であるかどうかを判定する。具体的な判定の処理の流れは、別の図を用いて後述する。
【００４４】
３０はアプリケーション起動調停装置である。アプリケーション起動調停装置３０はネットワーク１００を通じて情報を送受信するための通信手段３０１、起動要求のあったアプリケーションの起動を指示する起動指示手段３０２、起動要求のあったアプリケーションを起動させることが可能な電子機器の中から１つ特定する起動可能機器探索手段３０３、起動要求のあったアプリケーションと他のアプリケーションとの優先度を検出するアプリ実行優先度検出手段３０４、システム設定テーブルを保持するシステム設定テーブル保持手段３０５、アプリケーションの起動を要求する電子機器からの要求に応じてシステム設定テーブルの情報を変更するシステム設定テーブル変更手段３０６、起動可能機器探索手段３０３により特定された機器が起動要求のあったアプリケーションを起動できるようになるまで監視をする遅延起動監視手段３０７を有する。
【００４５】
起動指示手段３０２、起動可能機器探索手段３０３、アプリ実行優先度検出手段３０４、システム設定テーブル変更手段３０６、遅延起動監視手段３０７はそれぞれ通信部３０１を介して電子機器から必要な情報を受け取り、必要に応じて通信部３０１を介して電子機器へ必要な情報を送信する。
【００４６】
アプリケーション起動調停装置３０は例えばワークステーション・ＰＣ・ホームサーバなどである。図１では、アプリケーション起動調停装置３０を電子機器１０や電子機器２０とは別に独立したものを例に説明をしているが、電子機器１０、電子機器２０にアプリケーション起動調停装置３０に組み込んで構成してもよい。
【００４７】
またアプリケーション起動調停装置３０を構成する各手段は１つのワークステーション・ＰＣ・ホームサーバなどの機器内に存在する必要はなく、複数台の機器やサーバに跨って分散されて存在していても構わない。
【００４８】
本実施の形態では過去に自身の電子機器が実行したアプリケーションの識別情報の履歴を記録して保持するアプリ実行履歴記録手段を備えたものを示しているが、アプリ実行履歴記録手段を備えることは必ずしも必要ではない。
【００４９】
本実施の形態ではアプリケーション起動調停装置３０は、アプリ実行優先度検出手段３０４を備えたものを例に説明をしているが必ずしも備える必要はない。
【００５０】
図２および図３は、本実施の形態における具体的な動作の一例を説明するための図である。これらの図の各処理について説明することで本発明のより具体的な実施の形態について説明する。
【００５１】
まずネットワークに接続された図示していないユーザが利用する電子機器から所望するアプリケーションの起動の要求があったとする。このとき起動指示手段３０２は通信部を介してこの要求を受け取り、アプリケーション起動調停装置３０にてネットワーク１００に接続されていることが認識できる電子機器のうち、要求のあったアプリケーションに対応してあらかじめ設定された電子機器（この例では電子機器１０）に対してアプリケーションの起動要求があることを指示する（処理２０１）。
【００５２】
これは具体的にはアプリケーションの起動要求がある以前に起動可能機器探索手段３０３によりアプリケーションを実装またはダウンロードした電子機器を予め探索させて、要求されるアプリケーションに対応した機能を有する電子機器に関する情報を予め１つ特定し保持しておくこと、またはユーザが利用する電子機器で利用できる電子機器の情報を予め調べておき、サービスに対応するアプリケーションに適した電子機器を予め１つ選定し、この情報を保持しておくことにより実現することができる。
【００５３】
図４は、ユーザが利用する電子機器における入力画面の一例を示す図であり、具体的にはユーザが起動を要求するアプリケーションの選択画面の一例を示す図である。
【００５４】
ここでは例えばユーザから起動の要求を受け付けることのできるアプリケーション（サービス）の例として、
（１）録画機能を備える電子機器上で、放送の録画を実施するアプリケーションを起動する「ビデオ録画サービス」
（２）録画機能を備える起動機器上で、指定された日時に放送の録画を実施するアプリケーションを起動する「予約録画サービス」
（３）動画像の取得機能を備える起動機器上で、取得した動画データを別の機器に転送する機能を実現するアプリケーションを起動する「カメラモニタサービス」
（４）文章の表示機能を備える起動機器上で、別の機器から入力された文章や予め記録された文章など、指定された文章を表示させる機能を実現するアプリケーションを起動する「伝言通知サービス」
（５）施錠の機能を備える起動機器上で、リアルタイムにあるいは指定された日時に施錠を実施するアプリケーションを起動する「施錠サービス」
を表示している表示画面（インターフェース）を示している。図ではカーソルの位置が「ビデオ録画サービス」にあるものを示しているが、ユーザが利用する電子機器の入力手段（図示せず）におけるカーソルの位置を動かす手段（図示せず）を操作することにより、カーソルの位置を他のサービスの位置へ動かすこともできる。またカーソルの位置を所望するサービスに合わせ入力手段から入力指示すると、起動指示手段３０２はカーソル位置に対応するサービスのアプリケーションの起動要求があると解釈し、予め特定をしていた電子機器（この例では電子機器１０の起動可否判定手段１０３）へサービスに対応するアプリケーションの起動要求のあることを出力するように構成されている。もちろんサービスの種類は図４に示されるものに限定される必要はなく他のものであってもよい。
【００５５】
次にアプリケーションの起動要求を受けた電子機器１０の起動可否判定手段１０３は起動指示手段３０２からの要求を受け取り、その時点においてアプリ実行手段１０２で要求を受けたアプリケーションの起動が可能であるかどうかを判断する（処理２０２）。
【００５６】
起動可否の判定においては、例えば以下に示す判定の基準が考慮される。
【００５７】
（１）アプリ実行手段１０２を備える電子機器の、アプリケーション取得能力
（１ａ）電子機器１０自体が、ダウンロードやファイル交換などの手段（図示せず）によって、サービスを実現するアプリケーション自体を取得することができるかどうか。
【００５８】
（２）アプリ実行手段１０２の能力
（２ａ）アプリ実行手段１０２は複数のアプリケーションを動作させることのできる能力があるかどうか。
【００５９】
（２ｂ）アプリ実行手段１０２は、起動指示の要求があったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうか。
【００６０】
（３）アプリ実行手段１０２の状態
（３ａ）アプリケーション起動の要求があった時点で、アプリ実行手段１０２は別のアプリケーションを動作させている最中であるかどうか。
【００６１】
（３ｂ）アプリケーション起動の要求があった時点で、アプリ実行手段１０２はアプリケーションを実行することが可能なだけの空き資源量を有しているかどうか。
【００６２】
起動可否判定部１０３において上述の判定の基準を考慮した処理の流れを図５を用いて説明をする。
【００６３】
まず処理５０１において、対応するアプリケーションを実行するアプリ実行手段１０２を備える電子機器がダウンロードやファイル交換などの手段によって、サービスを実現するアプリケーション自体を取得することができるかどうかを判定する。処理５０１において取得できない場合には処理５０７へ進み、起動可否を「否」と判定する。
【００６４】
また、処理５０１において例えば、
（１ａ−１）既に予めアプリケーションを保持している場合
（１ａ−２）システム上の機器からネットワークによってファイル交換で取得できる場合
（１ａ−３）パブリックなネットワークなどシステム外から新たに取得できる場合
の３通りのいずれかに該当してれば、処理５０２へ進む。
【００６５】
（１ａ−１）の場合に該当するかどうかは、起動を指示されたアプリケーションと同じアプリケーションが、既に機器上に存在しているかどうかをチェックすることで簡単に判定できる。この場合はアプリケーション取得に関しては何も問題ない。
【００６６】
（１ａ−２）の場合に該当するかどうかは、システム上に存在するアプリケーションを、機器がファイル交換によって取得可能であるかどうかを検査することで判定できる。例えばアプリケーションの機器外の配布に関して何らかの制限がかかっていたりする場合には、ネットワークで接続されている機器であってもファイル交換できない場合がある。
【００６７】
（１ａ−３）の場合に該当するかどうかは、機器がシステム外に存在するアプリケーションの配布場所にアクセスすることができ、かつダウンロードによってアプリケーションの取得が可能であることを検査することで判定できる。アプリケーションの配布場所は、例えばアプリケーションの属性データから情報を得ることが出来る。
【００６８】
例えばＪＡＶＡ（Ｒ）実行環境の場合、アプリケーションの属性ファイルデータは、アプリケーションと共に配布されるＪＡＤファイルというものに記録される。ＪＡＤファイルにはそのファイルの配布場所がＵＲＬによって記述されており、このＵＲＬにアクセス可能であれば、ダウンロードによってアプリケーションの取得が可能であることを判定することができる。
【００６９】
次に処理５０２において、対応するアプリケーションを実行するアプリ実行手段１０２は複数のアプリケーションを動作させることのできる能力があるかどうかを判定する。アプリ実行手段１０２が複数の実行アプリケーションを実行できる場合には「可」と判断し、処理５０４に進む。またアプリ実行手段１０２が複数の実行アプリケーションを実行できない場合には「否」と判定し、処理５０３に進む。処理５０３においては処理２０１においてアプリケーション起動の要求があった時点で、アプリ実行手段１０２は別のアプリケーションを動作させている最中であるかどうかを判定する。処理５０３においてアプリ実行手段１０２は別のアプリケーションを動作させている最中である場合には処理５０７に進み、起動可否を「否」と判定する。処理５０３においてアプリ実行手段１０２は別のアプリケーションを動作させていない場合、処理５０４へ進む。
【００７０】
処理５０２と５０３では、（２ａ）と（３ａ）に対応する判定基準についての判定を行っている。アプリ実行手段の実現によっては、アプリケーションを同時に２つ以上並行して動作させることのできないものがある。例えば、ＪＡＶＡ（Ｒ）仮想マシンの一仕様であるＫＶＭという仮想マシンによってアプリ実行手段１０２が実現されている場合には、アプリケーションを同時に１つしか動作させることはできない、即ち処理５０３ではアプリ実行手段１０２を実現する具体的なものの仕様などがどのようなものかを調べることにより判定することができる。
【００７１】
処理５０４では、アプリ実行手段１０２は、起動指示の要求があったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうかを判定する（２ｂの判定基準に対応）。処理５０４において起動指示の要求があったアプリケーションを正しく動作できるスペックを保持している場合、処理５０５へ進む。処理５０４において起動指示の要求があったアプリケーションを正しく動作できるスペックを保持していない場合、処理５０７に進み、起動可否を「否」と判定する。処理５０４において、アプリ実行手段１０２が、起動指示のあったアプリケーションを正しく動作させることができるスペックを保持しているかどうかは、例えばアプリケーションの属性データと、アプリ実行手段１０２のプロファイルデータを比較することによって判断することができる。
【００７２】
アプリケーションの属性データと、アプリ実行手段のプロファイルデータの形式は、アプリ実行環境の実現方式や機器の接続方式、通信プロトコルに依存するため一意に決定することはできず、いくつかの組み合わせが考えられる。
【００７３】
例えばＪＡＶＡ（Ｒ）実行環境の場合、アプリケーションの属性ファイルデータは、アプリケーションと共に配布されるＪＡＤファイルというものに記録される。またＵＰｎＰを用いたネットワーク接続の場合では、アプリ実行手段のプロファイルデータはＸＭＬ形式で記述されたデータがアプリ実行手段ごとに準備される。
【００７４】
ＪＡＤファイルなどアプリケーションの属性データからアプリケーションの実行のための必要条件を解析し、ＸＭＬデータなどアプリ実行手段のプロファイルデータからアプリ実行手段はその条件を満たしているか否か、を検査することによって、起動可否判定手段はアプリケーションの起動の可否を判定することができる。
【００７５】
処理５０５では、アプリケーション起動の要求があった時点で、アプリ実行手段１０２はアプリケーションを実行することが可能なだけの空き資源量を有しているかどうかを判定する。処理５０５において、可能なだけの空き資源量を有している場合、起動可否を「可」と判定する。処理５０５において、可能なだけの空き資源量を有していない場合、処理５０７に進み、起動可否を「否」と判定する。
【００７６】
処理５０５は（３ｂ）の判定基準に対するに関して判定を行っている。アプリケーションの実行に必要な資源量は、前述のＪＡＤファイルなどアプリケーションの属性データに記述されることもあるが、そうでない場合もある。その場合にはアプリケーションを実行する前に必要な資源量を見積もる。
【００７７】
見積もりの計算には様々な方法があるが、簡単な方法としては例えば、アプリケーションの実行に必要なしきい値（例えばメモリサイズ１ＭＢなど）を予め設定し、その値を超える資源量をアプリ実行手段が確保できるようであれば、アプリケーションの実行可能であるとみなす、などの方法で判定することが可能である。
【００７８】
しかし必要な資源量を見積もる方式では、見積もりが外れてしまうこともあり、アプリケーションせっかく起動しても実行中に見積もり以上のメモリ容量を使用してしまいメモリが足りなくなって停止してしまう、という事態になってしまうこともありうる。
【００７９】
本発明では判定の処理を、簡単かつ高い精度で実現することのできる一手段として、アプリ実行履歴記録手段を提供している。
【００８０】
アプリ実行履歴記録手段１０４は、アプリ実行手段１０２によってそれまでに動作されたことのあるアプリケーションの識別情報の履歴を記録し保持する。起動可否判定部は、その履歴を元に、過去に同一のアプリケーションが動作された実績や、その時に使用された資源量の記録を参照することによって、処理５０５における判定を行うようにする。
【００８１】
図６にアプリ実行履歴手段１０４より記録された履歴データの具体的な一例を説明するための図である。図６のテーブルのカラムは、アプリケーションの識別情報の種類（アプリケーションの種類、ファイル名、バージョン情報、作成者、ファイルサイズ）を示している。これらはアプリケーションを一意に特定できる情報の組であれば、これらの情報以外のものであっても何でも良い。
【００８２】
また、一番右のカラムには、実行時に使用された資源量を記録するカラムを設けている。この情報はなくても良いが、用意されていればより簡単で高い精度でアプリケーションの起動の可否を判定するのに使うことが出来る。
【００８３】
アプリ実行手段１０２は、アプリケーションが動作されると、そのアプリケーションに関する識別情報と、その動作において使用した総資源量を履歴としてテーブルに記録する。
【００８４】
アプリ実行履歴記録手段１０４により記録した履歴データを用いて起動可否の判定をした具体的な処理の一例を図７に示す。図７において処理５０１、５０１、５０２、５０３、５０４は、図５にて説明したものと同一もしくはほぼ同一であるためその説明を省略する。
【００８５】
処理７０１は処理５０２によりアプリ実行手段１０２が複数のアプリケーションを動作させる能力がある場合、または処理５０３においてアプリ実行手段１０２が別のアプリケーションを動作中で無い場合に行う処理であり、起動要求のあったアプリケーションの識別情報と、アプリ実行履歴記録手段によって記録された履歴データに対応するアプリケーションに対応する識別情報の履歴があるかどうかを調べ、一致するものがあるかどうかを判定する。処理７０１において一致する識別情報があれば、過去に同一のアプリケーションを動作させたと判断し、処理７０２へ進む。処理７０１において一致する識別情報がなければ処理５０４へ進む。
【００８６】
処理７０２は、同一の過去のアプリケーションを動作させた時に使用された資源量の実績を履歴データから得て、アプリ実行手段１０２が履歴データに記録されたデータの中で対応するアプリケーションに使用した資源量以上の資源量を確保できるかどうかを判定する。処理７０２において確保できる場合には処理５０６に進み起動可否を「可」と判断する。また処理７０２において確保できない場合には処理５０７に進み、起動可否を「否」と判定する。
【００８７】
このような処理を行えば起動可否をより正確に判定できるようになる。
【００８８】
以上が、起動可否判定手段１０３が行う処理について述べたものである。
【００８９】
図２に示す処理２０２において、対応する電子機器（この例では電子機器１０）の起動可否判定手段１０３が、アプリケーションの起動が可能であると判断した場合、処理２０３に進み、処理２０３において対応する電子機器（この例では電子機器１０）のアプリ実行手段１０２は起動要求のあったアプリケーションの起動を実行する。これは起動可否判定手段１０３がアプリ実行手段１０２へ起動要求のあったアプリケーションが実行可能であることを通知し、アプリ実行手段１０２が対応するアプリケーションを起動することを意味する。
【００９０】
処理２０２において、対応する電子機器（この例では電子機器１０）の起動可否判定手段が、アプリケーションの起動ができないと判断した場合、処理２０４へ進む。これは起動可否判定手段１０３が起動可能機器探索手段３０３の起動を促すことを意味する。
【００９１】
処理２０４において、起動要求を受けた起動可能機器探索手段３０３はシステム中のネットワーク接続された、アプリ実行手段および起動可否判定手段を備える機器の中から、アプリケーションの起動が可能であるアプリ実行手段を持つ電子機器を特定する。
【００９２】
図８は、起動可能機器探索手段３０３におけるより具体的な動作を説明するための図である。
【００９３】
図８において縦軸は時間的な経過を示すものである。
【００９４】
処理８０１において起動可能機器探索手段３０３は起動要求を受けると、起動可能機器探索手段３０３はアプリケーション起動調停装置３０がネットワーク１００につながっていることを認識できる電子機器のうち、起動可否判定手段を備えた電子機器の全てに対しアプリケーションの起動の要求があることと、そのアプリケーション情報を通知する。
【００９５】
この例ではネットワーク１００につながり起動可否判定手段を備えた電子機器は電子機器１０と電子機器２０と電子機器４０であるので、これらに対して、アプリケーションの起動の要求があることと、そのアプリケーション情報を通知する。なお電子機器１０に対応する処理先の処理より起動ができないことが分かっているため図、説明からは省略する。
【００９６】
ここでのアプリケーション情報とは、機器２０および機器４０の持つアプリ実行可否判定手段が、アプリケーションの起動の可否を判定できるだけの情報である。具体的には、アプリケーション名、ファイル名、バージョン情報、作成者、ファイルサイズなどのアプリケーションの識別情報、およびアプリケーションの実行のための必要条件が示されたデータなどがこれに該当する。Ｊａｖａ（Ｒ）アプリケーションの場合、これらの情報は、アプリケーションと共に配布される属性データのファイルである、ＪＡＤファイルに記録されている。
【００９７】
処理８０２において、処理８０１にて通信されたデータを元に、電子機器２０は先に説明した起動可否判定手段によって、当該アプリケーションの起動が可能であるかどうかの可否判定を行い、その結果を起動可能機器探索手段３０３に対して返す。
【００９８】
処理８０３において、処理８０１にて通信されたデータを元に、電子機器４０は先に説明した起動可否判定手段によって、当該アプリケーションの起動が可能であるかどうかの可否判定を行い、その結果を起動可能機器探索手段３０３に対して返す。
【００９９】
この際、電子機器２０および電子機器４０が通信するデータは、可否判定の結果以外の情報を含んでいても良い。例としては、電子機器の持つアプリ実行手段の保有する空き資源量などの情報を共に通信しても良い。これに関しては後述のアプリ実行優先度検出手段にてより詳しく説明する。
【０１００】
図２の処理２０５において、処理２０４（より具体的には処理８０４）で送られる各電子機器から返された可否判定のデータを元に、アプリケーションを起動する電子機器が特定されたかどうかを判定する。
【０１０１】
もし全ての電子機器の可否判定の中で、起動可能であるものが１つしかなかった場合には、起動可能機器探索手段３０３はその電子機器を代替機器として特定し、処理２０６に進み処理２０６にて代替の電子機器に対し対応するアプリケーションの起動を指示する。
【０１０２】
もし全ての電子機器の可否判定の中で、起動可能であるものが２つ以上存在した場合には、起動可能機器探索手段３０３はその中から任意の電子機器を代替の電子機器として特定する。特定するには色々な方針が考えられるが、最も簡単なものはランダムに特定する方法である。
【０１０３】
または、処理８０２や処理８０３で送信されてきた可否判定の結果以外の情報が存在していれば、それを利用しても良い。例えば起動可能な電子機器の中から、電子機器の持つアプリ実行手段の保有する空き資源量が最も大きいもの、電子機器のスペックからアプリケーションの動作に適した電子機器を特定する、などのようにして特定する方法でも良い。
【０１０４】
もし全ての電子機器の可否判定の中で、起動可能であるものが１つも存在しない場合には、代替機器は特定できなかったと判定し、処理２０７に進み、処理２０７にてアプリケーション起動要求に関連する処理を中止し、必要があればユーザが要求を出した電子機器に対して表示画面に処理を中止した旨のメッセージを表示する。
【０１０５】
起動可能機器探索手段３０３は、アプリ実行優先度検出手段３０４を備える場合、要求を指示する電子機器上で動作するアプリケーションの起動に関してさらに柔軟性を備えた代替機器の選択方法をユーザに対して提供することができる。
【０１０６】
この場合の、処理２０４で行われる、それぞれ機器の処理内容とデータ通信の流れを、図８同様、図９を用いて示す。
【０１０７】
処理８０１、８０２、８０３の内容は、アプリ実行優先度検出手段３０４を保持しない場合と同じであり、これにより起動可能機器探索手段３０３を保持する機器は、各機器からアプリケーションの起動可否の判定を得る。
【０１０８】
アプリ実行優先度検出手段３０４が存在する場合、処理９０１、９０２、９０３、９０４が新たに加わる。アプリ実行優先度検出手段３０４は処理９０１において、処理８０１と同様、ネットワーク接続されたアプリ実行手段および起動可否判定手段を備える全ての機器（ここでは機器Ａと機器Ｂ）に対して、優先度情報取得の要求を通知する。
【０１０９】
その通知に回答する形で、機器Ａは処理９０２において、機器Ｂは処理９０３において、優先度情報を送付する。
【０１１０】
ここでの優先度情報とは、例えば以下の情報のことを指す。
【０１１１】
（１）情報Ｐ：  アプリ実行手段を備える機器の、アプリケーション取得能力
Ｐ−１：  機器自体が、ダウンロードやファイル交換などの手段によって、サービスを実現するアプリケーション自体を取得することができるかどうか。
【０１１２】
（２）情報Ｑ：  アプリ実行手段の能力
Ｑ−１：  アプリ実行手段は、起動指示のあったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうか。
【０１１３】
（３）情報Ｒ：  アプリ実行手段の状態
Ｒ−１：  アプリケーション起動の要求があった時点で、アプリ実行手段は別のアプリケーションを動作させている最中であるかどうか。
【０１１４】
Ｒ−２：  アプリケーション起動の要求があった時点での、機器の持つアプリ実行手段が確保できる空き資源量。
【０１１５】
Ｒ−３：  別のアプリケーションを動作させている最中である場合、その別のアプリケーションを終了させたときの、アプリ実行手段が確保できる空き資源量。
【０１１６】
（４）情報Ｓ：  アプリケーション自身の優先度
Ｓ−１：  別のアプリケーションを動作させている最中である場合、その別のアプリケーションの属性情報。
【０１１７】
処理９０４では、処理８０２および８０３で各機器から返された可否判定のデータと、処理９０２および９０３にて送られてきた優先度情報を元に、優先度の評価を行い、代替機器の特定を行う。
【０１１８】
処理９０４で行う処理の流れの詳細例を図１０に示す。
【０１１９】
処理１００１は、処理８０２および８０３で各機器から返された可否判定のデータから判定を行う。全ての機器の可否判定の中で、起動可能であるものが１つしか存在しない場合には、処理１００２に移行し、唯一の起動可能機器を代替機器として選択し、処理９０４を終了する。
【０１２０】
処理１００３も同じく、処理８０２および８０３で各機器から返された可否判定のデータから判定を行う。全ての機器の可否判定の中で、起動可能であるものが２つ以上存在する場合には、処理１００４に移行し、任意の機器を代替機器として選択する。この代替機器の任意選択の方針の際には、処理９０２や処理９０３にて取得した優先度情報を利用しても良い。例えば上記Ｒ−２の情報を利用し、起動可能な機器の中から、機器の持つアプリ実行手段の保有する空き資源量が最も大きいものを選択する、などとしても良い。
【０１２１】
処理１００３の分岐にてＮに移行した場合は、すなわち全ての機器の可否判定において、起動可能と判定されたものが１つも存在しなかったということである。
【０１２２】
処理１００５以降の処理で、アプリ実行優先度検出手段３０４は、各機器が持つアプリ実行手段が、別のアプリケーションを実行中であるかどうかを検証し、別のアプリケーションが実行中であることを検出した場合には、起動指示手段３０２によって指示されたアプリケーションと、別のアプリケーションの優先度を比較する。そして別のアプリケーションの優先度が低いと判断された場合には、その別のアプリケーションを実行中であるアプリ実行手段を持つ機器を代替機器の候補として選択する。
【０１２３】
処理１００５では、上記Ｐ−１、Ｑ−１の要素を考慮し、アプリ実行手段を備える機器の中から、起動指示のあったアプリケーションを取得し正しく動作できる能力を有しないものを代替機器としての選択対象からはずす。
【０１２４】
処理１００６では、アプリ実行手段を備える機器の中から、別なアプリケーションを動作中ではないものを、代替機器としての選択対象からはずす。別なアプリケーションを動作中ではないにも関わらず、起動可否判定部において起動不可と判定された機器は、アプリケーションを起動する能力を有しないとみなしてのことである。
【０１２５】
処理１００７では、上記Ｒ−３の要素を考慮し、アプリ実行手段を備える機器の中から、別なアプリケーションを終了させたとしても、起動指示のあったアプリケーションを実行するだけの資源量が確保できないものを、代替機器としての選択対象からはずす。
【０１２６】
処理１００８で、もし代替機器として選択対象となる機器が１つも残っていなかった場合には、処理１０１１に移行し、代替機器を発見できなかったものとして処理９０４を終了する。もし代替機器として選択対象となる機器が１つ以上存在している場合には、処理１００９に移行する。
【０１２７】
処理１００９では、代替機器として選択対象となる機器のアプリ実行手段によって実行中のアプリケーションと、起動指示のあったアプリケーションの実行優先度付けを行う。
【０１２８】
優先度付けには、上記Ｓ−１の要素を考慮して、アプリケーションの属性情報を使用してもよいし、アプリ実行手段の状態から得られる情報を使用しても良い。
【０１２９】
例えば携帯電話に搭載されているＪａｖａ（Ｒ）実行環境向けの、Ｊａｖａ（Ｒ）アプリケーションの属性情報であるＪＡＤファイルからは、以下のような情報を得ることが可能である。
【０１３０】
（１）動作中に通信機能を用いるアプリケーションであるか、そうでないか。
【０１３１】
（２）動作において画面表示機能を用いるアプリケーションであるか、そうでないか。
【０１３２】
（３）携帯電話機器における待ち受け画面上で動作し続けるアプリケーションのように、ユーザから明示的な操作がなくとも自動的に起動して動作するアプリケーションであるか、そうでないか。
【０１３３】
優先度の判定方法には、それぞれのアプリケーションの優先度評価値を算出し、それを比較して決定する、という方法が考えられる。評価値の計算方法には様々な方法が考えられるが、その一例を示す。もちろん他のデータを用いて優先度を算出しても良い。
【０１３４】
（優先度評価値）＝
ｅｖａｌ［アプリ実行手段にて実行中のアプリケーションである］×ｆ１
＋ｅｖａｌ［アプリケーションは２０分以上継続されて実行されているアプリケーションである］×ｆ２
＋ｅｖａｌ［アプリケーションは動作中に通信機能を用いるアプリケーションである］×ｆ３
−ｅｖａｌ［アプリケーションは、ユーザから明示的な操作がなくとも自動的に起動して動作するアプリケーションである］×ｆ４
ここで、関数  ｅｖａｌ［］  は、［］内の条件が真なら１、偽なら０を返す関数である。
【０１３５】
ｆ１〜ｆ４は重み付けを与えるための変数であり、対応する関数値の重要度に応じて決められる数である。
【０１３６】
処理１０１０では、優先度付けしたアプリケーションを比較し、最も優先度の低いアプリケーションを選択する。ここで、起動指示のあったアプリケーションが最も優先度が低かった場合、処理１０１１に移行し、代替機器を発見できなかったものとして処理９０４を終了する。それ以外の別なアプリケーションの優先度が最も低かった場合には、処理１０１２に移行し、最も優先度の低い別なアプリケーションを動作中の機器を、代替機器として選択する。
【０１３７】
以上が処理９０４の処理の流れである。この処理を経て、代替機器が特定されるかもしくは該当する代替機器なし、という事実が起動可能機器探索手段により検出されることになる。
【０１３８】
処理２０５では、起動可能機器探索手段により得られた結果を元に、分岐判定を行う。
【０１３９】
代替機器が特定されていれば、処理２０６へと移行する。
【０１４０】
代替機器が特定されていなければ、処理２０７へと移行し、システムは起動を支持されたアプリケーションの即時起動をやめ、処理を終了する。
【０１４１】
処理２０６は、起動指示手段３０２が代替の電子機器に対し起動指示する処理について述べたものである。
【０１４２】
起動指示手段３０２は、処理２０４で特定された代替機器に対してアプリケーションの起動を指示する。処理２０６で起動指示手段３０２が行う処理の流れを詳細化したものを図１１に示す。
【０１４３】
処理１１０１では、まず代替機器が別のアプリケーションを実行中でないかどうかを検査する。
【０１４４】
実行中でなかった場合は処理１１０４に移行するが、もし実行中であったならば、処理１１０２に移行する。
【０１４５】
処理１１０２では、代替機器の保持するアプリ実行手段が、アプリケーションを実行することが可能なだけの空き資源を有しているかどうかを検査する。
【０１４６】
もし有していた場合には処理１１０４に移行するが、有していないと判断される場合には処理１１０３に移行する。
【０１４７】
処理１１０３では、アプリケーションを実行することが可能なだけの空き資源を確保するために、その時点で実行中のアプリケーションを停止させた後に、処理１１０４に移行する。
【０１４８】
処理１１０４では、起動を指示されたアプリケーションを、代替機器が保持しているかどうかを検査する。
【０１４９】
もし既に保持していた場合には処理１１０６に移行するが、保持していなかった場合は処理１１０５に移行する。
【０１５０】
処理１１０５において、代替機器はアプリケーションを取得する。アプリケーションの取得方法には、システム上の別の機器からファイル交換によって取得できる場合と、パブリックなネットワークなどシステム外から新たに取得できる場合とがある。代替機器がアプリケーションを取得できたことを確認した後、処理は１１０６に移行する。
【０１５１】
処理１１０６では、代替機器の持つアプリ起動手段によって、実際にアプリケーションが起動される。以上が、処理２０６の処理の流れである。
【０１５２】
起動指示手段３０２が代替の電子機器に対し起動指示する場合において、起動を交渉する機能を加えてもよい。
【０１５３】
これは、代替の電子機器を利用するユーザに対してアプリケーション起動の連絡を行う手段を設けたものである。この時点で代替機器のユーザの意思確認を行うことによって、アプリケーションの代替機器での起動に関して、さらに利便性を備えた仕組みをユーザに対して提供することができる。
【０１５４】
この場合の、処理２０６で処理の流れを、図１２を用いて示す。
【０１５５】
処理１１０１、１１０２、１１０３、１１０４、１１０５、１１０６の内容は、起動交渉の機能を備えない場合と同じである。起動交渉の機能を備えることによって、処理１１０１の前、および処理１１０３の前に新たな処理が加わっている。
【０１５６】
処理１２０１では、代替機器のユーザに対して、代替機器上でアプリケーションを動作させることに対しての通知を行う。代替の電子機器を利用するユーザは、この通知に対して何らかの意思を返すことができる。
【０１５７】
図１３に起動交渉の機能の実現例を示す。例えば、図１３（ａ）のような代替機器に表示されるダイアログを用いて、ユーザはアプリケーションの起動に対してＹｅｓ／Ｎｏを入力する、などの手段を用いてアプリケーション起動調停装置３０へ応答するものである。
【０１５８】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をＹｅｓと見なす、あるいはＮｏとみなす、という規則が予め設定されていてもよい。
【０１５９】
処理１２０２では、処理１２０１でユーザによって行われた意思表明を確認する。アプリケーションの起動に関して、ユーザの意思表明がＹｅｓであれば、処理１１０１に移行する。Ｎｏであれば、アプリケーションの起動を諦め、処理１２０５に移行する。
【０１６０】
処理１２０３では、代替の電子機器を利用するユーザに対して、代替機器上で現在実行中のアプリケーションを停止させることについての通知を行う。代替機器のユーザは、この通知に対して何らかの意思を返すことができる。
【０１６１】
例えば、図１３（ｂ）のような代替機器に表示されるダイアログを用いて、ユーザはアプリケーションの停止に対してＹｅｓ／Ｎｏを入力する、などの手段を用いてである。
【０１６２】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をＹｅｓと見なす、あるいはＮｏとみなす、という規則が予め設定されていてもよい。
【０１６３】
処理１２０４では、処理１２０１でユーザによって行われた意思表明を確認する。現在実行中のアプリケーションの停止に関して、ユーザの意思表明がＹｅｓであれば、処理１１０３に移行する。Ｎｏであれば、アプリケーションの起動を諦め、処理１２０５に移行する。
【０１６４】
処理１２０５では、ユーザの意思表明によってアプリケーションの起動は拒否されたものとして、アプリケーションの起動を諦める。アプリケーションの起動を行わないまま、処理２０６は終了する。
【０１６５】
以上、図２で示した処理の流れに関して説明を行った。
【０１６６】
図３はアプリケーション起動調停装置の動作の一例について示したものである。
【０１６７】
図３で示す処理は、図２で述べた処理とは関係なく独立して存在するが、図２の処理を行って、処理２０７に到達した際、すなわち即時起動をやめる、という結論に到達した後に、この処理に移行することにしてもよい。
【０１６８】
処理３０１は、起動指示手段３０２が行う処理について述べたものである。詳細は処理２０１の説明において前述したものと同様であるため、省略する。
【０１６９】
処理３０２は、起動可否判定手段が行う処理について述べたものである。起動可否判定手段は、その時点において、機器が備えるアプリ実行手段でそのアプリケーションの起動が可能であるかどうかを判断する。詳細は処理３０２の説明において前述したものと同様であるため、省略する。
【０１７０】
処理３０３および処理３０４は、遅延起動監視手段３０７が行う処理について述べたものである。
【０１７１】
遅延起動監視手段３０７は、上記処理３０１で、起動指示手段３０２によって指示された機器上でアプリケーションの起動が可能な状態になっているか否かについて、定期的に検査する。
【０１７２】
これは一定周期のタイマによってポーリングを行い、対象となる電子機器（この例では電子機器１０）の起動可否手段に問い合わせを行うことによって実現することができる。
【０１７３】
遅延起動監視手段３０７によって、処理３０２、３０３、３０４は繰り返し行われるが、この処理から別の処理に移行するためには、２つの場合を想定している。
【０１７４】
１つには、何らかの理由により遅延起動監視手段３０７が停止された場合である。これは、ユーザの手によって停止の指令が与えられるのであってもよいし、また、遅延起動監視手段３０７が動作を始めてから一定時間（例えば３０分間）経過したら、自動的に停止する、などの条件が与えられるのであってもよい。
【０１７５】
遅延起動監視手段３０７が停止された場合、処理３０５へと移行し、システムはその動作を終了する。
【０１７６】
もう１つには、起動指示手段３０２によってアプリケーションの起動が可と判断された場合である。
【０１７７】
これは、電子機器でそれまで実行中であった別のアプリケーションの実行が終了して、アプリケーション実行のためのリソースが確保されるなど、対象となる電子機器の状態が変化し、起動指示手段３０２の判定結果が変化したことを意味する。
【０１７８】
この場合は、遅延起動が可能になったものと判断して、処理は３０６へと移行する。
【０１７９】
処理３０６は、起動指示手段３０２が行う処理について述べたものである。
【０１８０】
起動指示手段３０２は、処理３０１で指示した対象となる電子機器（この例では電子機器１０）上で、アプリ実行手段を用いてアプリケーションを起動することによって実現できる。この場合は、遅延起動を行う際により利便性の高い仕組みをユーザに対して提供することができる。
【０１８１】
起動指示手段３０２、アプリケーションの起動を指示する前に、対象となる電子機器のユーザに対してその旨の通知を行う。対象となる電子機器のユーザは、この通知に対して何らかの意思を返すこともできる。
【０１８２】
図１４は上述の実現例である。対象となる電子機器にダイアログを表示させ、ユーザはアプリケーションの遅延起動に対してＹｅｓ／Ｎｏを入力するなどにより、遅延起動を許可するか否かに関して意思表明を入力することができる。
【０１８３】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をＹｅｓと見なす、あるいはＮｏとみなす、という規則が予め設定されていてもよい。
【０１８４】
もしここで遅延起動を許可しないという意思表明がユーザから入力された場合には、処理３０６は実際にアプリケーションの起動を行わずに、そのまま処理を終了してしまってもよい。
【０１８５】
以上、図３で示した処理の流れに関して説明した。
【０１８６】
最後に、図１５を用いて、請求項５および８で述べられている、システム設定テーブル、およびシステム設定テーブル変更手段３０６の実現に関して説明する。
【０１８７】
システム設定テーブルは、アプリケーション起動調停装置３０が機能として備える、起動可能機器を探索する動作、代替の電子機器を探索し起動指示する動作、起動の交渉をする動作、遅延起動監視する動作、起動通知する動作のそれぞれを実際の動作において使用するかどうかを記録する。
【０１８８】
これは図１５に示すような、テーブル型のデータ構造で実現することができる。テーブルの左カラムはシステムが備える機能を、右カラムはその手段を使用するかどうかの設定値を、数値で示している。この数値は０あるいは１の数値を取り、１の場合は使用することを、０の場合は使用しないことを示している。
【０１８９】
システム設定テーブル変更手段３０６は、システム設定テーブルに記録された設定値を変更する手段をシステムのユーザに提供する。実現例を図１６に示す。システムのユーザはシステム設定テーブル変更手段３０６が備えるユーザインタフェースを用いて、システム設定テーブルの変更内容を反映させることができる。
【０１９０】
このようにすることにより、ユーザは必要な機能だけを選択してアプリケーション起動調停装置を動作させることができるようになるためユーザの使用環境に適した利用が可能となる。
【産業上の利用可能性】
【０１９１】
本発明のシステムは、ネットワーク機器上の、アプリケーション配信を利用したサービスプラットフォームの特性を利用して、ある機器のアプリケーション起動において資源欠乏問題が発生した場合の、優先度やシステム上の他の手段での実行可能性を加味した、起動と実行を調停するシステムを提供するものである。
【０１９２】
また、ネットワーク上から代替機器を探索するという手段は、資源欠乏問題以外にも、ネットワーク上のある機器に何か問題が発生した時のアプリケーションの代替実行手段を探すためにも適用することが可能である。
【図面の簡単な説明】
【０１９３】
【図１】本実施の形態のアプリケーション起動調停システムの一例を説明するための図
【図２】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図３】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図４】本実施の形態のアプリケーション起動調停システムにおけるユーザが利用する電子機器上の入力画面の一例を説明するための図
【図５】本実施の形態のアプリケーション起動調停システムにおける起動可否判定手段の動作の一例を説明するための図
【図６】本実施の形態のアプリケーション起動調停システムにおけるアプリ実行履歴記録手段により記録される履歴データの一例を説明するための図
【図７】本実施の形態のアプリケーション起動調停システムにおける起動可否判定手段の動作の一例を説明するための図
【図８】本実施の形態のアプリケーション起動調停システムにおける起動可能機器探索手段の動作の一例を説明するための図
【図９】本実施の形態のアプリケーション起動調停システムにおける起動可能機器探索手段の動作の一例を説明するための図
【図１０】本実施の形態のアプリケーション起動調停システムにおけるアプリ実行優先度検出手段の動作の一例を説明するための図
【図１１】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図１２】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図１３】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図１４】本実施の形態のアプリケーション起動調停システムにおける遅延起動通知手段の動作の一例を説明するための図
【図１５】本実施の形態のアプリケーション起動調停システムにおけるシステム設定テーブルの一例を説明するための図
【図１６】本実施の形態のアプリケーション起動調停システムにおけるシステム設定テーブル変更手段の動作の一例を説明するための図
【符号の説明】
【０１９４】
１０    電子機器
２０    電子機器
３０    アプリケーション起動調停装置
４０    電子機器
１００    ネットワーク
１０１    アプリケーションプログラム（アプリケーション）
１０２    アプリケーション実行手段（アプリ実行手段）
１０３    起動可否判定手段
１０４    アプリケーション実行履歴記録手段（アプリ実行履歴記録手段）
２０１    アプリケーションプログラム（アプリケーション）
２０２    アプリケーション実行手段（アプリ実行手段）
２０３    起動可否判定手段
２０４    アプリケーション実行履歴記録手段（アプリ実行履歴記録手段）
３０１    通信手段
３０２    起動指示手段
３０３    起動可能機器探索手段
３０４    アプリ実行優先度検出手段
３０５    システム設定テーブル記録保持手段
３０６    システム設定テーブル変更手段
３０７    遅延起動監視手段
４０１    アプリケーションプログラム（アプリケーション）
４０２    アプリケーション実行手段（アプリ実行手段）
４０３    起動可否判定手段
４０４    アプリケーション実行履歴記録手段（アプリ実行履歴記録手段）
【図１】
2007108804.tif 000003
【図２】
2007108804.tif 000004
【図３】
2007108804.tif 000005
【図４】
2007108804.tif 000006
【図５】
2007108804.tif 000007
【図６】
2007108804.tif 000008
【図７】
2007108804.tif 000009
【図８】
2007108804.tif 000010
【図９】
2007108804.tif 000011
【図１０】
2007108804.tif 000012
【図１１】
2007108804.tif 000013
【図１２】
2007108804.tif 000014
【図１３】
2007108804.tif 000015
【図１４】
2007108804.tif 000016
【図１５】
2007108804.tif 000017
【図１６】
2007108804.tif 000018