(57)【要約】【課題】特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器を提供する。【解決手段】電子機器は、他機器と通信を行う通信部と、通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、を備える。【選択図】図１４
2013206222.tif 000002
【特許請求の範囲】
【請求項１】
他機器と通信を行う通信部と、
前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、
前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、
を備えることを特徴とする電子機器。
【請求項２】
前記性能を示す情報は、
時間の経過にともなって変化する性能を示す情報である
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記性能を示す情報は、
要求性能を満たすか否かを示す情報である
ことを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記性能を示す情報は、
前記機能に応じて予め設定されている性能を示す情報である
ことを特徴とする請求項１から３の何れか一項に記載の電子機器。
【請求項５】
複数の前記性能を示す情報の優先条件を設定する条件設定部、
を備え、
前記コマンド選択部は、
前記条件設定部により設定された前記優先条件と、前記性能を示す情報とに基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項１から４の何れか一項に記載の電子機器。
【請求項６】
前記条件設定部は、
前記複数のコマンドそれぞれの実行実績を前記優先条件として設定し、
前記コマンド選択部は、
前記条件設定部により設定された前記優先条件と、前記性能を示す情報とに基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項５に記載の電子機器。
【請求項７】
前記コマンド管理部は、
前記複数のコマンドを、前記機能の種類毎に識別可能なように管理し、
前記コマンド選択部は、
前記機能の種類毎に、前記性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択する
ことを特徴とする請求項１から６の何れか一項に記載の電子機器。
【請求項８】
前記複数のコマンドから選択されたコマンドを実行させる処理を制御する制御部、
を備え、
前記コマンド選択部は、
前記性能を示す情報に基づいて、前記制御部の制御により実行されるコマンドと同じ前記機能の種類に識別されるコマンドから、実行するコマンドを選択する
ことを特徴とする請求項１から７の何れか一項に記載の電子機器。
【請求項９】
コンピュータに、
通信部を介して他機器と通信を行う通信ステップと、
前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理ステップと、
前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、およびプログラムに関する。
【背景技術】
【０００２】
近年、電子機器の多くはＣＰＵが搭載され、ＣＰＵで実行するプログラムによって様々な機能を実現している。ところが、様々な電子機器で同様の機能を実現するために機器毎に同じようなプログラムを搭載しなければならないという問題がある。このため、コントローラで一元的に処理を実行する技術などが考えられている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−０４４２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、他機器と同じ機能を利用する場合、自機器に他機器と同じアプリケーションソフトなどをインストールしたり、コントローラで一元的に処理を実行する必要があった。
【０００５】
本発明は、このような事情に鑑みてなされたもので、その目的は、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる電子機器、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、本発明は、他機器と通信を行う通信部と、前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理部と、前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択部と、を備えることを特徴とする電子機器である。
【０００７】
また、本発明は、コンピュータに、通信部を介して他機器と通信を行う通信ステップと、前記通信部を介して接続される他機器が備えている機能の処理を実行するコマンドを含む、複数のコマンドを管理するコマンド管理ステップと、前記複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、前記複数のコマンドのうち実行するコマンドを選択するコマンド選択ステップと、を実行させるためのプログラムである。
【発明の効果】
【０００８】
この発明によれば、特別な設定や専用の装置を用いることなく、他機器のコマンドを自機器のコマンドと同様に使用できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る電子機器の構成例を示す図である。
【図２】本実施形態に係る電子機器連携システムの動作の一例を示す図である。
【図３】本実施形態に係る電子機器連携システムの初期動作を示すフローチャートである。
【図４】本実施形態に係る電子カメラにおいてコマンドを実行する処理を示す図である。
【図５】電子カメラの構成例を示す図である。
【図６】本実施形態に係る電子機器連携システムのコマンド表示例を示す図である。
【図７】本実施形態に係る電子機器連携システムのコマンド実行例を示す図である。
【図８】本実施形態に係る電子機器連携システムにおいて撮影処理を行う動作の一例を示す図である。
【図９】本実施形態に係る電子カメラの制御プログラムによる処理の実行手順の一例を示すフローチャートである。
【図１０】コマンド実行処理の動作の一例を示すフローチャートである。
【図１１】コマンドリストに登録されているコマンドの機能グループ毎の分類の第１例を示す図である。
【図１２】コマンドの実行手順の一例を示す図である。
【図１３】リソース状態に基づいて、実行するコマンドの優先順位を決める方法の一例を説明する図である。
【図１４】コマンド選択処理を用いたコマンドの実行処理の第１例を示すフローチャートである。
【図１５】コマンドリストに登録されているコマンドの機能グループ毎の分類の第２例を示す図である。
【図１６】コマンドの実行手順およびコマンド選択の一例を示す図である。
【図１７】機能コマンドを用いたコマンドの実行手順の一例を示す図である。
【図１８】コマンド選択処理を用いたコマンドの実行処理の第２例を示すフローチャートである。
【図１９】コマンド選択処理を用いたコマンドの実行処理の第３例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施の形態について説明する。なお、本実施形態では、複数の様々な機能を有する電子機器（電子カメラ、携帯電話、プリンタなど）の間で互いの機能を利用するコマンド共有機能（以降、Ｃ機能と称する）が用いられる。
【００１１】
［電子機器１０の構成例］
図１は、本発明の一実施形態に係る電子機器１０の構成例を示す図である。図１において、電子機器１０は、ハードウェア１１と、ソフトウェア１２とで構成される。
【００１２】
ハードウェア１１は、電子機器１０本来の機能に対応するための電子機器用回路１３と、Ｃ機能に対応するための通信回路１４（通信部）とを有する。例えば、電子カメラの場合は、撮像回路、表示回路、記録回路などが電子機器用回路１３に対応する。なお、携帯電話などの場合は、携帯電話の通信網の基地局との間で通信するための電話機本来の通信回路とは別に、電子機器間で通信可能なＢｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、登録商標）などの規格に対応する通信回路やその通信回路を使用して通信可能な範囲にある同じ機能に対応する電子機器を探索するソフトウェアを備えたものがあるので、このような携帯電話の場合は通信回路１４を新たに設ける必要がなく、電子機器用回路１３に含まれている。ここで、通信回路１４が行う通信は、無線通信であってもよいし、有線通信であってもよい。
【００１３】
ソフトウェア１２は、ハードウェア１１の各部を制御して電子機器１０の動作を実現するＯＳ（オペレーションシステム）を基本とし、ＯＳ上で実行される制御プログラム１５（制御部）およびＣ機能プラットホーム１６を有する。
【００１４】
制御プログラム１５は、電子機器１０の操作に対応する本来の機能を実現するためのプログラムだけでなく、本実施形態の特徴であるＣ機能により他機器に搭載された機能を利用するプログラムを有する。例えば、制御プログラム１５は、後述のコマンド共有部１８において管理されている複数のコマンドのうち選択されたコマンドを、設定されたコマンドの実行順序で実行させる処理を制御するプログラムを有する。なお、自機器の機能および他機器の機能或いは両方を組み合わせた機能のいずれの場合のプログラムであっても、Ｃ機能プラットホーム１６（コマンド処理部３０）に対してコマンド（或いはコマンド実行するタイミングを与えるイベント）を発行して実行結果を得る動作は同じであり、制御プログラム１５側で自機器の機能であるか他機器の機能であるかを意識する必要はない。
【００１５】
Ｃ機能プラットホーム１６は、コマンド共有部１８（コマンド管理部）と、通信処理部１９、コマンド処理部３０と、とを有する。
【００１６】
コマンド共有部１８は、自機器または他機器で実行可能なコマンドをコマンドリスト２０として管理する。例えば、コマンド共有部１８は、他機器が備えている機能の処理を実行するコマンドである外部コマンドを含む複数のコマンドを管理する。なお、コマンドリスト２０に登録されるコマンドには、コマンド種別やコマンド機能名、パラメータなどコマンドに関係する様々な情報が含まれている。但し、コマンドリスト２０はコマンドのリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。また、コマンドリスト２０には、予め自機器で実行可能な内部コマンドのリストが登録されているが、通信処理部１９が通信回路１４で接続される他機器から取得する外部コマンドが適宜追加される。ここで、コマンドリスト２０に登録されている外部コマンドの実行先である他機器との通信が通信回路１４上で切断されたことを通信処理部１９で検出した場合は、コマンドリスト２０に登録されている当該機器のコマンドを削除する。なお、コマンド共有部１８が管理しているコマンドリスト２０は、内部コマンドと外部コマンドとが含まれている状態以外に、内部コマンドのみが含まれている状態、または外部コマンドのみが含まれている状態であってもよい。また、コマンド共有部１８が管理しているコマンドリスト２０は、少なくとも１つのコマンドが含まれている状態であってもよい。
【００１７】
通信処理部１９は、通信回路１４を介して予め決められた所定のプロトコルによる通信を確立し、機器情報、コマンドリスト、イベントなどの送受信、或いはコマンドの送信や実行結果の受信などを行う。
【００１８】
コマンド処理部３０は、コマンド共有部１８が管理するコマンドを実行するとともに、実行することにより得られた実行結果を取得する。具体的には、コマンド処理部３０は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から送られるコマンドが内部コマンド（自機器で実行するコマンド）であるか外部コマンド（他機器で実行するコマンド）であるかを判別する。そして、コマンド処理部３０は、制御プログラム１５から送られるコマンドが内部コマンドである場合には、自機器において内部コマンドに対応する機能の処理を実行して、その実行結果を制御プログラム１５側に返す処理を行う。
【００１９】
また、コマンド処理部３０は、制御プログラム１５から送られるコマンドが外部コマンドである場合には、外部コマンドを通信処理部１９からハードウェア１１の通信回路１４を介して接続される他機器に送信する。そして、コマンド処理部３０は、通信回路１４および通信処理部１９を介して、他機器において外部コマンドを実行することにより得られた実行結果を受信し、これを制御プログラム１５側に返す処理を行う。
【００２０】
例えば、コマンド処理部３０は、制御プログラム１５が制御するコマンドの実行順序に従って、外部コマンドを通信回路１４（および通信処理部１９）を介して他機器に送信するとともに、他機器が外部コマンドを実行することにより得られた実行結果である実行結果を取得する。なお、コマンド処理部３０は、他機器から外部コマンド（すなわち自機器で実行するコマンド）を受信した場合、受信した外部コマンドを自機器において実行するとともに、実行することにより得られた実行結果を、他機器に対して送信する。
【００２１】
また、コマンド処理部３０は、情報取得部３１と、コマンド選択部３２（選択部）と、条件設定部３３と、を備えている。
情報取得部３１は、自機器または他機器の性能を示す情報を取得する。なお、情報取得部３１は、他機器の性能を示す情報を、通信回路１４を介して接続される他機器と通信することにより取得する。例えば、情報取得部３１は、性能を示す情報を要求するコマンドを他機器に対して送信するとともに、他機器が応答する性能を示す情報を受信することにより、他機器の性能を示す情報を取得する。
【００２２】
ここで、性能を示す情報とは、例えば、時間の経過にともなって変化する性能を示す情報（リソース状態（例えばＣＰＵ使用率、実行タスク数、バッテリ残容量等）を示す情報）である。また、性能を示す情報とは、例えば、各機器が備えている機能に応じて予め設定されている性能を示す情報（機能毎に予め設定されている処理速度、処理の正確さや精密さ、等の性能を示す情報）である。なお、性能を示す情報は、要求性能を満たすか否かを示す情報であってもよい。例えば、性能を示す情報は、自機器または他機器が実行する処理が要求性能を満たすか否か（処理時間５００ｍｓｅｃ以内の性能を満たすか否か、バッテリ持続時間６０分以上の性能を満たすか否か、等）を示す情報であってもよい。
【００２３】
コマンド選択部３２は、コマンド共有部１８が管理している複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、この複数のコマンドのうち実行するコマンドを選択する。例えば、コマンド選択部３２は、制御プログラム１５の制御により実行されるコマンドの機能と同じような機能を実行させる複数のコマンドがコマンド共有部１８に管理されている場合、複数のコマンドそれぞれの処理が実行される機器の性能を示す情報に基づいて、この同じ機能を実行させる複数のコマンドから、実行するコマンドを選択する。
【００２４】
条件設定部３３は、自機器または他機器における複数の性能を示す情報の優先条件を設定する。例えば、条件設定部３３は、複数の機器の性能を示す情報（処理速度、処理の正確さや精密さ、等）の優先条件として、「処理速度を優先」または「処理の正確さや精密さを優先」等の優先条件を設定する。ここで、条件設定部３３は、ユーザによって入力された条件、予め設定されている条件、または処理条件（例えば、電子機器１０が電子カメラの場合の撮影被写体条件等）に基づいて、上述の優先条件を設定する。そして、コマンド選択部３２は、例えば、条件設定部３３により設定された優先条件と、各機器の性能を示す情報とに基づいて、上述の同じ機能を実行させる複数のコマンドから、実行するコマンドを選択する。なお、このような、コマンドの選択処理について詳しくは後述する。
【００２５】
このように、本実施形態に係る電子機器１０は構成され、複数の電子機器１０がコマンドを共有して互いの機能を利用できるようになっている。
【００２６】
［電子機器連携システム１００の動作例］
次に、電子機器１０として、Ｃ機能に対応するハードウェア１１およびソフトウェア１２を備えた電子カメラ１０１および携帯電話１０２を用いる場合の電子機器連携システム１００の基本動作について説明する。
【００２７】
図２は、電子機器連携システム１００の動作の一例を示す図である。
図２において、電子カメラ１０１は撮影コマンド１５１を有し、携帯電話１０２は電子メールコマンド１６１と、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）コマンド１６２とを有する。撮影コマンド１５１は、電子カメラ１０１の撮影を行うコマンドである。電子メールコマンド１６１は、電子メールを送受信するコマンドである。ＧＰＳコマンド１６２は、緯度、経度などの位置情報を取得するコマンドである。
【００２８】
そして、電子カメラ１０１と携帯電話１０２のそれぞれのコマンド共有部１８は、通信処理部１９による通信確立（Ｓ１０１）の後、互いの機器情報とコマンドリスト２０（図２では、コマンドリスト１３１ａ、コマンドリスト１３２ａに対応）を送受信する。例えば電子カメラ１０１は、機器情報として自機器がカメラであること、実行可能なコマンドリスト１３１ａとして撮影コマンド１５１を有すること、などを携帯電話１０２に送信する（Ｓ１０２）。逆に、携帯電話１０２は、機器情報として自機器が携帯電話であること、実行可能なコマンドリスト１３２ａとして電子メールコマンド１６１と、ＧＰＳコマンド１６２とを有すること、などを電子カメラ１０１に送信する（Ｓ１０３）。
【００２９】
これにより、電子カメラ１０１は、自機器の撮影コマンド１５１と、携帯電話１０２の電子メールコマンド１６１と、ＧＰＳコマンド１６２とを含むコマンドリスト１３１ｂを持つことができる。同様に、携帯電話１０２は、自機器の電子メールコマンド１６１およびＧＰＳコマンド１６２と、電子カメラ１０１の撮影コマンド１５１とを含むコマンドリスト１３１ｂを持つことができる。なお、送受信するのはコマンドリストであって、コマンドを実行するプログラム自体はそれぞれの電子機器にある。
【００３０】
電子カメラ１０１と携帯電話１０２のそれぞれのコマンド処理部３０は、コマンド共有部１８が保持するコマンドリスト２０の中のコマンドを実行する。例えば電子カメラ１０１はコマンドリスト１３１ａの撮影コマンド１５１を実行することができ、携帯電話１０２はコマンドリスト１３２ａの電子メールコマンド１６１やＧＰＳコマンド１６２を実行することができる。ここで、コマンドリスト１３１ａおよびコマンドリスト１３２ａは、電子カメラ１０１および携帯電話１０２のそれぞれが本来備えているコマンド（内部コマンド）である。さらに、本実施形態に係る電子機器連携システム１００では、通信確立後に送受信した他機器のコマンド（外部コマンド）を使用することができる。
【００３１】
例えば図２では、電子カメラ１０１が位置情報を取得したい場合、ＧＰＳコマンド１６２を携帯電話１０２に送信し（Ｓ１０４）、携帯電話１０２でＧＰＳコマンド１６２を実行して取得した位置情報（緯度経度など）を実行結果とするコマンド応答を電子カメラ１０１に送信する（Ｓ１０５）。
【００３２】
このようにして、電子カメラ１０１は、ＧＰＳ機能を搭載していなくてもＧＰＳによる位置情報を取得することができ、例えば撮影画像のヘッダ情報に位置情報を付加して保存するような新たな機能を容易に実現することができる。
【００３３】
図３は、本実施形態に係る電子機器連携システム１００において、電子機器の電源を投入してからコマンドリストを取得するまでの処理（初期動作）を示すフローチャートである。
【００３４】
（ステップＳ１５１）電子機器１０の電源が投入されると、Ｃ機能プラットホーム１６の通信処理部１９は通信回路１４を起動する。
【００３５】
（ステップＳ１５２）通信回路１４によって通信可能な範囲にある他の電子機器を探索する。なお、このような機能は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）などの規格で決められており、通信可能な範囲にある電子機器を見つけることができる。
【００３６】
（ステップＳ１５３）通信処理部１９は、検出した電子機器がＣ機能に対応する機器であるか否かの判別を行い、Ｃ機能に対応しない場合はステップＳ１５２に戻って電子機器の探索を継続する。そして、Ｃ機能に対応する場合はステップＳ１５４に進む。なお、Ｃ機能に対応しているか否かの判別は、例えば通信確立時に送受信する制御データにＣ機能対応有を示す独自の情報を付加することにより実現できる。
【００３７】
（ステップＳ１５４）機器探索で見つかったＣ機能に対応する他機器に自機器の機器情報を送信する。
【００３８】
（ステップＳ１５５）機器探索で見つかったＣ機能に対応する他機器から機器情報を受信する。
【００３９】
（ステップＳ１５６）自機器が保持するコマンドリストを他機器に送信する。
【００４０】
（ステップＳ１５７）他機器が保持するコマンドリストを他機器から受信する。
【００４１】
（ステップＳ１５８）他機器から受信したコマンドリストに登録されているコマンドを自機器が保持するコマンドリストに追加する。
【００４２】
このようにして、本実施形態に係る電子機器連携システム１００では、他機器との間で実行可能なコマンドリストを送受信することによって、他機器のコマンドを自機器のコマンドと同じように実行することができる。しかも、コマンドの実行自体は当該コマンドを有する機器上で行うので、従来のようにコマンドを実行するためのソフトウェアやドライバプログラムをインストールする必要がなく、ＯＳの種類にも依存しない。
【００４３】
図４は、本実施形態に係る電子機器連携システム１００に対応する電子カメラ１０１においてコマンドを実行する処理を示す図である。図４（ａ）は、電子カメラ１０１で撮影した画像に対して画像処理Ａを施してメモリカードなどに保存する処理例を示している。ここで、画像処理コマンドＡは電子カメラ１０１では実行できない外部コマンドなので、画像処理プログラムＡを有する画像処理サーバ１０４に画像処理コマンドＡと画像データを送信して画像処理サーバ１０４で画像処理Ａを施し、処理後の画像データを電子カメラ１０１に返信する。そして、電子カメラ１０１は、画像処理サーバ１０４から受信した画像処理Ａが施された画像データを撮影画像としてメモリカードなどに保存する。
【００４４】
さらに、図４（ｂ）は、電子カメラ１０１で撮影した画像に対して画像処理Ｂを施してメモリカードなどに保存する処理の流れを示している。ここで、画像処理コマンドＢは電子カメラ１０１で実行可能な内部コマンドなので、自機器内の制御プログラムに画像処理コマンドＢと画像データを送って画像処理Ｂを施し、処理後の画像データを受け取ってメモリカードなどに保存する。
【００４５】
このように、本実施形態に係る電子機器連携システム１００における電子カメラ１０１は、外部コマンドおよび内部コマンドの区別なく、同じようにコマンドを発行して処理を行うことができる。
【００４６】
［機器情報］
次に、機器情報について説明する。図２で説明したように、本実施形態に係る電子機器連携システム１００に対応する電子機器１０は、通信確立時に機器情報を送受信する。この機器情報には、例えば以下のような情報が含まれる。
・国ＩＤ：各国毎に決められた固有ＩＤ、或いは国名でもよい。例えばＪＡＰＡＮなど。・メーカＩＤ：メーカ毎に決められた固有ＩＤ、或いはメーカ名でもよい。例えばＡＢＣＤＥ会社など。
・機器カテゴリＩＤ：機器種別毎に決められたカテゴリを示す固有ＩＤ、或いは機器名でもよい。例えば電子カメラ、携帯電話、プリンタなど。
・機器ＩＤ：機器毎に決められた固有ＩＤで製造番号やシリアル番号など。
・所有者ＩＤ：機器の所有者毎に予め決められた固有ＩＤ、或いは所有者名や住所、電話番号などであってもよい。
【００４７】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に上記のような機器情報を送受信する。これにより、例えば特定国の機器、同一メーカの機器、同じカテゴリの機器、同じ所有者の機器などの特定機器でしかコマンドを利用できないようにすることができる。
【００４８】
［コマンド］
次に、コマンドに含まれる情報について説明する。図２で説明したように、コマンドには自機器で実行する内部コマンドと、他機器で実行する外部コマンドとがあり、いずれのコマンドにも以下のような情報が含まれる。
・コマンド種別：単体で実行するコマンド、バッチ処理コマンドなど。
・実行可能な機器：例えば電子カメラ、携帯電話などの機器種別や個別の機器ＩＤなど。
（なお、機器種別や機器ＩＤは、通信確立時に送受信される機器情報に含まれる）
・コマンド機能名：例えば撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など。
・コマンドＩＤ：コマンド毎に予め決められた固有ＩＤ、或いはコマンド名。例えば撮影コマンド、印刷コマンドなど。
・パラメータ：コマンドで参照するパラメータ。例えば撮影コマンドであればシャッタ速度や絞り値或いは撮影モードの選択値（夜景モードなど）。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・コマンド実行結果：コマンドの実行によって得られる結果で、数値や画像データなどの実行結果である。例えばＧＰＳコマンドであれば緯度経度などの数値、画像処理であれば処理後の画像データなど。
・アイコン：コマンドを画面に表示する場合に、コマンドを判別し易いようするための画像。例えば電子メールコマンドであれば封書画像のアイコンなど。
・チュートリアル：コマンドの使い方や機能説明。いわゆるＨＥＬＰ情報に相当する。
・コマンドで使用する別のコマンドの情報：バッチ処理などで別のコマンドの実行結果を利用するコマンドなど。例えば現在位置の住所を求める住所コマンドを設けた場合、住所コマンドの中でＧＰＳコマンドを実行して、ＧＰＳコマンドで得られる緯度経度の数値から地図上の位置を検索して住所を求める、など。
・コマンドの性能情報：処理速度、処理の正確さや精密さ、等の性能を示す情報。
・作者情報：コマンド作成者のＩＤや名称など。
【００４９】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に上記のような情報を含むコマンドリストを送受信する。これにより、例えばコマンドのパラメータや使い方がわかるので、初めてのコマンドであっても動作設定を簡単に行うことができ、所望の実行結果を得ることができる。
【００５０】
ここで、様々な電子機器におけるコマンド例を以下に示す。
・電子機器が携帯電話の場合
「ＧＰＳコマンド」：ＧＰＳの測位データに基づく緯度経度などの位置情報の提供。
「簡易位置情報取得コマンド」：携帯電話通信網の最寄りの基地局の場所に基づく位置情報の提供。
「メール送信コマンド」：電子メールの送信。
「超解像画像処理コマンド」：高解像度化を行う画像処理。
「音声録音コマンド」：マイクロホンで音声を録音。
・電子機器が電子カメラの場合
「静止画ＡＵＴＯ撮影コマンド」：自動露出、自動焦点で静止画撮影。
「高速シャッタ撮影コマンド」：高速シャッタで画像を撮影。
「ボケ優先撮影コマンド」：ボケのある被写界深度の浅い画像を撮影。
「動画撮影コマンド」：動画を撮影。
「画像処理コマンド」：画質調整（ホワイトバランス調整、コントラスト調整、等）を行う画像処理。
「顔検出処理コマンド」：画像から顔を検出する処理。
「付加情報登録コマンド」：画像データにファイル名やヘッダ情報等の付加情報を登録。或いは、画像データに対応付けられた別のデータファイルに付加情報を登録。
「保存コマンド」：記憶媒体（メモリカード）への保存。
・電子機器が画像処理サーバの場合
「画像処理コマンド」：画質調整（ホワイトバランス調整、コントラスト調整、等）を行う画像処理（例えば電子カメラが備えている画像処理機能に対して高機能な処理）。
「顔認識処理コマンド」：画像から顔を検出する処理とともに、特定の個人の顔を認識して検出する処理。
・電子機器がプリンタの場合
「写真印刷Ｌ版」：Ｌ判で印刷。
「写真印刷Ａ４」：Ａ４で印刷。
・電子機器がＦＡＸの場合
「画像送信」：画像データを送信。
「データ受信」：画像データを受信。
・電子機器がテレビの場合
「画像表示」：画像データを画面に表示。
「チャネル選択」：放送受信するチャネル選択。
・電子機器がビデオの場合
「静止画録画」：静止画像を記録。
「動画録画」：動画像を記録。
このように、本実施形態に係る電子機器連携システム１００では、他機器のコマンドを自機器のコマンドと同じように実行することができ、自機器にはない他機器の機能を利用できる。
【００５１】
［イベント］
次に、イベントに含まれる情報について説明する。図２では、発行したコマンドを自機器または他機器で実行して実行結果を得る例を示したが、コマンドを実行するタイミングを与えることもできる。例えば図２において、携帯電話１０２側から電子カメラ１０１の撮影コマンド１５１を利用する場合、例えば電子カメラ１０１のシャッターボタンが押下された時に撮影を行うなど、撮影を行うタイミングを指示しなければならない。なお、携帯電話１０２側から撮影コマンド１５１を発行した時に直ぐに撮影を行うような使い方の場合は、シャッターボタンの押下時というイベントを指示する必要はない。
【００５２】
以下にイベントに含まれる情報の一例を示す。
・イベント種別：オペレーション、処理割り込みなどの制御情報。例えばシャッターボタン押下はオペレーション、電子メール受信や予め設定した時刻などは処理割り込み。
・イベントが発生した機器ＩＤ：機器情報で説明した機器ＩＤ。例えば、機器ＩＤ：カメラなど。
・イベント名：イベントの名称。例えばタイマー割り込みやシャッターボタン押下、顔認識、或いは電源オフなど。
・イベントＩＤ：イベント名に対応するＩＤ。例えばシャッターボタン押下の場合はＩＤ＝ＲＢ＿ＤＯＷＮなど。なお、実際にはこのイベントＩＤが送受信される。
・パラメータ：イベントで参照するパラメータ。例えばコマンドを実行する時刻など。なお、選択可能な数値範囲や全ての選択値の情報も含まれる。
・アイコン：コマンドリストを表示する場合のアイコン画像。
・チュートリアル：イベントの使い方や機能説明。いわゆるＨＥＬＰ情報に相当する。
・このイベントをトリガーとして実行するコマンド情報：例えばイベントがシャッターボタン押下であれば撮影コマンドなど。
・作者情報：イベント作成者のＩＤや名称など。
【００５３】
このように、本実施形態に係る電子機器連携システム１００では、通信確立時に先に説明したコマンドリストに含めて上記のようなイベントも送受信される。これにより、例えばコマンドを実行するためのイベントを知ることができ、イベントのパラメータや使い方なども確認できる。
【００５４】
ここで、様々な電子機器におけるイベント例を以下に示す。
・電子機器が携帯電話の場合
「電話着信」「メール受信」「キーボード操作」「十字キー操作」など。
・電子機器が電子カメラの場合
「シャッターボタン押下」「ダイヤル操作」「静止画撮影」「ＳＤカード挿入」など。
・電子機器がプリンタの場合
「パネル操作」「ＳＤカード挿入」「インク切れ」など。
・電子機器がテレビの場合
「チャンネル操作」「リモコン操作」など。
・電子機器がビデオの場合
「再生ボタン押下」「早送りボタン押下」など。
【００５５】
このように、本実施形態に係る電子機器連携システム１００では、他機器のコマンドや自機器のコマンドを実行するためのイベントも機器間で共有する。
【００５６】
［電子カメラ１０１の構成例］
図５は、本実施形態に係る電子機器１０が電子カメラ１０１である場合の構成例を示す図である。
【００５７】
電子カメラ１０１は、光学系２０１と、撮像部２０２と、バッファ２０３と、制御部２０４と、操作部２０５と、表示部２０６と、メモリカードＩＦ（インターフェース）２０７、メモリ２０８と、通信部２０９とを備えている。
【００５８】
図５において、光学系２０１は、被写体像を撮像部２０２の受光面に結像する。ここで、光学系２０１は、ズームレンズやフォーカスレンズなどの複数枚のレンズおよびレンズ駆動部や絞り機構などを有し、制御部２０４によって、ズームレンズ位置、フォーカスレンズ位置、絞り値などが制御される。
【００５９】
撮像部２０２は、例えばＣＭＯＳ型固体撮像素子およびＡ／Ｄ変換器などを有し、固体撮像素子の受光面に結像された被写体像を受光量に応じて電気信号に変換し、さらにＡ／Ｄ変換後の画像データをバッファ２０３に出力する。
【００６０】
バッファ２０３は、例えば揮発性の高速メモリで構成される。バッファ２０３は、撮像部２０２が出力する画像データを一時的に記憶するだけでなく、制御部２０４が画像処理を行う時のバッファメモリとしても使用される。或いは、表示部２０６に画像を表示する時の表示メモリとしても使用される。
【００６１】
制御部２０４は、例えば内部に記憶されたプログラム（例えば図１の制御プログラム１５）の制御に従って動作するＣＰＵで構成される。制御部２０４は電子カメラ１０１全体の動作を制御し、例えば操作部２０５のモード選択ダイヤル２６３で電子カメラ１０１の撮影モードを選択したり、シャッターボタン２６２の押下時に光学系２０１のフォーカスレンズ制御や絞り制御を行って撮像部２０２のメカニカルシャッタまたは電子シャッタを制御して、被写体画像を撮影する。そして、制御部２０４は、撮像部２０２から画像データを読み出し、バッファ２０３に取り込む制御を行う。さらに、制御部２０４は、バッファ２０３に取り込まれた画像データに対して所定の画像処理（ホワイトバランス処理，色補間処理，ガンマ補正処理，彩度強調処理，輪郭強調処理、或いはＪＰＥＧ規格などに準拠した画像圧縮処理）を施し、画像処理後の画像データ（例えばＪＰＥＧデータ）に所定のファイル名やヘッダ情報を付加情報として登録（付加）してメモリカード２０７ａに保存する。或いは、バッファ２０３に取り込まれた画像データを表示部２０６に撮影画像として表示する。
なお、この制御部２０４は、例えば図１に示すＣ機能プラットホーム１６および制御プログラム１５を含んで構成されている。この後の電子カメラ１０１の構成を用いた処理に関する説明において、図１に示すＣ機能プラットホーム１６が備える各部および制御プログラム１５と、図５に示す制御部２０４とのそれぞれの名称を適宜使用する。
【００６２】
操作部２０５は、電源ボタン２６１、シャッターボタン２６２、モード選択ダイヤル２６３、メニューボタン２６４、十字キー２６５などで構成される。ユーザは、これらの操作ボタンを操作して電子カメラ１０１を使用する。なお、操作部２０５による操作情報は制御部２０４に出力され、制御部２０４は操作部２０５から入力する操作情報に応じて電子カメラ１０１の動作を制御する。例えばメニューボタン２６４を押下すると、制御部２０４は電子カメラ１０１の機能を選択するメニュー画面を表示部２０６に表示する。そして、十字キー２６５を操作してメニュー画面の操作を行う。特に、本実施形態に係る電子カメラ１０１では、メニューボタン２６４を押下すると図６に示すようなコマンドリストが表示され、十字キー２６５で選択することにより他機器の機能を利用することができる。或いは、これらのコマンドを組み合わせることによって新たなアプリケーション機能を実現できる。
【００６３】
図７は、電子機器連携システム１００のコマンド実行例を示す図である。
例えば、図７に示すように、機器２のコマンドリストには、自機器のコマンド（内部コマンド）として、機能１から機能３のコマンドが登録されており、他機器（機器２）のコマンド（外部コマンド）として、機能４および機能５のコマンドが登録されている。これにより、機器２は、機能１から機能５の５つのコマンドを使用することができる。そして、機器２は、これらのコマンドを組み合わせたアプリケーションプログラムを実行することができる。図７の例では、機器２は、コマンドの実行順序１６０として、機器２の機能１のコマンド、機器１の機能４のコマンド、機器１の機能５のコマンド、機器２の機能２のコマンド、機器２の機能３のコマンドの順に実行する。なお、これらのコマンドを組み合わせたアプリケーションプログラムは、内部コマンドと外部コマンドとを組み合わせたものに限られるものではなく、例えば、内部コマンドのみ、または外部コマンドのみを組み合わせたアプリケーションプログラムとしてもよい。
【００６４】
表示部２０６は、液晶モニタなどで構成される。そして、制御部２０４によって、撮影画像や設定メニューなどが表示される。
【００６５】
メモリカードＩＦ２０７は、電子カメラ１０１にメモリカード２０７ａを接続するためのインターフェースである。制御部２０４はメモリカードＩＦ２０７を介してメモリカード２０７ａに画像データを読み書きする。
【００６６】
メモリ２０８は、例えばフラッシュメモリなどの不揮発性の半導体メモリで構成される。メモリ２０８には、電子カメラ１０１に設定された撮影モードや露出情報、フォーカス情報などのパラメータが記憶される。特に本実施形態では、自機器や他機器のコマンドリスト、機器情報、イベントなどが記憶される。
【００６７】
通信部２０９は、図１の通信回路１４に対応し、電子機器間で通信可能なＢｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）などの規格に対応する。
【００６８】
以上が電子カメラ１０１の構成および基本動作である。
【００６９】
［電子機器連携システム１００の動作例］
次に、電子カメラ１０１を用いた電子機器連携システム１００の動作例について説明する。なお、動作の基本的な流れは以下の通りである。
（１）機器間で通信を確立する。
（２）自機器の情報を相手に送信する。
（３）現在の自機器にて実行可能なコマンドリストなどを相手機器に送信する。
（４）相手機器からも機器情報とコマンドリストを受け取る。
（５）相手機器からコマンドを受信した場合はそのコマンドを実行し、実行結果を返信する。
（６）必要であれば自機器から相手機器にコマンドを送信し、実行結果を受け取る。
【００７０】
図８は、Ｃ機能に対応する電子機器１０として、電子カメラ１０１、および携帯電話１０２を利用して撮影処理を行う場合の電子機器連携システム１００の動作の一例である。なお、図２と同符号のブロックおよび処理は同じものを示す。
【００７１】
図８において、電子カメラ１０１と、携帯電話１０２との間で通信確立（Ｓ１０１）後、図２を用いて説明したように、互いの機器情報や実行可能なコマンドを送受信（Ｓ１０２、Ｓ１０３）する。この図８に示すコマンドリストは図２のコマンドリスト１３１ａおよびコマンドリスト１３２ａに代えて、コマンドリスト１３１ｃおよびコマンドリスト１３２ｃである。
【００７２】
電子カメラ１０１は、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４とを有する。また、携帯電話１０２は電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とを有する。電子カメラ１０１と携帯電話１０２のそれぞれのコマンド共有部１８は、互いの機器情報とコマンドを送受信する。
【００７３】
これにより、電子カメラ１０１が有するコマンドリスト１３１ｃには、電子カメラ１０１が有するコマンドに加えて、電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とが追加される。一方、携帯電話１０２が有するコマンドリスト１３２ｃには、携帯電話１０２が有するコマンドに加えて、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４とが追加される。
【００７４】
すなわち、電子カメラ１０１のコマンドリスト１３１ｃおよび携帯電話１０２のコマンドリスト１３２ｃのそれぞれには、撮影コマンド１５１と、画像処理コマンド１５２と、付加情報登録コマンド１５３と、保存コマンド１５４と、電子メールコマンド１６１と、ＧＰＳコマンド１６２と、簡易位置情報取得コマンド１６３とが保持されている。
【００７５】
［コマンドの実行例］
次に、図８において、電子カメラ１０１がＧＰＳコマンド１６２を実行する場合は、ＧＰＳコマンド１６２を携帯電話１０２に送信する（Ｓ１０７）。携帯電話１０２は、ＧＰＳコマンド１６２を実行して緯度、経度などの位置情報を取得し、取得した位置情報を示すコマンド応答を電子カメラ１０１に送信する（Ｓ１０８）。そして、電子カメラ１０１は、携帯電話１０２から応答コマンドを受信することにより、位置情報を取得する。
【００７６】
このようにして、電子カメラ１０１は、携帯電話１０２から現在の位置情報を取得することができる。すなわち、例えばＧＰＳ機能をもたない電子カメラ１０１であっても、ＧＰＳ機能が自機能にあるかのように、ＧＰＳ機能を有する電子カメラと同様に位置情報を取得することができる。
【００７７】
[制御プログラムによる処理の実行手順の例]
次に、制御プログラム１５による処理の実行手順の一例について説明する。ここでは、図８に示す、電子カメラ１０１と、携帯電話１０２との２つの電子機器を連携して動作させる電子機器連携システム１００を例として、この電子機器連携システム１００において実行する処理の実行手順の一例について説明する。この例は、「観光地において電子カメラ１０１で撮影した画像に位置情報を付加してメモリカード２０７ａに保存する」という利用シーンを想定している。ここで、図８を用いて説明したように、電子カメラ１０１と、携帯電話１０２との２つの電子機器は機器情報やコマンドリストを互いに送受信して、同じコマンドリストを共有している状態にある。この場合の利用可能なコマンドは、例えば電子カメラ１０１の撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、および保存コマンド１５４と、携帯電話１０２の電子メールコマンド１６１、ＧＰＳコマンド１６２、簡易位置情報取得コマンド１６３とである。
【００７８】
図９は、制御プログラム１５による処理（アプリケーションプログラムＡとする）の実行手順の一例を示すフローチャートである。なお、アプリケーションプログラムＡの処理は、例えばコマンドリスト１３１ｃのコマンドを組み合わせてユーザが自由に作成することができる。例えば図６で説明したような各コマンドに対応するアイコンを処理順に並べることにより、様々なアプリケーション機能を実現できる。本実施形態では既に図９に示す処理順序のアプリケーションプログラムが作成されているものとして説明する。
以下、図９に示す制御プログラム１５に設定された実行手順の例を順に説明する。
【００７９】
（ステップＳ３０１：ＧＰＳコマンド１６２発行）制御部２０４は、コマンドリスト１３１ｃの中からＧＰＳコマンド１６２を、通信部２０９を介して携帯電話１０２に送信し、実行結果として位置情報を取得する。
【００８０】
（ステップＳ３０２：シャッターボタンイベント）制御部２０４は、シャッターボタン２６２が押下されたか否かを判別し、シャッターボタン２６２が押下されるまで待機する。そして、制御部２０４は、シャッターボタン２６２が押下されたことを検出した場合はステップＳ３０３に処理を進める。
【００８１】
（ステップＳ３０３：撮影コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から撮影コマンド１５１を発行し、実行結果として撮影画像を取得する。例えば、制御部２０４は、撮像部２０２に、光学系２０１を介して入射された被写体像による画像データを取得させ、バッファ２０３に出力させる。
【００８２】
（ステップＳ３０４：画像処理コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から画像処理コマンド１５２を発行し、取得した撮影画像に対して画像処理（例えば、ホワイトバランス調整、コントラスト調整、ＪＰＥＧ圧縮などの処理）を実行することにより画像データを生成する。
【００８３】
（ステップＳ３０５：付加情報登録コマンド発行）制御部２０４は、コマンドリスト１３１ｃの中から付加情報登録コマンド１５３を発行し、ステップＳ３０１において取得した位置情報（緯度経度情報、或いは地図データから住所情報に変換してもよい）を含む撮影時の設定情報や関連情報、またはファイル名を、ステップＳ３０４において生成した画像データに付加情報として登録する（付加する）。
【００８４】
（ステップＳ３０６；保存コマンド）制御部２０４は、保存コマンド１５４を発行して、ステップＳ３０５において付加情報を付加した画像データを、メモリカードＩＦ２０７を介してメモリカード２０７ａに保存する。
【００８５】
なお、発行される各コマンド（或いはイベント）は、自機器または他機器のＣ機能プラットホーム１６（電子カメラ１０１の場合はＣ機能プラットホーム２５１）のコマンド処理部３０に送られる。ここで、ＯＳは図６の制御部２０４に対応する。そして、コマンド処理部３０は、コマンド（内部コマンドまたは外部コマンド）を実行する機器にコマンドを発行し、実行結果を取得する。
【００８６】
なお、制御プログラム１５による処理は、図９に示すアプリケーションプログラムＡによる処理のような外部コマンドと内部コマンドとを組み合わせた処理に限られるものではなく、処理の内容に応じて、外部コマンドのみを組み合わせた処理としてもよいし、内部コマンドのみを組み合わせた処理としてもよい。
【００８７】
図１０は、コマンド実行処理の動作の一例を示すフローチャートである。この図１０を参照して、電子カメラ１０１と携帯電話１０２との２つの電子機器を連携して動作させる電子機器連携システム１００において、図９に示す制御プログラム１５による処理（アプリケーションプログラムＡ）の実行手順に従ってコマンドを実行した場合のコマンドの実行処理の一例について説明する。
【００８８】
まず、制御部２０４は、アプリケーションプログラムＡの実行手順に従ってＧＰＳコマンド１６２を実行する。具体的には、コマンド処理部３０は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から受け取ったＧＰＳコマンド１６２が携帯電話１０２（他機器）において実行する外部コマンドであることを判別して、ＧＰＳコマンド１６２を通信処理部１９から通信回路１４を介して接続される携帯電話１０２に送信する（ステップＳ２１）。
【００８９】
制御部２０４は、ＧＰＳコマンド１６２を実行したことに応じて、実行結果である位置情報を取得する。例えば、コマンド処理部３０は、ＧＰＳコマンド１６２を携帯電話１０２に送信したことに応じて、携帯電話１０２においてＧＰＳコマンド１６２が実行されて取得された位置情報を、携帯電話１０２からのコマンド応答により受信する。そして、コマンド処理部３０は、受信した位置情報を制御プログラム１５側に返す（ステップＳ２２）。
【００９０】
次に、制御部２０４は、ステップＳ２２においてＧＰＳコマンド１６２の実行結果を取得したか否か（ＧＰＳコマンド１６２の実行処理が正常に終了したか否か）を判定する（ステップＳ２３）。
【００９１】
ステップＳ２３において、ＧＰＳコマンド１６２の実行結果を取得していないと判定された場合、制御部２０４は、例えば処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了する。
なお、制御部２０４は、ステップＳ２３の処理において経過時間を監視して、実行結果を取得できない時間が所定の時間以上経過したか否かを検出することによりタイムアウト処理をするか否かを判定してもよい。例えば、制御部２０４は、処理の経過時間が所定の時間以上経過していない場合には、タイムアウト処理をしないでステップＳ２２に処理を戻し、タイムアウトするまで、ＧＰＳコマンド１６２の実行結果を受信（取得）する処理を継続してもよい。一方、制御部２０４は、処理の経過時間が所定の時間以上経過した場合には、タイムアウトにより処理を終了してもよい。例えば、制御部２０４は、タイムアウト処理として、処理エラーを示す表示を行うなどのエラー処理を実行して処理を終了してもよい。
【００９２】
一方、ステップＳ２３において、ＧＰＳコマンド１６２の実行結果を取得したと判定した場合、制御部２０４は、アプリケーションプログラムＡの実行手順に従った次のコマンドを選択（次のコマンドに移動）する（ステップＳ２４）。例えば、制御部２０４は、次にシャッターイベントの受付けを許可するとともに、シャッターイベントを受付けた場合に撮影コマンド１５１を選択する。
【００９３】
次に、制御部２０４は、ステップＳ２４において次のコマンドを選択できたか否か、すなわちアプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったか否かを判定する（ステップＳ２５）。この時点では、制御部２０４は、次のコマンドとして撮影コマンド１５１を選択するため、処理をステップＳ２１に戻し、撮影コマンド１５１を制御プログラム１５からコマンド処理部３０に送信する。ステップＳ２１において、コマンド処理部３０は、コマンド共有部１８のコマンドリスト２０を参照して、制御プログラム１５から受け取った撮影コマンド１５１が電子カメラ１０１（自機器）において実行する内部コマンドであることを判別して、撮影コマンド１５１を実行する。
【００９４】
そして、制御部２０４は、ステップＳ２１からＳ４０６の処理を、アプリケーションプログラムＡの実行手順に従って、撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、保存コマンド１５４、の順番にそれぞれ実行する。また、ステップＳ２５において、アプリケーションプログラムＡの実行手順に従って実行するコマンドが全て実行済み（コマンド終了）になったと判定された場合、制御部２０４は処理を終了する。
【００９５】
このように、本実施形態に係る電子機器連携システム１００では、電子カメラ１０１の制御部２０４が、制御プログラム１５に設定されたコマンドの実行手順に従って、外部コマンドを携帯電話１０２に送信することにより携帯電話１０２において実行するとともに、内部コマンドを電子カメラ１０１において実行することができる。そして、制御部２０４は、制御プログラム１５に設定されたコマンドの実行手順に従って実行された外部コマンドまたは内部コマンドの実行結果を取得した後に、次の手順のコマンドを実行することができる。
【００９６】
ところで、本実施形態に係る電子機器連携システム１００では、複数の機器のコマンドを共有して実行可能とする構成であるため、同じような機能の処理を実行するコマンドが複数共有されている場合がある。例えば、電子機器連携システム１００において、複数の携帯電話１０２を連携した場合、複数のＧＰＳコマンド１６２を実行可能なコマンドとして共有される。そして、電子機器連携システム１００において、共有したコマンドを他機器で実行する場合、その機能を実行する機器の状態が適切でない場合や、他の機器で同じような機能をより適した状態で実行可能な場合がある。
【００９７】
このように同じような機能の処理を実行する複数のコマンドが共有されている場合には、電子機器連携システム１００において、より適した機器でコマンドが実行されることが望ましい。そのため、電子機器連携システム１００において、同じような機能の処理を実行する複数のコマンドが共有されている場合、電子機器１０は、これら複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、目的とする機能の処理が最も適した性能の機器で実行されるようにコマンドを選択する。以下、複数のコマンドからコマンドを選択する処理（コマンド選択処理）について説明する。
【００９８】
[コマンド選択処理の説明]
コマンド処理部３０は、コマンド共有部１８が管理している複数のコマンドそれぞれに対応する、機能の処理が実行される機器の性能を示す情報に基づいて、これら複数のコマンドのうち実行するコマンドを選択する。
【００９９】
ここで、コマンド共有部１８は、コマンドリスト２０に登録されているコマンド（内部コマンドまたは外部コマンド）を、機能の種類毎に識別可能なように管理している。例えば、コマンド共有部１８は、コマンドリスト２０に登録されているコマンドを、機能グループ毎に分類して識別可能なように管理している。
【０１００】
図１１は、コマンドリスト２０に登録されているコマンドの機能グループ毎の分類を示す図である。この図は、電子カメラ１０１と、３台の携帯電話１０２（１０２Ａ、１０２Ｂ、１０２Ｃ）とがそれぞれ互いのコマンドを共有した際の、それぞれのコマンドの機能グループ毎の分類の一例を示している。この機能グループは、例えばコマンドに含まれるコマンド機能名（撮影機能、位置情報取得機能、プリンタ機能、画像処理機能、超解像度画像処理機能、顔検出機能など）に基づいて識別（分類）される。
【０１０１】
図１１に示す例では、撮影機能グループＧ１０１、位置情報取得機能グループＧ１０２、画質調整機能グループＧ１０３、顔検出機能グループＧ１０４、付加情報登録機能グループＧ１０５、および保存機能グループＧ１０６の何れかに識別されるコマンドが登録（共有）されている。複数のコマンドが登録されている機能グループは、撮影機能グループＧ１０１と、位置情報取得機能グループＧ１０２とである。同じ機能グループに含まれている複数のコマンドは、それぞれ互いに同等の機能であるか、または、機能の詳細が異なっていたとしても基本的な機能が同様である。
【０１０２】
撮影機能グループＧ１０１には、電子カメラ１０１が有する静止画撮影コマンドおよび動画撮影コマンドが含まれている。
【０１０３】
位置情報取得機能グループＧ１０２には、携帯電話１０２ＡのＧＰＳ（Ａ）機能の処理を実行するＧＰＳ（Ａ）コマンド、および簡易位置情報取得（Ａ）機能の処理を実行する簡易位置情報取得（Ａ）コマンドが含まれている。また、位置情報取得機能グループＧ１０２には、携帯電話１０２ＢのＧＰＳ（Ｂ）機能の処理を実行するＧＰＳ（Ｂ）コマンド、および簡易位置情報取得（Ｂ）機能の処理を実行する簡易位置情報取得（Ｂ）コマンドが含まれている。さらに、位置情報取得機能グループＧ１０２には、携帯電話１０２ＣのＧＰＳ（Ｃ）機能の処理を実行するＧＰＳ（Ｃ）コマンド、および簡易位置情報取得（Ｃ）機能の処理を実行する簡易位置情報取得（Ｃ）コマンドが含まれている。
【０１０４】
なお、機能グループは、コマンドに含まれるコマンドＩＤ（コマンド毎に予め決められた固有ＩＤ、或いはコマンド名）に基づいて、さらに詳細な機能毎に識別されてもよい。例えば、位置情報取得機能グループＧ１０２は、ＧＰＳ機能グループＧ１０２ａと簡易位置情報取得機能グループＧ１０２ｂとに分類（区別）されて識別されてもよい。また。撮影機能グループＧ１０１は、静止画撮影機能グループＧ１０１ａと動画撮影機能グループＧ１０１ｂとに分類（区別）されて識別されてもよい。
【０１０５】
図１２は、コマンドの実行手順の一例を示す図である。例えば、電子カメラ１０１が、図９に示すアプリケーションプログラムＡの実行手順に従ってコマンドを実行する場合、コマンド処理部３０は、図１２に示すような手順でコマンドを実行する。ここで、コマンド共有部１８には、ＧＰＳを利用して位置情報を取得するコマンド（ＧＰＳ機能グループＧ１０２ａに含まれるコマンド）が３つ（ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、ＧＰＳ（Ｃ）コマンド）含まれている。コマンド処理部３０のコマンド選択部３２は、この３つのコマンドそれぞれに対応する機能の処理が実行される機器の性能を示す情報に基づいて、３つのコマンドのうち実行するコマンドを選択する。
【０１０６】
ここで、機器の性能を示す情報とは、前述したように、例えば、機器のリソース状態を示す情報である。なお、機器の性能を示す情報は、機能に応じて予め設定されている性能を示す情報であってもよい。また、機器の性能を示す情報は、コマンドに対応する機能の処理が要求性能を満たすか否かを示す情報であってもよい。
【０１０７】
（コマンド選択処理の具体例）
続いて、図１２に示す処理において、コマンド選択部３２が、機器のリソース状態に基づいてコマンドを選択する処理について具体的に説明する。コマンド処理部３０がＧＰＳ機能により位置情報を取得するコマンド（ＧＰＳコマンド）を実行する場合、コマンド選択部３２は、３つのＧＰＳコマンド（ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、ＧＰＳ（Ｃ）コマンド）のうち実行するＧＰＳコマンドを、これら３つのＧＰＳコマンドがそれぞれ実行される機器のリソース状態に基づいて選択する。
【０１０８】
図１３は、リソース状態に基づいて、実行するコマンドの優先順位を決める方法の一例を説明する図である。この図は、ＣＰＵ使用率、実行タスク数、およびバッテリ残容量を機器のリソース状態として、実行するコマンドの優先順位を決める例である。
【０１０９】
図１３に示すように、ＧＰＳ（Ａ）コマンドを実行する携帯電話１０２Ａ、ＧＰＳ（Ｂ）コマンドを実行する携帯電話１０２Ｂ、およびＧＰＳ（Ｃ）コマンドを実行する携帯電話１０２Ｃ、それぞれのリソース状態は、以下のような状態である。
・携帯電話１０２Ａ：ＣＰＵ使用率「４０％」、実行タスク数「６」、バッテリ残容量「８０％」。
・携帯電話１０２Ｂ：ＣＰＵ使用率「３０％」、実行タスク数「２」、バッテリ残容量「６０％」。
・携帯電話１０２Ｃ：ＣＰＵ使用率「１０％」、実行タスク数「１」、バッテリ残容量「４０％」。
【０１１０】
上述の各リソース状態をスコア（点数）化して合計することにより、機器毎のスコアの合計に応じて、実行するコマンド（選択するコマンド）の優先順位を算出する（決める）ことができる。また、各リソース状態（ＣＰＵ使用率、実行タスク数、およびバッテリ残容量）に対する係数（重み付け）を変えることにより、何れのリソース状態を優先して、実行するコマンド（選択するコマンド）の優先順位を決めるかを変更することができる。
【０１１１】
例えば、処理時間が短いことを優先（処理速度優先）してコマンドを選択する場合、ＣＰＵ使用率および実行タスク数に対する係数を、バッテリ残容量に対する係数に対比して大きい係数とする。一方、長時間連続して使用可能なことを優先（バッテリ優先）してコマンドを選択する場合、バッテリ残容量に対する係数を、ＣＰＵ使用率および実行タスク数に対する係数に対比して大きい係数とする。
【０１１２】
図１３には、係数を全て「１」にした場合（条件：デフォルト）、ＣＰＵ使用率および実行タスク数に対する係数を「１．５」にし、且つバッテリ残容量に対する係数を「１」にした場合（条件：処理速度優先）、および、ＣＰＵ使用率および実行タスク数に対する係数を「１」にし、且つバッテリ残容量に対する係数を「２」にした場合（条件：バッテリ優先）のそれぞれにおいて、実行するコマンド（選択するコマンド）の優先順位の例を示している。なお、上述の係数を決める条件は、例えば、条件設定部３３により設定された優先条件である。
【０１１３】
図１３に示す例では、「条件：デフォルト」、「条件：処理速度優先」、および「条件：バッテリ優先」のそれぞれの優先条件において、各ＧＰＳコマンドに対応する機器のリソース状態のスコア、係数、スコア合計は、以下のようになる。
【０１１４】
・「条件：デフォルト」（処理速度とバッテリ残容量とに対する係数が同じ）
ＧＰＳ（Ａ）コマンド：ＣＰＵ使用率「スコア＝４、係数＝１」、実行タスク数「スコア＝６、係数＝１」、バッテリ残容量「スコア＝２、係数＝１」、スコア合計「４＋６＋２＝１２」。
ＧＰＳ（Ｂ）コマンド：ＣＰＵ使用率「スコア＝３、係数＝１」、実行タスク数「スコア＝２、係数＝１」、バッテリ残容量「スコア＝４、係数＝１」、スコア合計「３＋２＋４＝９」。
ＧＰＳ（Ｃ）コマンド：ＣＰＵ使用率「スコア＝１、係数＝１」、実行タスク数「スコア＝１、係数＝１」、バッテリ残容量「スコア＝６、係数＝１」、スコア合計「１＋１＋６＝８」。
よって、「条件：デフォルト」の場合の実行するコマンド（選択するコマンド）の優先順位は、スコア合計が低い順に、ＧＰＳ（Ｃ）コマンド（１位）、ＧＰＳ（Ｂ）コマンド（２位）、ＧＰＳ（Ａ）コマンド（３位）となる。すなわち、この優先条件では、携帯電話１０２Ｃで実行するＧＰＳ（Ｃ）コマンドが、実行するコマンド（選択するコマンド）として最も適している。これにより、コマンド選択部３２は、ＧＰＳ（Ｃ）コマンドを、実行するコマンドとして選択する。
【０１１５】
・「条件：処理速度優先」
ＧＰＳ（Ａ）コマンド：ＣＰＵ使用率「スコア＝４、係数＝１．５」、実行タスク数「スコア＝６、係数＝１．５」、バッテリ残容量「スコア＝２、係数＝１」、スコア合計「６＋９＋２＝１７」。
ＧＰＳ（Ｂ）コマンド：ＣＰＵ使用率「スコア＝３、係数＝１．５」、実行タスク数「スコア＝２、係数＝１．５」、バッテリ残容量「スコア＝４、係数＝１」、スコア合計「４．５＋３＋４＝１２（１１，５）」。
ＧＰＳ（Ｃ）コマンド：ＣＰＵ使用率「スコア＝１、係数＝１．５」、実行タスク数「スコア＝１、係数＝１．５」、バッテリ残容量「スコア＝６、係数＝１」、スコア合計「１．５＋１．５＋６＝９」。
よって、「条件：処理速度優先」の場合の実行するコマンド（選択するコマンド）の優先順位は、スコア合計が低い順に、ＧＰＳ（Ｃ）コマンド（１位）、ＧＰＳ（Ｂ）コマンド（２位）、ＧＰＳ（Ａ）コマンド（３位）となる。すなわち、この優先条件では、携帯電話１０２Ｃで実行するＧＰＳ（Ｃ）コマンドが、実行するコマンド（選択するコマンド）として最も適している。これにより、コマンド選択部３２は、ＧＰＳ（Ｃ）コマンドを、実行するコマンドとして選択する。
【０１１６】
・「条件：バッテリ優先」
ＧＰＳ（Ａ）コマンド：ＣＰＵ使用率「スコア＝４、係数＝１」、実行タスク数「スコア＝６、係数＝１」、バッテリ残容量「スコア＝２、係数＝２」、スコア合計「４＋６＋４＝１４」。
ＧＰＳ（Ｂ）コマンド：ＣＰＵ使用率「スコア＝３、係数＝１」、実行タスク数「スコア＝２、係数＝１」、バッテリ残容量「スコア＝４、係数＝２」、スコア合計「３＋２＋８＝１３」。
ＧＰＳ（Ｃ）コマンド：ＣＰＵ使用率「スコア＝１、係数＝１」、実行タスク数「スコア＝１、係数＝１」、バッテリ残容量「スコア＝６、係数＝２」、スコア合計「１＋１＋１２＝１４」。
よって、「条件：バッテリ優先」の場合の実行するコマンド（選択するコマンド）の優先順位は、スコア合計が低い順に、ＧＰＳ（Ｂ）コマンド（１位）、ＧＰＳ（Ａ）コマンド（２位）、ＧＰＳ（Ｃ）コマンド（３位）となる。すなわち、この優先条件では、携帯電話１０２Ｂで実行するＧＰＳ（Ｂ）コマンドが、実行するコマンド（選択するコマンド）として最も適している。これにより、コマンド選択部３２は、ＧＰＳ（Ｂ）コマンドを、実行するコマンドとして選択する。
なお、ＧＰＳ（Ａ）コマンドとＧＰＳ（Ｃ）コマンドとはスコア合計が同点のため、係数の大きいリソースの状態（バッテリ残容量）のスコアに基づいてＧＰＳ（Ａ）コマンドの優先順位を２位としている。すなわち、ＧＰＳ（Ａ）コマンドは、ＧＰＳ（Ｃ）コマンドに比較すると、実行するコマンドとして適している。
【０１１７】
このように、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドの中から実行するコマンドを選択する。例えば、図１３を用いて説明したように、電子カメラ１０１は、各機器（携帯電話１０２Ａ、１０２Ｂ、１０２Ｃ）のＣＰＵの使用率、実行タスク数、バッテリ残容量等のリソース状態を示す情報に基づいて、実行するＧＰＳコマンドを選択する。また、電子カメラ１０１は、各機器のリソース状態を示す情報と、設定された優先条件（何れのリソース状態を優先するか）とに基づいて、実行するＧＰＳコマンドを選択する。
【０１１８】
これにより、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち最も適した機器で処理が実行されるコマンドを選択することができる。
【０１１９】
なお、図１３では、ＣＰＵの使用率、実行タスク数、バッテリ残容量等のリソース状態のそれぞれをスコア化するとともに、それらのスコアを機器毎に合計した合計スコアに基づいて、選択するコマンドの優先順位を算出する処理の例を示したが、これに限られるものではない。例えば、選択するコマンドの優先順位を算出する処理として、ＣＰＵの使用率、実行タスク数、バッテリ残容量等のリソース状態のそれぞれをスコア化することなく、それぞれの数値に基づいて算出する処理としてもよい。
【０１２０】
また、選択するコマンドの優先順位を算出する処理として、優先条件に応じて係数（重み付け）を変更して算出する処理の例を示したが、優先条件に応じて定まるリソース状態のみを機器毎に比較して算出する処理としてもよい。例えば、処理速度優先を条件とした場合、選択するコマンドの優先順位を算出する処理として、ＣＰＵの使用率または実行タスク数のみに基づいて算出する処理としてもよい。また、バッテリ優先を条件とした場合、選択するコマンドの優先順位を算出する処理として、バッテリ残容量のみに基づいて算出する処理としてもよい。
【０１２１】
（コマンド選択処理を用いたコマンドの実行処理の動作）
次に、電子機器連携システム１００におけるコマンド選択処理を用いたコマンドの実行処理の動作について説明する。
【０１２２】
図１４は、コマンド選択処理を用いたコマンドの実行処理の第１例を示すフローチャートである。この図１４は、図１０を用いて説明したコマンドの実行処理において、各機器のリソース状態に基づいて、複数のコマンドから実行するコマンドを選択して実行する例である。
【０１２３】
また、この図１４では、図１２に示すように、電子カメラ１０１が、携帯電話１０２ＡのＧＰＳ（Ａ）コマンド、携帯電話１０２ＢのＧＰＳ（Ｂ）コマンド、および携帯電話１０２ＣのＧＰＳ（Ｃ）コマンドを、それぞれ実行可能なように共有している状態とする。ここで、図１０を用いて説明したＧＰＳコマンド１６２が、図１２に示すＧＰＳ（Ａ）コマンドに対応する。なお、図１４において図１０の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１２４】
まず、制御部２０４（コマンド処理部３０）は、アプリケーションプログラムＡの実行手順に従ってＧＰＳ（Ａ）コマンドを実行する前に、リソース状態を示す情報を取得するコマンド（リソース状態取得コマンド）を実行する。例えば、コマンド処理部３０は、ＧＰＳ（Ａ）コマンドを実行する携帯電話１０２Ａと、ＧＰＳ（Ａ）コマンドと同じような機能（ＧＰＳを利用して位置を取得する機能）の処理を実行するコマンド（同じ機能の種類に識別されるコマンド、同じＧＰＳ機能グループＧ１０２ａに含まれるコマンド）であるＧＰＳ（Ｂ）コマンドおよびＧＰＳ（Ｃ）コマンドをそれぞれ実行する携帯電話１０２Ｂおよび携帯電話１０２Ｃと、のリソース状態を示す情報を取得するコマンド（リソース状態取得コマンド）を実行する（ステップＳ１１）。
【０１２５】
具体的には、コマンド処理部３０は、コマンド共有部１８を参照して、ＧＰＳを利用して位置を取得するコマンド（ＧＰＳ機能グループＧ１０２ａに含まれるコマンド）が、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドの３つあることを検出（検索）する。情報取得部３１は、コマンド処理部３０が検出（検索）した結果に基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドそれぞれを実行する携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃに対して、リソース状態取得コマンドを、通信部２０９を介して送信する。
【０１２６】
次に、制御部２０４（コマンド処理部３０）は、リソース状態取得コマンドを実行することに応じて、携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃのそれぞれから、リソース状態を示す情報を取得する。例えば、情報取得部３１は、リソース状態取得コマンドを送信することに応じて、携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃのそれぞれからリソース状態を示す情報を、通信部２０９を介して受信する（ステップＳ１２）。
【０１２７】
次に、コマンド選択部３２は、条件設定部３３により設定された優先条件と、ステップＳ１２において取得したリソース状態を示す情報とに基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドのうち、実行するコマンドを選択する。例えば、コマンド選択部３２は、図１３に示すように、条件設定部３３により設定された優先条件（「条件：デフォルト」、「条件：処理速度優先」、または「条件：バッテリ優先」）と、ステップＳ１２において取得したリソース状態（ＣＰＵ使用率、実行タスク数、バッテリ残容量）を示す情報とに基づいて、実行するコマンドを選択する（ステップＳ１３）。
【０１２８】
続いて、コマンド処理部３０は、ステップＳ１３においてコマンド選択部３２が選択したコマンドを実行する（ステップＳ２１）。そして、制御部２０４（コマンド処理部３０）は、ステップＳ１１からＳ２５の処理を、アプリケーションプログラムＡの実行手順に従って、撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、保存コマンド１５４、の順番にそれぞれ実行する。
【０１２９】
このように、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドの中からコマンドを選択して実行する。例えば、図１３を用いて説明したように、電子カメラ１０１は、各機器（携帯電話１０２Ａ、１０２Ｂ、１０２Ｃ）のＣＰＵの使用率、実行タスク数、バッテリ残容量等のリソース状態を示す情報に基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドのうちの何れかのＧＰＳコマンドを選択して実行する。また、電子カメラ１０１は、各機器のリソース状態を示す情報と、設定された優先条件（何れのリソース状態を優先するか）とに基づいて、実行するＧＰＳコマンドを選択して実行する。
【０１３０】
これにより、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち最も適した機器で処理が実行されるコマンドを選択して実行することができる。
【０１３１】
（コマンド選択処理の別の例）
図１２に示すコマンドの実行手順の一例は、ＧＰＳ機能の処理を実行するコマンドに対してのみコマンド選択処理が行われる例であったが、その他の機能の処理を実行するコマンドそれぞれに対してもコマンド選択処理が行われてもよい。次に、ＧＰＳ機能の処理を実行するコマンド、および、その他の機能の処理を実行するコマンドに対してコマンド選択処理が行われる例を説明する。
【０１３２】
図１５は、コマンドリスト２０に登録されているコマンドの機能グループ毎の分類の別の例を示す図である。この図は、電子カメラ１０１と、２台の携帯電話１０２（１０２Ａ、１０２Ｂ）と、ナビゲーション端末装置１０６と、画像処理サーバ１０４と、がそれぞれ互いのコマンドを共有した際の、それぞれのコマンドの機能グループ毎の分類の一例を示している。
【０１３３】
図１５に示す例では、撮影機能グループＧ１０１、位置情報取得機能グループＧ１０２、画質調整機能グループＧ１０３、顔検出機能グループＧ１０４、付加情報登録機能グループＧ１０５、および保存機能グループＧ１０６の何れかに識別されるコマンドが登録（共有）されている。複数のコマンドが登録されている機能グループは、撮影機能グループＧ１０１と、位置情報取得機能グループＧ１０２と、画質調整機能グループＧ１０３と、顔検出機能グループＧ１０４とである。
【０１３４】
撮影機能グループＧ１０１には、電子カメラ１０１が有する静止画撮影コマンドおよび動画撮影コマンドが含まれている。
【０１３５】
位置情報取得機能グループＧ１０２には、携帯電話１０２ＡのＧＰＳ（Ａ）機能の処理を実行するＧＰＳ（Ａ）コマンド、および簡易位置情報取得（Ａ）機能の処理を実行する簡易位置情報取得（Ａ）コマンドが含まれている。また、位置情報取得機能グループＧ１０２には、携帯電話１０２ＢのＧＰＳ（Ｂ）機能の処理を実行するＧＰＳ（Ｂ）コマンド、および簡易位置情報取得（Ｂ）機能の処理を実行する簡易位置情報取得（Ｂ）コマンドが含まれている。さらに、位置情報取得機能グループＧ１０２には、ナビゲーション端末装置１０６のＧＰＳ（Ｄ）機能の処理を実行するＧＰＳ（Ｄ）コマンドが含まれている。
【０１３６】
画質調整機能グループＧ１０３には、電子カメラ１０１の画像処理（Ａ）コマンドと、ナビゲーション端末装置１０６の画像処理（Ｂ）コマンドと、画像処理サーバ１０４の画像処理（Ｃ）コマンドとが含まれている。
【０１３７】
顔検出機能グループＧ１０４には、電子カメラ１０１の顔検出コマンドと、画像処理サーバ１０４の顔認識コマンドとが含まれている。
【０１３８】
なお前述したように、機能グループは、コマンドに含まれるコマンドＩＤ（コマンド毎に予め決められた固有ＩＤ、或いはコマンド名）に基づいて、さらに詳細な機能毎に識別されてもよい。例えば、位置情報取得機能グループＧ１０２は、ＧＰＳ機能グループＧ１０２ａと簡易位置情報取得機能グループＧ１０２ｂとに分類（区別）されて識別されてもよい。また。撮影機能グループＧ１０１は、静止画撮影機能グループＧ１０１ａと動画撮影機能グループＧ１０１ｂとに分類（区別）されて識別されてもよい。
【０１３９】
図１６は、コマンドの実行手順およびコマンド選択の一例を示す図である。例えば、電子カメラ１０１が、図９に示すアプリケーションプログラムＡの実行手順に従ってコマンドを実行する場合、コマンド処理部３０は、図１６に示すような手順（例えば、ＧＰＳコマンド→静止画撮影コマンド→画像処理コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド）でコマンドを実行する。
【０１４０】
ここで、コマンド共有部１８には、図１５に示すように、ＧＰＳを利用して位置情報を取得するコマンド（ＧＰＳ機能グループＧ１０２のコマンド）が３つ、画質調整機能の処理を実行するコマンド（画質調整機能グループＧ１０３のコマンド）が３つ、および顔検出機能の処理を実行するコマンド（顔検出機能グループＧ１０４のコマンド）が２つ、含まれている。コマンド処理部３０のコマンド選択部３２は、これら複数のコマンドが含まれている機能の処理を実行する際に、それぞれの機能の処理を実行するコマンドを複数のコマンドの中から選択する。
【０１４１】
この図に示す例では、コマンド選択部３２は、それぞれの機能の処理が実行される機器のリソース状態に基づいてコマンドを選択する。表６００は、同じ機能グループ内の複数のコマンドの中から実行するコマンドを選択する際の優先順位を示している。コマンド選択部３２は、各優先条件（「条件：デフォルト」、「条件：処理速度優先」、「条件：バッテリ優先」）において、この表６００に示す優先順位が「１」（１位）となるコマンドを、機能グループ毎にそれぞれ選択する。
【０１４２】
すなわち、コマンド処理部３０は、各優先条件において、コマンド選択部３２が表６００に示す優先順位に基づいてコマンドを選択することにより、以下に示す手順でコマンドを実行する。
・「条件：デフォルト」：ＧＰＳ（Ｂ）コマンド→静止画撮影コマンド→画像処理（Ａ）コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件：処理速度優先」：ＧＰＳ（Ｃ）コマンド→静止画撮影コマンド→画像処理（Ａ）コマンド→顔検出コマンド→付加情報登録コマンド→保存コマンド。
・「条件：バッテリ優先」：ＧＰＳ（Ｂ）コマンド→静止画撮影コマンド→画像処理（Ｃ）コマンド→顔認識コマンド→付加情報登録コマンド→保存コマンド。
【０１４３】
このように、電子カメラ１０１は、アプリケーションプログラムＡの実行手順に従って実行する複数のコマンドそれぞれを、各機器のリソース状態に基づいて、優先順位の高いコマンドを選択して実行する。例えば、電子カメラ１０１は、処理速度優先の場合、アプリケーションプログラムＡのそれぞれのコマンドを、処理速度が速い機器のコマンドを優先して選択する。また、電子カメラ１０１は、バッテリ優先の場合、アプリケーションプログラムＡのそれぞれのコマンドを、バッテリ残容量が多い機器のコマンドを優先して選択する。
【０１４４】
これにより、電子カメラ１０１は、制御プログラム１５（例えば、アプリケーションプログラムＡ）の実行手順に従って複数のコマンドを実行する際に、優先条件に応じたリソース状態の機器のコマンドを機能グループ毎にそれぞれ選択して実行することができる。よって、電子カメラ１０１は、アプリケーションプログラムＡの実行手順に従って、優先条件に応じた性能が得られるように、内部コマンドまたは外部コマンドを選択して実行することができる。
【０１４５】
なお、上述のコマンド選択処理は、アプリケーションプログラムＡのような処理を、繰り返して実行する場合にも効果的である。例えば、電子カメラ１０１は、アプリケーションプログラムＡの実行手順に従って、１０秒間隔で撮影する処理を実行する場合、各コマンドの処理時間の合計が１０秒以下となるようにコマンドを選択する必要がある。また、電子カメラ１０１は、アプリケーションプログラムＡの実行手順に従って、撮影処理を５００回繰り返して実行する場合、５００回以上の繰り返し処理が可能なバッテリ残容量の機器において実行されるコマンドを選択する必要がある。このような場合、電子カメラ１０１は、各機器のリソース状態に基づいて、必要な条件を満足するようなコマンドを選択して実行することができる。
【０１４６】
（制御プログラム１５の実行手順に従って発行されるコマンドの別の例）
以上説明してきた実施形態では、制御プログラム１５の制御による処理は、コマンド共有部１８のコマンドリスト２０内に含まれるコマンドを組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理である。しかし、制御プログラム１５の制御による処理は、各機能グループ内に含まれているコマンドのうちの何れかのコマンドを実行する機能グループ単位の実行コマンド（すなわち、目的とする機能の種類（意味）を示すコマンド、以下機能コマンドと称する）を組み合わせて作成されたアプリケーションプログラムの実行手順に従った処理としてもよい。
【０１４７】
例えば、図１５に示す機能グループの例において、各機能グループ内に含まれているコマンドの何れかを実行する機能グループ毎の機能コマンドを、それぞれ「撮影機能コマンド」、「位置情報取得機能コマンド」、「画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」と称する。なお、「撮影機能コマンド」は、さらに、「静止画撮影機能コマンド」と「動画撮影機能コマンド」とに分けてもよい。また、「位置情報取得機能コマンド」は、さらに、「ＧＰＳ機能コマンド」と「簡易位置情報取得機能コマンド」とに分けてもよい。
【０１４８】
そして、アプリケーションプログラムＡは、コマンドリスト２０内に含まれるコマンドを組み合わせて作成されるのではなく、上述の機能コマンドを組み合わせて作成され、図１７に示すように、それぞれの機能コマンドに対して、実行するコマンドが選択される処理としてもよい。
【０１４９】
図１７は、機能コマンドを用いたコマンドの実行手順の一例を示す図である。なお、コマンドリスト２０内には、図１５に示すコマンドが共有されている状態とする。アプリケーションプログラムＡの実行手順に従って、電子カメラ１０１は、機能コマンドを、「位置情報取得機能コマンド」、「撮影機能コマンド」、「画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」の順に実行する。
【０１５０】
コマンド選択部３２は、上述の機能コマンドそれぞれに対して、対応する機能グループ内に含まれているコマンドの中から実行するコマンドを選択する。例えば、コマンド選択部３２は、「位置情報取得機能コマンド」に対して、対応する「位置情報取得機能グループＧ１０２」に含まれているコマンドの中から実行するコマンドを、各コマンドの処理が実行される各機器のリソース状態に基づいて選択する。
【０１５１】
また、コマンド選択部３２は、「撮影機能コマンド」に対して、対応する「撮影機能グループＧ１０１」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。また、コマンド選択部３２は、「画質調整機能コマンド」に対して、対応する「画質調整機能グループＧ１０３」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。また、コマンド選択部３２は、「顔検出機能コマンド」に対して、対応する「顔検出機能グループＧ１０４」に含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。同様に、コマンド選択部３２は、「付加情報登録機能コマンド」と「保存機能コマンド」とのそれぞれに対して、対応する「付加情報登録機能グループＧ１０３」と「保存機能コマンド」とのそれぞれに含まれているコマンドの中から実行するコマンドを、各機器のリソース状態に基づいて選択する。
【０１５２】
これにより、電子カメラ１０１は、機能コマンドを組み合わせて作成されたアプリケーションプログラムの実行手順に従って、機能コマンドに対応する機能グループに含まれているコマンドの中から、適切なコマンドを選択して実行することができる。
【０１５３】
次に、図１８を参照して、上述の機能コマンドに対応するコマンドを選択して実行するコマンド実行処理の動作について説明する。図１８は、コマンド選択処理を用いたコマンドの実行処理の第２例を示すフローチャートであって、機能コマンドに対応するコマンドを選択して実行するコマンド実行処理の一例を示すフローチャートである。
【０１５４】
この図１８に示す処理は、図１４を用いて説明した処理を、機能コマンドを組み合わせて作成されたアプリケーションプログラムＡによって制御された処理としたものであり、図１４に示す処理に加えてステップＳ１０の処理を実行することが、図１４に示す処理と異なる。すなわち、この図１８に示す処理においては、電子カメラ１０１が、アプリケーションプログラムＡの実行手順に従って、「ＧＰＳ機能コマンド」、「静止画撮影コマンド」、画質調整機能コマンド」、「顔検出機能コマンド」、「付加情報登録コマンド」、「保存機能コマンド」の順に機能コマンドを実行する。なお、図１９において図１４の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１５５】
まず、コマンド処理部３０は、アプリケーションプログラムＡの実行手順に従って発行されたＧＰＳ機能コマンドに応じて、ＧＰＳ機能グループＧ１０２ａに含まれているコマンドを検索する（ステップＳ１０）。例えば、コマンド処理部３０は、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドを示す情報を、検索結果（件検出結果）として、情報取得部３１に供給する。以下の処理は、図１４を用いて説明した処理と同様である。
【０１５６】
このように、電子カメラ１０１は、機能コマンドを組み合わせて作成されたアプリケーションプログラム（例えば、アプリケーションプログラムＡ）の実行手順に従って、機能コマンドに対応する機能グループに含まれている複数のコマンドの中から、機器のリソース状態を示す情報に基づいてコマンドを選択して実行する。
【０１５７】
これにより、電子カメラ１０１は、機能コマンドに対応する機能グループに含まれている複数のコマンド、すなわち同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器のリソース状態を示す情報に基づいて、これら複数のコマンドのうち、適した機器で処理が実行されるコマンドを選択して実行することができる。
【０１５８】
なお、アプリケーションプログラムＡは、上述したように、機能コマンドを組み合わせて作成されてもよいが、機能の種類を特定可能（識別可能）な情報が含まれていれば、さらに、あいまいな表現を用いて作成されてもよい。
【０１５９】
例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」といったあいまいな表現を用いて作成されたアプリケーションプログラムから、「現在の位置情報」、「撮影」、「位置情報を画像に貼り付け」、および「保存」、といった機能を意味する部分（機能の種類を特定可能な部分）を、コマンド選択部３２は抽出する。また、これらの機能を意味する部分の表現と、各機能グループ（各機能の種類を識別する情報）とが、予め対応付けられて、例えばコマンド共有部１８に登録されているとする。そして、コマンド選択部３２は、上述の機能を意味する部分の表現それぞれに対応付けられている各機能グループに含まれているコマンドの中から、機器のリソース状態を示す情報に基づいてコマンドを選択する。
【０１６０】
例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」という表現から、コマンド選択部３２が抽出した機能を意味する部分と、抽出した機能を意味する部分に対応付けられている機能グループの一例を、以下に示す。
・「現在の位置情報」：位置情報取得機能グループＧ１０２。
・「撮影」：撮影機能グループＧ１０１、および画質調整機能グループＧ１０３。
・「位置情報を画像に貼り付け」：付加情報登録機能グループＧ１０５。
・「保存」：保存機能グループＧ１０６。
コマンド選択部３２は、抽出した機能を意味する部分に対応付けられている機能グループそれそれからコマンドを選択する。
【０１６１】
これにより、電子カメラ１０１は、例えば、「現在の位置情報を取って撮影して画像に貼り付けて保存」といったあいまいな表現を用いて作成されたアプリケーションプログラムであっても、適切なコマンドを選択して実行することができる。また、例えば、電子カメラ１０１は、コマンドを共有していない機能や具体的なコマンド名が不明な機能等であっても、必要な機能の種類を意味する表現を用いて作成されたアプリケーションプログラムに基づいて、対応するコマンドを検索して実行することができる場合もある。
【０１６２】
（機能に応じて予め設定されている性能を示す情報に基づいてコマンドを選択するコマンド選択処理の例）
以上、機器の性能を示す情報に基づいてコマンドを選択するコマンド選択処理について、機器のリソース状態を示す情報を、上述の機器の性能を示す情報とした場合の例について説明してきた。次に、機能に応じて予め設定されている性能を示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
【０１６３】
以下に、機能に応じて予め設定されている性能の例を示す。
・処理速度：コマンドを実行してから実行結果を取得するまでに要する処理時間に影響する処理速度。
・処理の正確さ、精密さ：処理により得られる実行結果のレベル。例えば、ＧＰＳ機能と簡易位置情報取得機能とを比較した場合、ＧＰＳ機能の方が、より正確（精密）に位置情報を取得可能である。
・各機器の所在：コマンドを実行する他機器の自機器に対する所在。例えば、他機器のＧＰＳ機能を利用して自機器の所在位置を検出する場合、自機器に対する他機器の所在位置（距離）が検出位置の性能に影響する。
・周囲環境：処理結果の性能に影響する周囲の環境条件（温度、湿度等の条件）。
なお、上述の機能に応じて予め設定されている性能を示す情報は、例えば、コマンド機能名、またはコマンドＩＤ等と同様に、コマンドそれぞれが有する情報に含まれている。
【０１６４】
コマンド選択部３２は、上述の例に示すような、機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
【０１６５】
なお、コマンド選択部３２は、コマンド機能名、コマンドＩＤを、上述の性能を示す情報として利用してもよい。また、コマンド選択部３２は、自機器に対して適した処理を行う他機器の機能の処理を実行するコマンドを選択するために、機器の情報（例えば、機器の種別情報、機器ＩＤ、メーカＩＤ、型番を示す情報等）を、上述の予め設定されている性能を示す情報として利用してもよい。また、コマンド選択部３２は、各機器の所有者を特定する情報（所有者ＩＤ）、性別、年齢等を示す情報、または国別を示す情報（国ＩＤ）を、上述の予め設定されている性能を示す情報として利用してもよい。
【０１６６】
続いて、上述の予め設定されている性能に基づいて、複数コマンドの中から実行するコマンドを選択する具体例を説明する。
例えば、図１５に示すように、位置情報取得機能グループＧ１０２には、携帯電話１０２ＡのＧＰＳ（Ａ）コマンドおよび簡易位置情報取得（Ａ）コマンドと、携帯電話１０２ＢのＧＰＳ（Ｂ）コマンドおよび簡易位置情報取得（Ｂ）コマンドと、ナビゲーション端末装置１０６のＧＰＳ（Ｄ）コマンドとが含まれているとする。
【０１６７】
電子カメラ１０１は、各機能の予め設定されている性能に基づいて、位置情報取得機能グループＧ１０２内の複数のコマンドの中からコマンドを選択した実行する。例えば、コマンド選択部３２は、位置情報取得機能グループＧ１０２内のＧＰＳ（Ａ）コマンド、簡易位置情報取得（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、簡易位置情報取得（Ｂ）コマンド、およびＧＰＳ（Ｄ）コマンドのうちから、それぞれのコマンドが実行される機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
【０１６８】
例えば、位置情報取得機能グループＧ１０２内の複数のコマンドのうち、簡易位置情報取得（Ｂ）コマンドにより実行される処理が最も速い処理速度の処理であって、ＧＰＳ（Ｄ）コマンドにより実行される処理が最も正確な位置を取得可能な処理であるとする。この場合において、コマンド選択部３２は、例えば、条件設定部３３に設定された優先条件が、「処理速度を優先」であった場合、簡易位置情報取得（Ｂ）コマンドを選択する。これにより、電子カメラ１０１は、処理速度を優先した簡易位置情報取得（Ｂ）コマンドを実行することにより得られた位置情報を取得することができる。
【０１６９】
また、コマンド選択部３２は、例えば、条件設定部３３に設定された優先条件が、「処理の正確さや精密さを優先」であった場合、ＧＰＳ（Ｄ）コマンドを選択する。これにより、電子カメラ１０１は、処理の正確さや精密さを優先したＧＰＳ（Ｄ）コマンドを実行することにより得られた位置情報を取得することができる。
【０１７０】
なお、仮に、位置情報取得機能グループＧ１０２内の複数のコマンドのうち、簡易位置情報取得（Ａ）コマンドにより実行される処理と、簡易位置情報取得（Ｂ）コマンドにより実行される処理とが、共に最も速い処理速度の処理であったとする。この場合において、コマンド選択部３２は、例えば、条件設定部３３に設定された優先条件が、「処理速度を優先」であった場合、簡易位置情報取得（Ａ）コマンドおよび簡易位置情報取得（Ｂ）コマンドの何れかを選択すればよいが、さらに、携帯電話１０２Ａおよび携帯電話１０２Ｂのうち、電子カメラ１０１に対する距離が近い方の機器のコマンドを選択してもよい。
【０１７１】
すなわち、コマンド選択部３２は、まず「処理速度を優先」を優先条件として、位置情報取得機能グループＧ１０２内の複数のコマンドのうち、簡易位置情報取得（Ａ）コマンドおよび簡易位置情報取得（Ｂ）コマンドを、実行するコマンドの候補として選択する。そして、コマンド選択部３２は、次に「処理の正確さや精密さを優先」を優先条件として、簡易位置情報取得（Ａ）コマンドおよび簡易位置情報取得（Ｂ）コマンドのうち、電子カメラ１０１に対する距離が近い方の機器のコマンドを、実行するコマンドとして選択してもよい。
【０１７２】
なお、電子カメラ１０１に対する携帯電話１０２Ａおよび携帯電話１０２Ｂの距離は、例えば、近距離通信（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に対応する通信）を用いて検出してもよい。
【０１７３】
また、図１５に示すように、画質調整機能グループＧ１０３には、電子カメラ１０１の画像処理（Ａ）コマンドと、ナビゲーション端末装置１０６の画像処理（Ｂ）コマンドと、画像処理サーバ１０４の画像処理（Ｃ）コマンドとが含まれているとする。
【０１７４】
電子カメラ１０１は、各機能の予め設定されている性能に基づいて、画質調整機能グループＧ１０３内の複数のコマンドから選択したコマンドを実行する。例えば、コマンド選択部３２は、画質調整機能グループＧ１０３内の画像処理（Ａ）コマンド、画像処理（Ｂ）コマンド、および画像処理（Ｃ）コマンドのうちから、それぞれのコマンドに対応する機能に応じて予め設定されている性能を示す情報に基づいて、実行するコマンドを選択する。
【０１７５】
例えば、画質調整機能グループＧ１０３内の複数のコマンドのうち、画像処理（Ａ）のコマンドにより実行される処理が最も速い処理速度の処理であって、画像処理（Ｃ）機能のコマンドにより実行される処理が最も正確な色再現処理や精密なノイズ低減処理が行われる画像処理（画像処理後の画質が最もよい画像処理）であるとする。この場合において、コマンド選択部３２は、例えば、条件設定部３３に設定された優先条件が、「処理速度を優先」であった場合、画像処理（Ａ）コマンドを選択する。これにより、電子カメラ１０１は、処理速度を優先した画像処理（Ａ）コマンドを実行することにより得られた画像を取得することができる。
【０１７６】
また、コマンド選択部３２は、例えば、条件設定部３３に設定された優先条件が、「処理の正確さや精密さを優先」であった場合、画像処理（Ｃ）機能の処理を実行するコマンドを選択する。これにより、電子カメラ１０１は、処理の正確さや精密さを優先した画像処理（Ｃ）コマンドを実行することにより得られた画像を取得することができる。
【０１７７】
なお、機能に応じて予め設定されている性能を示す情報は、それぞれのコマンドが有する情報に含まれていてもよいが、コマンドを実行する機器それぞれから取得してもよい。例えば、図１４のステップＳ１１、Ｓ１２の処理において、機器のリソース状態を取得する代わりに、機能に応じて予め設定されている性能を示す情報を取得してもよい。
【０１７８】
このように、電子カメラ１０１は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドの中からコマンドを選択して実行する。例えば、電子カメラ１０１は、機能に応じて予め設定されている性能を示す情報に基づいて、位置情報取得機能グループＧ１０２内の複数のコマンドのうち、処理時間が最も短いコマンド（最も速い処理速度のコマンド）、または位置の検出精度が最も高いコマンド（最も正確な位置を取得可能なコマンド）を選択して実行する。また、電子カメラ１０１は、機能に応じて予め設定されている性能を示す情報に基づいて、画質調整機能グループＧ１０３内の複数のコマンドのうち、処理時間が最も短いコマンド（最も速い処理速度のコマンド）、または画像処理後の画質が最もよいコマンド（最も正確な色再現処理や精密なノイズ低減処理を実行するコマンド）を選択して実行する。
【０１７９】
これにより、電子カメラ１０１は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち、適切な処理が実行されるコマンドを選択して実行することができる。
【０１８０】
（要求性能を満たすか否かを示す情報に基づいてコマンドを選択するコマンド選択処理の例）
次に、機器に対して要求性能を通知することに応じて取得した要求性能を満たすか否かを示す情報を、機器の性能を示す情報とした場合のコマンド選択処理について説明する。
【０１８１】
例えば、電子カメラ１０１が、機能毎に処理を実行する機器に対する要求性能（例えば、処理時間が５００ｍｓｅｃ以内、バッテリ残容量２０％以上等）を各機器に対して通知することにより、各機器においてその要求性能を満たすか否かが判定される。そして、電子カメラ１０１は、各機器において判定された要求性能を満たすか否かを示す情報を取得し、取得した情報に基づいて、要求性能を満たす機器において実行されるコマンドを選択する。なお、各機器において、要求性能を満たすか否かが判定される際には、機能に応じて予め設定されている性能または各機器のリソース状態に基づいて判定される。
【０１８２】
図１９は、コマンド選択処理を用いたコマンドの実行処理の第３例を示すフローチャートである。以下、図１９を参照して、要求性能を満たすか否かを示す情報に基づいてコマンドを選択して実行するコマンドの実行処理の動作について説明する。この図１９に示す処理は、図１４に示すステップＳ１１、Ｓ１２、Ｓ１３の処理に代えて、ステップＳ１４、Ｓ１５、Ｓ１６の処理を実行することが、図１４に示す処理と異なる。なお、図１９において図１４の各処理に対応する部分には同一の符号を付け、その説明を省略する。
【０１８３】
なお、図１１に示すように、ＧＰＳ機能グループＧ１０２ａには、携帯電話１０２ＡのＧＰＳ（Ａ）コマンドと、携帯電話１０２ＢのＧＰＳ（Ｂ）コマンドと、携帯電話１０２ＣのＧＰＳ（Ｃ）コマンドとが含まれているものとする。そして、コマンド選択部３２が、ＧＰＳ（Ａ）コマンドの実行手順において、ＧＰＳ機能グループＧ１０２ａに含まれているＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドのうちの中から、実行するＧＰＳコマンドを選択する処理として説明する。
【０１８４】
まず、制御部２０４（コマンド処理部３０）は、アプリケーションプログラムＡの実行手順に従ってＧＰＳ（Ａ）コマンドを実行する前に、ＧＰＳ（Ａ）コマンドを実行する携帯電話１０２Ａ、ＧＰＳ（Ｂ）コマンドを実行する携帯電話１０２Ｂ、およびＧＰＳ（Ｃ）コマンドを実行する携帯電話１０２Ｃに対して、要求性能を通知するコマンドを送信（要求性能通知コマンドを実行）する（ステップＳ１４）。
【０１８５】
具体的には、コマンド処理部３０は、コマンド共有部１８を参照して、ＧＰＳ（Ａ）コマンドと同様にＧＰＳを利用して位置を取得する機能を実行するコマンドが、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドの３つあることを検出（検索）する。情報取得部３１は、コマンド処理部３０が検出（検索）した結果に基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドそれぞれを実行する携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃに対して、要求性能を通知するコマンド（要求性能通知コマンド）を、通信部２０９を介して送信する。
【０１８６】
次に、制御部２０４（コマンド処理部３０）は、要求性能通知コマンドを実行することに応じて、携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃのそれぞれから、要求性能を満たすか否かを示す情報を取得する（要求性能応答取得）。例えば、情報取得部３１は、要求性能通知コマンドを送信することに応じて、携帯電話１０２Ａ、携帯電話１０２Ｂ、および携帯電話１０２Ｃのそれぞれから要求性能を満たすか否かを示す情報を、通信部２０９を介して受信する（ステップＳ１５）。
【０１８７】
次に、コマンド選択部３２は、ステップＳ１５において取得した要求性能を満たすか否かを示す情報に基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドのうち要求性能（例えば、処理時間が５００ｍｓｅｃ以内、バッテリ残容量２０％以上等）を満たすコマンドを、実行するコマンドとして選択する（ステップＳ１６）。
【０１８８】
続いて、コマンド処理部３０は、ステップＳ１６においてコマンド選択部３２が選択したコマンドを実行する（ステップＳ２１）。そして、制御部２０４（コマンド処理部３０）は、ステップＳ１４からＳ２５の処理を、アプリケーションプログラムＡの実行手順に従って、撮影コマンド１５１、画像処理コマンド１５２、付加情報登録コマンド１５３、保存コマンド１５４、の順番にそれぞれ実行する。
【０１８９】
このように、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行する処理が要求性能を満たすか否かを示す情報に基づいて、これら複数のコマンドの中からコマンドを選択して実行する。例えば、電子カメラ１０１は、各機器（携帯電話１０２Ａ、１０２Ｂ、１０２Ｃ）のＧＰＳ機能の処理時間が要求性能（例えば、処理時間が５００ｍｓｅｃ以内）を満たすか否かを示す情報に基づいて、ＧＰＳ（Ａ）コマンド、ＧＰＳ（Ｂ）コマンド、およびＧＰＳ（Ｃ）コマンドのうち要求性能を満たす何れかのＧＰＳコマンドを選択して実行する。
【０１９０】
これにより、電子カメラ１０１は、同じような機能の処理を実行する複数のコマンドそれぞれが実行する処理が要求性能を満たすか否かを示す情報に基づいて、これら複数のコマンドのうち、適切な処理（要求性能を満たす処理）が実行されるコマンドを選択して実行することができる。
【０１９１】
なお、要求性能を満たすか否かを示す情報に代えて、要求性能を満たすか否かを判定可能な情報としてもよい。例えば、電子カメラ１０１は、要求性能を満たすか否かを判定可能なような予測処理時間を示す情報または現在のバッテリ残容量を示す情報等を各機器（携帯電話１０２Ａ、１０２Ｂ、１０２Ｃ）から取得してもよい。また、電子カメラ１０１は、例えば画像処理等のように、他機器に送信したデータに処理が実行されて、処理後のデータを取得するような場合、実処理時間に対して短い処理時間で実行可能な少量のデータ（例えば、実際に処理するデータの１０００分の１のデータ）を送信することにより、そのデータに対する処理時間に基づいて予測処理時間を算出し、要求性能を満たすか否かを判定してもよい。
【０１９２】
以上説明してきたように、上記実施形態の電子機器連携システム１００によれば、電子機器１０（例えば電子カメラ１０１）は、同じような機能の処理を実行する複数のコマンドそれぞれが実行される機器の性能を示す情報に基づいて、これら複数のコマンドのうち適切なコマンドを選択して実行することができる。
【０１９３】
例えば、電子機器１０は、機器のリソース状態（時間の経過にともなって変化する性能）を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンドを選択して実行することができる。また、電子機器１０は、機能に応じて予め設定されている性能を示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンドを選択して実行することができる。また、電子機器１０は、要求性能を満たすか否かを示す情報に基づいて、同じような機能の処理を実行する複数のコマンドのうち適切なコマンド（要求性能を満たすコマンド）を選択して実行することができる。
【０１９４】
よって、上記実施形態の電子機器連携システム１００によれば、電子機器１０は、制御プログラム１５の制御に従って、自機器または他機器において実行する複数のコマンドの中から、適切なコマンドを選択して実行することができる。
【０１９５】
このように、本実施形態によれば、他機器の様々な機能を自機器の機能と同じように利用することができる。
【０１９６】
なお、上記実施形態において、位置情報取得機能の処理、画質調整機能の処理、または顔検出機能の処理において、複数のコマンドから実行するコマンドを選択する処理について説明したが、その他の機能の処理についても同様に適用することができる。
【０１９７】
また、上記実施形態において、電子カメラ１０１が、自機器の内部コマンドと他機器の外部コマンドとを共有して実行する際のコマンド選択処理を例に説明したが、電子カメラ１０１以外の電子機器１０が、自機器の内部コマンドと他機器の外部コマンドとを共有して実行する際のコマンド選択処理としてもよい。
【０１９８】
また、条件設定部３３は、コマンド共有部１８が管理（共有）している複数のコマンドそれぞれの実行実績を優先条件として設定してもよい。そして、コマンド選択部３２は、条件設定部３３により設定された優先条件と、機器の性能を示す情報とに基づいて、複数のコマンドのうち実行するコマンドを選択してもよい。例えば、コマンド選択部３２は、同じような機能を実行する複数のコマンドのうち、実行実績があるコマンドまたは実行実績が多いコマンドを優先して、実行するコマンドとして選択してもよい。
このように、コマンド選択部３２は、実行実績があるコマンドを優先して選択することにより、実行実績が無いコマンド（すなわち、実際の処理がどのような処理であるか不明なコマンド）を利用する場合に対比して、適切なコマンドを選択する確立を高くすることができる。なお、コマンド処理部３０は、コマンドを実行する毎に実行回数の履歴を更新するようにして、コマンドの実行実績としてコマンドと関連付けてコマンド共有部１８に登録する構成としてもよい。
【０１９９】
また、上記実施形態では、電子機器１０として電子カメラ１０１、携帯電話１０２、画像処理サーバ１０４、およびナビゲーション端末装置を主な例として説明したが、これらに限られるものではない。本発明の電子機器１０は、電子機器の例として前述したようなプリンタ、ＦＡＸ、テレビ、ビデオ、等であってもよいし、また、コンピュータ、ゲーム機、電子辞書、電子玩具など、その他の電子機器であってもよい。
【０２００】
なお、上述のＣ機能プラットホーム１６（２５１）、または制御部２０４は専用のハードウェアにより実現されるものであってもよく、また、メモリおよびＣＰＵ（中央演算装置）により構成され、上述の各部の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【０２０１】
また、上述のＣ機能プラットホーム１６（２５１）、または制御部２０４の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０２０２】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０２０３】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０２０４】
１０  電子機器、１４  通信回路（通信部）、１５  制御プログラム（制御部）、１８  コマンド共有部（コマンド管理部）、３０  コマンド処理部、３２  コマンド選択部、３３  条件設定部、１０１  電子カメラ、１０２  携帯電話、１０４  画像処理サーバ、２０４  制御部、２０９  通信部
【図１】
2013206222.tif 000003
【図２】
2013206222.tif 000004
【図３】
2013206222.tif 000005
【図４】
2013206222.tif 000006
【図５】
2013206222.tif 000007
【図６】
2013206222.tif 000008
【図７】
2013206222.tif 000009
【図８】
2013206222.tif 000010
【図９】
2013206222.tif 000011
【図１０】
2013206222.tif 000012
【図１１】
2013206222.tif 000013
【図１２】
2013206222.tif 000014
【図１３】
2013206222.tif 000015
【図１４】
2013206222.tif 000016
【図１５】
2013206222.tif 000017
【図１６】
2013206222.tif 000018
【図１７】
2013206222.tif 000019
【図１８】
2013206222.tif 000020
【図１９】
2013206222.tif 000021