(57)【特許請求の範囲】
【請求項１】
１以上の第１の電子機器を制御するための既存のプログラムについて、前記プログラム中で前記第１の電子機器中の各電子機器を指定する機器指定情報を、前記各電子機器の機器情報に基づき、前記各電子機器のカテゴリを指定するカテゴリ指定情報に変換する第１の変換部と、
前記機器指定情報が変換された前記既存のプログラムを記録する記録部と、
１以上の第２の電子機器を制御するために利用可能なプログラムを、前記第１および第２の電子機器および前記第２の電子機器を制御する制御装置の機器情報に基づき、前記記録された１以上の既存のプログラムから選択する選択部と、
前記選択されたプログラムについて、前記第１および第２の電子機器ならびに前記制御装置の機器情報に基づき、前記プログラム中のカテゴリ指定情報を、前記カテゴリ指定情報により指定されたカテゴリに属する、前記第２の電子機器中の各電子機器を指定する機器指定情報に変換する第２の変換部と、
を備えるプログラム利用システム。
【請求項２】
前記第１および第２の電子機器は、前記電子機器の機能を階層的に表すカテゴリに分類され、
前記第２の変換部は、第１の階層で表された前記カテゴリ指定情報に対応する前記第２の電子機器中の各電子機器が存在しない場合に、前記プログラム中のカテゴリ指定情報を、前記第１の階層よりも上位概念の第２の階層で表された前記カテゴリ指定情報に対応する前記電子機器を指定する機器指定情報に変換する、請求項１に記載のプログラム利用システム。
【請求項３】
前記記録部は、さらに前記第１の電子機器の機器情報を記録する、請求項１または２に記載のプログラム利用システム。
【請求項４】
前記電子機器の機器情報は、前記電子機器を制御するために前記制御装置が利用可能な制御コマンドを示すコマンド情報を含む、請求項１〜３のいずれか１項に記載のプログラム利用システム。
【請求項５】
前記コマンド情報は、前記制御コマンドの種類を識別するために前記電子機器間で共通して利用される情報を含む、請求項４に記載のプログラム利用システム。
【請求項６】
前記コマンド情報は、前記制御コマンドの制御方式を示す情報を含む、請求項４または５に記載のプログラム利用システム。
【請求項７】
前記制御装置の機器情報は、前記電子機器を制御するために前記制御装置が利用可能な制御方式を示す情報を含む、請求項１〜６のいずれか１項に記載のプログラム利用システム。
【請求項８】
第１の変換部が、１以上の第１の電子機器を制御するための既存のプログラムについて、前記プログラム中で前記第１の電子機器中の各電子機器を指定する機器指定情報を、前記各電子機器の機器情報に基づき、前記各電子機器のカテゴリを指定するカテゴリ指定情報に変換するステップと、
記録部が、前記機器指定情報が変換された前記既存のプログラムを記録するステップと、
選択部が、１以上の第２の電子機器を制御するために利用可能なプログラムを、前記第１および第２の電子機器および前記第２の電子機器を制御する制御装置の機器情報に基づき、前記記録された１以上の既存のプログラムから選択するステップと、
第２の変換部が、前記選択されたプログラムについて、前記第１および第２の電子機器ならびに前記制御装置の機器情報に基づき、前記プログラム中のカテゴリ指定情報を、前記カテゴリ指定情報により指定されたカテゴリに属する、前記第２の電子機器中の各電子機器を指定する機器指定情報に変換するステップと、
を含むプログラム利用方法。
【請求項９】
１以上の第１の電子機器を制御するための既存のプログラムについて、前記プログラム中で前記第１の電子機器中の各電子機器を指定する機器指定情報を、前記各電子機器の機器情報に基づき、前記各電子機器のカテゴリを指定するカテゴリ指定情報に変換するステップと、
前記機器指定情報が変換された前記既存のプログラムを記録するステップと、
１以上の第２の電子機器を制御するために利用可能なプログラムを、前記第１および第２の電子機器および前記第２の電子機器を制御する制御装置の機器情報に基づき、前記記録された１以上の既存のプログラムから選択するステップと、
前記選択されたプログラムについて、前記第１および第２の電子機器ならびに前記制御装置の機器情報に基づき、前記プログラム中のカテゴリ指定情報を、前記カテゴリ指定情報により指定されたカテゴリに属する、前記第２の電子機器中の各電子機器を指定する機器指定情報に変換するステップと、
を含むプログラム利用方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム利用システム、プログラム利用方法およびプログラムに関する。
【背景技術】
【０００２】
１以上の電子機器を制御するために、一連のコマンドをプログラム形式で記述して自動的に実行させるマクロ等のプログラムが知られている。マクロ（プログラム）は、電子機器の使用環境に応じて作成され、コマンダ、パーソナルコンピュータ等の制御装置上で実行される。ここで、電子機器の使用環境は、電子機器の型式、カテゴリ、サポートするコマンドの種類・コード、対応する制御方式、連携して制御する電子機器の組合せ、および制御装置の対応する制御方式等により影響を受ける。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、マクロの作成には、ある程度の時間と労力が要求されるので、既存のマクロを有効に利用したいという要望がある。しかし、マクロは、電子機器の使用環境に大きく依存するので、電子機器の使用環境が異なる場合、通常、既存のマクロをそのまま利用することができない。特に、新規開発された電子機器を制御する場合、対応するマクロが作成されていない限り、通常、既存のマクロをそのまま利用することができない。さらに、２以上の電子機器を連携して制御する場合、電子機器の組合せに適合するマクロを探索しなければならず、通常、探索作業に困難を来たしてしまう。
【０００４】
そこで、本発明は、特定の使用環境にある電子機器のために作成されたプログラムを、他の使用環境にある電子機器のためのプログラムとして利用可能にする、プログラム利用システム、プログラム利用方法およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
本発明のある観点によれば、１以上の第１の電子機器を制御するための既存のプログラムについて、プログラム中で第１の電子機器中の各電子機器を指定する機器指定情報を、各電子機器の機器情報に基づき、各電子機器のカテゴリを指定するカテゴリ指定情報に変換する第１の変換部と、機器指定情報が変換された既存のプログラムを記録する記録部と、１以上の第２の電子機器を制御するために利用可能なプログラムを、第１および第２の電子機器および第２の電子機器を制御する制御装置の機器情報に基づき、記録された１以上の既存のプログラムから選択する選択部と、選択されたプログラムについて、第１および第２の電子機器ならびに制御装置の機器情報に基づき、プログラム中のカテゴリ指定情報を、カテゴリ指定情報により指定されたカテゴリに属する、第２の電子機器中の各電子機器を指定する機器指定情報に変換する第２の変換部と、を備えるプログラム利用システムが提供される。
【０００６】
かかる構成によれば、電子機器のカテゴリに基づいて、既存のプログラムの選択および新規のプログラムへの書換えが行われるので、特定の使用環境にある電子機器のために作成されたプログラムを、他の使用環境にある電子機器のためのプログラムとして利用することができる。
【０００７】
上記第１および第２の電子機器は、電子機器の機能を階層的に表すカテゴリに分類され、上記第２の変換部は、第１の階層で表されたカテゴリ指定情報に対応する第２の電子機器中の各電子機器が存在しない場合に、プログラム中のカテゴリ指定情報を、第１の階層よりも上位概念の第２の階層で表されたカテゴリ指定情報に対応する電子機器を指定する機器指定情報に変換してもよい。
【０００８】
上記記録部は、さらに第１の電子機器の機器情報を記録してもよい。
【０００９】
上記電子機器の機器情報は、電子機器を制御するために制御装置が利用可能な制御コマンドを示すコマンド情報を含んでもよい。
【００１０】
上記コマンド情報は、制御コマンドの種類を識別するために電子機器間で共通して利用される情報を含んでもよい。
【００１１】
上記コマンド情報は、制御コマンドの制御方式を示す情報を含んでもよい。
【００１２】
上記制御装置の機器情報は、電子機器を制御するために制御装置が利用可能な制御方式を示す情報を含んでもよい。
【００１３】
また、本発明の他の観点によれば、１以上の第１の電子機器を制御するための既存のプログラムについて、プログラム中で第１の電子機器中の各電子機器を指定する機器指定情報を、各電子機器の機器情報に基づき、各電子機器のカテゴリを指定するカテゴリ指定情報に変換するステップと、機器指定情報が変換された既存のプログラムを記録するステップと、１以上の第２の電子機器を制御するために利用可能なプログラムを、第１および第２の電子機器および第２の電子機器を制御する制御装置の機器情報に基づき、記録された１以上の既存のプログラムから選択するステップと、選択されたプログラムについて、第１および第２の電子機器ならびに制御装置の機器情報に基づき、プログラム中のカテゴリ指定情報を、カテゴリ指定情報により指定されたカテゴリに属する、第２の電子機器中の各電子機器を指定する機器指定情報に変換するステップと、を含むプログラム利用方法が提供される。
【００１４】
また、本発明のさらに他の観点によれば、上記プログラム利用方法をコンピュータに実行させるためのプログラムが提供される。ここで、プログラムは、コンピュータ読取り可能な記録媒体を用いて提供されてもよく、通信手段を介して提供されてもよい。
【発明の効果】
【００１５】
以上説明したように本発明によれば、特定の使用環境にある電子機器のために作成されたプログラムを、他の使用環境にある電子機器のためのプログラムとして利用可能にする、プログラム利用システム、プログラム利用方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るプログラム利用システムの概要を示す図である。
【図２】プログラム利用システムを適用されたマクロ登録・検索・提供システムの構成を示す図である。
【図３】マクロの一例を示す図である。
【図４】マクロの登録処理の手順を示すシーケンス図である。
【図５】登録処理時の操作画面の一例を示す図である。
【図６】コマンドコードのリストの一例を示す図である。
【図７】機器のカテゴリ分類の一例を示す図である。
【図８】登録処理時の指定情報の変換の一例を示す図である。
【図９】マクロの検索処理の手順を示すシーケンス図である。
【図１０Ａ】検索処理時の操作画面の一例を示す図（１／２）である。
【図１０Ｂ】検索処理時の操作画面の一例を示す図（２／２）である。
【図１１】マクロの検索処理の詳細を示すフロー図（１／２）である。
【図１２】マクロの検索処理の詳細を示すフロー図（２／２）である。
【図１３】マクロの提供処理の手順を示すシーケンス図である。
【図１４】提供処理時の操作画面の一例を示す図である。
【図１５】提供処理時の指定情報の変換の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
［１．プログラム利用システムの概要］
まず、図１を参照しながら本発明の実施形態に係るプログラム利用システムの概要について説明する。
【００１９】
図１に示すように、プログラム利用システムは、１以上の制御装置１ａ、１ｂ、…（以下、制御装置１として総称する。）と、制御装置１により制御される１以上の電子機器２ａ、２ｂ、…（以下、機器２として総称する。）と、プログラムおよび機器２の機器情報を管理する管理装置３を含んで構成される。プログラム利用システムは、１以上の第１の機器２ａを制御するために作成された既存のプログラムを、１以上の第２の機器２ｂを制御するための新規のプログラムとして利用可能にする。
【００２０】
なお、以下では、第１の機器２ａが制御装置１ａにより制御され、第２の機器２ｂが制御装置１ｂにより制御される場合について説明するが、第１および第２の機器２ａ、２ｂが同一の制御装置により制御されてもよい。
【００２１】
制御装置１ａは、第１の機器２ａを制御するために作成された既存のプログラムを管理装置３に登録する（ステップＳ１）。管理装置３は、既存のプログラム中で第１の機器２ａ中の各機器２を指定する機器指定情報を、第１の機器２ａの機器情報に基づき、各機器２のカテゴリを指定するカテゴリ指定情報に変換する（Ｓ２）。また、管理装置３は、機器指定情報が変換された既存のプログラムを記録する（Ｓ３）。
【００２２】
制御装置１ｂは、第２の機器２ｂを制御するために利用可能なプログラムを取得するために、第２の機器２ｂおよび自装置の機器情報を管理装置３に提供する（Ｓ４、Ｓ５）。管理装置３は、第１および第２の機器２ａ、２ｂならびに制御装置１ｂの機器情報に基づき、第２の機器２ｂを制御するために利用可能なプログラムを、１以上の既存のプログラムから選択する（Ｓ６）。
【００２３】
管理装置３は、第１および第２の機器２ａ、２ｂならびに制御装置１ｂの機器情報に基づき、選択したプログラム中のカテゴリ指定情報を、カテゴリ指定情報により指定されたカテゴリに属する、第２の機器２ｂ中の各機器２を指定する機器指定情報に変換する（Ｓ７）。そして、管理装置３は、変換後のプログラムを新規のプログラムとして制御装置１ｂに提供する（Ｓ８）。
【００２４】
これにより、機器２のカテゴリに基づいて、既存のプログラムの選択および新規のプログラムへの書換えが行われるので、特定の使用環境にある機器２ａのために作成されたプログラムを、他の使用環境にある機器２ｂのためのプログラムとして利用することができる。なお、機器指定情報とカテゴリ指定情報の変換は、管理装置３に代えて、制御装置１で行われてもよい。
【００２５】
［２．マクロ登録・検索・提供システム］
つぎに、図２および図３を参照しながら、前述したプログラム利用システムを適用された、マクロ（プログラム）の登録・検索・提供システムについて説明する。
【００２６】
図２に示すように、システムは、１以上のコマンダ１０ａ、１０ｂ、…（以下、コマンダ１０として総称する。）と、１以上の機器２０ａ、２０ｂ、…（以下、機器２０として総称する。）と、サービスサーバ３０を含んで構成される。ここで、第１の機器２０ａは、第１の使用環境にある１以上の機器２０の集合を意味し、第２の機器２０ｂは、第１の使用環境とは異なる第２の使用環境にある１以上の機器２０の集合を意味する。
【００２７】
コマンダ１０は、コマンダ、パーソナルコンピュータ、ＰＤＡ、携帯電話等を含む制御装置の一例である。機器２０は、テレビ受像装置、プロジェクタ、モニタ、ＤＶＤ・ＢＤプレイヤ、ＤＶＤ・ＢＤレコーダ、パーソナルコンピュータ、照明機器等を含み、コマンダ１０により制御される。
【００２８】
サービスサーバ３０は、機器２０を制御するためのマクロを管理するマクロＤＢ３１と、マクロにより制御される機器２０の機器情報を管理する機器情報ＤＢ３２を有するサーバ装置等である。なお、マクロＤＢ３１と機器情報ＤＢ３２は、サービスサーバ３０に代えて、別々のサーバ装置に設けられてもよい。
【００２９】
コマンダ１０は、機器２０を制御するために、機器２０との間で有線または無線で通信を行う。コマンダ１０は、サービスを享受するために、サービスサーバ３０との間でネットワークＮＷを通じて通信を行う。なお、コマンダ１０は、機器２０との間でネットワークＮＷを通じて通信を行ってもよい。コマンダ１０およびサービスサーバ３０は、プログラム利用方法を実施するためのプログラムをメモリ等に保持しており、メモリ等からプログラムを読出してＣＰＵ上で実行する。
【００３０】
図２に示す例では、サービスサーバ３０は、プログラムの実行により、指定情報を変換する第１および第２の変換部、第１の機器２０ａを制御するための既存のマクロを記録する記録部（マクロＤＢ３０１）、および第２の機器２０ｂを制御するために利用可能な既存のマクロを選択する選択部として機能する。
【００３１】
ユーザＵａは、コマンダ１０ａを用いて、第１の機器２０ａを制御するために作成された既存のマクロおよび第１の機器２０ａの機器情報を、マクロＤＢ３１および機器情報ＤＢ３２に登録することができる。なお、既存のマクロは、コマンダ１０ａを用いて作成されてもよく、他の装置を用いて作成されてもよい。サービスサーバ３０は、マクロＤＢ３１および機器情報ＤＢ３２を用いて、既存のマクロおよび第１の機器２０ａの機器情報を管理する。
【００３２】
ユーザＵｂは、コマンダ１０ｂを用いて、第２の機器２０ｂを制御するために利用可能な既存のマクロをマクロＤＢ３１から検索することができる。サービスサーバ３０は、第１および第２の機器２０ａ、２０ｂならびにコマンダ１０ｂの機器情報に基づき、該当する既存のマクロをマクロＤＢ３１から検索し、検索結果をユーザＵｂに提供する。
【００３３】
ユーザＵｂは、コマンダ１０ｂを用いて、検索結果から所望のマクロを選択し、マクロＤＢ３１から取得することができる。サービスサーバ３０は、第１および第２の機器２０ａ、２０ｂならびにコマンダ１０ｂの機器情報に基づき、選択されたマクロを新規のマクロに書換えてユーザＵｂに提供する。ユーザＵｂは、コマンダ１０ｂによりマクロを実行することで、第２の機器２０ｂを制御することができる。
【００３４】
ここで、既存のマクロ中では、第１の機器２０ａ中の各機器２０を指定する機器指定情報が、第１の機器２０ａの機器情報に基づき、各機器２０のカテゴリを指定するカテゴリ指定情報に変換される。また、選択されたマクロ中では、第１および第２の機器２０ａ、２０ｂならびにコマンダ１０ｂの機器情報に基づき、カテゴリ指定情報が、カテゴリ指定情報により指定されたカテゴリに属する、第２の機器２０ｂ中の各機器２０を指定する機器指定情報に変換される。
【００３５】
図３には、ＸＭＬを用いて記述されたマクロの一例が示されている。マクロＭ１は、１以上の機器２０を制御するための一連のコマンドをプログラム形式で記述したものである。コマンドは、通常、コマンドの種類を示す情報と、コマンドにより制御される機器２０を指定する情報（機器指定情報）からなり、機器指定情報を伴わない場合もある。
【００３６】
図３に示す例では、機器２０へのコマンド送信がｋｅｙ属性およびｔａｒｇｅｔ属性を伴うｓｅｎｄタグにより表されている。ｋｅｙ属性は、機器２０間で共通する仮想コードを用いて、コマンドの種類を示している。ｔａｒｇｅｔ属性は、機器２０のＩＤを用いて、コマンドにより制御される機器２０を指定している。
【００３７】
ここで、図３に示すマクロＭ１が実行されると、“ｐｏｗｅｒ”コマンドが機器“ＴＶ＿ｕｉｄ００００００１”に送信され、“ｐｏｗｅｒ”コマンドが機器“ＢＤＰｌａｙｅｒ＿ｕｉｄ００００００２”に送信される。そして、ｗａｉｔタグによる３秒間の動作待機の後に、“ｐｌａｙ”コマンドが機器“ＢＤＰｌａｙｅｒ＿ｕｉｄ００００００２”に送信される。
【００３８】
［３．マクロの登録処理］
つぎに、図４〜図８を参照しながらマクロの登録処理について説明する。
【００３９】
図４には、マクロの登録処理の手順が示されている。ユーザＵａは、図５に示すような操作画面上でマクロの登録を指示する。操作画面には、１以上の第１の機器２０ａを制御するために作成された既存のマクロを示すリストＬ１が表示されている。ユーザＵａは、リストＬ１から登録したいマクロを選択し（ステップＳ１０１）、登録ボタンＢ１の操作により登録を指示する（Ｓ１０３）。なお、図５に示す例では、ポインタＰにより“マクロ２”が選択されており、選択された“マクロ２”の詳細Ｄ１が表示されている。
【００４０】
マクロの登録が指示されると、コマンダ１０ａは、登録要求をサービスサーバ３０に送信する（Ｓ１０５）。登録要求には、登録すべきマクロと、第１の機器２０ａ中の各機器２０の機器情報が含まれている。ここで、機器情報には、機器２０のＩＤ、型式、カテゴリ、サポートするコマンドコードのリストが含まれている。
【００４１】
図６には、ＸＭＬを用いて記述されたコマンドコードのリストの一例が示されている。コマンドコードは、通常、コマンドのＩＤと、コマンドコードを記述する情報からなる。
【００４２】
図６に示す例では、コマンドがｎａｍｅ属性およびｉｒ属性を伴うｋｅｙタグにより表されている。ｎａｍｅ属性は、コマンドのＩＤであり、機器２０間で共通する仮想コードを表す文字列からなる。ｉｒ属性は、ＩＲ制御方式のコマンダ１０から送信されるコマンドコードを記述している。なお、ｉｒ属性の代りに、ｒｆ属性またはｉｐ属性等を用いて、ＲＦ制御方式またはＩＰ制御方式のコマンダ１０から送信されるコマンドコードが記述されてもよい。
【００４３】
図６に示すコマンドコードのリストＣＬによれば、機器２０は、ＩＲ制御方式をサポートしており、“Ｈｏｍｅ”、“Ｏｐｔｉｏｎ”、“Ｒｅｔｕｒｎ”等の仮想コードに対応するコマンドコードをサポートしている。
【００４４】
なお、コマンドコードを仮想コードに対応付けるためのデータは、機器２０からの取得、サービスサーバ３０からの取得、学習リモコンカテゴリを用いたユーザＵによる仮想コードの指定等を通じて設定される。
【００４５】
登録要求に応じて、第１に、サービスサーバ３０は、第１の機器２０ａ中の各機器２０の機器情報が機器情報ＤＢ３２に登録されているかを判定する（Ｓ１０７）。そして、登録されていない場合、サービスサーバ３０は、機器情報を機器情報ＤＢ３２に登録する（Ｓ１０９）。これにより、第１の機器２０ａが新規開発された機器２０である場合でも、機器２０の機器情報が登録されるので、登録された機器情報に基づき、既存のマクロを利用することができる。第２に、サービスサーバ３０は、マクロ中の機器指定情報をカテゴリ指定情報に変換する（Ｓ１１１）。
【００４６】
図７には、機器のカテゴリ分類の一例が示されている。サービスサーバ３０は、階層的に定義されたカテゴリ分類を用いて機器情報を管理している。カテゴリ分類では、機器２０のＩＤ（機器指定情報）に対して、カテゴリ指定情報として指定可能な第１〜第４階層のカテゴリが割当てられている。機器２０のカテゴリは、機器２０の機器情報により定義されてもよく、サービスサーバ３０により定義されてもよい。
【００４７】
例えば図７に示す例では、機器“ＴＶ＿ｕｉｄ００００００１”が第１階層で“ＴＶ”に分類され、第２階層で“Ｐｒｏｊｅｃｔｏｒ”、“Ｍｏｎｉｔｏｒ”とともに“Ｄｉｓｐｌａｙ”に分類されている。同様に、機器“ＢＤＰｌａｙｅｒ＿ｕｉｄ００００００２”が第１階層で“ＢＤＰｌａｙｅｒ”に分類され、第２階層で“ＤＶＤＰｌａｙｅｒ”とともに“Ｐｌａｙｅｒ”に分類されている。
【００４８】
図８には、登録処理時のマクロの変換の一例が示されている。図８に示すマクロＭ２では、図３に示したマクロＭ１中の機器指定情報がカテゴリ指定情報に変換されている。つまり、機器“ＴＶ＿ｕｉｄ００００００１”を指定する機器指定情報が第１階層のカテゴリ“ＴＶ”を指定するカテゴリ指定情報に変換され、機器“ＢＤＰｌａｙｅｒ＿ｕｉｄ００００００２”を指定する機器指定情報が第１階層のカテゴリ“ＢＤＰｌａｙｅｒ”を指定するカテゴリ指定情報に変換されている。
【００４９】
第３に、サービスサーバ３０は、変換後のマクロに固有のマクロＩＤを付与し、変換後のマクロをマクロＤＢ３１に登録する（Ｓ１１３）。マクロが登録されると、サービスサーバ３０からコマンダ１０ａに登録応答が送信され（Ｓ１１５）、コマンダ１０ａからユーザＵａに登録通知がなされる（Ｓ１１７）。
【００５０】
［４．マクロの検索処理］
つぎに、図９〜図１２を参照しながらマクロの検索処理について説明する。
【００５１】
図９には、マクロの検索処理の手順が示されている。ユーザＵｂは、図１０Ａに示すような操作画面上でマクロの検索を指示する。操作画面には、機器２０の使用環境に応じて、コマンダ１０ｂにより制御可能な機器２０を示すリストＬ２が表示されている。ユーザＵｂは、リストＬ２から１以上の機器２０を第２の機器２０ｂとして選択し（Ｓ２０１）、検索ボタンＢ２の操作により検索を指示する（Ｓ２０３）。なお、図１０Ａに示す例では、ポインタＰにより“機器１〜３”が選択されており、最後に選択された“機器３”の詳細Ｄ３が表示されている。
【００５２】
マクロの検索が指示されると、コマンダ１０ｂは、検索要求をサービスサーバ３０に送信する（Ｓ２０５）。検索要求には、第２の機器２０ｂを示す機器リストと、コマンダ１０ｂの機器情報が含まれている。ここで、機器リストには、第２の機器２０ｂ中の各機器２０のＩＤ、型式等が含まれている。機器情報には、コマンダ１０ｂのＩＤ、型式、サポートする制御方式が含まれている。
【００５３】
検索要求に応じて、第１に、サービスサーバ３０は、機器リストに含まれる第２の機器２０ｂ中の各機器２０の型式等に基づき、機器２０の機器情報を機器情報ＤＢ３２から取得する（Ｓ２０７）。ここで、機器情報には、前述したように、機器２０のカテゴリ、サポートするコマンドコードのリストが含まれている。
【００５４】
第２に、サービスサーバ３０は、機器２０の機器情報に基づき、第２の機器２０ｂを制御するために利用可能な既存のマクロをマクロＤＢ３１上で検索する（Ｓ２０９）。マクロの検索が完了すると、サービスサーバ３０からコマンダ１０ｂに検索リストを含む検索応答が送信され（Ｓ２１１）、コマンダ１０ｂからユーザＵｂに検索通知がなされる（Ｓ２１３）。
【００５５】
検索リストを受信すると、コマンダ１０ｂは、図１０Ｂに示すような操作画面上で検索リストをユーザＵｂに提供する。操作画面には、第２の機器２０ｂを制御するために利用可能な既存のマクロを示すリストＬ３が表示される。なお、図１０Ｂに示す例では、ユーザＵｂは、所望のマクロを選択して閲覧ボタンＢ３を操作することで、選択したマクロの詳細を閲覧することができる。
【００５６】
図１１には、図９に示すステップＳ２０７およびＳ２０９の処理の詳細が示されている。図１１に示すように、検索要求に応じて、サービスサーバ３０は、機器リストに含まれる全ての機器２０の機器情報が機器情報ＤＢ３２に登録されているかを判定する（Ｓ２２１）。
【００５７】
そして、肯定的な判定結果が得られた場合、サービスサーバ３０は、機器２０の機器情報を機器情報ＤＢ３２から取得する（Ｓ２２３）。機器２０の機器情報を取得すると、サービスサーバ３０は、検索リストを初期化する（Ｓ２２５）。一方、否定的な判定結果が得られた場合、サービスサーバ３０は、検索処理を中止する。なお、否定的な判定結果が得られた場合、機器２０の機器情報がコマンダ１０ｂから取得され、ステップＳ２２３以降の処理が行われてもよい。
【００５８】
検索リストを初期化すると、サービスサーバ３０は、所定の順序に従ってマクロＤＢ３１から処理対象となるマクロＭを１つ取得する（Ｓ２２７）。サービスサーバ３０は、機器２０の機器情報に基づき、マクロＭ中の全てのカテゴリ指定情報に、カテゴリ指定情報により指定されたカテゴリに属する、第２の機器２０ｂ中の各機器２０を割当てる（Ｓ２２９）。なお、ステップＳ２２９の割当処理については、図１２を用いて後述する。
【００５９】
サービスサーバ３０は、所定の順序に従ってマクロＭから処理対象となるコマンドＣを１つ選択する（Ｓ２３１）。サービスサーバ３０は、ステップＳ２２９の割当処理の結果に基づき、コマンドＣのカテゴリ指定情報に第２の機器２０ｂ中の該当する機器Ｄを割当てる（Ｓ２３３）。
【００６０】
サービスサーバ３０は、機器２０の機器情報に基づき、割当て機器ＤがコマンドＣのコマンドコードをサポートしており、かつ、コマンダ１０ｂが機器Ｄに対する制御方式をサポートしているかを判定する（Ｓ２３５、Ｓ２３７）。そして、サービスサーバ３０は、肯定的な判定結果が得られた場合に後続の処理を行い、否定的な判定結果が得られた場合にステップＳ２２７の処理に復帰し、次のマクロをマクロＭとしてステップＳ２２９以降の処理を行う。
【００６１】
これにより、機器２０の機器情報が機器２０を制御するためにコマンダ１０が利用可能なコマンドコードを示すコマンド情報を含むので、機器２０間のコマンドコードの相違を吸収することができる。また、コマンド情報がコマンドコードの種類を識別するために機器２０間で共通して利用される仮想コードを含むので、機器２０間のコマンドコードの相違を吸収することができる。
【００６２】
また、コマンド情報がコマンドコードの制御方式を示す情報を含むので、機器２０間の制御方式の相違を吸収することができる。また、コマンダ１０の機器情報が機器２０を制御するためにコマンダ１０が利用可能な制御方式を示す情報を含むので、コマンダ１０間の制御方式の相違を吸収することができる。
【００６３】
ステップＳ２３５およびＳ２３７の処理で肯定的な判定結果が得られた場合、サービスサーバ３０は、コマンドＣがマクロＭ中の最後のコマンドであるかを判定する（Ｓ２３９）。そして、最後のコマンドでない場合、サービスサーバ３０は、ステップＳ２３１の処理に復帰し、次のコマンドをコマンドＣとしてステップＳ２３３以降の処理を行う。
【００６４】
一方、最後のコマンドである場合、サービスサーバ３０は、マクロＭを検索リストに追加し（Ｓ２４１）、マクロＭがマクロＤＢ３１に登録されている最後のマクロであるかを判定する（Ｓ２４３）。そして、最後のマクロでない場合、サービスサーバ３０は、ステップＳ２２７の処理に復帰し、次のマクロをマクロＭとしてステップＳ２２９以降の処理を行う。一方、最後のマクロである場合、サービスサーバ３０は、図９に示すステップＳ２１１にて検索リストをコマンダに送信する。
【００６５】
なお、ステップＳ２２７〜Ｓ２４３の処理を高速化するために、マクロのインデックス情報を予め登録して利用してもよい。また、２以上の判定条件をまとめて判定したり、前回の検索処理の結果をキャッシュして利用したりしてもよい。また、ステップＳ２３３〜Ｓ２４１の処理を高速化するために、第２の機器２０ｂのうちコマンドＣの制御対象となりうる機器２０の組合せパターンを準備して利用してもよい。
【００６６】
図１２には、図１１に示すステップＳ２２９の処理の詳細が示されている。図１２に示すように、サービスサーバ３０は、マクロＭ中の各カテゴリ指定情報に、対応する第２の機器２０ｂ中の各機器２０を割当てる。
【００６７】
以下では、第２の機器２０ｂが機器ｄ１〜ｄｍであり、機器ｄ１〜ｄｍのカテゴリ（カテゴリ）がｆ１〜ｆｍであるとする。また、マクロＭ中で指定されている機器２０の指定カテゴリがＦ１〜Ｆｎであり、指定カテゴリＦ１〜Ｆｎに対して機器ｄ１〜ｄｍのうち指定機器Ｄ１〜Ｄｎが割当てられている場合を想定する。
【００６８】
サービスサーバ３０は、指定カテゴリＦ１〜Ｆｎから昇順に処理対象となる１つの指定カテゴリＦｉを選択する（Ｓ２５１）。サービスサーバ３０は、機器ｄ１〜ｄｍから昇順に処理対象となる１つの機器ｄｊを選択し、機器ｄｊに対応するカテゴリｆｊを選択する（Ｓ２５３）。
【００６９】
サービスサーバ３０は、機器ｄｊが指定機器Ｄ１〜Ｄｉ−１のいずれかと一致するかを判定する（Ｓ２５５）。そして、サービスサーバ３０は、一致しない場合にカテゴリｆｊが指定カテゴリＦｉと一致するかを判定し（Ｓ２５７）、さらに一致する場合に指定機器Ｄｉを機器ｄｊとし（Ｓ２５９）、ステップＳ２６１の処理を行う。
【００７０】
ステップＳ２５５の処理で肯定的な判定結果が得られた場合、またはステップＳ２５７の処理で否定的な判定結果が得られた場合も、サービスサーバ３０は、ステップＳ２６１の処理を行う。
【００７１】
ステップＳ２６１では、サービスサーバ３０は、機器ｄｊが最後の機器ｄｍであるかを判定し、最後の機器ｄｍでない場合にステップＳ２５３の処理に復帰し、ｊをインクリメントして機器ｄｊおよびカテゴリｆｊを更新する。一方、最後の機器ｄｍである場合、サービスサーバ３０は、指定カテゴリＦｉが最後の指定カテゴリＦｎであるかを判定し（Ｓ２６３）、最後の指定カテゴリＦｎでない場合にステップＳ２５１の処理に復帰し、ｉをインクリメントして指定カテゴリＦｉを更新する。一方、最後の指定カテゴリＦｎである場合、サービスサーバ３０は、指定機器Ｄ１〜Ｄｎの全てが更新されたかを判定する（Ｓ２６５）。
【００７２】
そして、肯定的な判定結果が得られた場合、サービスサーバ３０は、割当処理を終了し、図１１に示すステップＳ２３１に移行する。一方、否定的な判定結果が得られた場合、サービスサーバ３０は、図７に示したカテゴリ分類中の１階層上位の分類項目を用いて指定カテゴリＦ１〜Ｆｎおよびカテゴリｆ１〜ｆｍを更新する（Ｓ２６７、Ｓ２６９）。そして、サービスサーバ３０は、ステップＳ２５１の処理に復帰し、ｉをインクリメントして指定カテゴリＦｉを更新する。
【００７３】
ステップＳ２６７、Ｓ２６９の処理では、指定カテゴリＦ１〜Ｆｎおよびカテゴリｆ１〜ｆｍは、例えば、第１階層のカテゴリ“ＴＶ”から第２階層のカテゴリ“Ｄｉｓｐｌａｙ”、さらに必要に応じて、第３階層のカテゴリ“ＡＶ”へ更新される。これにより、ある階層のカテゴリに対応する機器ｄｊが存在しなくても、上位階層のカテゴリに対応する機器ｄｊの割当てが可能となる。
【００７４】
［５．マクロの提供処理］
つぎに、図１３〜図１５を参照しながらマクロの提供処理について説明する。
【００７５】
図１３には、マクロの提供処理の手順が示されている。ユーザＵｂは、図１４に示すような操作画面上でマクロの取得を指示する。ユーザＵｂは、検索リストＬ４から所望のマクロを選択し（Ｓ３０１）、取得ボタンＢ４の操作によりマクロの取得を指示する（Ｓ３０３）。なお、図１４に示す例では、ポインタＰにより“マクロＢ”が選択されており、選択された“マクロＢ”の詳細Ｄ４が表示されている。
【００７６】
マクロの取得が指示されると、コマンダ１０ｂは、取得要求をサービスサーバ３０に送信する（Ｓ３０５）。取得要求には、マクロのＩＤと、第２の機器２０ｂ中の１以上の機器２０を示す機器リストが含まれている。
【００７７】
取得要求に応じて、第１に、サービスサーバ３０は、マクロのＩＤに基づきマクロＤＢ３１からマクロを取得する（Ｓ３０７）。第２に、サービスサーバ３０は、機器リストに基づき第２の機器２０ｂ中の各機器２０の機器情報を機器情報ＤＢ３２から取得する（Ｓ３０９）。第３に、サービスサーバ３０は、選択されたマクロ中のカテゴリ指定情報を、カテゴリ指定情報により指定されたカテゴリに属する第２の機器２０ｂ中の各機器２０を指定する機器指定情報に変換する（Ｓ３１１）。
【００７８】
図１５には、提供処理時のマクロの変換の一例が示されている。図１５に示すマクロＭ３では、図８に示したマクロＭ２中のカテゴリ指定情報が機器指定情報に変換されている。つまり、カテゴリ“ＴＶ”を指定するカテゴリ指定情報が機器“Ｐｒｏｊｅｃｔｏｒ＿ｕｉｄ００００００３”を指定する機器指定情報に変換され、カテゴリ“ＢＤＰｌａｙｅｒ”を指定するカテゴリ指定情報が機器“ＤＶＤＰｌａｙｅｒ＿ｕｉｄ００００００４”を指定する機器指定情報に変換されている。
【００７９】
第４に、サービスサーバ３０は、変換後のマクロを含む取得応答をコマンダ１０ｂに送信する（Ｓ３１３）。マクロを受信すると、コマンダ１０ｂは、受信したマクロを記録し（Ｓ３１５）、マクロの取得をユーザＵｂに通知する（Ｓ３１７）。ユーザＵｂは、コマンダ１０ｂによりマクロを実行することで、第２の機器２０ｂを制御することができる。
【００８０】
ここで、図１５に示すマクロＭ３が実行されると、“ｐｏｗｅｒ”コマンドが機器“Ｐｒｏｊｅｃｔｏｒ＿ｕｉｄ００００００３”に送信され、“ｐｏｗｅｒ”コマンドが機器“ＤＶＤＰｌａｙｅｒ＿ｕｉｄ００００００４”に送信される。そして、ｗａｉｔタグによる３秒間の動作待機の後に、“ｐｌａｙ”コマンドが機器“ＤＶＤＰｌａｙｅｒ＿ｕｉｄ００００００４”に送信される。
【００８１】
［６．まとめ］
以上説明したように、本実施形態に係るシステムによれば、機器２０のカテゴリに基づいて、既存のマクロの選択および新規のマクロへの書換えが行われるので、特定の使用環境にある機器２０ａのために作成されたプログラムを、他の使用環境にある機器２０ｂのためのマクロとして利用することができる。
【００８２】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００８３】
例えば、上記説明では、プログラム利用システムが、制御装置１を通じて利用されるマクロを取扱うシステムに適用される場合について説明した。しかし、プログラム利用システムは、情報処理装置を通じて利用されるプログラムを取扱うシステムにも同様に適用することができる。この場合、上記説明中のマクロは、情報処理装置上で実行されるプログラムに相当し、マクロ中の機器指定情報は、ＲＰＣ（遠隔手続き呼出し）される他の情報処理装置をプログラム中で指定する指定情報に相当する。また、マクロのコマンドは、ＲＰＣ可能なＡＰＩに相当し、マクロの制御方式は、ＲＰＣの実現方式に相当する。
【００８４】
また、上記説明では、マクロ中の指定情報の変換がサービスサーバ３０により行われる場合について説明した。しかし、指定情報の変換は、サービスサーバ３０との連携を通じてコマンダ１０により行われてもよい。
【符号の説明】
【００８５】
１ａ、１０ａ    第１の制御装置（コマンダ）
１ｂ、１０ｂ    第２の制御装置（コマンダ）
２ａ、２０ａ    第１の電子機器
２ｂ、２０ｂ    第２の電子機器
３、３０    管理装置（サービスサーバ）
Ｕａ、Ｕｂ    ユーザ
【図１】
0005418217.tif 000002
【図２】
0005418217.tif 000003
【図３】
0005418217.tif 000004
【図４】
0005418217.tif 000005
【図５】
0005418217.tif 000006
【図６】
0005418217.tif 000007
【図７】
0005418217.tif 000008
【図８】
0005418217.tif 000009
【図９】
0005418217.tif 000010
【図１０Ａ】
0005418217.tif 000011
【図１０Ｂ】
0005418217.tif 000012
【図１１】
0005418217.tif 000013
【図１２】
0005418217.tif 000014
【図１３】
0005418217.tif 000015
【図１４】
0005418217.tif 000016
【図１５】
0005418217.tif 000017