説明

アプリケーション起動調停システム

【課題】プログラム配信を前提にした実行系において、リソース欠乏等の問題によりプログラムの起動が不可能である場合がある。
【解決手段】前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を1つ特定し、前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はネットワーク家電機器上におけるプログラム配信を前提にしたシステムにおいて、アプリケーションの起動を調停する機能を有するアプリケーション起動調停システムに関するものである。
【背景技術】
【0002】
従来の技術として、ダウンロード配信されるプログラムを動作させるプログラム実行系の技術については、サンマイクロシステムズ社のJAVA(R)や、マイクロソフト社の.NET(ドットネット)などがある。
【0003】
これらはネットワーク家電を前提にした、ハードウェアに依存しないサービスプラットフォームを構成する技術となることが期待されている。
【0004】
またネットワークを通じて、プログラムを実行する環境の自動設定を行う技術としては、マイクロソフト社によって提唱されている技術であるUPnP(Universal Plug and Play)や、サンマイクロシステムズ社によって提唱されている技術であるJini(R)などが存在している。
【0005】
これらの技術の特徴として、ネットワークに機器を繋ぐだけで、ユーザが複雑な設定作業を行わなくともすぐにネットワーク機能を利用可能な状態にすることができる、という利便性をユーザに対して提供する、という事が挙げられる。
【0006】
ユーザの利用する端末から、ネットワークを通じて、ユーザ要求に対応する機能を持つ機器探し出すシステムとしては、特許文献1に示すものが提示されている。
【0007】
また、ユーザの利用したい端末でサービスを実施できなかった場合に、代替となる機器を探し出し実施する方法としては、特許文献2に示すものが提示されている。
【特許文献1】特開2003−178036号公報
【特許文献2】特開2002−94912号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
家電システム上においてサービス実施のためにアプリケーションを起動しようとする際に、既に他のアプリケーションが実施されている場合、システム仕様の制限上の問題、あるいは資源の欠乏の問題から、直ちには新たなアプリケーションの起動が不可能である場合がある。
【0009】
例えば、JAVA(R)のモバイル家電向け仕様の1つとして提示され、携帯電話製品などで既に多数の応用実績のあるKVM(K Virtual Machine)という仮想マシン仕様では、同時に2つ以上のアプリケーションを動かすことができない、という制約事項がある。
【0010】
よって既にアプリケーションをKVMを使って動作させている最中に、新たに他のアプリケーションを動かしたいという要求が発生したとしても、これを動作させることはできない。従来のシステムはこのような場合、新たに発生したアプリケーションの起動要求を却下するものがほとんどである。
【0011】
従来のJAVA(R)やマイクロソフト社の.NET(ドットネット)を前提にした、Jini(R)、uPnPといった技術によって、ネットワーク家電環境における共通のサービスプラットフォームは構築可能になったものの、上記のような資源欠乏の問題に関しては、それぞれの機器で個別の解決策を実施するしかなく、ネットワーク環境を利用して有効な資源欠乏問題に関する回答を提示することはされてこなかった。
【0012】
特許文献1にて示されている従来の技術は、家電ネットワークシステムにおけるユーザ環境の変化やユーザ要求を考慮に入れたシステムを提案しているものの、上記のアプリケーションの起動において資源欠乏問題が発生した時の具体的な処理方法に関しては言及しておらず、また、新たにアプリケーションを起動することが不可能と判明した場合の次善策に関しても、何ら言及するものではなかった。
【0013】
また特許文献2にて示されている従来の技術は、利用予約した機器に不具合があった場合に、代替となる機器を探し出し利用予約を実施する方法について述べているものの、サービスプラットフォームの特性を利用して、代替機器がアプリケーションを新たに取得してサービスを実行する方式についてまで言及したものではなく、また、特許文献1に同じく、新たにアプリケーションを起動することが不可能と判明した場合の次善策に関しても、何ら言及するものではなかった。
【課題を解決するための手段】
【0014】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を1つ特定し、前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とする。
【0015】
また、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は前記所望のアプリケーションを実行するアプリケーション実行手段と、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定する起動可否判定手段を備えたことを特徴とする。
【0016】
また、前記起動可否判定手段は、前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定することを特徴とする。
【0017】
また、特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動することを特徴とする。
【0018】
また、前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたことを特徴とする。
【0019】
また、前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする。
【0020】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段と、前記特定された機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたことを特徴とする。
【0021】
また、前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知することを特徴とする。
【0022】
また、前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする。
【発明の効果】
【0023】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段を備え、前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を1つ特定し、前記起動指示手段は前記特定された別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたので、所望のアプリケーションを起動できる能力のある機器が何らかの事情で起動ができない場合、別の機器へ起動の指示を指定することがでるので、所望のアプリケーションを起動できる機器をより確実かつ速やかに選定することが可能となる。
【0024】
また、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は前記所望のアプリケーションを実行するアプリケーション実行手段と、前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定するので、所望のアプリケーションを起動できる能力のある機器が何らかの事情で起動ができないことを判断できるようになるので、別の機器へ起動の指示を速やかに行うことが可能となる。
【0025】
また、前記起動可否判定手段は、前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、前記アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定するので、所望のアプリケーションを起動できる能力のあるかどうかを確実に判断できるようになる。
【0026】
また、特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動するので、優先度の高い所望のアプリケーションを起動できる能力があるかどうかを確実に判断できるようになるとともに所望のアプリケーションを起動できる機器の選択に柔軟性を持たせることができる。
【0027】
また、前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたので、所望のアプリケーションを起動の指示を受けた機器を利用するユーザは必要に応じて所望のアプリケーションを起動しても良いかどうかを判断できるようになる。
【0028】
また、前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたので、所望のアプリケーションを起動の要求を出した機器を利用するユーザは必要に応じて前記起動可能機器探索手段、前記代替起動指示手段、前記起動交渉手段を動作させることができるようになる。
【0029】
本発明のアプリケーション起動調停システムは、ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、前記所望のアプリケーションの起動の指示を行う起動指示手段と、前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段と、前記起動指示手段が指示した機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたので、所望のアプリケーションを起動できる能力のある機器が起動の指示を受けた時点で何らかの事情で起動ができない場合、所望のアプリケーションを起動できる状態になるのを待ってから起動の指示をすることができるので、起動の指示を受けた時点で何らかの事情で起動ができない場合であっても確実に所望のアプリケーションを起動させるとともに所望のアプリケーションの起動に柔軟性を持たせることができる。
【0030】
また、前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知するので、所望のアプリケーションを起動の指示を受けた機器を利用するユーザは必要に応じて所望のアプリケーションを起動しても良いかどうかを判断できるようになり、所望のアプリケーションの起動に柔軟性を持たせることができる。
【0031】
また、前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたので、所望のアプリケーションを起動の要求を出した機器を利用するユーザは必要に応じて前記起動監視手段、前記遅延起動監視手段、前記起動通知手段を動作させることができるようになる。
【発明を実施するための最良の形態】
【0032】
(実施の形態1)
以下、本発明の実施の形態を説明する。図1は、本実施の形態のアプリケーション起動調停システムの全体の概要を示すものである。
【0033】
本システムは、少なくとも2つ以上の電子機器がネットワークを介して接続された環境下において実行されるものである。ネットワークは、接続された機器間でデータの通信が可能なものであれば実施形態および通信の規格は何でもよい。インタネットのようなパブリックなネットワークであっても、LANのように限られたドメインの中で閉じられたネットワークであっても良いし、その両者の組み合わせからなっていても良い。
【0034】
本実施の形態では説明を簡単にするために図1に示すようにネットワーク100を介して電子機器10と電子機器20、電子機器40の3つが接続されているものを例に説明を行う。もちろん実施の際には2つ以上の電子機器が接続されていればよい。
【0035】
電子機器10は、ネットワーク100を通じて配信されてくるアプリケーションプログラム101(以下アプリケーションと称す)を解釈し、実行するためのアプリケーション実行手段102(以下アプリ実行手段と称す)と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段103、電子機器10が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段104(以下アプリ実行履歴記録手段と称す)を備えたものである。
【0036】
電子機器20は、ネットワーク100を通じて配信されてくるアプリケーションプログラム201(以下アプリケーションと称す)を解釈し、実行するためのアプリケーション実行手段202(以下アプリ実行手段と称す)と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段203、電子機器20が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段204(以下アプリ実行履歴記録手段と称す)を備えたものである。
【0037】
電子機器40は、ネットワーク100を通じて配信されてくるアプリケーションプログラム401(以下アプリケーションと称す)を解釈し、実行するためのアプリケーション実行手段402(以下アプリ実行手段と称す)と、アプリケーションの起動が可能かどうかを判定する起動可否判定手段403、電子機器40が過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段404(以下アプリ実行履歴記録手段と称す)を備えたものである。
【0038】
図1では電子機器10、電子機器20、電子機器40に、アプリ実行手段102、202、402と起動可否判定手段103、203、403がそれぞれ備わっているが、もちろん実施の際にはアプリケーションの起動要求を受ける側の電子機器に備わっているような構成であれば良く、アプリケーションの起動を要求する側の電子機器には必ずしも備わっている必要はない。
【0039】
アプリ実行手段102、202、402は、ネットワーク100を通じて配信されてくるアプリケーション101、201を解釈実行することが可能なものであれば何でも良く、例えばJAVA(R)仮想マシン、.NET実行環境、KDDI社製の携帯電話にて採用されているプログラム配信実行環境であるBREWなど、既存の環境によって実現することができる。
【0040】
本実施の形態にあたっては、アプリ実行手段102、202、402をJAVA(R)仮想マシン環境、配信されるアプリケーション101、201、401はJAVA(R)アプリケーションとしたものを例に説明を行う。
【0041】
アプリ実行手段102、202、402は、自身の機器に関して以下の情報を取得することができるものとする。
【0042】
(1)アプリ実行手段102、202、402が使用することのできる、自身の電子機器内において使用することができるハードウェアの空き資源量(例えば電子機器のメモリ(図示せず)におけるアプリケーション実行用に割り当てられた容量のうち、起動要求を受けた時点に使用できる容量など)
(2)何らかのアプリケーションを動作させている最中である場合、動作中のアプリケーションが使用しているハードウェアの資源量と、動作中のアプリケーションが終了した場合に解放される(使用可能となる)ハードウェアの資源量
これは、電子機器内でアプリ実行手段が使用することができる資源量を監視することによって、実現することができる。アプリ実行手段をJAVA(R)仮想マシンで実現する場合には、JAVA(R)仮想マシンの保持するヒープメモリ全体の使用量・未使用量、アプリケーション毎のヒープメモリの使用量など、ヒープメモリの使用状況を記録するレジスタ(図示せず)を設け、必要に応じて(例えばアプリケーション起動前、アプリケーションの動作中、アプリケーションの開放時など)レジスタの記録情報を調べるレジスタ記録情報調査手段(図示せず)を設けることによってアプリ実行手段が使用することができる資源量を監視することを実現することができる。
【0043】
起動可否判定手段103、203、403は、アプリ実行手段102、202、402により得られるハードウェアの空き資源量から要求を受けたアプリケーションの起動が可能であるかどうかを判定する。具体的な判定の処理の流れは、別の図を用いて後述する。
【0044】
30はアプリケーション起動調停装置である。アプリケーション起動調停装置30はネットワーク100を通じて情報を送受信するための通信手段301、起動要求のあったアプリケーションの起動を指示する起動指示手段302、起動要求のあったアプリケーションを起動させることが可能な電子機器の中から1つ特定する起動可能機器探索手段303、起動要求のあったアプリケーションと他のアプリケーションとの優先度を検出するアプリ実行優先度検出手段304、システム設定テーブルを保持するシステム設定テーブル保持手段305、アプリケーションの起動を要求する電子機器からの要求に応じてシステム設定テーブルの情報を変更するシステム設定テーブル変更手段306、起動可能機器探索手段303により特定された機器が起動要求のあったアプリケーションを起動できるようになるまで監視をする遅延起動監視手段307を有する。
【0045】
起動指示手段302、起動可能機器探索手段303、アプリ実行優先度検出手段304、システム設定テーブル変更手段306、遅延起動監視手段307はそれぞれ通信部301を介して電子機器から必要な情報を受け取り、必要に応じて通信部301を介して電子機器へ必要な情報を送信する。
【0046】
アプリケーション起動調停装置30は例えばワークステーション・PC・ホームサーバなどである。図1では、アプリケーション起動調停装置30を電子機器10や電子機器20とは別に独立したものを例に説明をしているが、電子機器10、電子機器20にアプリケーション起動調停装置30に組み込んで構成してもよい。
【0047】
またアプリケーション起動調停装置30を構成する各手段は1つのワークステーション・PC・ホームサーバなどの機器内に存在する必要はなく、複数台の機器やサーバに跨って分散されて存在していても構わない。
【0048】
本実施の形態では過去に自身の電子機器が実行したアプリケーションの識別情報の履歴を記録して保持するアプリ実行履歴記録手段を備えたものを示しているが、アプリ実行履歴記録手段を備えることは必ずしも必要ではない。
【0049】
本実施の形態ではアプリケーション起動調停装置30は、アプリ実行優先度検出手段304を備えたものを例に説明をしているが必ずしも備える必要はない。
【0050】
図2および図3は、本実施の形態における具体的な動作の一例を説明するための図である。これらの図の各処理について説明することで本発明のより具体的な実施の形態について説明する。
【0051】
まずネットワークに接続された図示していないユーザが利用する電子機器から所望するアプリケーションの起動の要求があったとする。このとき起動指示手段302は通信部を介してこの要求を受け取り、アプリケーション起動調停装置30にてネットワーク100に接続されていることが認識できる電子機器のうち、要求のあったアプリケーションに対応してあらかじめ設定された電子機器(この例では電子機器10)に対してアプリケーションの起動要求があることを指示する(処理201)。
【0052】
これは具体的にはアプリケーションの起動要求がある以前に起動可能機器探索手段303によりアプリケーションを実装またはダウンロードした電子機器を予め探索させて、要求されるアプリケーションに対応した機能を有する電子機器に関する情報を予め1つ特定し保持しておくこと、またはユーザが利用する電子機器で利用できる電子機器の情報を予め調べておき、サービスに対応するアプリケーションに適した電子機器を予め1つ選定し、この情報を保持しておくことにより実現することができる。
【0053】
図4は、ユーザが利用する電子機器における入力画面の一例を示す図であり、具体的にはユーザが起動を要求するアプリケーションの選択画面の一例を示す図である。
【0054】
ここでは例えばユーザから起動の要求を受け付けることのできるアプリケーション(サービス)の例として、
(1)録画機能を備える電子機器上で、放送の録画を実施するアプリケーションを起動する「ビデオ録画サービス」
(2)録画機能を備える起動機器上で、指定された日時に放送の録画を実施するアプリケーションを起動する「予約録画サービス」
(3)動画像の取得機能を備える起動機器上で、取得した動画データを別の機器に転送する機能を実現するアプリケーションを起動する「カメラモニタサービス」
(4)文章の表示機能を備える起動機器上で、別の機器から入力された文章や予め記録された文章など、指定された文章を表示させる機能を実現するアプリケーションを起動する「伝言通知サービス」
(5)施錠の機能を備える起動機器上で、リアルタイムにあるいは指定された日時に施錠を実施するアプリケーションを起動する「施錠サービス」
を表示している表示画面(インターフェース)を示している。図ではカーソルの位置が「ビデオ録画サービス」にあるものを示しているが、ユーザが利用する電子機器の入力手段(図示せず)におけるカーソルの位置を動かす手段(図示せず)を操作することにより、カーソルの位置を他のサービスの位置へ動かすこともできる。またカーソルの位置を所望するサービスに合わせ入力手段から入力指示すると、起動指示手段302はカーソル位置に対応するサービスのアプリケーションの起動要求があると解釈し、予め特定をしていた電子機器(この例では電子機器10の起動可否判定手段103)へサービスに対応するアプリケーションの起動要求のあることを出力するように構成されている。もちろんサービスの種類は図4に示されるものに限定される必要はなく他のものであってもよい。
【0055】
次にアプリケーションの起動要求を受けた電子機器10の起動可否判定手段103は起動指示手段302からの要求を受け取り、その時点においてアプリ実行手段102で要求を受けたアプリケーションの起動が可能であるかどうかを判断する(処理202)。
【0056】
起動可否の判定においては、例えば以下に示す判定の基準が考慮される。
【0057】
(1)アプリ実行手段102を備える電子機器の、アプリケーション取得能力
(1a)電子機器10自体が、ダウンロードやファイル交換などの手段(図示せず)によって、サービスを実現するアプリケーション自体を取得することができるかどうか。
【0058】
(2)アプリ実行手段102の能力
(2a)アプリ実行手段102は複数のアプリケーションを動作させることのできる能力があるかどうか。
【0059】
(2b)アプリ実行手段102は、起動指示の要求があったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうか。
【0060】
(3)アプリ実行手段102の状態
(3a)アプリケーション起動の要求があった時点で、アプリ実行手段102は別のアプリケーションを動作させている最中であるかどうか。
【0061】
(3b)アプリケーション起動の要求があった時点で、アプリ実行手段102はアプリケーションを実行することが可能なだけの空き資源量を有しているかどうか。
【0062】
起動可否判定部103において上述の判定の基準を考慮した処理の流れを図5を用いて説明をする。
【0063】
まず処理501において、対応するアプリケーションを実行するアプリ実行手段102を備える電子機器がダウンロードやファイル交換などの手段によって、サービスを実現するアプリケーション自体を取得することができるかどうかを判定する。処理501において取得できない場合には処理507へ進み、起動可否を「否」と判定する。
【0064】
また、処理501において例えば、
(1a−1)既に予めアプリケーションを保持している場合
(1a−2)システム上の機器からネットワークによってファイル交換で取得できる場合
(1a−3)パブリックなネットワークなどシステム外から新たに取得できる場合
の3通りのいずれかに該当してれば、処理502へ進む。
【0065】
(1a−1)の場合に該当するかどうかは、起動を指示されたアプリケーションと同じアプリケーションが、既に機器上に存在しているかどうかをチェックすることで簡単に判定できる。この場合はアプリケーション取得に関しては何も問題ない。
【0066】
(1a−2)の場合に該当するかどうかは、システム上に存在するアプリケーションを、機器がファイル交換によって取得可能であるかどうかを検査することで判定できる。例えばアプリケーションの機器外の配布に関して何らかの制限がかかっていたりする場合には、ネットワークで接続されている機器であってもファイル交換できない場合がある。
【0067】
(1a−3)の場合に該当するかどうかは、機器がシステム外に存在するアプリケーションの配布場所にアクセスすることができ、かつダウンロードによってアプリケーションの取得が可能であることを検査することで判定できる。アプリケーションの配布場所は、例えばアプリケーションの属性データから情報を得ることが出来る。
【0068】
例えばJAVA(R)実行環境の場合、アプリケーションの属性ファイルデータは、アプリケーションと共に配布されるJADファイルというものに記録される。JADファイルにはそのファイルの配布場所がURLによって記述されており、このURLにアクセス可能であれば、ダウンロードによってアプリケーションの取得が可能であることを判定することができる。
【0069】
次に処理502において、対応するアプリケーションを実行するアプリ実行手段102は複数のアプリケーションを動作させることのできる能力があるかどうかを判定する。アプリ実行手段102が複数の実行アプリケーションを実行できる場合には「可」と判断し、処理504に進む。またアプリ実行手段102が複数の実行アプリケーションを実行できない場合には「否」と判定し、処理503に進む。処理503においては処理201においてアプリケーション起動の要求があった時点で、アプリ実行手段102は別のアプリケーションを動作させている最中であるかどうかを判定する。処理503においてアプリ実行手段102は別のアプリケーションを動作させている最中である場合には処理507に進み、起動可否を「否」と判定する。処理503においてアプリ実行手段102は別のアプリケーションを動作させていない場合、処理504へ進む。
【0070】
処理502と503では、(2a)と(3a)に対応する判定基準についての判定を行っている。アプリ実行手段の実現によっては、アプリケーションを同時に2つ以上並行して動作させることのできないものがある。例えば、JAVA(R)仮想マシンの一仕様であるKVMという仮想マシンによってアプリ実行手段102が実現されている場合には、アプリケーションを同時に1つしか動作させることはできない、即ち処理503ではアプリ実行手段102を実現する具体的なものの仕様などがどのようなものかを調べることにより判定することができる。
【0071】
処理504では、アプリ実行手段102は、起動指示の要求があったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうかを判定する(2bの判定基準に対応)。処理504において起動指示の要求があったアプリケーションを正しく動作できるスペックを保持している場合、処理505へ進む。処理504において起動指示の要求があったアプリケーションを正しく動作できるスペックを保持していない場合、処理507に進み、起動可否を「否」と判定する。処理504において、アプリ実行手段102が、起動指示のあったアプリケーションを正しく動作させることができるスペックを保持しているかどうかは、例えばアプリケーションの属性データと、アプリ実行手段102のプロファイルデータを比較することによって判断することができる。
【0072】
アプリケーションの属性データと、アプリ実行手段のプロファイルデータの形式は、アプリ実行環境の実現方式や機器の接続方式、通信プロトコルに依存するため一意に決定することはできず、いくつかの組み合わせが考えられる。
【0073】
例えばJAVA(R)実行環境の場合、アプリケーションの属性ファイルデータは、アプリケーションと共に配布されるJADファイルというものに記録される。またUPnPを用いたネットワーク接続の場合では、アプリ実行手段のプロファイルデータはXML形式で記述されたデータがアプリ実行手段ごとに準備される。
【0074】
JADファイルなどアプリケーションの属性データからアプリケーションの実行のための必要条件を解析し、XMLデータなどアプリ実行手段のプロファイルデータからアプリ実行手段はその条件を満たしているか否か、を検査することによって、起動可否判定手段はアプリケーションの起動の可否を判定することができる。
【0075】
処理505では、アプリケーション起動の要求があった時点で、アプリ実行手段102はアプリケーションを実行することが可能なだけの空き資源量を有しているかどうかを判定する。処理505において、可能なだけの空き資源量を有している場合、起動可否を「可」と判定する。処理505において、可能なだけの空き資源量を有していない場合、処理507に進み、起動可否を「否」と判定する。
【0076】
処理505は(3b)の判定基準に対するに関して判定を行っている。アプリケーションの実行に必要な資源量は、前述のJADファイルなどアプリケーションの属性データに記述されることもあるが、そうでない場合もある。その場合にはアプリケーションを実行する前に必要な資源量を見積もる。
【0077】
見積もりの計算には様々な方法があるが、簡単な方法としては例えば、アプリケーションの実行に必要なしきい値(例えばメモリサイズ1MBなど)を予め設定し、その値を超える資源量をアプリ実行手段が確保できるようであれば、アプリケーションの実行可能であるとみなす、などの方法で判定することが可能である。
【0078】
しかし必要な資源量を見積もる方式では、見積もりが外れてしまうこともあり、アプリケーションせっかく起動しても実行中に見積もり以上のメモリ容量を使用してしまいメモリが足りなくなって停止してしまう、という事態になってしまうこともありうる。
【0079】
本発明では判定の処理を、簡単かつ高い精度で実現することのできる一手段として、アプリ実行履歴記録手段を提供している。
【0080】
アプリ実行履歴記録手段104は、アプリ実行手段102によってそれまでに動作されたことのあるアプリケーションの識別情報の履歴を記録し保持する。起動可否判定部は、その履歴を元に、過去に同一のアプリケーションが動作された実績や、その時に使用された資源量の記録を参照することによって、処理505における判定を行うようにする。
【0081】
図6にアプリ実行履歴手段104より記録された履歴データの具体的な一例を説明するための図である。図6のテーブルのカラムは、アプリケーションの識別情報の種類(アプリケーションの種類、ファイル名、バージョン情報、作成者、ファイルサイズ)を示している。これらはアプリケーションを一意に特定できる情報の組であれば、これらの情報以外のものであっても何でも良い。
【0082】
また、一番右のカラムには、実行時に使用された資源量を記録するカラムを設けている。この情報はなくても良いが、用意されていればより簡単で高い精度でアプリケーションの起動の可否を判定するのに使うことが出来る。
【0083】
アプリ実行手段102は、アプリケーションが動作されると、そのアプリケーションに関する識別情報と、その動作において使用した総資源量を履歴としてテーブルに記録する。
【0084】
アプリ実行履歴記録手段104により記録した履歴データを用いて起動可否の判定をした具体的な処理の一例を図7に示す。図7において処理501、501、502、503、504は、図5にて説明したものと同一もしくはほぼ同一であるためその説明を省略する。
【0085】
処理701は処理502によりアプリ実行手段102が複数のアプリケーションを動作させる能力がある場合、または処理503においてアプリ実行手段102が別のアプリケーションを動作中で無い場合に行う処理であり、起動要求のあったアプリケーションの識別情報と、アプリ実行履歴記録手段によって記録された履歴データに対応するアプリケーションに対応する識別情報の履歴があるかどうかを調べ、一致するものがあるかどうかを判定する。処理701において一致する識別情報があれば、過去に同一のアプリケーションを動作させたと判断し、処理702へ進む。処理701において一致する識別情報がなければ処理504へ進む。
【0086】
処理702は、同一の過去のアプリケーションを動作させた時に使用された資源量の実績を履歴データから得て、アプリ実行手段102が履歴データに記録されたデータの中で対応するアプリケーションに使用した資源量以上の資源量を確保できるかどうかを判定する。処理702において確保できる場合には処理506に進み起動可否を「可」と判断する。また処理702において確保できない場合には処理507に進み、起動可否を「否」と判定する。
【0087】
このような処理を行えば起動可否をより正確に判定できるようになる。
【0088】
以上が、起動可否判定手段103が行う処理について述べたものである。
【0089】
図2に示す処理202において、対応する電子機器(この例では電子機器10)の起動可否判定手段103が、アプリケーションの起動が可能であると判断した場合、処理203に進み、処理203において対応する電子機器(この例では電子機器10)のアプリ実行手段102は起動要求のあったアプリケーションの起動を実行する。これは起動可否判定手段103がアプリ実行手段102へ起動要求のあったアプリケーションが実行可能であることを通知し、アプリ実行手段102が対応するアプリケーションを起動することを意味する。
【0090】
処理202において、対応する電子機器(この例では電子機器10)の起動可否判定手段が、アプリケーションの起動ができないと判断した場合、処理204へ進む。これは起動可否判定手段103が起動可能機器探索手段303の起動を促すことを意味する。
【0091】
処理204において、起動要求を受けた起動可能機器探索手段303はシステム中のネットワーク接続された、アプリ実行手段および起動可否判定手段を備える機器の中から、アプリケーションの起動が可能であるアプリ実行手段を持つ電子機器を特定する。
【0092】
図8は、起動可能機器探索手段303におけるより具体的な動作を説明するための図である。
【0093】
図8において縦軸は時間的な経過を示すものである。
【0094】
処理801において起動可能機器探索手段303は起動要求を受けると、起動可能機器探索手段303はアプリケーション起動調停装置30がネットワーク100につながっていることを認識できる電子機器のうち、起動可否判定手段を備えた電子機器の全てに対しアプリケーションの起動の要求があることと、そのアプリケーション情報を通知する。
【0095】
この例ではネットワーク100につながり起動可否判定手段を備えた電子機器は電子機器10と電子機器20と電子機器40であるので、これらに対して、アプリケーションの起動の要求があることと、そのアプリケーション情報を通知する。なお電子機器10に対応する処理先の処理より起動ができないことが分かっているため図、説明からは省略する。
【0096】
ここでのアプリケーション情報とは、機器20および機器40の持つアプリ実行可否判定手段が、アプリケーションの起動の可否を判定できるだけの情報である。具体的には、アプリケーション名、ファイル名、バージョン情報、作成者、ファイルサイズなどのアプリケーションの識別情報、およびアプリケーションの実行のための必要条件が示されたデータなどがこれに該当する。Java(R)アプリケーションの場合、これらの情報は、アプリケーションと共に配布される属性データのファイルである、JADファイルに記録されている。
【0097】
処理802において、処理801にて通信されたデータを元に、電子機器20は先に説明した起動可否判定手段によって、当該アプリケーションの起動が可能であるかどうかの可否判定を行い、その結果を起動可能機器探索手段303に対して返す。
【0098】
処理803において、処理801にて通信されたデータを元に、電子機器40は先に説明した起動可否判定手段によって、当該アプリケーションの起動が可能であるかどうかの可否判定を行い、その結果を起動可能機器探索手段303に対して返す。
【0099】
この際、電子機器20および電子機器40が通信するデータは、可否判定の結果以外の情報を含んでいても良い。例としては、電子機器の持つアプリ実行手段の保有する空き資源量などの情報を共に通信しても良い。これに関しては後述のアプリ実行優先度検出手段にてより詳しく説明する。
【0100】
図2の処理205において、処理204(より具体的には処理804)で送られる各電子機器から返された可否判定のデータを元に、アプリケーションを起動する電子機器が特定されたかどうかを判定する。
【0101】
もし全ての電子機器の可否判定の中で、起動可能であるものが1つしかなかった場合には、起動可能機器探索手段303はその電子機器を代替機器として特定し、処理206に進み処理206にて代替の電子機器に対し対応するアプリケーションの起動を指示する。
【0102】
もし全ての電子機器の可否判定の中で、起動可能であるものが2つ以上存在した場合には、起動可能機器探索手段303はその中から任意の電子機器を代替の電子機器として特定する。特定するには色々な方針が考えられるが、最も簡単なものはランダムに特定する方法である。
【0103】
または、処理802や処理803で送信されてきた可否判定の結果以外の情報が存在していれば、それを利用しても良い。例えば起動可能な電子機器の中から、電子機器の持つアプリ実行手段の保有する空き資源量が最も大きいもの、電子機器のスペックからアプリケーションの動作に適した電子機器を特定する、などのようにして特定する方法でも良い。
【0104】
もし全ての電子機器の可否判定の中で、起動可能であるものが1つも存在しない場合には、代替機器は特定できなかったと判定し、処理207に進み、処理207にてアプリケーション起動要求に関連する処理を中止し、必要があればユーザが要求を出した電子機器に対して表示画面に処理を中止した旨のメッセージを表示する。
【0105】
起動可能機器探索手段303は、アプリ実行優先度検出手段304を備える場合、要求を指示する電子機器上で動作するアプリケーションの起動に関してさらに柔軟性を備えた代替機器の選択方法をユーザに対して提供することができる。
【0106】
この場合の、処理204で行われる、それぞれ機器の処理内容とデータ通信の流れを、図8同様、図9を用いて示す。
【0107】
処理801、802、803の内容は、アプリ実行優先度検出手段304を保持しない場合と同じであり、これにより起動可能機器探索手段303を保持する機器は、各機器からアプリケーションの起動可否の判定を得る。
【0108】
アプリ実行優先度検出手段304が存在する場合、処理901、902、903、904が新たに加わる。アプリ実行優先度検出手段304は処理901において、処理801と同様、ネットワーク接続されたアプリ実行手段および起動可否判定手段を備える全ての機器(ここでは機器Aと機器B)に対して、優先度情報取得の要求を通知する。
【0109】
その通知に回答する形で、機器Aは処理902において、機器Bは処理903において、優先度情報を送付する。
【0110】
ここでの優先度情報とは、例えば以下の情報のことを指す。
【0111】
(1)情報P: アプリ実行手段を備える機器の、アプリケーション取得能力
P−1: 機器自体が、ダウンロードやファイル交換などの手段によって、サービスを実現するアプリケーション自体を取得することができるかどうか。
【0112】
(2)情報Q: アプリ実行手段の能力
Q−1: アプリ実行手段は、起動指示のあったアプリケーションを正しく動作できるスペックを保持しているかどうか。すなわち、アプリケーションを動作させるための前提となっている仕様やライブラリ群などを満たしているかどうか。
【0113】
(3)情報R: アプリ実行手段の状態
R−1: アプリケーション起動の要求があった時点で、アプリ実行手段は別のアプリケーションを動作させている最中であるかどうか。
【0114】
R−2: アプリケーション起動の要求があった時点での、機器の持つアプリ実行手段が確保できる空き資源量。
【0115】
R−3: 別のアプリケーションを動作させている最中である場合、その別のアプリケーションを終了させたときの、アプリ実行手段が確保できる空き資源量。
【0116】
(4)情報S: アプリケーション自身の優先度
S−1: 別のアプリケーションを動作させている最中である場合、その別のアプリケーションの属性情報。
【0117】
処理904では、処理802および803で各機器から返された可否判定のデータと、処理902および903にて送られてきた優先度情報を元に、優先度の評価を行い、代替機器の特定を行う。
【0118】
処理904で行う処理の流れの詳細例を図10に示す。
【0119】
処理1001は、処理802および803で各機器から返された可否判定のデータから判定を行う。全ての機器の可否判定の中で、起動可能であるものが1つしか存在しない場合には、処理1002に移行し、唯一の起動可能機器を代替機器として選択し、処理904を終了する。
【0120】
処理1003も同じく、処理802および803で各機器から返された可否判定のデータから判定を行う。全ての機器の可否判定の中で、起動可能であるものが2つ以上存在する場合には、処理1004に移行し、任意の機器を代替機器として選択する。この代替機器の任意選択の方針の際には、処理902や処理903にて取得した優先度情報を利用しても良い。例えば上記R−2の情報を利用し、起動可能な機器の中から、機器の持つアプリ実行手段の保有する空き資源量が最も大きいものを選択する、などとしても良い。
【0121】
処理1003の分岐にてNに移行した場合は、すなわち全ての機器の可否判定において、起動可能と判定されたものが1つも存在しなかったということである。
【0122】
処理1005以降の処理で、アプリ実行優先度検出手段304は、各機器が持つアプリ実行手段が、別のアプリケーションを実行中であるかどうかを検証し、別のアプリケーションが実行中であることを検出した場合には、起動指示手段302によって指示されたアプリケーションと、別のアプリケーションの優先度を比較する。そして別のアプリケーションの優先度が低いと判断された場合には、その別のアプリケーションを実行中であるアプリ実行手段を持つ機器を代替機器の候補として選択する。
【0123】
処理1005では、上記P−1、Q−1の要素を考慮し、アプリ実行手段を備える機器の中から、起動指示のあったアプリケーションを取得し正しく動作できる能力を有しないものを代替機器としての選択対象からはずす。
【0124】
処理1006では、アプリ実行手段を備える機器の中から、別なアプリケーションを動作中ではないものを、代替機器としての選択対象からはずす。別なアプリケーションを動作中ではないにも関わらず、起動可否判定部において起動不可と判定された機器は、アプリケーションを起動する能力を有しないとみなしてのことである。
【0125】
処理1007では、上記R−3の要素を考慮し、アプリ実行手段を備える機器の中から、別なアプリケーションを終了させたとしても、起動指示のあったアプリケーションを実行するだけの資源量が確保できないものを、代替機器としての選択対象からはずす。
【0126】
処理1008で、もし代替機器として選択対象となる機器が1つも残っていなかった場合には、処理1011に移行し、代替機器を発見できなかったものとして処理904を終了する。もし代替機器として選択対象となる機器が1つ以上存在している場合には、処理1009に移行する。
【0127】
処理1009では、代替機器として選択対象となる機器のアプリ実行手段によって実行中のアプリケーションと、起動指示のあったアプリケーションの実行優先度付けを行う。
【0128】
優先度付けには、上記S−1の要素を考慮して、アプリケーションの属性情報を使用してもよいし、アプリ実行手段の状態から得られる情報を使用しても良い。
【0129】
例えば携帯電話に搭載されているJava(R)実行環境向けの、Java(R)アプリケーションの属性情報であるJADファイルからは、以下のような情報を得ることが可能である。
【0130】
(1)動作中に通信機能を用いるアプリケーションであるか、そうでないか。
【0131】
(2)動作において画面表示機能を用いるアプリケーションであるか、そうでないか。
【0132】
(3)携帯電話機器における待ち受け画面上で動作し続けるアプリケーションのように、ユーザから明示的な操作がなくとも自動的に起動して動作するアプリケーションであるか、そうでないか。
【0133】
優先度の判定方法には、それぞれのアプリケーションの優先度評価値を算出し、それを比較して決定する、という方法が考えられる。評価値の計算方法には様々な方法が考えられるが、その一例を示す。もちろん他のデータを用いて優先度を算出しても良い。
【0134】
(優先度評価値)=
eval[アプリ実行手段にて実行中のアプリケーションである]×f1
+eval[アプリケーションは20分以上継続されて実行されているアプリケーションである]×f2
+eval[アプリケーションは動作中に通信機能を用いるアプリケーションである]×f3
−eval[アプリケーションは、ユーザから明示的な操作がなくとも自動的に起動して動作するアプリケーションである]×f4
ここで、関数 eval[] は、[]内の条件が真なら1、偽なら0を返す関数である。
【0135】
f1〜f4は重み付けを与えるための変数であり、対応する関数値の重要度に応じて決められる数である。
【0136】
処理1010では、優先度付けしたアプリケーションを比較し、最も優先度の低いアプリケーションを選択する。ここで、起動指示のあったアプリケーションが最も優先度が低かった場合、処理1011に移行し、代替機器を発見できなかったものとして処理904を終了する。それ以外の別なアプリケーションの優先度が最も低かった場合には、処理1012に移行し、最も優先度の低い別なアプリケーションを動作中の機器を、代替機器として選択する。
【0137】
以上が処理904の処理の流れである。この処理を経て、代替機器が特定されるかもしくは該当する代替機器なし、という事実が起動可能機器探索手段により検出されることになる。
【0138】
処理205では、起動可能機器探索手段により得られた結果を元に、分岐判定を行う。
【0139】
代替機器が特定されていれば、処理206へと移行する。
【0140】
代替機器が特定されていなければ、処理207へと移行し、システムは起動を支持されたアプリケーションの即時起動をやめ、処理を終了する。
【0141】
処理206は、起動指示手段302が代替の電子機器に対し起動指示する処理について述べたものである。
【0142】
起動指示手段302は、処理204で特定された代替機器に対してアプリケーションの起動を指示する。処理206で起動指示手段302が行う処理の流れを詳細化したものを図11に示す。
【0143】
処理1101では、まず代替機器が別のアプリケーションを実行中でないかどうかを検査する。
【0144】
実行中でなかった場合は処理1104に移行するが、もし実行中であったならば、処理1102に移行する。
【0145】
処理1102では、代替機器の保持するアプリ実行手段が、アプリケーションを実行することが可能なだけの空き資源を有しているかどうかを検査する。
【0146】
もし有していた場合には処理1104に移行するが、有していないと判断される場合には処理1103に移行する。
【0147】
処理1103では、アプリケーションを実行することが可能なだけの空き資源を確保するために、その時点で実行中のアプリケーションを停止させた後に、処理1104に移行する。
【0148】
処理1104では、起動を指示されたアプリケーションを、代替機器が保持しているかどうかを検査する。
【0149】
もし既に保持していた場合には処理1106に移行するが、保持していなかった場合は処理1105に移行する。
【0150】
処理1105において、代替機器はアプリケーションを取得する。アプリケーションの取得方法には、システム上の別の機器からファイル交換によって取得できる場合と、パブリックなネットワークなどシステム外から新たに取得できる場合とがある。代替機器がアプリケーションを取得できたことを確認した後、処理は1106に移行する。
【0151】
処理1106では、代替機器の持つアプリ起動手段によって、実際にアプリケーションが起動される。以上が、処理206の処理の流れである。
【0152】
起動指示手段302が代替の電子機器に対し起動指示する場合において、起動を交渉する機能を加えてもよい。
【0153】
これは、代替の電子機器を利用するユーザに対してアプリケーション起動の連絡を行う手段を設けたものである。この時点で代替機器のユーザの意思確認を行うことによって、アプリケーションの代替機器での起動に関して、さらに利便性を備えた仕組みをユーザに対して提供することができる。
【0154】
この場合の、処理206で処理の流れを、図12を用いて示す。
【0155】
処理1101、1102、1103、1104、1105、1106の内容は、起動交渉の機能を備えない場合と同じである。起動交渉の機能を備えることによって、処理1101の前、および処理1103の前に新たな処理が加わっている。
【0156】
処理1201では、代替機器のユーザに対して、代替機器上でアプリケーションを動作させることに対しての通知を行う。代替の電子機器を利用するユーザは、この通知に対して何らかの意思を返すことができる。
【0157】
図13に起動交渉の機能の実現例を示す。例えば、図13(a)のような代替機器に表示されるダイアログを用いて、ユーザはアプリケーションの起動に対してYes/Noを入力する、などの手段を用いてアプリケーション起動調停装置30へ応答するものである。
【0158】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をYesと見なす、あるいはNoとみなす、という規則が予め設定されていてもよい。
【0159】
処理1202では、処理1201でユーザによって行われた意思表明を確認する。アプリケーションの起動に関して、ユーザの意思表明がYesであれば、処理1101に移行する。Noであれば、アプリケーションの起動を諦め、処理1205に移行する。
【0160】
処理1203では、代替の電子機器を利用するユーザに対して、代替機器上で現在実行中のアプリケーションを停止させることについての通知を行う。代替機器のユーザは、この通知に対して何らかの意思を返すことができる。
【0161】
例えば、図13(b)のような代替機器に表示されるダイアログを用いて、ユーザはアプリケーションの停止に対してYes/Noを入力する、などの手段を用いてである。
【0162】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をYesと見なす、あるいはNoとみなす、という規則が予め設定されていてもよい。
【0163】
処理1204では、処理1201でユーザによって行われた意思表明を確認する。現在実行中のアプリケーションの停止に関して、ユーザの意思表明がYesであれば、処理1103に移行する。Noであれば、アプリケーションの起動を諦め、処理1205に移行する。
【0164】
処理1205では、ユーザの意思表明によってアプリケーションの起動は拒否されたものとして、アプリケーションの起動を諦める。アプリケーションの起動を行わないまま、処理206は終了する。
【0165】
以上、図2で示した処理の流れに関して説明を行った。
【0166】
図3はアプリケーション起動調停装置の動作の一例について示したものである。
【0167】
図3で示す処理は、図2で述べた処理とは関係なく独立して存在するが、図2の処理を行って、処理207に到達した際、すなわち即時起動をやめる、という結論に到達した後に、この処理に移行することにしてもよい。
【0168】
処理301は、起動指示手段302が行う処理について述べたものである。詳細は処理201の説明において前述したものと同様であるため、省略する。
【0169】
処理302は、起動可否判定手段が行う処理について述べたものである。起動可否判定手段は、その時点において、機器が備えるアプリ実行手段でそのアプリケーションの起動が可能であるかどうかを判断する。詳細は処理302の説明において前述したものと同様であるため、省略する。
【0170】
処理303および処理304は、遅延起動監視手段307が行う処理について述べたものである。
【0171】
遅延起動監視手段307は、上記処理301で、起動指示手段302によって指示された機器上でアプリケーションの起動が可能な状態になっているか否かについて、定期的に検査する。
【0172】
これは一定周期のタイマによってポーリングを行い、対象となる電子機器(この例では電子機器10)の起動可否手段に問い合わせを行うことによって実現することができる。
【0173】
遅延起動監視手段307によって、処理302、303、304は繰り返し行われるが、この処理から別の処理に移行するためには、2つの場合を想定している。
【0174】
1つには、何らかの理由により遅延起動監視手段307が停止された場合である。これは、ユーザの手によって停止の指令が与えられるのであってもよいし、また、遅延起動監視手段307が動作を始めてから一定時間(例えば30分間)経過したら、自動的に停止する、などの条件が与えられるのであってもよい。
【0175】
遅延起動監視手段307が停止された場合、処理305へと移行し、システムはその動作を終了する。
【0176】
もう1つには、起動指示手段302によってアプリケーションの起動が可と判断された場合である。
【0177】
これは、電子機器でそれまで実行中であった別のアプリケーションの実行が終了して、アプリケーション実行のためのリソースが確保されるなど、対象となる電子機器の状態が変化し、起動指示手段302の判定結果が変化したことを意味する。
【0178】
この場合は、遅延起動が可能になったものと判断して、処理は306へと移行する。
【0179】
処理306は、起動指示手段302が行う処理について述べたものである。
【0180】
起動指示手段302は、処理301で指示した対象となる電子機器(この例では電子機器10)上で、アプリ実行手段を用いてアプリケーションを起動することによって実現できる。この場合は、遅延起動を行う際により利便性の高い仕組みをユーザに対して提供することができる。
【0181】
起動指示手段302、アプリケーションの起動を指示する前に、対象となる電子機器のユーザに対してその旨の通知を行う。対象となる電子機器のユーザは、この通知に対して何らかの意思を返すこともできる。
【0182】
図14は上述の実現例である。対象となる電子機器にダイアログを表示させ、ユーザはアプリケーションの遅延起動に対してYes/Noを入力するなどにより、遅延起動を許可するか否かに関して意思表明を入力することができる。
【0183】
もちろん、明示的な入力がなくとも、例えば通知後一定時間経過した後はユーザからの意思表明をYesと見なす、あるいはNoとみなす、という規則が予め設定されていてもよい。
【0184】
もしここで遅延起動を許可しないという意思表明がユーザから入力された場合には、処理306は実際にアプリケーションの起動を行わずに、そのまま処理を終了してしまってもよい。
【0185】
以上、図3で示した処理の流れに関して説明した。
【0186】
最後に、図15を用いて、請求項5および8で述べられている、システム設定テーブル、およびシステム設定テーブル変更手段306の実現に関して説明する。
【0187】
システム設定テーブルは、アプリケーション起動調停装置30が機能として備える、起動可能機器を探索する動作、代替の電子機器を探索し起動指示する動作、起動の交渉をする動作、遅延起動監視する動作、起動通知する動作のそれぞれを実際の動作において使用するかどうかを記録する。
【0188】
これは図15に示すような、テーブル型のデータ構造で実現することができる。テーブルの左カラムはシステムが備える機能を、右カラムはその手段を使用するかどうかの設定値を、数値で示している。この数値は0あるいは1の数値を取り、1の場合は使用することを、0の場合は使用しないことを示している。
【0189】
システム設定テーブル変更手段306は、システム設定テーブルに記録された設定値を変更する手段をシステムのユーザに提供する。実現例を図16に示す。システムのユーザはシステム設定テーブル変更手段306が備えるユーザインタフェースを用いて、システム設定テーブルの変更内容を反映させることができる。
【0190】
このようにすることにより、ユーザは必要な機能だけを選択してアプリケーション起動調停装置を動作させることができるようになるためユーザの使用環境に適した利用が可能となる。
【産業上の利用可能性】
【0191】
本発明のシステムは、ネットワーク機器上の、アプリケーション配信を利用したサービスプラットフォームの特性を利用して、ある機器のアプリケーション起動において資源欠乏問題が発生した場合の、優先度やシステム上の他の手段での実行可能性を加味した、起動と実行を調停するシステムを提供するものである。
【0192】
また、ネットワーク上から代替機器を探索するという手段は、資源欠乏問題以外にも、ネットワーク上のある機器に何か問題が発生した時のアプリケーションの代替実行手段を探すためにも適用することが可能である。
【図面の簡単な説明】
【0193】
【図1】本実施の形態のアプリケーション起動調停システムの一例を説明するための図
【図2】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図3】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図4】本実施の形態のアプリケーション起動調停システムにおけるユーザが利用する電子機器上の入力画面の一例を説明するための図
【図5】本実施の形態のアプリケーション起動調停システムにおける起動可否判定手段の動作の一例を説明するための図
【図6】本実施の形態のアプリケーション起動調停システムにおけるアプリ実行履歴記録手段により記録される履歴データの一例を説明するための図
【図7】本実施の形態のアプリケーション起動調停システムにおける起動可否判定手段の動作の一例を説明するための図
【図8】本実施の形態のアプリケーション起動調停システムにおける起動可能機器探索手段の動作の一例を説明するための図
【図9】本実施の形態のアプリケーション起動調停システムにおける起動可能機器探索手段の動作の一例を説明するための図
【図10】本実施の形態のアプリケーション起動調停システムにおけるアプリ実行優先度検出手段の動作の一例を説明するための図
【図11】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図12】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図13】本実施の形態のアプリケーション起動調停システムの動作の一例を説明するための図
【図14】本実施の形態のアプリケーション起動調停システムにおける遅延起動通知手段の動作の一例を説明するための図
【図15】本実施の形態のアプリケーション起動調停システムにおけるシステム設定テーブルの一例を説明するための図
【図16】本実施の形態のアプリケーション起動調停システムにおけるシステム設定テーブル変更手段の動作の一例を説明するための図
【符号の説明】
【0194】
10 電子機器
20 電子機器
30 アプリケーション起動調停装置
40 電子機器
100 ネットワーク
101 アプリケーションプログラム(アプリケーション)
102 アプリケーション実行手段(アプリ実行手段)
103 起動可否判定手段
104 アプリケーション実行履歴記録手段(アプリ実行履歴記録手段)
201 アプリケーションプログラム(アプリケーション)
202 アプリケーション実行手段(アプリ実行手段)
203 起動可否判定手段
204 アプリケーション実行履歴記録手段(アプリ実行履歴記録手段)
301 通信手段
302 起動指示手段
303 起動可能機器探索手段
304 アプリ実行優先度検出手段
305 システム設定テーブル記録保持手段
306 システム設定テーブル変更手段
307 遅延起動監視手段
401 アプリケーションプログラム(アプリケーション)
402 アプリケーション実行手段(アプリ実行手段)
403 起動可否判定手段
404 アプリケーション実行履歴記録手段(アプリ実行履歴記録手段)

【特許請求の範囲】
【請求項1】
ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、
前記所望のアプリケーションの起動の指示を行う起動指示手段と、
前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段を備え、
前記起動指示手段が指示した機器が前記所望のアプリケーションの起動をできない場合には、前記起動可能機器探索手段は前記探索された機器のうち特定した機器とは異なる別の機器を1つ特定し、
前記起動指示手段は前記特定した別の機器へ前記所望のアプリケーションの起動の指示を行うようにしたことを特徴とするアプリケーション起動調停システム。
【請求項2】
前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた機器は
前記所望のアプリケーションを実行するアプリケーション実行手段と、
前記起動指示手段より前記所望のアプリケーションの起動の指示を受けた時点で前記所望のアプリケーションを起動することが可能かどうかを判定する起動可否判定手段を備えたことを特徴とする請求項1に記載のアプリケーション起動調停システム。
【請求項3】
前記起動可否判定手段は、
前記アプリケーション実行手段によって過去に実行されたアプリケーションの識別情報を記録して保持するアプリケーション実行履歴記録手段を備え、
前記起動の指示を受けた所望のアプリケーションと同一の識別情報を保持するアプリケーションが過去に実行されたかどうかを元に、前記アプリケーション実行手段により前記所望のアプリケーションの起動が可能であるかどうかを判定することを特徴とする請求項1に記載のアプリケーション起動調停システム。
【請求項4】
特定された機器のアプリケーション実行手段が、前記所望のアプリケーションとは別のアプリケーションを実行中であるかどうかを判断し、前記特定された機器のアプリケーション実行手段が前記別のアプリケーションを実行中である場合には、前記所望のアプリケーションと別のアプリケーションとの優先度を比較するアプリケーション実行優先度比較手段を備え、
前記起動可能機器探索手段は、前記別のアプリケーションの優先度が低いと判断された場合には、前記別のアプリケーションを実行する機器は、前記所望のアプリケーションの起動が可能であると判断し、
前記起動指示手段は前記起動可能機器探索手段により特定された機器上で実行中の別のアプリケーションを停止した後に、前記所望のアプリケーションを起動することを特徴とする請求項1〜3のいずれか1項に記載のアプリケーション起動調停システム。
【請求項5】
前記起動指示手段は、起動可能機器探索手段により特定された機器との通信が可能であるかどうかを判定し、前記通信が可能であると判定された場合には、前記特定された機器に対して前記所望のアプリケーションの実行を行っても良いかどうか問い合わせを行うようにしたことを特徴とする請求項1〜4のいずれか1項に記載のアプリケーション起動調停システム。
【請求項6】
前記起動可能機器探索手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、
前記システム設定テーブルの記録内容を変更するシステム設定テーブル変更手段を備え、
前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記起動可能機器探索手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする請求項5に記載のアプリケーション起動調停システム。
【請求項7】
ネットワークを介して接続された複数の機器のいずれかから所望のアプリケーションの起動要求を受けたとき、前記所望のアプリケーションを起動させることが可能な機器を特定し、特定した機器に対して所望のアプリケーションを起動するように指示するシステムであって、
前記所望のアプリケーションの起動の指示を行う起動指示手段と、
前記所望のアプリケーションを起動させることが可能な機器を探索し、前記機器の中から機器を1つ特定する起動可能機器探索手段と、
前記起動指示手段が指示した機器が前記起動の指示を受けた時点で前記所望のアプリケーションの起動をできない場合には、前記特定した機器が前記所望のアプリケーションの起動できるようになるまで監視をする遅延起動監視手段を備え、
前記起動指示手段は、前記遅延起動監視手段により前記所望のアプリケーションの起動が可能であると判断された場合に前記所望のアプリケーションの起動の開始を指示するようにしたことを特徴とするアプリケーション起動調停システム。
【請求項8】
前記起動指示手段は、前記所望のアプリケーションの起動を指示した機器に対して前記アプリケーションの起動を行ってよいかどうかを通知することを特徴とする、請求項6に記載のアプリケーション起動調停システム。
【請求項9】
前記遅延起動監視手段、前記起動指示手段の動作を利用するかどうかを記録するシステム設定テーブルを保持するシステム設定テーブル保持手段と、
前記システム設定テーブルの記録内容を変更する、システム設定テーブル変更手段を備え、
前記所望のアプリケーションの起動の要求を出した機器は前記システム設定テーブルに保持された内容に応じて、前記遅延起動監視手段、前記起動指示手段の動作を制御できるようにしたことを特徴とする請求項7のアプリケーション起動調停システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−108804(P2007−108804A)
【公開日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2004−17880(P2004−17880)
【出願日】平成16年1月27日(2004.1.27)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】