(57)【要約】【課題】機器同士を簡単な手順で自在に連係させる。【解決手段】ネットワークに接続される電子機器であって、上記電子機器および少なくとも１つの他の電子機器の機器識別情報を上記ネットワークを介してサーバに送信する送信部と、上記電子機器および上記少なくとも１つの他の電子機器のための連係動作プログラムを上記ネットワークを介して上記サーバから受信する受信部と、上記連係動作プログラムに従って上記電子機器を制御する制御部とを含む電子機器が提供される。【選択図】図１
2015035169.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される電子機器であって、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信する送信部と、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信する受信部と、
前記連係動作プログラムに従って前記電子機器を制御する制御部と
を備える電子機器。
【請求項２】
前記少なくとも１つの他の電子機器を検出する検出部をさらに備える、請求項１に記載の電子機器。
【請求項３】
前記検出部は、前記少なくとも１つの他の電子機器が前記電子機器に近接した場合に、前記少なくとも１つの他の電子機器を検出する、請求項２に記載の電子機器。
【請求項４】
前記検出部は、前記少なくとも１つの他の電子機器との間で近距離通信を実行することによって前記少なくとも１つの他の電子機器を検出する、請求項３に記載の電子機器。
【請求項５】
前記検出部は、前記少なくとも１つの他の電子機器の現実のまたは前記ネットワーク上の位置情報に基づいて前記少なくとも１つの他の電子機器を検出する、請求項３に記載の電子機器。
【請求項６】
前記検出部は、前記少なくとも１つの他の電子機器を含む撮像画像に基づいて前記少なくとも１つの他の電子機器を検出する、請求項３に記載の電子機器。
【請求項７】
前記少なくとも１つの他の電子機器は、前記電子機器との連係動作を実現する第１の部分と、前記機器識別情報が記述された第２の部分とを含み、
前記検出部は、前記第２の部分が前記電子機器に近接した場合に、前記少なくとも１つの他の電子機器を検出する、請求項３に記載の電子機器。
【請求項８】
前記受信部は、前記電子機器および前記少なくとも１つの他の電子機器のための、互いに異なる連係動作を実現する複数の連係動作プログラムを受信し、
前記制御部は、前記複数の連係動作プログラムのいずれかに従って前記電子機器を制御する、請求項１に記載の電子機器。
【請求項９】
前記制御部は、ユーザ操作に従って前記複数の連係動作プログラムのいずれかを選択する、請求項８に記載の電子機器。
【請求項１０】
前記連係動作プログラムが少なくとも一時的に格納される記憶部をさらに備え、
前記制御部は、前記記憶部に前記連係動作プログラムが格納されている場合には、前記受信される連係動作プログラムに代えて前記格納された連係動作プログラムに従って前記電子機器を制御する、請求項１に記載の電子機器。
【請求項１１】
前記制御部は、前記電子機器の制御に用いられた前記連係動作プログラムを少なくとも一時的に前記記憶部に格納する、請求項１０に記載の電子機器。
【請求項１２】
前記記憶部には、前記連係動作プログラムと前記少なくとも１つの他の電子機器の機器識別情報とが関連付けて格納され、
前記制御部は、前記少なくとも１つの他の電子機器の機器識別情報を参照して、前記記憶部に前記連係動作プログラムが格納されているか否かを判定する、請求項１０に記載の電子機器。
【請求項１３】
前記受信部は、前記記憶部に格納された連係動作プログラムを更新または無効化するための追加のプログラムを、前記ネットワークを介して前記サーバから受信する、請求項１０に記載の電子機器。
【請求項１４】
前記受信部は、前記連係動作プログラムによって実現される連係動作に関連する情報を、前記ネットワークを介して前記サーバから受信する、請求項１に記載の電子機器。
【請求項１５】
前記制御部は、前記連係動作プログラムによって実現される連係動作に関連するログを取得し、
前記送信部は、前記ログを前記ネットワークを介して前記サーバに送信する、請求項１に記載の電子機器。
【請求項１６】
前記連係動作プログラムは、スクリプト形式で記述される、請求項１に記載の電子機器。
【請求項１７】
第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信する受信部と、
前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得部と、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する送信部と
を備えるサーバ。
【請求項１８】
前記受信部は、さらに、前記少なくとも１つの第２の電子機器の機器識別情報を前記ネットワークを介して前記第１の電子機器から受信する、請求項１７に記載のサーバ。
【請求項１９】
前記少なくとも１つの第２の電子機器を検出する検出部をさらに備える、請求項１７に記載のサーバ。
【請求項２０】
前記検出部は、前記第１の電子機器および前記少なくとも１つの第２の電子機器の現実のまたは前記ネットワーク上の位置情報に基づいて前記少なくとも１つの第２の電子機器を検出する、請求項１９に記載のサーバ。
【請求項２１】
前記送信部は、前記連係動作プログラムを前記ネットワークを介して前記少なくとも１つの第２の電子機器にも送信する、請求項１７に記載のサーバ。
【請求項２２】
前記プログラム取得部は、前記第１の電子機器および前記少なくとも１つの第２の電子機器のための、互いに異なる連係動作を実現する複数の連係動作プログラムを取得し、
前記送信部は、前記複数の連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する、請求項１７に記載のサーバ。
【請求項２３】
前記プログラム取得部は、前記第１の電子機器に送信された連係動作プログラムを更新または無効化するための追加のプログラムを取得し、
前記送信部は、前記追加のプログラムを前記ネットワークを介して前記第１の電子機器に送信する、請求項１７に記載のサーバ。
【請求項２４】
前記プログラム取得部は、前記連係動作プログラムによって実現される連係動作に関連する情報を取得し、
前記送信部は、前記連係動作に関連する情報を前記ネットワークを介して前記第１の電子機器に送信する、請求項１７に記載のサーバ。
【請求項２５】
前記受信部は、前記連係動作プログラムによって実現される連係動作に関連するログを前記ネットワークを介して前記第１の電子機器から受信する、請求項１７に記載のサーバ。
【請求項２６】
前記連係動作プログラムは、スクリプト形式で記述される、請求項１７に記載のサーバ。
【請求項２７】
ネットワークに接続される電子機器の制御方法であって、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信することと、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信することと、
プロセッサが、前記連係動作プログラムに従って前記電子機器を制御することと
を含む、電子機器の制御方法。
【請求項２８】
第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信することと、
プロセッサが、前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得することと、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信することと
を含む情報処理方法。
【請求項２９】
ネットワークに接続される電子機器が有するプロセッサに、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信する送信機能と、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信する受信機能と、
前記連係動作プログラムに従って前記電子機器を制御する制御機能と
を実現させるためのプログラムが記録された記録媒体。
【請求項３０】
サーバを構成する１または複数の情報処理装置が有するプロセッサに、
第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信する受信機能と、
前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得機能と、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する送信機能と
を実現させるためのプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子機器、サーバ、電子機器の制御方法、情報処理方法および記録媒体に関する。
【背景技術】
【０００２】
さまざまな種類の電子機器が普及するにつれて、機器同士が連係して動作することが可能なケースが多くなっている。ところが、当初から特定の機器との連係を意図して設計された一部の機器を例外とすれば、機器間では通信や制御の仕様が異なっていることが多いため、連係自体が困難であったり、連係のためにユーザが複雑な手順を実行する必要があったりする。そこで、例えば、機器が本来有している機能を利用することによって、簡単な手順で他の機器との連係を可能にする技術が提案されている。
【０００３】
例えば、特許文献１には、コンテンツの再生装置にＵＳＢなどを介して接続される通信装置であって、再生装置からは記憶装置として認識され、コンテンツに付随する情報に従って再生装置が発行したファイルアクセスコマンドを予め設定された規則に従って他の装置の制御コマンドに変換し、該コマンドを無線通信によって他の装置に送信する通信装置が記載されている。これによって、再生装置が本来有しているファイルアクセスコマンドを発行する機能を利用しつつ、コンテンツの再生に連動した他の装置の制御を実現することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１７９２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
とはいえ、上記の特許文献１に記載された技術でも、通信装置には、ファイルアクセスコマンドを他の装置の制御コマンドに変換するための規則が予め記憶されている必要がある。制御対象の装置が異なれば、ファイルアクセスコマンドを別の種類の制御コマンドに変換するための別の規則を記憶している必要がある。このように、予め記憶された規則によってコマンドを変換するような方法では、例えば機器の組み合わせの数だけ規則を記憶したり、変換のための機器を用意したりすることになり、結局のところ機器同士を自在に連係させることは容易ではない。
【０００６】
そこで、本開示では、機器同士を簡単な手順で自在に連係させることを可能にする、新規かつ改良された電子機器、サーバ、電子機器の制御方法、情報処理方法および記録媒体を提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、ネットワークに接続される電子機器であって、上記電子機器および少なくとも１つの他の電子機器の機器識別情報を上記ネットワークを介してサーバに送信する送信部と、上記電子機器および上記少なくとも１つの他の電子機器のための連係動作プログラムを上記ネットワークを介して上記サーバから受信する受信部と、上記連係動作プログラムに従って上記電子機器を制御する制御部とを含む電子機器が提供される。
【０００８】
また、本開示によれば、第１の電子機器の機器識別情報をネットワークを介して上記第１の電子機器から受信する受信部と、上記第１の電子機器および上記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得部と、上記連係動作プログラムを上記ネットワークを介して上記第１の電子機器に送信する送信部とを含むサーバが提供される。
【０００９】
また、本開示によれば、ネットワークに接続される電子機器の制御方法であって、上記電子機器および少なくとも１つの他の電子機器の機器識別情報を上記ネットワークを介してサーバに送信することと、上記電子機器および上記少なくとも１つの他の電子機器のための連係動作プログラムを上記ネットワークを介して上記サーバから受信することと、プロセッサが、上記連係動作プログラムに従って上記電子機器を制御することとを含む、電子機器の制御方法が提供される。
【００１０】
また、本開示によれば、第１の電子機器の機器識別情報をネットワークを介して上記第１の電子機器から受信することと、プロセッサが、上記第１の電子機器および上記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得することと、上記連係動作プログラムを上記ネットワークを介して上記第１の電子機器に送信することとを含む情報処理方法が提供される。
【００１１】
また、本開示によれば、ネットワークに接続される電子機器が有するプロセッサに、上記電子機器および少なくとも１つの他の電子機器の機器識別情報を上記ネットワークを介してサーバに送信する送信機能と、上記電子機器および上記少なくとも１つの他の電子機器のための連係動作プログラムを上記ネットワークを介して上記サーバから受信する受信機能と、上記連係動作プログラムに従って上記電子機器を制御する制御機能とを実現させるためのプログラムが記録された記録媒体が提供される。
【００１２】
また、本開示によれば、サーバを構成する１または複数の情報処理装置が有するプロセッサに、第１の電子機器の機器識別情報をネットワークを介して上記第１の電子機器から受信する受信機能と、上記第１の電子機器および上記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得機能と、上記連係動作プログラムを上記ネットワークを介して上記第１の電子機器に送信する送信機能とを実現させるためのプログラムが記録された記録媒体が提供される。
【発明の効果】
【００１３】
以上説明したように本開示によれば、機器同士を簡単な手順で自在に連係させることができる。
【図面の簡単な説明】
【００１４】
【図１】本開示の一実施形態に係るシステムの概略的な機能構成を示すブロック図である。
【図２】本開示の一実施形態に係る電子機器の処理の例を示すフローチャートである。
【図３】本開示の一実施形態に係るスクリプトサーバの処理の例を示すフローチャートである。
【図４】本開示の一実施形態における連係動作スクリプトの機能について説明するための図である。
【図５】本開示の一実施形態における連係動作スクリプトの機能について説明するための図である。
【図６】本開示の一実施形態における連係動作の第１の具体例について説明するための図である。
【図７】本開示の一実施形態における連係動作の第２の具体例について説明するための図である。
【図８】本開示の一実施形態における連係動作の第３の具体例について説明するための図である。
【図９】本開示の一実施形態における電子機器の実装例を示す図である。
【図１０】本開示の一実施形態におけるスクリプトサーバの実装例を示す図である。
【図１１】本開示の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１６】
なお、説明は以下の順序で行うものとする。
１．システム構成
１−１．機能構成
１−２．処理フロー
２．連係動作の仕組みと具体例
２−１．連係動作の仕組み
２−２．連係動作の具体例
３．実装例
３−１．クライアントの実装例
３−２．サーバの実装例
４．ハードウェア構成
５．補足
【００１７】
（１．システム構成）
まず、図１〜図３を参照して、本開示の一実施形態に係るシステムの構成について説明する。
【００１８】
（１−１．機能構成）
図１は、本開示の一実施形態に係るシステムの概略的な機能構成を示すブロック図である。図１を参照すると、本開示の一実施形態に係るシステム１０は、電子機器１００と、スクリプトサーバ２００とを含む。システム１０は、さらに他の電子機器３００を含んでもよい。なお、他の電子機器３００は必ずしもシステム１０に含まれなくてもよい。電子機器１００、スクリプトサーバ２００、および他の電子機器３００は、いずれもプロセッサを有して情報処理を実行することが可能な電子機器であり、例えば後述する情報処理装置のハードウェア構成によって実現されうる。電子機器１００とスクリプトサーバ２００とは、いずれもネットワークに接続されており、相互に通信することが可能である。また、後述するように、他の電子機器３００は、電子機器１００およびスクリプトサーバ２００と共通のネットワークに接続されるか、または別途の通信手段によって電子機器１００および／またはスクリプトサーバ２００と通信可能でありうる。
【００１９】
（電子機器）
電子機器１００は、ユーザによって操作される各種の機器であり、例えば携帯電話（スマートフォン）、ＰＣ（Personal  Computer）、テレビ、レコーダ、ゲーム機、メディアプレーヤなど、情報処理機能とネットワーク通信機能とを有するどのような機器であってもよい。電子機器１００は、プロセッサ１１０と、通信部１２０と、記憶部１３０と、入力／出力部１４０と、撮像部１５０とを含む。ハードウェア構成例との関係でいえば、プロセッサ１１０はＣＰＵ、ＲＯＭおよびＲＡＭなどによって実現されうる。通信部１２０は、通信装置によって実現されうる。記憶部１３０は、ストレージ装置および／またはリムーバブル記憶媒体などによって実現されうる。入力／出力部１４０は、入力装置および出力装置によって実現されうる。撮像部１５０は、撮像装置によって実現されうる。
【００２０】
プロセッサ１１０は、プログラムに従って動作することによって、検出部１１１、送信部１１２、受信部１１３、および制御部１１４の機能を実現しうる。プロセッサ１１０は、他にも、電子機器１００の全体の制御に関するさまざまな機能を実現しうるが、それらの機能は機器ごとに異なり、また当業者にはよく知られているために、ここでは省略する。以下、上記の各機能について、さらに説明する。
【００２１】
検出部１１１は、少なくとも１つの他の電子機器３００を検出する。ここで、他の電子機器３００は、電子機器１００の連係動作の対象になる機器である。換言すれば、検出部１１１は、他の電子機器３００が電子機器の連係動作の対象になることを何らかの方法で検出するともいえる。なお、検出部１１１は、例えば、後述するようにスクリプトサーバ２００において他の電子機器３００が検出されたり、入力／出力部１４０を介して取得されるユーザ操作によって他の電子機器３００の機器識別情報が入力されたりするような場合には、プロセッサ１１０によって実現されなくてもよい。
【００２２】
より具体的には、例えば、検出部１１１は、電子機器１００と他の電子機器３００とが近接した場合に、他の電子機器３００を検出する。電子機器１００と他の電子機器３００とが近接したことは、例えば、電子機器１００の通信部１２０と他の電子機器３００との間で、例えばＮＦＣ（Near  Field  Communication）やＢｌｕｅｔｏｏｔｈ（登録商標）、赤外線通信などの近距離通信が実行されたことによって検出されうる。
【００２３】
また、電子機器１００と他の電子機器３００とが近接したことは、ＧＰＳ（Global  Positioning  System）などによって検出されるそれぞれの機器の現実の位置、または、それぞれの機器の通信状態から認識されるネットワーク上の位置に基づいて検出されてもよい。例えば、現実の位置に基づいて近接を検出する場合、検出部１１１は、電子機器１００と他の電子機器３００とのそれぞれの位置情報によって示される機器間の距離が閾値を下回ったときに、これらの機器が近接していると判定してもよい。また、例えば、ネットワーク上の位置に基づいて近接を検出する場合、検出部１１１は、電子機器１００と他の電子機器３００とが同じＬＡＮなどのローカルネットワークに接続されているときに、これらの機器が近接していると判定してもよい。
【００２４】
さらに、電子機器１００と他の電子機器３００とが近接したことは、撮像部１５０が撮像した画像に基づいて検出されてもよい。例えば、検出部１１１は、他の電子機器３００を示す２次元コードなどのマーカーを含む画像が撮像部１５０によって取得された場合に、電子機器１００と他の電子機器３００とが近接していると判定してもよい。また、例えば、検出部１１１は、他の電子機器３００の外観を含む画像が撮像部１５０によって取得された場合に、電子機器１００と他の電子機器３００とが近接していると判定してもよい。検出部１１１は、撮像画像からマーカーや他の電子機器３００の外観を抽出するための画像解析を実行してもよいし、これらを含む画像自体を後述する機器識別情報として送信部１１２に提供してもよい。
【００２５】
なお、ここで、他の電子機器３００は、電子機器１００との連係動作を実現する第１の部分と、他の電子機器３００の機器識別情報が記述された第２の部分とを含んでもよい。例えば、他の電子機器３００は、タワーの頂上に設置されたデジタルカメラのように、ユーザが近づくことが難しい場所に設置されていてもよい。このような場合、電子機器１００（例えばユーザが所持しているスマートフォン）と連係動作するデジタルカメラからは物理的に分離して、ユーザが近づくことが容易な場所に、デジタルカメラの機器識別情報が記述された物（例えばＮＦＣモジュールが内蔵された通信端末や、二次元コードなどのマーカーが記載された表示板など）が設置されていてもよい。このような場合、機器識別情報が記述された物は、デジタルカメラとともに、本実施形態に係る他の電子機器３００を構成する。また、電子機器１００の検出部１１１は、他の電子機器３００の第２の部分が電子機器１００に近接した場合に、他の電子機器３００を検出する。
【００２６】
送信部１１２は、電子機器１００および他の電子機器３００の機器識別情報を、ネットワークを介してスクリプトサーバ２００に送信する。機器識別情報は、スクリプトサーバにおいて後述する連係動作スクリプトを用意する際に、連係動作の対象になる電子機器１００および他の電子機器３００を識別するための情報である。
【００２７】
ここで、送信部１１２は、電子機器１００の機器識別情報については、例えば記憶部１３０に格納された設定情報から取得することが可能でありうる。一方、他の電子機器３００の機器識別情報は、例えば検出部１１１から取得されうる。例えば、検出部１１１が電子機器１００と他の電子機器３００との近距離通信を実行することによって他の電子機器３００を検出する場合、他の電子機器３００の機器識別情報は、近距離通信によって他の電子機器３００から受信されうる。
【００２８】
また、検出部１１１が電子機器１００と他の電子機器３００との現実の位置に基づいて他の電子機器３００を検出する場合、他の電子機器３００の機器識別情報は、例えば他の電子機器３００の位置情報とともにネットワークを経由して検出部１１１に提供されうる。検出部１１１が電子機器１００と他の電子機器３００とのネットワーク上の位置に基づいて他の電子機器３００を検出する場合、機器識別情報は、同じローカルネットワークに接続された他の電子機器３００から直接的に提供されうる。
【００２９】
さらに、検出部１１１が撮像画像に基づいて他の電子機器３００を検出する場合、他の電子機器３００の機器識別情報は、検出部１１１が実行した画像解析によって撮像画像から抽出されたマーカーや他の電子機器３００の外観に基づいて取得されうる。例えば、検出部１１１は、マーカーや外観に対応する機器識別情報を、記憶部１３０またはネットワーク上のデータベースから検索してもよい。あるいは、検出部１１１は、マーカーや外観を含む可能性がある撮像画像を、そのまま機器識別情報として送信部１１２に提供してもよい。この場合、スクリプトサーバ２００において画像解析が実行され、型番などの情報が特定されうる。
【００３０】
受信部１１３は、電子機器１００および他の電子機器３００のための連係動作スクリプトを、ネットワークを介してスクリプトサーバ２００から受信する。受信部１１３は、受信した連係動作スクリプトを制御部１１４に提供する。連係動作スクリプトは、電子機器１００のプロセッサ１１０、および他の電子機器３００のプロセッサによってそれぞれ実行されることによって、電子機器１００と他の電子機器３００との連係動作を実現させる連係動作プログラムの一例である。電子機器１００のための連係動作スクリプトと他の電子機器３００のための連係動作スクリプトとは、互いに異なっていてもよいし、共通の連係動作スクリプトに電子機器１００のためのコードと他の電子機器３００のためのコードとが含まれていてもよい。なお、連係動作スクリプトの詳細については後述する。受信部１１３は、互いに異なる連係動作を実現する複数の連係動作スクリプトをスクリプトサーバ２００から受信し、これらをそのまま制御部１１４に提供してもよい。この場合、制御部１１４が、何らかの基準に従って実行する連係動作スクリプトを選択する。
【００３１】
さらに、受信部１１３は、連係動作スクリプトによって実現される連係動作に関連する情報、例えば連係動作を実現するための手順を説明するマニュアルや、機器、連係動作スクリプトもしくはそれらの提供者を示すロゴなどの画像、または広告などを、連係動作スクリプトとともにスクリプトサーバ２００から受信してもよい。受信された関連する情報は、例えば入力／出力部１４０を介して画像または音声などとしてユーザに向けて出力されうる。また、受信部１１３は、既に受信されて記憶部１３０に格納されている連係動作スクリプトを更新または無効化するためのスクリプトを、スクリプトサーバ２００から受信してもよい。なお、このような追加のスクリプトの詳細については後述する。
【００３２】
制御部１１４は、受信部１１３から提供された連係動作スクリプトに従って電子機器１００を制御し、他の電子機器３００との連係動作を実現させる。ここで、上述のように、他の電子機器３００は、電子機器１００およびスクリプトサーバ２００と共通のネットワークに接続されているなどして、スクリプトサーバ２００から別途連係動作スクリプトを受信可能でありうる。この場合、制御部１１４は、電子機器１００のための連係動作スクリプトに従って電子機器１００を制御するだけである。一方、他の電子機器３００が、電子機器１００とは通信可能であるもののスクリプトサーバ２００とは通信可能ではない場合、制御部１１４は、電子機器１００および他の電子機器３００のそれぞれのための連係動作スクリプトを受信部１１３を介して取得し、このうち他の電子機器３００のための連係動作スクリプトを通信部１２０を介して他の電子機器３００に送信してもよい。
【００３３】
また、制御部１１４は、受信部１１３から、互いに異なる連係動作を実現する複数の連係動作スクリプトが提供された場合、何らかの基準で選択されたいずれかの連係動作スクリプトに従って電子機器１００を制御する。制御部１１４は、例えば、複数の連係動作を入力／出力部１４０に含まれるディスプレイなどを介してユーザに提示し、入力／出力部１４０を介して取得されたユーザ操作に従って、実行する連係動作スクリプトを選択してもよい。
【００３４】
さらに、制御部１１４は、記憶部１３０と協働してもよい。制御部１１４は、例えば、受信部１１３から提供され、他の電子機器３００との連係動作のための電子機器１００の制御に用いられた連係動作スクリプトを、記憶部１３０に少なくとも一時的に格納してもよい。これによって、例えば、次回以降の他の電子機器３００との連係動作の機会において、制御部１１４は、受信部１１３によってスクリプトサーバ２００から受信される連係動作スクリプトに代えて、記憶部１３０に格納された連係動作スクリプトに従って電子機器１００を制御し、他の電子機器３００との連係動作を実現させることができる。記憶部１３０には、連係動作プログラムと他の電子機器３００の機器識別情報とが関連付けて格納されうる。また、記憶部１３０には、例えば連係動作が実行される可能性が高い他の電子機器３００について、連係動作スクリプトが予め格納されていてもよい。これらの場合、制御部１１４は、検出部１１１が他の電子機器３００の機器識別情報を取得した時点で、機器識別情報を用いて記憶部１３０に格納された連係動作スクリプトを検索し、電子機器１００および他の電子機器３００のための連係動作スクリプトが格納されていれば、それに従って電子機器１００を制御する。
【００３５】
なお、連係動作スクリプトが記憶部１３０に格納されていた場合も、例えば連係動作スクリプトのアップデートなどを示すスクリプトの有無を確認するために、送信部１１２および受信部１１３によるスクリプトサーバ２００とのやりとりが実行されうる。例えば連係動作スクリプトにアップデートがあった場合、制御部１１４は、受信部１１３によって受信された追加のスクリプトを記憶部１３０に格納し、そのとき実行されている連係動作の終了後に、当該追加のスクリプトに基づいて連係動作スクリプトをアップデートする。また、制御部１１４は、受信部１１３によって、連係動作スクリプトを無効化するための追加のスクリプトが受信された場合、連係動作を中断して、当該追加のスクリプトに基づいて記憶部１３０に格納された連係動作スクリプトを無効化または破棄してもよい。
【００３６】
さらに、制御部１１４は、連係動作スクリプトに従った制御によって実現される、電子機器１００と他の電子機器３００との連係動作に関連するログを取得し、記憶部１３０に少なくとも一時的に格納しうる。制御部１１４は、取得したログを、リアルタイムで、または事後的に、送信部１１２を介してスクリプトサーバ２００に送信しうる。制御部１１４の機能によって電子機器１００からスクリプトサーバ２００に提供されるログは、例えば、スクリプトサーバ２００によって提供された連係動作スクリプトに従って電子機器１００と他の電子機器３００との連係動作が実行されたことを単純に示す情報であってもよいし、連係動作の内容、例えば連係動作によって機器間でやりとりされたデータなどを記述する情報であってもよい。
【００３７】
（スクリプトサーバ）
スクリプトサーバ２００は、ネットワーク上のサーバであり、１または複数の電子機器１００にサービスを提供する。スクリプトサーバ２００の機能は、例えばネットワークに接続された単一のサーバ装置によって実現されてもよい。あるいは、スクリプトサーバ２００の機能は、複数のサーバ装置に分散して実現されてもよい。この場合、複数のサーバ装置は、ネットワークを介して協働する。上述の通り、スクリプトサーバ２００は、ネットワークを介して電子機器１００と相互に通信することが可能である。また、スクリプトサーバ２００は、他の電子機器３００ともネットワークを介して直接的に通信可能であってもよいし、電子機器１００を介して間接的にのみ他の電子機器３００と通信可能であってもよい。
【００３８】
ここで、スクリプトサーバ２００によるサービスの提供において、電子機器１００と他の電子機器３００とは対称的であってもよい。つまり、ある時には電子機器１００から機器識別情報を含むリクエストが送信されることによって連係動作スクリプトが提供され、別の時には他の電子機器３００から同様のリクエストが送信されることによって連係動作スクリプトが提供されてもよい。あるいは、サービスの提供において、電子機器１００と他の電子機器３００とは非対称的であってもよい。つまり、機器識別情報を含むリクエストを送信するのは専ら電子機器１００であり、他の電子機器３００には電子機器１００からリクエストが送信された場合に限って連係動作スクリプトが提供されてもよい。
【００３９】
スクリプトサーバ２００は、プロセッサ２１０と、通信部２２０と、記憶部２３０とを含む。ハードウェア構成例との関係でいえば、プロセッサ２１０はＣＰＵ、ＲＯＭおよびＲＡＭなどによって実現されうる。通信部２２０は、通信装置によって実現されうる。記憶部１３０は、ストレージ装置および／またはリムーバブル記憶媒体などによって実現されうる。
【００４０】
プロセッサ２１０は、プログラムに従って動作することによって、受信部２１１、検出部２１２、プログラム取得部２１３、および送信部２１４の機能を実現しうる。プロセッサ２１０は、他にも、スクリプトサーバ２００の全体の制御に関するさまざまな機能を実現しうるが、それらの機能は当業者にはよく知られているために、ここでは省略する。以下、上記の各機能について、さらに説明する。
【００４１】
受信部２１１は、電子機器１００の機器識別情報を、ネットワークを介して電子機器１００から受信する。受信部２１１は、さらに、電子機器１００から他の電子機器３００の機器識別情報を受信してもよい。受信部２１１は、受信した機器識別情報を、プログラム取得部２１３に提供する。上述の通り、機器識別情報は、例えば機器の型番などの情報を含んでもよい。また、例えば電子機器１００において撮像画像に基づいて他の電子機器３００が検出されるような場合、機器識別情報は、他の電子機器３００を示す２次元コードなどのマーカーや他の電子機器３００の外観を含む可能性がある撮像画像でありうる。この場合、受信部２１１は撮像画像をプログラム取得部２１３に提供し、プログラム取得部２１３によって画像解析が実行され、型番などの情報が特定されうる。
【００４２】
また、受信部２１１は、電子機器１００において制御部１１４が取得した、電子機器１００と他の電子機器３００との連係動作に関連するログを取得してもよい。上述の通り、ログは、電子機器１００において、スクリプトサーバ２００から提供された連係動作スクリプトに従った制御によって他の電子機器３００との連係動作が実行されたことを単純に示す情報であってもよいし、連係動作の内容、例えば連係動作によって機器間でやりとりされたデータなどを記述する情報であってもよい。受信されたログは、記憶部２３０に少なくとも一時的に格納され、例えばプログラム取得部２１３によって参照されてもよいし、課金などに関するスクリプトサーバ２００の他の機能（図示せず）、または他のサーバによって参照されてもよい。
【００４３】
検出部２１２は、少なくとも１つの他の電子機器３００を検出する。上述の通り、他の電子機器３００は、電子機器１００の連係動作の対象になる機器である。他の電子機器３００は、電子機器１００の検出部１１１によって検出されてもよいが、それとともに、またはそれに代えてスクリプトサーバ２００の検出部２１２によって検出されてもよい。例えば、電子機器１００と他の電子機器３００とが近接したことを、ＧＰＳなどによって検出されるそれぞれの機器の現実の位置から検出する場合や、それぞれの通信状態から認識されるネットワーク上の位置に基づいて検出する場合、電子機器１００および他の電子機器３００とネットワークを介して通信するスクリプトサーバ２００の検出部２１２が、これらの機器が近接したことを検出することも可能でありうる。
【００４４】
プログラム取得部２１３は、電子機器１００および他の電子機器３００のための連係動作スクリプトを取得する。図示された例において、プログラム取得部２１３は、連係動作スクリプトを記憶部２３０から取得するが、他の例では、プログラム取得部２１３が、ネットワーク上の他のサーバから連係動作スクリプトを取得してもよい。連係動作スクリプトは、例えば電子機器１００および他の電子機器３００のそれぞれの機器識別情報に関連付けて記憶部２３０または他のサーバに格納されており、プログラム取得部２１３は、機器識別情報を用いて連係動作スクリプトを検索しうる。上述の通り、連係動作スクリプトは、電子機器１００のプロセッサ１１０、および他の電子機器３００のプロセッサによってそれぞれ実行されることによって、電子機器１００と他の電子機器３００との連係動作を実現させる連係動作プログラムの一例である。
【００４５】
ここで、プログラム取得部２１３は、互いに異なる連係動作を実現する複数の連係動作スクリプトを記憶部２３０または他のサーバから取得してもよい。この場合、複数の連係動作スクリプトは、そのまま送信部２１４によって電子機器１００に送信され、電子機器１００において実行される連係動作スクリプトが選択されうる。あるいは、プログラム取得部２１３は、例えば記憶部２３０に格納された過去の連係動作のログ（電子機器１００によって提供される）に基づいて、実行される可能性が高い連係動作を実現する連係動作スクリプトを選択し、選択された１または複数の連係動作スクリプトを送信部２１４を介して電子機器１００に提供してもよい。
【００４６】
さらに、プログラム取得部２１３は、連係動作スクリプトによって実現される連係動作に関連する情報、例えば連係動作を実現するための手順を説明するマニュアルや、機器、連係動作スクリプトもしくはそれらの提供者を示すロゴなどの画像、または広告などを、連係動作スクリプトとともに取得してもよい。取得された関連する情報は、連係動作スクリプトとともに送信部２１４を介して電子機器１００に提供される。また、プログラム取得部２１３は、既に電子機器１００の記憶部１３０に格納されている連係動作スクリプトを更新または無効化するための追加のスクリプトを、記憶部２３０または他のサーバから取得してもよい。
【００４７】
送信部２１４は、電子機器１００および他の電子機器３００のための連係動作スクリプトを、ネットワークを介して電子機器１００に送信する。送信部２１４は、さらに、連係動作スクリプトを他の電子機器３００にも送信してもよい。例えば、電子機器１００と他の電子機器３００とがいずれもスクリプトサーバ２００と共通のネットワークに接続されている場合、送信部２１４は、電子機器１００および他の電子機器３００の両方に連係動作スクリプトを送信しうる。一方、他の電子機器３００がスクリプトサーバ２００と直接的には通信可能でない場合、送信部２１４は、電子機器１００から他の電子機器３００に連係動作スクリプトを転送させるために、電子機器１００および他の電子機器３００の両方のための連係動作スクリプトを電子機器１００に送信しうる。また、送信部２１４は、プログラム取得部２１３によって取得された、連係動作に関連する情報を、電子機器１００および／または他の電子機器３００に送信してもよい。さらに、送信部２１４は、既に電子機器１００または他の電子機器３００において格納されている連係動作スクリプトを更新または無効化するための追加のスクリプトを、電子機器１００または他の電子機器３００に送信してもよい。
【００４８】
（１−２．処理フロー）
図２は、本開示の一実施形態に係る電子機器の処理の例を示すフローチャートである。図２に示された例では、まず、電子機器１００の検出部１１１が、他の電子機器３００を検出する（ステップＳ１０１）。ここで、上述のように、他の電子機器３００の検出は、例えば、近距離通信や位置情報、撮像画像などに基づいて実行されうる。検出部１１１は、検出された他の電子機器３００の機器識別情報を制御部１１４に提供する。
【００４９】
ステップＳ１０１において、他の電子機器３００が検出された場合、制御部１１４は、検出された他の電子機器３００との連係動作のための連係動作スクリプトが、既に記憶部１３０に格納されているか（キャッシュされているか）否かを判定する（ステップＳ１０３）。ここで、上述のように、制御部１１４は、検出部１１１から提供された他の電子機器３００の機器識別情報を用いて記憶部１３０に格納された連係動作スクリプトを検索しうる。
【００５０】
ステップＳ１０３において、連係動作スクリプトがキャッシュされていた場合、制御部１１４は連係動作スクリプトを読み出し、連係動作スクリプトに従って電子機器１００を制御することによって、他の電子機器３００との連係動作を実現する（ステップＳ１０９）。一方、連係動作スクリプトがキャッシュされていなかった場合、送信部１１２が電子機器１００および他の電子機器３００の機器識別情報を含むリクエストをスクリプトサーバ２００に送信し（ステップＳ１０５）、リクエストに応じてスクリプトサーバ２００が送信した連係動作スクリプトを受信部１１３が受信する（ステップＳ１０７）。制御部１１４は、ここで受信された連係動作スクリプトに従って電子機器１００を制御することによって、他の電子機器３００との連係動作を実現する（ステップＳ１０９）。
【００５１】
ステップＳ１０９における連係動作の終了後、制御部１１４は、使用された連係動作スクリプトを記憶部１３０に格納する（キャッシュする）。これによって、図示された例では、２回目以降に同じ他の電子機器３００が検出された場合（ステップＳ１０１）、記憶部１３０に連係動作スクリプトがキャッシュされているために（ステップＳ１１１）、迅速に連係動作を開始することが可能になる。
【００５２】
図３は、本開示の一実施形態に係るスクリプトサーバの処理の例を示すフローチャートである。図３に示された例では、まず、スクリプトサーバ２００の受信部２１１が、電子機器１００から、電子機器１００の機器識別情報を含むスクリプト要求を受信する（ステップＳ２０１）。ここで、スクリプト要求は、例えば電子機器１００において他の電子機器３００が検出された場合や、電子機器１００においてユーザ操作によって連係動作の開始が指示された場合などに送信されうる。
【００５３】
ステップＳ２０１において、スクリプト要求が受信された場合、プログラム取得部２１３は、スクリプト要求において連係相手、すなわち他の電子機器３００が特定されているか否かを判定する（ステップＳ２０３）。この判定は、スクリプト要求に、電子機器１００の機器識別情報だけでなく他の電子機器３００の機器識別情報も含まれているか否かの判定ともいえる。
【００５４】
ステップＳ２０３において、スクリプト要求において他の電子機器３００が特定されていた場合、プログラム取得部２１３は、電子機器１００および他の電子機器３００の機器識別情報を用いて記憶部２３０または他のサーバに格納された連係動作スクリプトを検索し、電子機器１００および他の電子機器３００のための連係動作スクリプトを取得する（ステップＳ２０７）。一方、スクリプト要求において他の電子機器３００が特定されていなかった場合、検出部２１２が電子機器１００の連係相手の機器である他の電子機器３００を検出し（ステップＳ２０５）、プログラム取得部２１３は検出部２１２によって提供された他の電子機器３００の機器認識情報を用いて連係動作スクリプトを取得する（ステップＳ２０７）。
【００５５】
ステップＳ２０７において連係動作スクリプトが取得された後、送信部２１４が、連係動作スクリプトを電子機器１００に送信する（ステップＳ２０９）。上述の通り、送信部２１４は、連係動作スクリプトを他の電子機器３００にも送信してもよい。
【００５６】
（２．連係動作の仕組みと具体例）
次に、図４〜図８を参照して、本開示の一実施形態における連係動作の仕組みと具体例について説明する。
【００５７】
（２−１．連係動作の仕組み）
図４および図５は、本開示の一実施形態における連係動作スクリプトの機能について説明するための図である。図４および図５では、電子機器１００および他の電子機器３００について、それぞれ、機器ＡＰＩ（Application  Programming  Interface）１０１，３０１、通信機能１０３，３０３、およびその他機能３０５が図示されている。以下、これらの要素について、電子機器１００を例として説明するが、他の電子機器３００についても同様である。
【００５８】
機器ＡＰＩ１０１は、電子機器１００の機能を利用するために用意されるＡＰＩであり、電子機器１００のプロセッサ１１０によってソフトウェア的に実現されうる。電子機器１００の通信機能１０３やその他機能１０５は、機器ＡＰＩ１０１によって抽象化されている。つまり、例えば、機器ＡＰＩ１０１において定義された関数を呼び出すと、プロセッサ１１０が、プロセッサ１１０自身や、通信部１２０、記憶部１３０、および入力／出力部１４０などのハードウェアを制御して、通信機能１０３やその他機能１０５を実現させるための制御コマンドを発行する。
【００５９】
図４に示す状態において、少なくとも電子機器１００には連係動作スクリプトがない。この状態では、電子機器１００と他の電子機器３００との連係動作は可能ではない。一方、図５に示す状態では、スクリプトサーバ２００によって、電子機器１００に連係動作スクリプト１０７が配信されている。電子機器１００では、プロセッサ１１０が連係動作スクリプト１０７に従って機器ＡＰＩ１０１に定義された関数を呼び出すことによって、他の電子機器３００との連係動作のための通信機能１０３およびその他機能１０５が実現される。
【００６０】
一方、他の電子機器３００でも、電子機器１００と同様に、スクリプトサーバ２００によって連係動作スクリプト３０７が配信されてもよい。あるいは、図４に示すように、他の電子機器３００には、連係動作スクリプト３０７が予め用意されていてもよい。他の電子機器３００では、連係動作スクリプト３０７に従って機器ＡＰＩ３０１に定義された関数が呼び出されることによって、電子機器１００との連係動作のための通信機能３０３およびその他機能３０５が実現される。図５では、連係動作の中で、電子機器１００の通信機能１０３と他の電子機器３００の通信機能３０３とが互いに通信している状態が例示されている。
【００６１】
ここで、本実施形態における連係動作スクリプトについて、改めて説明する。本明細書では、連係動作プログラムのうち、スクリプト形式で記述されたものを連係動作スクリプトと称している。スクリプト形式は、プログラムがスクリプト言語またはインタプリタ言語で記述されていることを意味しうる。このような言語の一例として、マークアップ言語が挙げられる。なお、連係動作プログラムは、スクリプト形式に限らず他の形式（例えば、オブジェクトコードやアセンブリ言語など）で記述されていてもよいが、連係動作プログラムがスクリプト形式で記述される場合、例えばプログラムの開発期間が短縮されるなどの点で有利である。
【００６２】
連係動作スクリプトには、例えば、動作を実行する主体や、使用されるＡＰＩの関数、関数に設定されるパラメータ、実行される関数の組み合わせや順序などが記述されている。例えば図４および図５に示した例において、電子機器１００では、プロセッサ１１０において連係動作スクリプト１０７に対応するインタプリタが実装され、当該インタプリタによる連係動作スクリプト１０７の解釈に従って機器ＡＰＩ１０１の関数が呼び出されることによって、通信機能１０３およびその他機能１０５が実現される。他の電子機器３００においても同様である。
【００６３】
このように、本実施形態では、電子機器のハードウェアによって実現される機能を機器ＡＰＩによって抽象化し、連係動作スクリプトによって所定の条件および／または手順で機器ＡＰＩを介して各機能を実現させることによって、機器間の連係動作を実現する。従って、電子機器の製造時にすべての連係動作のための条件や手順を決定してプログラムとして書き込むことは必要ではなく、電子機器の製造後に連係動作スクリプトによって条件や手順を定義することが可能である。それゆえ、電子機器の開発期間を短縮することができ、また電子機器の製造後に登場した新たな機器との連係動作も容易に実現できる。
【００６４】
また、連係相手の電子機器が具体的に特定されてから連係動作スクリプトを提供することが可能であるため、例えば実現不可能なものも含めた多数の連係動作に関する情報が表示されてユーザに混乱をきたすようなこともない。また、例えば地域ごとに流通している商品の違いによって連係相手の電子機器が異なるような場合にも、電子機器自体のプログラム設計自体には手を加えることなく、それぞれの地域に合わせた連係動作を選択的に提示および実現することができる。また、連係スクリプトの更新や無効化が可能であることによって、例えば、連係動作の使用権限の事後的な管理や、期間限定で有効な連係動作スクリプトの配布といったことも可能である。
【００６５】
（２−２．連係動作の具体例）
（第１の例：デジタルカメラで撮像した画像をスマートフォンで記録する）
図６は、本開示の一実施形態における連係動作の第１の具体例について説明するための図である。図６に示す例では、電子機器１００の具体例としてスマートフォン１００ａが、他の電子機器３００の具体例としてデジタルカメラ３００ａが、それぞれ示されている。
【００６６】
図示された例において、スマートフォン１００ａには“画像を受信して記録する”の連係動作スクリプト１０７ａが、デジタルカメラ３００ａには“画像を撮像して送信する”の連係動作スクリプト３０７ａが、それぞれスクリプトサーバ２００から提供されている。連係動作スクリプト１０７ａ，３０７ａは、“デジタルカメラ３００ａで撮像した画像を、スマートフォン１００ａに転送して記録する”という、スマートフォン１００ａとデジタルカメラ３００ａとの連係動作を実現させるためのスクリプトである。例えば、連係動作スクリプト１０７ａ，３０７ａは、スクリプトサーバ２００において、スマートフォン１００ａおよびデジタルカメラ３００ａの機器識別情報に関連付けて格納されていてもよい。
【００６７】
“デジタルカメラ３００ａで撮像した画像を、スマートフォン１００ａに転送して記録する”という連係動作は、例えば、同じ場所を訪れた友人同士で写真を共有したり、観光地やイベント会場などでパブリックに提供されているカメラ（例えば立入禁止区域に設置されている）の画像を取得したりする場合に実行されうる。従って、連係動作スクリプト１０７ａ，３０７ａは、例えばスマートフォン１００ａとデジタルカメラ３００ａとが近接して近距離通信が実行されたときや、スマートフォン１００ａのカメラによってデジタルカメラ３００ａを示す二次元コードを含む画像が撮像されたときなどに、スマートフォン１００ａおよびデジタルカメラ３００ａに配信されうる。より具体的には、デジタルカメラ３００ａの機器識別情報を含むリクエストがスマートフォン１００ａからスクリプトサーバ２００に送信されたときに、スクリプトサーバ２００から連係動作スクリプト１０７ａ，３０７ａが配信されうる。
【００６８】
ここで、スクリプトサーバ２００は、スマートフォン１００ａには連係動作スクリプト１０７ａを、デジタルカメラ３００ａには連係動作スクリプト３０７ａを、それぞれ送信してもよい。あるいは、スクリプトサーバ２００は、スマートフォン１００ａおよびデジタルカメラ３００ａの両方に連係動作スクリプト１０７ａおよび連係動作スクリプト３０７ａの両方を送信し、スマートフォン１００ａは連係動作スクリプト１０７ａを、デジタルカメラ３００ａは連係動作スクリプト３０７ａを、それぞれ選択的に実行してもよい。この場合、連係動作スクリプト１０７ａと連係動作スクリプト３０７ａとは、例えば同じファイルに記述されていてもよいし、別々のファイルに記述されていてもよい。
【００６９】
例えば、デジタルカメラ３００ａの機器ＡＰＩ３０１ａでは、撮像機能３０５ａによって画像を撮像するための関数と、通信機能３０３ａによって画像データを送信するための関数とが定義されている。デジタルカメラ３００ａでは、連係動作スクリプト３０７ａに従ってこれらの関数が呼び出される結果、まず撮像機能３０５ａによる撮像が実行され、次に撮像によって得られた画像データを対象として通信機能３０３ａによるデータ送信が実行される。このとき、連係動作スクリプト３０７ａに従って、画像データの送信先としてスマートフォン１００ａが指定されうる。
【００７０】
一方、スマートフォン１００ａの機器ＡＰＩ１０１ａでは、通信機能１０３ａによって画像データを受信するための関数と、記録機能１０５ａによって画像データを記録するための関数とが定義されている。スマートフォン１００ａでは、連係動作スクリプト１０７ａに従ってこれらの関数が呼び出される結果、まず通信機能１０３による画像データの受信が実行され、次に受信された画像データが記録機能１０５ａによって記録される。このとき、連係動作スクリプト１０７ａに従って、画像データの送信元としてデジタルカメラ３００ａが指定されうる。
【００７１】
（第２の例：リモート撮影）
図７は、本開示の一実施形態における連係動作の第２の具体例について説明するための図である。図７に示す例でも、電子機器１００の具体例としてスマートフォン１００ａが、他の電子機器３００の具体例としてデジタルカメラ３００ａが、それぞれ示されている。
【００７２】
図示された例において、スマートフォン１００ａには“リモート撮影”の連係動作スクリプト１０７ｂが、デジタルカメラ３００ａには“リモート撮影”の連係動作スクリプト３０７ｂが、それぞれスクリプトサーバ２００から提供されている。連係動作スクリプト１０７ｂ，３０７ｂは、“スマートフォン１００ａからデジタルカメラ３００ａをリモート制御して撮影を実行する”という、スマートフォン１００ａとデジタルカメラ３００ａとの連係動作を実現させるためのスクリプトである。第１の例と同様に、連係動作スクリプト１０７ｂ，３０７ｂも、例えばスクリプトサーバ２００において、スマートフォン１００ａとデジタルカメラ３００ａとの機器識別情報に関連付けて格納されていてもよい。スクリプトサーバ２００からスマートフォン１００ａおよびデジタルカメラ３００ａへのスクリプトの配信形態についても、上記の第１の例と同様である。
【００７３】
“スマートフォン１００ａからデジタルカメラ３００ａをリモート制御して撮影を実行する”という連係動作も、上記の第１の例と同様の状況において実行されうる。従って、連係動作スクリプト１０７ｂ，３０７ｂも、第１の例と同様の条件で、スマートフォン１００ａおよびデジタルカメラ３００ａに配信されうる。
【００７４】
例えば、スマートフォン１００ａの機器ＡＰＩ１０１ａでは、上記の第１の例における通信機能１０３ａとは別の通信機能１０３ｂによって、撮像機器に制御コマンドを送信するとともに当該撮像装置から画像データを受信するための関数が定義されている。また、デジタルカメラ３００ａの機器ＡＰＩ３０１ａでは、上記の第１の例における通信機能３０３ａとは別の通信機能３０３ｂによって、制御機器から制御コマンドを受信するとともに画像データを当該制御機器に送信するための関数が定義されている。
【００７５】
この第２の例では、まず、スマートフォン１００ａで、連係動作スクリプト１０７ｂによって機器ＡＰＩ１０１ａを介して通信機能１０３ｂが実行される。このとき、送信先の撮像機器としてデジタルカメラ３００ａが指定されることによって、スマートフォン１００ａからデジタルカメラ３００ａに制御コマンドが送信される。一方、デジタルカメラ３００ａでは、連係動作スクリプト３０７ｂによって機器ＡＰＩ３０１ａを介して通信機能３０３ｂが実行される。このとき、送信元の制御機器としてスマートフォン１００ａが指定されることによって、スマートフォン１００ａから送信された制御コマンドが受信される。
【００７６】
ここで、制御コマンドには、連係動作スクリプト１０７ｂによって指定されたデジタルカメラ３００ａの機器ＡＰＩ３０１ａの関数の情報が含まれうる。このように、本実施形態では、連係動作スクリプトに記述された連係相手の機器の機器ＡＰＩに関する情報を利用することによって、例えば上記の例のようなリモート制御の場合において、連係相手の機器に応じた制御コマンドを発行することができる。
【００７７】
続いて、デジタルカメラ３００ａでは、受信された制御コマンドに従って撮像機能３０５ａによる撮像が実行され、撮像によって得られた画像データが通信機能３０３ｂによってスマートフォン１００ａに送信される。スマートフォン１００ａでは、通信機能１０３ｂによってデジタルカメラ３００ａから画像データが受信され、受信された画像データが記録機能１０５ａによって記録される。
【００７８】
（第３の例：通話中録画）
図８は、本開示の一実施形態における連係動作の第３の具体例について説明するための図である。図８に示す例では、電子機器１００の具体例としてスマートフォン１００ａが、他の電子機器３００の具体例としてテレビ３００ｃおよびレコーダ３００ｄが、それぞれ示されている。
【００７９】
図示された例において、スマートフォン１００ａ、テレビ３００ｃ、およびレコーダ３００ｄには、“通話中録画”の連係動作スクリプト１０７ｃ，３０７ｃ，３０７ｄが、それぞれスクリプトサーバ２００から提供されている。連係動作スクリプト１０７ｃ，３０７ｃ，３０７ｄは、“スマートフォン１００ａでの通話中に、テレビ３００ｃで放映されていたコンテンツをレコーダ３００ｄで録画し、通話終了後に再生する”という、スマートフォン１００ａとテレビ３００ｃとレコーダ３００ｄとの間での連係動作を実現させるためのスクリプトである。連係動作スクリプト１０７ｃ，３０７ｃ，３０７ｄは、例えばスクリプトサーバ２００において、スマートフォン１００ａとテレビ３００ｃとレコーダ３００ｄとの機器識別情報に関連付けて格納されていてもよい。
【００８０】
“スマートフォン１００ａでの通話中に、テレビ３００ｃで放映されていたコンテンツをレコーダ３００ｄで録画し、通話終了後に再生する”という連係動作は、例えば、スマートフォン１００ａのユーザが自宅でテレビ３００ｃを視聴しているときに、スマートフォン１００ａに電話がかかってきた場合に実行されうる。連係動作スクリプト１０７ｃ，３０７ｃ，３０７ｄは、例えばスマートフォン１００ａとテレビ３００ｃとレコーダ３００ｄとが同じ家庭内ＬＡＮに接続されたときに、スクリプトサーバ２００からそれぞれの機器に配信されうる。
【００８１】
ここで、スマートフォン１００ａと、テレビ３００ｃおよび／またはレコーダ３００ｄとの連係動作としては他にも多くの動作がありうるため、例えばスマートフォン１００ａを家庭内ＬＡＮに接続したときには、連係動作スクリプト１０７ｃ，３０７ｃ，３０７ｄを含む複数の連係動作スクリプトがこれらの機器に配信されてもよい。あるいは、ユーザ操作によって配信を受ける連係動作スクリプトが選択可能であってもよい。それぞれの連係動作スクリプトによって連係動作を実行するタイミングは、例えばユーザ操作によって指定されてもよいし、それぞれの機器が実行する他の動作に連動して自動的に決定されてもよい。
【００８２】
図示された例では、スマートフォン１００ａにおいて、連係動作スクリプト１０７ｃが、機器ＡＰＩ１０１ａを介して、通話機能１０５ｃによる通話が開始されたことを認識した場合に、機器ＡＰＩ１０１ａを介して通信機能１０３ｃを起動する。通信機能１０３ｃによって、テレビ３００ｃおよびレコーダ３００ｄに、連係動作スクリプト３０７ｃ，３０７ｄによる連係動作が開始されることが通知される。
【００８３】
このとき、テレビ３００ｃでは、連係動作スクリプト３０７ｃが、機器ＡＰＩ３０１ｃを介して、表示機能３０５ｃによって放映されているコンテンツに関する情報（放送波のチャンネルなど）を取得するとともに、通信機能３０３ｃによって取得された情報をレコーダ３００ｄに送信する。一方、レコーダ３００ｄでは、連係動作スクリプト３０７ｄが、機器ＡＰＩ３０１ｄを介して、通信機能３０３によってテレビ３００ｃから送信された情報を受信するとともに、録画機能３０５ｄによってコンテンツの録画を開始する。
【００８４】
その後、スマートフォン１００ａにおいて、連係動作スクリプト１０７ｃが、機器ＡＰＩ１０１ａを介して、通話機能１０５ｃによる通話が終了したことを認識する。このとき、通信機能１０３ｃによって、テレビ３００ｃおよびレコーダ３００ｄに、連係動作の段階を録画から再生に進めることが通知させる。このとき、レコーダ３００ｄでは、連係動作スクリプト３０７ｄが、録画機能３０５ｄによるコンテンツの録画を終了し（コンテンツの放映が終了していない場合、この後のタイムシフト再生のために録画が継続されてもよい）、録画されたコンテンツを通信機能３０３ｄによってテレビ３００ｃに提供する。
【００８５】
一方、テレビ３００ｃでは、連係動作スクリプト３０７ｄが、通信機能３０３ｃによってレコーダ３００ｄから送信されたコンテンツを受信し、受信されたコンテンツを表示機能３０５ｃによって放映する。このようなテレビ３００ｃの動作は、例えば、表示機能３０５ｃによって放映されるコンテンツのソースを、放送波からＨＤＭＩ（登録商標）（High-Definition  Multimedia  Interface）に切り替える動作でありうる。以上のような連係動作によって、ユーザは、スマートフォン１００ａでの通話を終えた後、通話中に放映されていたために見逃したであろうコンテンツの部分を、テレビ３００ｃで視聴することができる。
【００８６】
なお、図示された例において、通信機能３０３ｃ，３０３ｄは、スマートフォン１００ａをも含む家庭内ＬＡＮを介した通信と、テレビ３００ｃおよびレコーダ３００ｄの間でのＨＤＭＩ（登録商標）を用いた通信との両方を実行可能でありうる。これらの通信は、例えば機器ＡＰＩ３０１ｃ，３０１ｄでは別々の関数によって実装されてもよい。このように、説明されているそれぞれの例において説明されている機能は、必ずしも機器ＡＰＩにおいて定義される関数などには対応しない。それぞれの機能は、例えば、機器ＡＰＩに定義された複数の関数を所定の手順に従って呼び出すことによって実現されうる。
【００８７】
以上で説明したように、本実施形態では、さまざまな機器によるさまざまな連係動作が可能である。上記の例によって示されるように、例えばそれぞれの機器に予め連係動作のための手順を記憶させることによって実現される連係動作のすべては、それぞれの機器において機器ＡＰＩを用意し、機器ＡＰＩを利用可能な連係動作スクリプトを配信することによって、本実施形態に係るシステムにおける連係動作として実現することが可能でありうる。
【００８８】
（３．実装例）
次に、図９および図１０を参照して、本開示の一実施形態の実装例について説明する。
【００８９】
（３−１．電子機器の実装例）
図９は、本開示の一実施形態における電子機器の実装例を示す図である。図９に示される電子機器１００は、ネットワークを介してスクリプトサーバ２００と通信し、スクリプトサーバ２００のサーブレット２１３０との間でさまざまな情報を送受信する。なお、以下で説明する要素のうち、パーサ１１４１、パネル状態１１４３、スクリプトエンジン１１４５、機器ＡＰＩ１１４７、およびイベントハンドラ１１４９は、例えば電子機器１００のプロセッサ１１０によって実現される制御部１１４、または制御部１１４によって実現される表示に対応する。ネットワークインターフェース１１２０（またはネットワークインターフェース１１３０）は、例えば電子機器１００のプロセッサ１１０によって実現される送信部１１２および／または受信部１１３に対応する。また、ローカルストレージ１３０１およびリポジトリ１３０３は、例えば電子機器１００の記憶部１３０に対応する。ビュー１４０１およびＵＩイベントコントロール１４０３は、例えば電子機器１００の入力／出力部１４０に対応する。なお、図９には、必ずしも、図１に記載された電子機器１００の構成要素のすべてに対応する要素が図示されているわけではない。
【００９０】
パーサ１１４１は、スクリプトサーバ２００から受信されたスクリプト（連係動作スクリプト）をパースする。スクリプトは、例えばマークアップ言語などを用いたテキストとして記述されうるが、パーサ１１４１はこのテキストをパースして、例えばオブジェクトモデルを生成する。生成されたオブジェクトモデルは、パネル状態１１４３として、ディスプレイに表示されるビュー１４０１を介したユーザの閲覧に供される。パネル状態１１４３には、現時点で実行可能な連係動作に対応する複数の（パースされた）スクリプトが含まれる。例えば、電子機器１００と他の機器との位置関係や通信状態が変化したことによって実行可能な連係動作が変更された場合、新たに受信されたスクリプトによってパネル状態１１４３が更新されてもよい。また、生成されたオブジェクトモデルは、ローカルストレージ１３０１に格納されてもよい。
【００９１】
ＵＩイベントコントロール１４０３は、ＵＩ（User  Interface）からのイベントに基づく制御である。ＵＩイベントコントロール１４０３は、例えば、ビュー１４０１を介してパネル状態１１４３を参照したユーザの入力操作に基づく情報を、スクリプトエンジン１１４５に提供する。スクリプトエンジン１１４５は、ユーザの入力操作に基づいて、パネル状態１１４３に含まれるスクリプトの中から実行するスクリプトを決定する。あるいは、スクリプトエンジン１１４５は、ローカルストレージ１３０１から実行するスクリプトを読み出してもよい。
【００９２】
スクリプトエンジン１１４５は、機器ＡＰＩ１１４７を介して、機器機能１００１を呼び出す。このとき、例えばコンテンツなど、リポジトリ１３０３に格納されたデータが参照されてもよい。スクリプトエンジン１１４５は、スクリプトが実行されたことをスクリプトサーバ２００に通知する。また、スクリプトエンジン１１４５は、このときの機器ＡＰＩの状態を、スクリプトサーバ２００に通知してもよい。
【００９３】
一方、イベントハンドラ１１４９は、機器ＡＰＩ１１４７を介して、実現されている機器機能１００１の状態の通知（local  notification）を受け、この通知に基づいてスクリプトエンジン１１４５を制御する。例えば、ユーザの入力操作とともに、またはこれに代えて、イベントハンドラ１１４９によって取得される機器機能１００１の状態に基づいて、スクリプトエンジン１１４５によって実行されるスクリプトが決定されてもよい。また、イベントハンドラ１１４９は、スクリプトサーバ２００から、例えば連係相手の機器の状態などの通知を受信してもよい。
【００９４】
ここで、機器機能１００１およびリポジトリ１３０３は、電子機器１００のネイティブ機能として実装されており、機器ＡＰＩ１１４７は、スクリプトエンジン１１４５やイベントハンドラ１１４９を含むＯＳ(Operating  System)アプリケーションとネイティブ機能との間のインターフェースとして機能する。また、上述したパーサ１１４１、パネル状態１１４３、ビュー１４０１、およびＵＩイベントコントロール１４０３を含む機能は、例えばＯＳアプリケーション上で動作するブラウザアプリケーションとして実装されうる。
【００９５】
（３−２．スクリプトサーバの実装例）
図１０は、本開示の一実施形態におけるスクリプトサーバの実装例を示す図である。図１０に示されるスクリプトサーバ２００は、ネットワークを介して電子機器１００と通信し、上述した電子機器１００のパーサ１１４１、スクリプトエンジン１１４５、および／またはイベントハンドラ１１４９との間でさまざまな情報を送受信する。なお、以下で説明する要素のうち、サーブレット２１３０（スクリプトコントロール２１３１およびＡＰＩマネジメント２１３３）は、例えばスクリプトサーバ２００のプロセッサ２１０によって実現されるプログラム取得部２１３に対応する。ネットワークインターフェース２１１０（またはネットワークインターフェース２１４０）は、例えばスクリプトサーバ２００のプロセッサ２１０によって実現される受信部２１１および／または送信部２１４に対応する。また、スクリプト／ＡＰＩデータベース２３０１、ＡＰＩデータベース２３０３、およびＡＰＩ状態データベース２３０５は、例えばスクリプトサーバ２００の記憶部２３０に対応する。なお、図１０には、必ずしも、図１に記載されたスクリプトサーバ２００の構成要素のすべてに対応する要素が図示されているわけではない。
【００９６】
サーブレット２１３０に含まれるスクリプトコントロール２１３１は、後述するデータベースに格納された情報と、ＡＰＩマネジメント２１３３から提供された機器ＡＰＩの状態とに基づいて、電子機器１００のパーサ１１４１にスクリプトを送信する。また、スクリプトコントロール２１３１は、電子機器１００のイベントハンドラ１１４９に、例えば連係相手の機器の状態などの通知を送信する。
【００９７】
一方、ＡＰＩマネジメント２１３３は、電子機器１００のスクリプトエンジン１１４５から、電子機器１００の機器ＡＰＩの状態を受信する。ＡＰＩマネジメント２１３３は、電子機器１００に対して機器ＡＰＩの状態の問い合わせを実行してもよい。ＡＰＩマネジメント２１３３は、受信された機器ＡＰＩの状態を、ＡＰＩ情報データベース２３０５に登録する。
【００９８】
スクリプト／ＡＰＩデータベース２３０１は、機器ＡＰＩと、関連する機器ＡＰＩとに関連付けて、スクリプトを保持している。機器ＡＰＩは、それぞれの電子機器１００ごとに異なるため、機器ＡＰＩを識別するＩＤなどの情報は、機器識別情報としても利用できる。従って、本実装例において、スクリプトコントロール２１３１は、ＡＰＩマネジメント２１３３を介して取得された電子機器１００の機器ＡＰＩ１１４７の状態（関連する他の機器の機器ＡＰＩの状態を含む）に基づいて、スクリプト／ＡＰＩデータベース２３０１からスクリプトを検索することができる。
【００９９】
ＡＰＩデータベース２３０３は、機器ＡＰＩに関する情報を保持している。ＡＰＩデータベース２３０３では、例えば、機器ＡＰＩの更新が管理されうる。ＡＰＩ状態データベース２３０５では、個々の機器ＡＰＩ（例えばＩＤによって識別される）が、電子機器１００においてどのような状態であるか（デフォルトか否か、機器の状態、ユーザの状態、アドホックか否か、他の機器ＡＰＩとの接続状態、など）が登録される。スクリプトコントロール２１３１は、例えばスクリプト／ＡＰＩデータベース２３０１を参照するときに、連係動作に関連する個々の機器ＡＰＩの状態をＡＰＩ状態データベース２３０５から取得してもよい。
【０１００】
（３−３．連係動作スクリプトの実装例）
以下に、本開示の一実施形態に係る、連係動作プログラムの一例である連係動作スクリプトの２つの実装例を示す。
【０１０１】
（第１の実装例）
第１の実装例は、上述した第１の具体例、つまりデジタルカメラで撮像した画像をスマートフォンで記録する例に対応するスクリプトである。
【０１０２】
下記の例において、SDNはスクリプトの書式に与えられた名称であり、これ自体に意味はない。Actionは、連係動作の個々の要素を意味する。FeatureActionは、この例における撮像画像の共有のように、一連の動作によって実現される連係動作の全体に対応するActionの種類である。一方、CoreActionは、FeatureActionを実現するために適宜呼び出される基本的なActionである。Deviceは、抽象化された機器を意味する。SelfDeviceは上述の例における電子機器１００、NeighborDeviceは上述の例における他の電子機器３００に与えられる名称である。なお、スクリプトに記述された処理は、必ずしも上記の第１の具体例に厳密に対応するとは限らない。
【０１０３】
2015035169.tif 000003
【０１０４】
（第２の実装例）
第２の実装例は、上述した第２の具体例、つまりリモート撮影の例に対応するスクリプトである。なお、スクリプト中の用語については上記の第１の実装例と同様である。また、スクリプトに記述された処理は、必ずしも上記の第２の具体例に厳密に対応するとは限らない。
【０１０５】
2015035169.tif 000004
【０１０６】
（４．ハードウェア構成）
次に、図１１を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図１１は、本開示の実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。図示された情報処理装置９００は、例えば、上記の実施形態における電子機器１００、スクリプトサーバ２００または他の電子機器３００を実現しうる。
【０１０７】
情報処理装置９００は、ＣＰＵ（Central  Processing  unit）９０１、ＲＯＭ（Read  Only  Memory）９０３、およびＲＡＭ（Random  Access  Memory）９０５を含む。また、情報処理装置９００は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。さらに、情報処理装置９００は、必要に応じて、撮像装置９３３、およびセンサ９３５を含んでもよい。情報処理装置９００は、ＣＰＵ９０１に代えて、またはこれとともに、ＤＳＰ（Digital  Signal  Processor）またはＡＳＩＣ（Application  Specific  Integrated  Circuit）と呼ばれるような処理回路を有してもよい。
【０１０８】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置９００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Peripheral  Component  Interconnect/Interface）バスなどの外部バス９１１に接続されている。
【０１０９】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置９００の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりする。
【０１１０】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Liquid  Crystal  Display）、ＰＤＰ（Plasma  Display  Panel）、有機ＥＬ（Electro-Luminescence）ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置９１７は、情報処理装置９００の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
【０１１１】
ストレージ装置９１９は、情報処理装置９００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Hard  Disk  Drive）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【０１１２】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【０１１３】
接続ポート９２３は、機器を情報処理装置９００に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Universal  Serial  Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small  Computer  System  Interface）ポートなどでありうる。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置９００と外部接続機器９２９との間で各種のデータが交換されうる。
【０１１４】
通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Local  Area  Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Wireless  USB）用の通信カードなどでありうる。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Asymmetric  Digital  Subscriber  Line）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【０１１５】
撮像装置９３３は、例えば、ＣＣＤ（Charge  Coupled  Device）またはＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置９３３は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
【０１１６】
センサ９３５は、例えば、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサなどの各種のセンサである。センサ９３５は、例えば情報処理装置９００の筐体の姿勢など、情報処理装置９００自体の状態に関する情報や、情報処理装置９００の周辺の明るさや騒音など、情報処理装置９００の周辺環境に関する情報を取得する。また、センサ９３５は、ＧＰＳ（Global  Positioning  System）信号を受信して装置の緯度、経度および高度を測定するＧＰＳセンサを含んでもよい。
【０１１７】
以上、情報処理装置９００のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
【０１１８】
（５．補足）
本開示の実施形態は、例えば、上記で説明したような情報処理装置（電子機器またはサーバ）、システム、情報処理装置またはシステムで実行される情報処理方法、情報処理装置を機能させるためのプログラム、およびプログラムが記録された一時的でない有形の媒体を含みうる。
【０１１９】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２０】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）ネットワークに接続される電子機器であって、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信する送信部と、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信する受信部と、
前記連係動作プログラムに従って前記電子機器を制御する制御部と
を備える電子機器。
（２）前記少なくとも１つの他の電子機器を検出する検出部をさらに備える、前記（１）に記載の電子機器。
（３）前記検出部は、前記少なくとも１つの他の電子機器が前記電子機器に近接した場合に、前記少なくとも１つの他の電子機器を検出する、前記（２）に記載の電子機器。
（４）前記検出部は、前記少なくとも１つの他の電子機器との間で近距離通信を実行することによって前記少なくとも１つの他の電子機器を検出する、前記（３）に記載の電子機器。
（５）前記検出部は、前記少なくとも１つの他の電子機器の現実のまたは前記ネットワーク上の位置情報に基づいて前記少なくとも１つの他の電子機器を検出する、前記（３）に記載の電子機器。
（６）前記検出部は、前記少なくとも１つの他の電子機器を含む撮像画像に基づいて前記少なくとも１つの他の電子機器を検出する、前記（３）に記載の電子機器。
（７）前記少なくとも１つの他の電子機器は、前記電子機器との連係動作を実現する第１の部分と、前記機器識別情報が記述された第２の部分とを含み、
前記検出部は、前記第２の部分が前記電子機器に近接した場合に、前記少なくとも１つの他の電子機器を検出する、前記（３）〜（６）のいずれか１項に記載の電子機器。
（８）前記受信部は、前記電子機器および前記少なくとも１つの他の電子機器のための、互いに異なる連係動作を実現する複数の連係動作プログラムを受信し、
前記制御部は、前記複数の連係動作プログラムのいずれかに従って前記電子機器を制御する、前記（１）〜（７）のいずれか１項に記載の電子機器。
（９）前記制御部は、ユーザ操作に従って前記複数の連係動作プログラムのいずれかを選択する、前記（８）に記載の電子機器。
（１０）前記連係動作プログラムが少なくとも一時的に格納される記憶部をさらに備え、
前記制御部は、前記記憶部に前記連係動作プログラムが格納されている場合には、前記受信される連係動作プログラムに代えて前記格納された連係動作プログラムに従って前記電子機器を制御する、前記（１）〜（９）のいずれか１項に記載の電子機器。
（１１）前記制御部は、前記電子機器の制御に用いられた前記連係動作プログラムを少なくとも一時的に前記記憶部に格納する、前記（１０）に記載の電子機器。
（１２）前記記憶部には、前記連係動作プログラムと前記少なくとも１つの他の電子機器の機器識別情報とが関連付けて格納され、
前記制御部は、前記少なくとも１つの他の電子機器の機器識別情報を参照して、前記記憶部に前記連係動作プログラムが格納されているか否かを判定する、前記（１０）または（１１）に記載の電子機器。
（１３）前記受信部は、前記記憶部に格納された連係動作プログラムを更新または無効化するための追加のプログラムを、前記ネットワークを介して前記サーバから受信する、前記（１０）〜（１２）のいずれか１項に記載の電子機器。
（１４）前記受信部は、前記連係動作プログラムによって実現される連係動作に関連する情報を、前記ネットワークを介して前記サーバから受信する、前記（１）〜（１３）のいずれか１項に記載の電子機器。
（１５）前記制御部は、前記連係動作プログラムによって実現される連係動作に関連するログを取得し、
前記送信部は、前記ログを前記ネットワークを介して前記サーバに送信する、前記（１）〜（１４）のいずれか１項に記載の電子機器。
（１６）前記連係動作プログラムは、スクリプト形式で記述される、前記（１）〜（１５）のいずれか１項に記載の電子機器。
（１７）第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信する受信部と、
前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得部と、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する送信部と
を備えるサーバ。
（１８）前記受信部は、さらに、前記少なくとも１つの第２の電子機器の機器識別情報を前記ネットワークを介して前記第１の電子機器から受信する、前記（１７）に記載のサーバ。
（１９）前記少なくとも１つの第２の電子機器を検出する検出部をさらに備える、前記（１７）に記載のサーバ。
（２０）前記検出部は、前記第１の電子機器および前記少なくとも１つの第２の電子機器の現実のまたは前記ネットワーク上の位置情報に基づいて前記少なくとも１つの第２の電子機器を検出する、前記（１９）に記載のサーバ。
（２１）前記送信部は、前記連係動作プログラムを前記ネットワークを介して前記少なくとも１つの第２の電子機器にも送信する、前記（１７）〜（２０）のいずれか１項に記載のサーバ。
（２２）前記プログラム取得部は、前記第１の電子機器および前記少なくとも１つの第２の電子機器のための、互いに異なる連係動作を実現する複数の連係動作プログラムを取得し、
前記送信部は、前記複数の連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する、前記（１７）〜（２１）のいずれか１項に記載のサーバ。
（２３）前記プログラム取得部は、前記第１の電子機器に送信された連係動作プログラムを更新または無効化するための追加のプログラムを取得し、
前記送信部は、前記追加のプログラムを前記ネットワークを介して前記第１の電子機器に送信する、前記（１７）〜（２２）のいずれか１項に記載のサーバ。
（２４）前記プログラム取得部は、前記連係動作プログラムによって実現される連係動作に関連する情報を取得し、
前記送信部は、前記連係動作に関連する情報を前記ネットワークを介して前記第１の電子機器に送信する、前記（１７）〜（２３）のいずれか１項に記載のサーバ。
（２５）前記受信部は、前記連係動作プログラムによって実現される連係動作に関連するログを前記ネットワークを介して前記第１の電子機器から受信する、前記（１７）〜（２４）のいずれか１項に記載のサーバ。
（２６）前記連係動作プログラムは、スクリプト形式で記述される、前記（１７）〜（２５）のいずれか１項に記載のサーバ。
（２７）ネットワークに接続される電子機器の制御方法であって、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信することと、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信することと、
プロセッサが、前記連係動作プログラムに従って前記電子機器を制御することと
を含む、電子機器の制御方法。
（２８）第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信することと、
プロセッサが、前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得することと、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信することと
を含む情報処理方法。
（２９）ネットワークに接続される電子機器が有するプロセッサに、
前記電子機器および少なくとも１つの他の電子機器の機器識別情報を前記ネットワークを介してサーバに送信する送信機能と、
前記電子機器および前記少なくとも１つの他の電子機器のための連係動作プログラムを前記ネットワークを介して前記サーバから受信する受信機能と、
前記連係動作プログラムに従って前記電子機器を制御する制御機能と
を実現させるためのプログラムが記録された記録媒体。
（３０）サーバを構成する１または複数の情報処理装置が有するプロセッサに、
第１の電子機器の機器識別情報をネットワークを介して前記第１の電子機器から受信する受信機能と、
前記第１の電子機器および前記第１の電子機器とは異なる少なくとも１つの第２の電子機器のための連係動作プログラムを取得するプログラム取得機能と、
前記連係動作プログラムを前記ネットワークを介して前記第１の電子機器に送信する送信機能と
を実現させるためのプログラムが記録された記録媒体。
【符号の説明】
【０１２１】
１０    システム
１００    電子機器
１１０    プロセッサ
１１１    検出部
１１２    送信部
１１３    受信部
１１４    制御部
１２０    通信部
１３０    記憶部
２００    スクリプトサーバ
２１０    プロセッサ
２１１    受信部
２１２    検出部
２１３    プログラム取得部
２１４    送信部
２２０    通信部
２３０    記憶部
３００    他の電子機器
【図１】
2015035169.tif 000005
【図２】
2015035169.tif 000006
【図３】
2015035169.tif 000007
【図４】
2015035169.tif 000008
【図５】
2015035169.tif 000009
【図６】
2015035169.tif 000010
【図７】
2015035169.tif 000011
【図８】
2015035169.tif 000012
【図９】
2015035169.tif 000013
【図１０】
2015035169.tif 000014
【図１１】
2015035169.tif 000015