(57)【要約】【課題】  例えばＥＣＨＯＮＥＴ機器の接続切断監視やイベント管理を行うとともに、家電機器の制御やイベント取得を容易に行うことができる宅内機器管理装置を提供する。【解決手段】  宅内のＥＣＨＯＮＥＴ機器の検出し、検出した機器を機器オブジェクト毎にＯＳＧｉフレームワークにサービス登録する。また、検出済み機器の切断監視を行い、切断とわかった機器オブジェクトに対応するサービスをＯＳＧｉフレームワークから削除する。個体識別情報とＥＣＨＯＮＥＴオブジェクトからサービス識別情報を生成して、ｓｅｒｖｉｃｅ．ｐｉｄとしてサービスプロパティに設定することで、アプリケーションバンドルは機器を一意に扱うことが可能となる。【選択図】図６
2008172462.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された機器の検出を行う検出部と、
機器の情報を管理する管理部とを備え、
前記検出部は機器から受信した該機器の情報に基づいて前記管理部に該機器の情報を登録する機器管理装置。
【請求項２】
請求項１に記載の機器管理装置において、
前記検出部は前記機器が動作しているか否かの情報を受信し、
該受信した情報に基づき前記管理部に登録した機器の情報を前記管理部から削除する機器管理装置。
【請求項３】
請求項１に記載の機器管理装置において、
前記検出部は前記管理部に登録した機器の情報を用いて機器を制御する機器管理装置。
【請求項４】
請求項１に記載の機器管理装置において、
前記検出部は任意のＥＣＨＯＮＥＴ機器のイベントを前記管理部に登録する機器管理装置。
【請求項５】
請求項４に記載の機器管理装置において、
前記検出部は受信した前記管理部に登録されたイベントを前記管理部に通知し、
前記管理部は前記検出部から通知されたイベントの通知に基づき前記管理部に登録されたソフトウェアを用いて前記ネットワークに接続された機器を制御する機器管理装置。
【請求項６】
ＥＣＨＯＮＥＴ規格に対応した機器であるＥＣＨＯＮＥＴ規格との間でＥＣＨＯＮＥＴ規格で定める物理層を介して情報のやり取りを行う手段と、
ＥＣＨＯＮＥＴ機器から取得したＥＣＨＯＮＥＴ機器を識別する個体識別情報が個体識別情報を管理する個体識別情報管理テーブルに登録済みであるかどうかを調査する個体識別情報登録調査手段と、
取得した個体識別情報が個体識別情報管理テーブルに未登録であった場合に該個体識別情報を有するＥＣＨＯＮＥＴ機器のオブジェクトのリストであるインスタンスリストを取得するインスタンスリスト取得手段と、
個体識別情報とＥＣＨＯＮＥＴ機器のオブジェクトのコードからＯＳＧｉフレームワークに登録される機器オブジェクトであるＥＣＨＯＮＥＴデバイスサービスを指定するサービス識別情報を生成するサービス識別情報生成手段と、
ＯＳＧｉフレームワークに登録済みのＥＣＨＯＮＥＴデバイスサービスから任意の個体識別情報を有するサービスを抽出するためのフィルタを作成する個体識別情報フィルタ作成手段と、
前記フィルタを用いて任意の個体識別情報を有するＥＣＨＯＮＥＴデバイスサービスのリファレンスを取得するフィルタリングサービスリファレンス取得手段と、
前記サービス識別情報生成手段で作成したサービス識別情報のうち取得したサービスリファレンスに該当しないサービス識別情報を調査するサービス識別情報比較手段と、
前記サービス識別情報比較手段で取得したサービスリファレンスに該当しないサービス識別情報を有するＥＣＨＯＥＮＴデバイスサービスをＯＳＧｉフレームワークに登録するＯＳＧｉフレームワーク登録手段とを有する機器管理装置。
【請求項７】
請求項７に記載の機器管理装置において、
前記個体識別情報管理テーブルに登録済みのＥＣＨＯＮＥＴ機器から個体識別情報を取得する個体識別情報取得手段と、
前記個体識別情報取得手段が個体識別情報を取得する動作を行ったときにＥＣＨＯＮＥＴ機器からの応答があるか否かを判断する個体識別情報取得応答判断手段と、
前記個体識別情報取得応答判断手段において応答がないと判断された個体識別情報を有するＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークから削除するＥＣＨＯＮＥＴデバイスサービス削除手段とを有する機器管理装置。
【請求項８】
請求項６に記載の機器管理装置において、
任意のＥＣＨＯＮＥＴデバイスサービスに対して、ＥＣＨＯＮＥＴ機器を制御する値の取得、設定を行うＥＣＨＯＮＥＴプロパティ取得、設定手段とを有する機器管理装置。
【請求項９】
請求項６に記載の機器管理装置において、
任意のＥＣＨＯＮＥＴ機器からのイベントを取得するフィルタを作成するイベントフィルタ作成手段と、
ＥＣＨＯＮＥＴ機器からのイベントを取得するＥＣＨＯＮＥＴイベントリスナ実装オブジェクトをＯＳＧｉフレームワークに登録するイベントリスナ登録手段とを有する機器管理装置。
【請求項１０】
請求項６に記載の機器管理装置において、
ＥＣＨＯＮＥＴ機器からのイベントを取得するイベント取得手段と、
前記イベント取得手段で取得したイベントと前記個体識別情報管理テーブルに記載の情報とからＥＣＨＯＮＥＴデバイスサービスのサービス識別情報を生成するイベント受信時サービス識別情報生成手段と、
前記イベント受信時サービス識別情報生成手段で生成されたサービス識別情報に該当するＥＣＨＯＮＥＴイベントリスナ実装オブジェクトに対してイベントを通知するイベント通知手段とを有する機器管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、機器を制御又は管理する機器管理装置に関する。
【背景技術】
【０００２】
近年、ＡＶ機器、白物家電、住設機器といった宅内機器がネットワーク接続機能を搭載し始めている。それに伴いネットワークを介した宅内機器の集中制御、状態監視、機器間の連携に関するユーザニーズが高まりを見せている。
【０００３】
特許文献１には、「家庭内ネットワーク上に接続された家電機器の制御のためのモジュールを自動的に取得し、また自動的に更新可能な通信制御装置及び通信制御方法を提供すること」を課題とし、その解決手段として「家庭内ネットワーク及び外部ネットワークに接続される通信制御装置であって、前記家庭内ネットワークを介して家電機器へ所定のコマンドを与えるための制御手段と、前記家庭内ネットワーク上の端末装置へ、該端末装置から要求された家電機器の制御のためのインタフェースをＷｅｂ画面の形で提供するとともに、該端末装置から該Ｗｅｂ画面の形のインタフェースを介して与えられた、前記家電機器に対する所定のコマンドを、前記制御手段へ与えるためのＷｅｂサーバ手段と、前記外部ネットワークを介して、各家電機器に対応する所定のサーバ装置から、各家電機器の制御のためのＷｅｂ画面の形のインタフェースのもととなるファイルを取得するための取得手段とを備え」ることが開示されている（要約参照）。
【０００４】
【特許文献１】特開２００４−２１３２５１（［００１０］、［００１１］）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示される技術的思想には次のような問題がある。
特許文献１では、ホームゲートウェイが家電機器を検出する詳細な手順についての考慮がない。そのため、ホームゲートウェイが家電機器を検出することは困難である。なお、家電機器の制御を行うためのネットワークの規格としてＥＣＨＯＮＥＴ（エコーネット）コンソーシアムが規定するＥＣＨＯＮＥＴ規格があり、ＥＣＨＯＮＥＴ機器が持つべきプロパティについての記載はあるが、それらを用いた機器の検出手順については詳細な規定がない。そのため、ＥＣＨＯＮＥＴ規格においてもＥＣＨＯＮＥＴ機器の検出を行うことは困難である。
【０００６】
また、特許文献１に開示される技術的思想では、ホームゲートウェイが検出した家電機器の情報を元に機器を操作するインタフェースを端末装置へＷｅｂ画面の形で提供するためのもととなるファイル（ＣＧＩ）をダウンロードするが、そのＣＧＩにおいて、実際に機器を操作するための詳細な手順についての考慮がない。例えば、前記ＥＣＨＯＮＥＴ規格においてはＥＣＨＯＮＥＴプロトコルにおいては操作のためにＥＣＨＯＮＥＴアドレスを用いて制御対象の機器を特定するが、ＥＣＨＯＮＥＴアドレスは機器の起動毎等で変化する可能性がある。そのため、ＣＧＩが家電機器を制御するためには、機器毎に不変の情報とＥＣＨＯＮＥＴアドレスとの整合を取るための手順が必要となる。しかし、従来技術にはそのための詳細な手順が考慮されていないため、第３の事業者がＣＧＩを作成し、従来技術に示されるシステムに乗り入れることについての考慮がない。
【０００７】
また、一般にホームゲートウェイ（あるいはホームサーバ）と呼ばれる機器におけるソフトウェアコンポーネント化技術に関する考慮がない。例えば、ホームゲートウェイのソフトウェアコンポーネント化技術としてＯＳＧｉサービス基盤が知られていが、特許文献１に示される方法にはＯＳＧｉサービス基盤に関する考慮はない。
なお、ＯＳＧｉサービス基盤には様々なソフトウェア部品（バンドル）のダウンロード、インストール、実行といったライフサイクルの管理や他のバンドルとのインタフェース（サービス）の管理機能を実装するＯＳＧｉフレームワーク、およびＨＴＴＰサーバ、ＵＰｎＰ機器管理・制御といった標準バンドルが含まれており、一般にホームゲートウェイと呼ばれる機器における標準技術として認知がされ始めている。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一実施の態様は、機器を管理する装置であって、ネットワークに接続された機器の検出を行うドライバと、機器のソフトウェアを管理する機能を有するフレームワークとを備え、ドライバは機器から受信した情報に基づいてフレームワークに機器の情報（ソフトウェア）を登録する。
【０００９】
より具体的には、ＥＣＨＯＮＥＴ機器との間で、ＥＣＨＯＮＥＴ規格で定める物理層を介して情報のやり取りを行う手段を有し、ＥＣＨＯＮＥＴ機器から取得した個体識別情報プロパティが個体識別情報管理テーブルに既に記載済みであるかどうかを調査する個体識別情報記載調査手段を有し、取得した個体識別情報プロパティが個体識別情報管理テーブルに未記載であった場合に該当個体識別情報を有するＥＣＨＯＮＥＴ機器のインスタンスリストプロパティ（インスタンスコードのリスト）を取得するインスタンスリスト取得手段を有し、個体識別情報とインスタンスコードからＥＣＨＯＮＥＴデバイスサービスを唯一特定するサービス識別情報を生成するサービス識別情報生成機能を有し、ＯＳＧｉフレームワークに登録済みのＥＣＨＯＮＥＴデバイスサービスからある個体識別情報を有するサービスのみをフィルタリングするためのフィルタを作成する個体識別情報フィルタ作成機能を有し、ＯＳＧｉフレームワークからフィルタ作成機能で作成したフィルタを用いてある個体識別情報を有するＥＣＨＯＮＥＴデバイスサービスのサービスリファレンスのみを取得するフィルタリングサービスリファレンス取得機能を有し、サービス識別情報生成機能で作成したサービス識別情報のうち取得したサービスリファレンスに該当しないサービス識別情報を調査するサービス識別情報比較手段を有し、サービス識別情報比較手段を以って取得したサービスリファレンスに該当しないサービス識別情報を有するＥＣＨＯＥＮＴデバイスサービスをＥＣＨＯＮＥＴデバイスサービスとしてＯＳＧｉフレームワークに新規に登録するＯＳＧｉフレームワーク登録機能を機器管理装置に有する構成とした。
【００１０】
また、上記機器管理装置は、個体識別情報管理テーブルに記載のＥＣＨＯＮＥＴ機器から個体識別情報プロパティを取得する個体識別情報取得手段を有し、個体識別情報プロパティ取得手段を実行した際にＥＣＨＯＮＥＴ機器からの応答があるかどうかを調査する個体識別情報取得応答調査手段を有し、応答がなかった場合に該当する個体識別情報を有するＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークから削除するＥＣＨＯＮＥＴデバイスサービス削除手段を有する構成とした。
【００１１】
また、上記機器管理装置は、所望のＥＣＨＯＮＥＴデバイスサービスに対して、ＥＣＨＯＮＥＴプロパティ値の取得、設定を行うＥＣＨＯＮＥＴプロパティ取得、設定手段を有する構成とした。
【００１２】
また、上記機器管理装置は、所望のＥＣＨＯＮＥＴ機器からのイベントのみを取得するためのフィルタを作成するイベントフィルタ作成手段を有し、上記イベントフィルタを設定した上でＥＣＨＯＮＥＴイベントリスナ実装オブジェクトをＯＳＧｉフレームワークに登録するイベントリスナ登録手段を有する構成とした。
【００１３】
また、上記機器管理装置は、ＥＣＨＯＮＥＴ機器からのイベントを取得するイベント取得手段を有し、取得したイベントと個体識別情報管理テーブルに記載の情報から該当ＥＣＨＯＮＥＴデバイスサービスのサービス識別情報を生成するイベント受信時サービス識別情報生成手段を有し、上記サービス識別情報に該当するＥＣＨＯＮＥＴイベントリスナ実装オブジェクトに対してイベントを通知するイベント通知手段を有する構成とした。
【発明の効果】
【００１４】
上記の手段によれば例えば、宅内機器の制御等を容易にすることができる。
上記以外の課題、手段、効果も後述する実施形態の説明の欄で述べる。
【発明を実施するための最良の形態】
【００１５】
（１）概要
本実施例における機器制御装置の動作の概要を説明する。本実施例ではＥＣＨＯＮＥＴ規格に対応し、ソフトウェアコンポーネント化技術としてＯＳＧｉサービス基盤を用いた機器制御装置について述べる。ＥＣＨＯＮＥＴ規格では、ＥＣＨＯＮＥＴ電文をＪａｖａ（登録商標）から扱うためのＥＣＨＯＮＥＴ  Ｊａｖａ（登録商標）ＡＰＩを規定している。このＥＣＨＯＮＥＴ  Ｊａｖａ（登録商標）ＡＰＩはＥＣＨＯＮＥＴミドルともいう。ＥＣＨＯＮＥＴミドルを用いて機器の検出、切断監視、イベント管理を行う部分をＥＣＨＯＮＥＴドライバともいう。ＥＣＨＯＮＥＴミドルとＥＣＨＯＮＥＴドライバとを含む部分をＥＣＨＯＮＥＴバンドルともいう。また、ＯＳＧｉサービス基盤において様々なソフトウェア部品（バンドル）のダウンロード、インストール、実行といったライフサイクルの管理や他のバンドルとのインタフェース（サービス）の管理機能を実装する部分をＯＳＧｉフレームワーク（ＯＳＧｉ  ＦＷ）ともいう。また、ＥＣＨＯＮＥＴ規格に対応する機器をＥＣＨＯＮＥＴ機器ともいう。
【００１６】
図５を用いてＥＣＨＯＮＥＴ機器についての情報をＯＳＧｉフレームワークに登録する手順について説明する。
まず、ＥＣＨＯＮＥＴドライバは、ＥＣＨＯＮＥＴミドルを介してＥＣＨＯＮＥＴ機器についての情報（「個体識別情報」ともいう。）を取得する（Ｓ５０１〜Ｓ５０５）。ＥＣＨＯＮＥＴドライバは取得した個体識別情報が後述する個体識別情報管理テーブルに登録済であるか否かを判断する（Ｓ５０６）。登録済でない場合は個体識別情報管理テーブルに該個体識別情報を登録する（Ｓ５０７）。
【００１７】
ＥＣＨＯＮＥＴドライバはＥＣＨＯＮＥＴミドルを介して該個体識別情報が示すＥＣＨＯＮＥＴ機器が保持する機器オブジェクト（実際の機器の制御を行うオブジェクト）の一覧を取得する（Ｓ５０８〜Ｓ５１５）。ＥＣＨＯＮＥＴドライバは取得したＥＣＨＯＮＥＴ機器の保持する機器オブジェクトの一覧に基づき、未登録の機器オブジェクトに対応するＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークに登録する（Ｓ５１６〜Ｓ５２０）。このようにすることで、ＥＣＨＯＮＥＴ機器についての情報をＯＳＧｉフレームワークに登録することができる。
【００１８】
ＥＣＨＯＮＥＴ機器についての情報をＯＳＧｉフレームワークに登録することで、ＥＣＨＯＮＥＴ機器が宅内ネットワークから離脱したかどうかを監視する切断監視、ＥＣＨＯＮＥＴ機器を制御する機器制御、ＥＣＨＯＮＥＴ機器にイベントを登録するイベント登録、該イベントを取得するイベント通知取得を実現することができる。これらの動作は図１６〜図２１を用いて後述する。
【００１９】
（２）詳細
図を用いて本実施例における機器制御装置の動作の詳細を説明する。
図１は本実施例におけるネットワーク構造の一例を示す図である。この図において、１０１は宅内機器管理装置、１０２は宅内ネットワーク、１０３、１０４、１０５はＥＣＨＯＮＥＴ機器である。宅内機器管理装置１０１は、宅内ネットワーク１０２を介してＥＣＨＯＮＥＴ機器と接続し、情報のやり取りを行うことができる。宅内機器管理装置はホームゲートウェイともいう。
【００２０】
宅内ネットワーク１０２は、宅内のＥＣＨＯＮＥＴ機器が接続可能なネットワークである。宅内ネットワーク１０２は、例えばＥｔｈｅｒｎｅｔ（登録商標）ケーブルを用いた有線あるいは、ＩＥＥＥ８０２．１ｘまたはＢｌｕｅｔｏｏｔｈを用いた無線によるＩＰネットワークである。ＥＣＨＯＮＥＴ規格においてはＥＣＨＯＮＥＴ機器が情報のやり取りを行うためのネットワークの物理層は特定小電力無線、電力線等を用いても実現可能であり、宅内機器管理装置やＥＣＨＯＮＥＴ機器のハードウェア構成がそれらのネットワークに適合していれば以下の説明における手順を適用可能である。
【００２１】
ＥＣＨＯＮＥＴ機器１０３、１０４、１０５は宅内ネットワーク１０２を介して宅内機器管理装置と情報のやり取りを行うことができる機器である。ＥＣＨＯＮＥＴ機器は例えばテレビ、レコーダ、エアコン等がある。
【００２２】
図２は宅内機器管理装置１０１のハードウェア構成図の一例である。
宅内機器管理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、メインメモリ２０２、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｂｅｒ）２０３、不揮発性記憶装置２０４、ＬＡＮＩ／Ｆ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  ＩｎｔｅｒＦａｃｅ）２０５とで構成される。各構成要素はバス２０６によって接続され、必要な情報が伝送可能なように構成する。
【００２３】
ＣＰＵ２０１は、ＥＰＲＯＭ２０３や不揮発性記憶装置２０４にあらかじめ格納されているプログラムによって所定の動作を行う。ＣＰＵは中央処理装置ともいい、各装置の制御やデータの計算・加工を行う装置である。
メインメモリ２０２は、ワークメモリとして機能する。メインメモリは主記憶装置ともいい、データやプログラムを記憶する装置である。動作が高速で、ＣＰＵから直接読み書きすることができる。
【００２４】
ＥＰＲＯＭ２０３は、記録の消去、書き込みを何度でも行える読み出し専用のメモリであって、必要なプログラムを格納するための手段である。
不揮発性記憶装置２０４は、必要なプログラムを格納したり、不揮発に記憶すべき情報を格納するための手段である。不揮発性記憶装置２０４は、例えばコンパクトフラッシュ（登録商標）やハードディスクである。
【００２５】
ＬＡＮＩ／Ｆ２０５は、通信網を介して他の機器と情報を送受信する為の手段である。ＬＡＮＩ／Ｆ２０５は、例えばネットワークアダプタ、無線送受信装置等によって実現される。ＬＡＮはローカルエリアネットワークともいい、Ｉ／Ｆはインタフェースともいう。なお、宅内機器管理装置１０１の各構成要素のうち不要なものは構成から省いても良い。例えば、不揮発に記憶すべき情報が存在しない場合には不揮発性記憶装置２０４を図２の構成から取り除くことができる。
【００２６】
図３はＥＣＨＯＮＥＴ機器１０３、１０４、１０５のハードウェア構成図の一例である。
ＥＣＨＯＮＥＴ機器１０３、１０４、１０５は、ＣＰＵ３０１、メインメモリ３０２、ＥＰＲＯＭ３０３、ＬＡＮ／ＩＦ３０５とを有して構成される。各構成要素はバス３０７によって接続され、必要な情報が伝送可能なように構成されている。
【００２７】
ＣＰＵ３０１は、ＥＰＲＯＭ３０３にあらかじめ格納されているプログラムによって所定の動作を行う。ＣＰＵは中央処理装置ともいい、各装置の制御やデータの計算・加工を行う装置である。
メインメモリ３０２は、ワークメモリとして機能する。メインメモリは主記憶装置ともいい、データやプログラムを記憶する装置である。動作が高速で、ＣＰＵから直接読み書きすることができる。
【００２８】
ＥＰＲＯＭ３０３は、は、記録の消去、書き込みを何度でも行える読み出し専用のメモリであって、必要なプログラムを格納するための手段である。
ＬＡＮ／ＩＦ３０５は、通信網を介して宅内機器管理装置１０１及び／又は他の機器と情報を送受信する為の手段である。ＬＡＮ／ＩＦ３０５は、例えばネットワークアダプタ、無線送受信装置等によって実現される。ＬＡＮはローカルエリアネットワークともいい、Ｉ／Ｆはインタフェースともいう。なお、ＥＣＨＯＮＥＴ機器１０３、１０４、１０５の各構成要素のうち不要なものは構成から取り除くことができる。
【００２９】
次に、宅内機器管理装置１０１上で動作するプログラムについて述べる。
宅内機器管理装置１０１にはＯＳＧｉコンソーシアムで規定するＯＳＧｉサービス基盤が搭載されている。ＯＳＧｉサービス基盤は、Ｊａｖａ（登録商標）ベースのソフトウェアコンポーネント化技術であり、ＯＳＧｉフレームワークとＯＳＧｉフレームワーク上で動作するソフトウェアからなる。このソフトウェアをバンドルともいう。ＯＳＧｉフレームワーク上で動作するバンドルにはＨＴＴＰサーバ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂによる情報送信機能を持ったコンピュータ。Ｗｅｂサーバともいう。）やＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙの略。家庭内のパソコンや周辺機器、ＡＶ機器、電話、家電製品などの機器をネットワークを通じて接続し、相互に機能を提供しあうための技術仕様。）に対応した機器の管理・制御といった、ＯＳＧｉサービス基盤に含まれる標準バンドルと、ＯＳＧｉサービス基盤の手法にのっとって実装されたユーザバンドルとがある。
【００３０】
ＯＳＧｉフレームワークはバンドルのダウンロード、インストール、起動、停止などのライフサイクルを管理したり、バンドルがＯＳＧｉフレームワーク上で動作する他のバンドルを操作するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅの略。あるプラットフォーム（ＯＳやミドルウェア）向けのソフトウェアを開発する際に使用できる命令や関数の集合のこと）を提供することができる。
バンドルは、自身のＡＰＩをサービスとしてＯＳＧｉフレームワークに登録し、他のバンドルからの操作を受け付けることができる。
【００３１】
本実施例において、宅内機器管理装置１０１上で動作するＯＳＧｉフレームワーク上ではＥＣＨＯＮＥＴ機器の検出、検出した機器へ制御を行うためのＯＳＧｉフレームワークへのサービス登録、ＥＣＨＯＮＥＴ機器からの通知イベントの管理を行うＥＣＨＯＮＥＴ機器管理バンドルが動作しているものとする。このＥＣＨＯＮＥＴ機器管理バンドルをＥＣＨＯＮＥＴバンドルともいう。
【００３２】
ＥＣＨＯＮＥＴバンドルは、宅内ネットワークに接続したＥＣＨＯＮＥＴ機器を検出し、ＥＣＨＯＮＥＴデバイス（Ｅｃｈｏｎｅｔ  Ｄｅｖｉｃｅ）サービスとしてＯＳＧｉフレームワークに登録する。また、ＥＣＨＯＮＥＴバンドルは、宅内のＥＣＨＯＮＥＴ機器から受け取ったイベント情報をＥＣＨＯＮＥＴイベントリスナ（Ｅｃｈｏｎｅｔ  Ｅｖｅｎｔ  Ｌｉｓｔｅｎｅｒ）サービスに対して通知することができる。ＥＣＨＯＮＥＴデバイスサービスとは、ＯＳＧｉフレームワークに登録されるサービスであり、ＥＣＨＯＮＥＴ機器の機器オブジェクトを示す。ＯＳＧｉフレームワーク上で動作するバンドルはＯＳＧｉフレームワークからＥＣＨＯＮＥＴデバイスサービスを取得し、ＥＣＨＯＮＥＴデバイスサービスに対してＥＣＨＯＮＥＴ機器に関する情報の取得や設定を行うことでＥＣＨＯＮＥＴ機器の機器オブジェクトを情報のやり取りを行うことができる。Ｅｃｈｏｎｅｔ  Ｅｖｅｎｔ  Ｌｉｓｔｅｎｅｒ（ＥＣＨＯＮＥＴイベントリスナ）とは、ＯＳＧｉフレームワーク上で動作するバンドルがＥＣＨＯＮＥＴ機器からのイベントを取得するためのインタフェースである。バンドルは、ＥＣＨＯＮＥＴイベントリスナを実装し、ＥＣＨＯＮＥＴイベントリスナのオブジェクトをＥＣＨＯＮＥＴイベントリスナサービスとしてＯＳＧｉフレームワークに登録することでＥＣＨＯＮＥＴ機器からイベントを受信することができる。
【００３３】
宅内のＥＣＨＯＮＥＴ機器を操作するアプリケーションソフトウェアは、ＯＳＧｉフレームワークからＥＣＨＯＮＥＴデバイスサービスを取得し、ＥＣＨＯＮＥＴデバイスサービスのＡＰＩであるＥＣＨＯＮＥＴプロパティ（Ｅｃｈｏｎｅｔ  Ｐｒｏｐｅｒｔｙ）値の設定、読み出し等を用いて宅内のＥＣＨＯＮＥＴ機器に対し制御を行うことができる。アプリケーションソフトウェアはアプリケーションバンドルともいう。
また、アプリケーションバンドルは、ＥＣＨＯＮＥＴバンドルが提供するＥＣＨＯＮＥＴイベントリスナのインタフェースを実装し、ＥＣＨＯＮＥＴイベントリスナサービスとしてＯＳＧｉフレームワークに登録することにより、ＥＣＨＯＮＥＴバンドルが取得したイベント情報を取得し、所望の処理を行うことができる。
【００３４】
次に、本実施例におけるテーブル情報について説明する。
図４は、ＥＣＨＯＮＥＴバンドルが保持する個体識別情報管理テーブル４００である。列４０１は個体識別情報、列４０２はＥＣＨＯＮＥＴアドレス、列４０３は再検索待機数である。
個体識別情報管理テーブルとは、ＥＣＨＯＮＥＴ機器の個体識別情報を管理するテーブルであり、個体識別情報と個体識別情報に対応するＥＣＨＯＮＥＴアドレスとが格納される。また、個体識別情報と個体識別情報に対応する再検索待機数とが格納される。個体識別情報管理テーブル４００は、ＥＣＨＯＮＥＴバンドルの動作中に宅内機器管理装置１０１のメインメモリ２０２上に記憶されるか、ＥＣＨＯＮＥＴバンドルの起動時に不揮発性記憶装置２０４からメインメモリ２０２上に読み出され、テーブル更新時やＥＣＨＯＮＥＴバンドルの終了時といった所定のタイミングで再び不揮発性記憶装置２０４に記憶される。
【００３５】
個体識別情報を格納する列４０１はＥＣＨＯＮＥＴ機器が保持する個体識別情報を格納する。個体識別情報とはＥＣＨＯＮＥＴ規格で定める機器固有の識別情報であり、ＥＣＨＯＮＥＴプロトコル（ＥＣＨＯＮＥＴ規格にて定められる、ＥＣＨＯＮＥＴ機器間でネットワークを介して情報をやり取りするための通信規約）によってＥＣＨＯＮＥＴ機器から読み出すことができる。ＥＣＨＯＮＥＴバンドルはＥＣＨＯＮＥＴ機器の検出時にＥＣＨＯＮＥＴ機器から個体識別情報を読み出し、個体識別情報管理テーブル４００に記憶する。
【００３６】
ＥＣＨＯＮＥＴアドレスを格納する列４０２は、ＥＣＨＯＮＥＴ機器が保持するＥＣＨＯＮＥＴプロトコル上のアドレス情報であるＥＣＨＯＮＥＴアドレスを格納する。ＥＣＨＯＮＥＴアドレスはＥＣＨＯＮＥＴプロトコルによってやり取りされる情報（ＥＣＨＯＮＥＴ電文）に付加される情報で、ＥＣＨＯＮＥＴ電文には必ず情報の発信元のＥＣＨＯＮＥＴアドレスと情報の発信先のＥＣＨＯＮＥＴアドレスが記載されている。ＥＣＨＯＮＥＴバンドルは、ＥＣＨＯＮＥＴ機器の検出時にＥＣＨＯＮＥＴ機器から個体識別情報を読み出し、個体識別情報管理テーブル４００に記憶する際に、個体識別情報読み出し時のＥＣＨＯＮＥＴ電文に含まれるＥＣＨＯＮＥＴアドレスを記憶する。
【００３７】
再検索待機数を格納する列４０３は、ＥＣＨＯＮＥＴバンドルがＥＣＨＯＮＥＴ機器を検出する際、一度検出した機器を再検索する際の指標となる数である再検索待機数を格納する。ＥＣＨＯＮＥＴバンドルが最初に個体識別情報を個体識別情報管理テーブル４００に記憶する際、再検索待機数は０として記憶する。ＥＣＨＯＮＥＴバンドルは後述の機器検出フローにより定期的に宅内のＥＣＨＯＮＥＴ機器の個体識別情報を検索するが、個体識別情報を個体識別情報管理テーブル４００に記載した後に受信した際には当該個体識別情報に対応する再検索待機数を１ずつインクリメント（整数型の変数の値を１増やす処理）していく。再検索待機数がシステムで決定するある値X（例えば３）以上であれば、該当個体識別情報に対応するＥＣＨＯＮＥＴ機器のインスタンスを再検索する。
【００３８】
次に、本実施例における動作について説明する。
本実施例において、宅内機器管理装置１０１上のＯＳＧｉフレームワーク上で動作するＥＣＨＯＮＥＴバンドルは、宅内ネットワークに接続するＥＣＨＯＮＥＴ機器の接続切断監視（検出およびネットワークからの離脱の監視）、検出したＥＣＨＯＮＥＴ機器の制御を行うＡＰＩのＥＣＨＯＮＥＴデバイスサービスとしてのＯＳＧｉフレームワークへの登録、宅内のＥＣＨＯＮＥＴ機器からの通知イベントの管理を行う。これらの宅内機器管理装置に関する処理は宅内機器管理装置のＣＰＵ２０１で各種プログラムが実行されることにより実現される。また、後述のＥＣＨＯＮＥＴ機器に関する処理（宅内機器管理装置からの要求に対する応答等）はＥＣＨＯＮＥＴ機器のＣＰＵ３０１で各種プログラムが実行されることにより実現される。なお、一部又は全部の機能をハードウェアで実現してもよい。
【００３９】
図５は、宅内ネットワークに接続するＥＣＨＯＮＥＴ機器を検出し、ＯＳＧｉフレームワークにＥＣＨＯＮＥＴデバイスサービスとして登録するまでの手順を示すシーケンス図である。
ＥＣＨＯＮＥＴ規格では、ＥＣＨＯＮＥＴ電文をＪａｖａ（登録商標）から扱うためのＥＣＨＯＮＥＴ  Ｊａｖａ（登録商標）ＡＰＩを規定している。このＥＣＨＯＮＥＴ  Ｊａｖａ（登録商標）ＡＰＩをＥＣＨＯＮＥＴミドルともいう。ＥＣＨＯＮＥＴバンドルは、ＥＣＨＯＮＥＴミドルと、ＥＣＨＯＮＥＴミドルを用いて機器の検出、切断監視、イベント管理（イベント登録、イベント通知取得を含むイベントを管理することをいう。）を行うＥＣＨＯＮＥＴドライバと、ＥＣＨＯＮＥＴ機器の制御やイベント取得を行うＥＣＨＯＮＥＴサービスＡＰＩとからなる。
【００４０】
図５におけるＥＣＨＯＮＥＴ機器の検出、ＯＳＧｉフレームワークへの登録手順において、ＥＣＨＯＮＥＴミドルのＡＰＩおよびＯＳＧｉフレームワークのＡＰＩはそれぞれＥＣＨＯＮＥＴ規格およびＯＳＧｉサービス基盤で規定する標準のＡＰＩである。
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略。ネットワークに参加している機器の住所付けや、相互に接続された複数のネットワーク内での通信経路の選定をするための方法を定義している。）網におけるＥＣＨＯＮＥＴ通信はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌの略。インターネットで利用される標準プロトコルで、ネットワーク層のＩＰと、セション層以上のプロトコルの橋渡しをする。）によって送受信されるため、通常それぞれのＥＣＨＯＮＥＴ電文は相関関係を持たない。しかし、ＥＣＨＯＮＥＴミドルは、内部で自身が送信するＥＣＨＯＮＥＴ電文に対する応答を待ってからＡＰＩの呼出し元に対して応答する仕組みを実装するため、ＥＣＨＯＮＥＴミドルを用いることで、ＥＣＨＯＮＥＴの通信を同期的に行うことができる。
【００４１】
また、ＥＣＨＯＮＥＴミドルはＥＣＨＯＮＥＴ機器が送信するイベント情報を受信するが、すべてのイベント情報を上位ソフトウェアに通知するためのＡＰＩを保持することもできる。本実施例においては、ＥＣＨＯＮＥＴドライバはあらかじめ（起動時に）ＥＣＨＯＮＥＴミドルに対してすべてのイベントを通知するように設定済みであるものとする。
【００４２】
ここで、ＥＣＨＯＮＥＴバンドルのモジュール構成についてさらに詳細に説明する。ＥＣＨＯＮＥＴバンドルは、上位のバンドルがＥＣＨＯＮＥＴデバイスサービスを介してＥＣＨＯＮＥＴ機器の操作するためのＥＣＨＯＮＥＴサービスＡＰＩ、ネットワークに接続されたＥＣＨＯＮＥＴ機器を発見してＯＳＧｉフレームワーク上にＥＣＨＯＮＥＴデバイスサービスとして登録し、またＥＣＨＯＮＥＴ機器からのイベントを上位のバンドルへと通知するＥＣＨＯＮＥＴドライバ、ＥＣＨＯＮＥＴ規格にて定義される「レベル２ＥＣＨＯＮＥＴ基本ＡＰＩ（Ｊａｖａ（登録商標）言語版）」を実装したモジュールであるＥＣＨＯＮＥＴミドルウェアといったモジュールから構成する。図２２はＥＣＨＯＮＥＴバンドルのモジュール構成の概念図である。ＥＣＨＯＮＥＴバンドルはこれらのモジュールによって上記の動的接続・切断、制御、イベント通知といった機能を実現する。
【００４３】
次に、上記ＥＣＨＯＮＥＴサービスＡＰＩについて説明する。ＥＣＨＯＮＥＴサービスＡＰＩは上位のバンドルに対して操作やイベント取得のためのＡＰＩを提供するモジュールである。図２３にＥＣＨＯＮＥＴサービスＡＰＩのクラス図を示す。図中の白色の部分（網掛けがない部分）がＥＣＨＯＮＥＴサービスＡＰＩである。ＥＣＨＯＮＥＴドライバは、宅内ネットワーク上でＥＣＨＯＮＥＴ機器を発見すると該当機器に対応するＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークに登録する。上位のバンドルはＯＳＧｉフレームワークに登録されたＥＣＨＯＮＥＴデバイスサービスを検索、取得することにより、宅内ネットワークに接続するＥＣＨＯＮＥＴ機器の存在を知り，制御を行うことができる。ＥＣＨＯＮＥＴ機器からのイベントはＥＣＨＯＮＥＴミドルを介してまずそのすべてをＥＣＨＯＮＥＴドライバが取得する。ＥＣＨＯＮＥＴドライバは，上位バンドルによって実装されＯＳＧｉフレームワークに登録されたＥＣＨＯＮＥＴイベントリスナサービスを取得し、上位バンドルにイベントを通知する。
【００４４】
図５のシーケンス図について説明する。Ｓ５０１、Ｓ５０２では、ＥＣＨＯＮＥＴドライバはＥＣＨＯＮＥＴミドルを介して、ＥＣＨＯＮＥＴ規格で定めるマルチキャストアドレス（ＩＰｖ４アドレス、２２４．０．２３．０）に対し、ＥＣＨＯＮＥＴ機器のノードプロファイル（通信モジュールのプロファイル）に対して個体識別情報のプロパティを取得する要求（以下、「個体識別情報取得要求」という。）を送信する。Ｓ５０１、Ｓ５０２の処理を実現する手段は個体識別情報登録調査手段ともいう。
Ｓ５０３では、ＥＣＨＯＮＥＴ機器はマルチキャストアドレスに到達する情報を監視しており、個体識別情報取得要求を受信したＥＣＨＯＮＥＴ機器は送信元ＥＣＨＯＮＥＴアドレスに対し、個体識別情報取得要求に対する応答（以下、「個体識別情報取得応答」という。）を送信する。Ｓ５０４、Ｓ５０５では、ＥＣＨＯＮＥＴミドルは個体識別情報取得応答を受信し、受信した個体識別情報取得応答をＥＣＨＯＮＥＴドライバに対して送信する。
【００４５】
Ｓ５０６では、ＥＣＨＯＮＥＴミドルから個体識別情報取得応答を受信したＥＣＨＯＮＥＴドライバは受信した個体識別情報が図４に示す個体識別情報管理テーブル４００に登録済みか否かを調査する。ここで、ＥＣＨＯＮＥＴドライバは、受信した個体識別情報が個体識別情報管理テーブル４００に未登録であれば、Ｓ５０７で受信した個体識別情報と個体識別情報の送信元のＥＣＨＯＮＥＴアドレスを個体識別情報管理テーブル４００に登録し、再検索待機数を０に設定する。
【００４６】
Ｓ５０８からＳ５１５では、ＥＣＨＯＮＥＴドライバは、受信した個体識別情報のＥＣＨＯＮＥＴ機器が保持する機器オブジェクトの一覧を取得する。ＥＣＨＯＮＥＴの通信はＥＣＨＯＮＥＴ通信機能間で行われるが、１つのＥＣＨＯＮＥＴ通信機能に対して複数の機器オブジェクトが対応している場合がある（例えば、１つのＥＣＨＯＮＥＴ機器の通信モジュールに対して人感センサと温度センサが結び付けられている場合）。ＥＣＨＯＮＥＴ機器の制御は機器オブジェクトに対して行うため、ＥＣＨＯＮＥＴバンドルは機器オブジェクトの一覧を取得し、機器オブジェクト単位でＯＳＧｉフレームワークにＥＣＨＯＮＥＴデバイスサービスとして登録を行う。ここで、機器オブジェクトのことをインスタンスともいい、ＥＣＨＯＮＥＴ通信機能のことをＥＣＨＯＮＥＴノードともいう。
【００４７】
Ｓ５０８、Ｓ５０９では、ＥＣＨＯＮＥＴドライバはＥＣＨＯＮＥＴミドルを介して、ＥＣＨＯＮＥＴ機器に対しＥＣＨＯＮＥＴ機器が保持する機器オブジェクトの数である自ノードインスタンス数プロパティを取得する要求（以下、「自ノードインスタンス数取得要求」という。）を送信する。Ｓ５１０、Ｓ５１１では、ＥＣＨＯＮＥＴ機器はＥＣＨＯＮＥＴミドルを介してＥＣＨＯＮＥＴドライバに自ノードインスタンス数プロパティ取得要求に対する応答（以下、「自ノードインスタンス数取得応答」という）を送信する。Ｓ５０８、Ｓ５０９の処理を実現する手段をインスタンス数取得手段ともいう。
【００４８】
Ｓ５１２、Ｓ５１３では、ＥＣＨＯＮＥＴドライバはＥＣＨＯＮＥＴミドルを介して、ＥＣＨＯＮＥＴ機器に対し、受信した自ノードインスタンス数プロパティに応じてノードに付随する機器オブジェクトのリストである自ノードインスタンスリストを取得する要求（以下、「自ノードインスタンスリスト取得要求」という。）を送信する。Ｓ５１２、Ｓ５１３の処理を実現する手段をインスタンスリスト取得手段ともいう。
Ｓ５１４、Ｓ５１５では、ＥＣＨＯＮＥＴ機器はＥＣＨＯＮＥＴミドルを介してＥＣＨＯＮＥＴドライバに自ノードインスタンスリスト取得要求に対する応答（以下、「自ノードインスタンスリスト取得応答」という）を送信する。
【００４９】
なお、ＥＣＨＯＮＥＴ規格には、ノードに付随する機器オブジェクトのリストを提供するプロパティが２種類存在する。一方が自ノードインスタンスリストプロパティといい、ノードに付随する機器オブジェクトが５以下でない場合（すなわち６以上である場合）に、自ノードインスタンスリストを提供する。他方は自ノードインスタンスリストＳプロパティといい、ノードに付随する機器オブジェクトが５以下である場合に、自ノードインスタンスリストを提供する。
【００５０】
そのため、ＥＣＨＯＮＥＴドライバは、取得したＥＣＨＯＮＥＴ機器が保持する機器オブジェクトの数を調査し、その値に応じて自ノードインスタンスリスト取得要求をＥＣＨＯＮＥＴ機器に対して送信する。Ｓ５１６からＳ５２０では、取得した自ノードインスタンスリストを元に機器オブジェクト毎にＯＳＧｉフレームワークに対してＥＣＨＯＮＥＴデバイスサービスを登録する。ＯＳＧｉフレームワーク上で動作するバンドルはＥＣＨＯＮＥＴデバイスサービスを介してＥＣＨＯＮＥＴ機器と情報のやり取りを行うことができる。
【００５１】
Ｓ５１６では、取得したインスタンス毎にサービス識別情報を作成する。サービス識別情報とは、ＯＳＧｉフレームワーク上で動作するバンドルがＥＣＨＯＮＥＴ機器を一意に特定する情報である。サービス識別情報は個体識別情報とＥＣＨＯＮＥＴオブジェクト（機器の種類を表す情報、その種類の機器が複数あった場合に区別するためのインスタンスの情報、自ノードインスタンスリストの情報）から生成する。Ｓ５０１からＳ５１５でＥＣＨＯＮＥＴドライバはＥＣＨＯＮＥＴ機器の個体識別情報と機器オブジェクトのＥＣＨＯＮＥＴオブジェクトを取得しており、バンドルは、個体識別情報とＥＣＨＯＮＥＴオブジェクトによって、例えば、どのＥＣＨＯＮＥＴ機器のどのオブジェクト（１番目のエアコン等）であるかを一意に特定することができるからである。
【００５２】
ここで、サービス識別情報の作成の具体例を挙げる。個体識別情報は２バイトの情報、ＥＣＨＯＮＥＴオブジェクトは３バイトの情報を保持しているとする。例えば、個体識別情報が１６進表記で０ｘ０００６、ＥＣＨＯＮＥＴオブジェクトが０ｘ００７００１（１番のインスタンスコードを持つ人感センサを示すとする）である場合、サービス識別情報は文字列表記で"０００６-００７００１"と表記するようにする。このようにサービス識別情報を作成することで、サービス識別情報は機器オブジェクトを一意に特定できる。
【００５３】
一方、ＯＳＧｉサービス基盤では、ＯＳＧｉフレームワークにサービスを登録する際に、サービスのプロパティ情報（ＥＣＨＯＮＥＴにおけるプロパティとは別のものである）を付加することができる。サービスの固有の識別情報を示すプロパティとしてｓｅｒｖｉｃｅ．ｐｉｄというプロパティが存在するため、本実施例では、ＥＣＨＯＮＥＴデバイスサービスを登録する際のｓｅｒｖｉｃｅ．ｐｉｄに上述のサービス識別情報を設定する。すなわち、ｓｅｒｖｉｃｅ．ｐｉｄ=０００６-００７００１という内容をＥＣＨＯＮＥＴデバイスサービスと対応付けてＯＳＧｉフレームワークへと登録する。Ｓ５１６の処理を実現する手段をサービス識別情報生成手段ともいう。
【００５４】
Ｓ５１７からＳ５１９では、ＥＣＨＯＮＥＴドライバはＯＳＧｉフレームワークに登録済みのＥＣＨＯＮＥＴデバイスサービスを調査する。
Ｓ５１７では、ＥＣＨＯＮＥＴドライバはＯＳＧｉフレームワークに対してＥＣＨＯＮＥＴデバイスサービスの一覧を取得する要求（以下、「ＥＣＨＯＮＥＴデバイスサービス一覧取得要求」という。）を行う。このＥＣＨＯＮＥＴデバイスサービス一覧取得要求を行う際、サービスの名前（ここではＥＣＨＯＮＥＴデバイスサービスの名前）以外にフィルタを作成しサービスを取得することができる。フィルタを用いることで、例えば、ｓｅｒｖｉｃｅ．ｐｉｄがある値のサービスのみを取得する、ということが可能である。その方法の一例としてフィルタにワイルドカードを指定することができる。個体識別情報が０ｘ０００６である機器のＥＣＨＯＮＥＴデバイスサービスの一覧を取得するには、ｓｅｒｖｉｃｅ．ｐｉｄ=０００６-*（"*"がワイルドカード）と指定すればよい。
【００５５】
ＥＣＨＯＮＥＴドライバは、個体識別情報を受信したＥＣＨＯＮＥＴ機器の機器オブジェクトから作成したＥＣＨＯＮＥＴデバイスサービスのみを取得するよう、個体識別情報を用いて、フィルタ情報を作成する。このフィルタ情報を作成する処理を実現する手段を個体識別情報フィルタ作成手段ともいう。また、このフィルタを用いて任意の個体識別情報を有するＥＣＨＯＮＥＴデバイスサービスを取得する処理を実現する手段をフィルタリングサービスリファレンス取得手段ともいう。
【００５６】
Ｓ５１８では、ＯＳＧｉフレームワークはフィルタ情報に適合するＥＣＨＯＮＥＴデバイスサービスの一覧（以下、「ＥＣＨＯＮＥＴデバイスサービス一覧取得応答」という。）を返す。
Ｓ５１９では、ＥＣＨＯＮＥＴドライバは、取得したＥＣＨＯＮＥＴデバイスサービスのｓｅｒｖｉｃｅ．ｐｉｄを調査し、上記にて作成したサービス識別情報と比較してＯＳＧｉフレームワークに未登録の機器オブジェクトを調査する。Ｓ５１９の処理を実現する手段をサービス識別情報比較手段ともいう。
【００５７】
Ｓ５２０では、ＥＣＨＯＮＥＴドライバは、未登録の機器オブジェクトに対応するＥＣＨＯＮＥＴデバイスオブジェクトを生成し、ｓｅｒｖｉｃｅ．ｐｉｄにサービス識別情報を設定して、ＥＣＨＯＮＥＴデバイスサービスとしてＯＳＧｉフレームワークに登録する。ＥＣＨＯＮＥＴデバイスオブジェクトとは、ＥＣＨＯＮＥＴドライバがＥＣＨＯＮＥＴデバイスサービスとしてＯＳＧｉフレームワークに登録するサービスの実体である。ＯＳＧｉフレームワークに登録されるバンドルは、ＯＳＧｉフレームワークからＥＣＨＯＮＥＴデバイスサービスを検索し、サービスを取得した際の戻り値としてＥＣＨＯＮＥＴデバイスオブジェクトを取得する。Ｓ５２０の処理を実現する手段をＯＳＧｉフレームワーク登録手段ともいう。
【００５８】
図５のシーケンス図において、ＥＣＨＯＮＥＴバンドルの動作をＥＣＨＯＮＥＴドライバとＥＣＨＯＮＥＴミドルに分けて説明したが、ＥＣＨＯＮＥＴミドルはＥＣＨＯＮＥＴドライバの依頼に従ったＥＣＨＯＮＥＴ電文を送信する機能であるため、以下の説明ではＥＣＨＯＮＥＴドライバとＥＣＨＯＮＥＴミドルを併せて「ＥＣＨＯＮＥＴバンドル」として説明する。
【００５９】
図６、図７、図８、図９は、図５と同じく、ＥＣＨＯＮＥＴ機器の検出からＯＳＧｉフレームワークへのＥＣＨＯＮＥＴデバイスサービス登録までを記述するシーケンス図である。
また、図５、図６、図７、図８、図９において、（１）、（２）、（２）-１、（２）-１´、（２）-２、（２）-３と書かれている範囲はそれぞれ同じ処理範囲の手順を示している。（１）の処理は図１０のフローチャートに対応している。（２）の処理は図１１のフローチャートに対応している。（２）の処理にはサブルーチンとして（２）-１、（２）-１´、（２）-２、（２）-３の処理が存在し、（２）-１の処理は図１２のフローチャートに対応している。（２）-１´の処理は図１３のフローチャートに対応している。（２）-２の処理は図１４のフローチャートに対応している。（２）-３の処理は図１５のフローチャートに対応している。
【００６０】
図１０から図１５では、図５で述べたＥＣＨＯＮＥＴ機器の検出からＯＳＧｉフレームワークへのＥＣＨＯＮＥＴデバイスサービスの登録までの手順をフローチャートを用いてに説明する。  図１０は、ＥＣＨＯＮＥＴバンドルが機器検出を開始する手順（図５のＳ５０１、Ｓ５０２）を示すフローチャートである。ＥＣＨＯＮＥＴバンドルは起動中、繰り返し機器検出を行っている。
【００６１】
まず、Ｓ１００１ではＥＣＨＯＮＥＴバンドルが動作中であり、終了処理を開始していない（動作が継続している）ことを確認する。動作が継続していなければ（Ｓ１００１でＮＯの場合）処理を終了する。動作が継続していれば（Ｓ１００１でＹＥＳの場合）Ｓ１００２に移り、ＥＣＨＯＮＥＴ規格で定めるマルチキャストアドレス（ＩＰｖ４、２２４．０．２３．０）宛にノードプロファイルの個体識別情報プロパティ取得要求を送信し、Ｓ１００３へ移る。Ｓ１００３では一定時間停止し、再びＳ１００１に戻る。
【００６２】
図１１は、機器の発見からＯＳＧｉフレームワークへのＥＣＨＯＮＥＴデバイスサービスの登録までの手順（図５のＳ５０３からＳ５２０）を示すフローチャートである。ＥＣＨＯＮＥＴ機器からの個体識別情報プロパティ取得応答を受信するたびに処理が行われる。
【００６３】
Ｓ１１０１では、ＥＣＨＯＮＥＴ機器から個体識別情報取得応答を受信する。
１１０２では取得した個体識別情報が図４に示した個体識別情報管理テーブル４００に登録があるか否かを調査する。登録がなければ（Ｓ１１０２でＹＥＳの場合）、Ｓ１１０３の新しいＥＣＨＯＮＥＴ機器を登録するフロー（「新規機器検索フロー」ともいう。）へ進み、その後Ｓ１１０５へ移る。登録があれば（Ｓ１１０２でＮＯの場合）、Ｓ１１０４の登録済の機器を検討するフロー（「登録済機器検討フロー」ともいう）へ進み、その後Ｓ１１０５へ移る。新規機器登録フローは図１２、登録済機器検討フローは図１３でさらに詳細に説明する。
【００６４】
Ｓ１１０５はＥＣＨＯＮＥＴ機器が保持する機器オブジェクトについて検索するフロー（「インスタンス検索フロー」ともいう）であり、その後Ｓ１１０６へ移る。このインスタンス検索フローは図１４でさらに詳細に説明する。
【００６５】
Ｓ１１０６はＥＣＨＯＮＥＴ機器が保持する機器オブジェクトをＯＳＧｉフレームワークに登録するフロー（「ＯＳＧｉ登録フロー」ともいう）である。ここでＥＣＨＯＮＥＴ機器が保持する機器オブジェクトをＯＳＧｉフレームワークに登録し、処理を終了する。このＯＳＧｉ登録フローは図１５でさらに詳細に説明する。
【００６６】
図１２は、図１１のＳ１１０３の新規機器登録フローのフローチャートである。
Ｓ１２０１では、図１１のＳ１１０１にて受信した個体識別情報を個体識別情報管理テーブル４００に登録する。この際、Ｓ１１０１にて受信したＥＣＨＯＮＥＴ電文に含まれるＥＣＨＯＮＥＴ電文の送信元のＥＣＨＯＮＥＴアドレスも登録する。また、再検索待機数は０に設定する。その後Ｓ１２０２へ移る。
【００６７】
Ｓ１２０２では、インスタンス検索フラグをｔｒｕｅに設定し、処理を終了する。インスタンス検索フラグは後述のインスタンス検索フロー（図１４）にて参照される。インスタンス検索フラグとは、ＥＣＨＯＮＥＴバンドルがインスタンス検索を行うかどうかを判断するためのフラグである。フラグがｔｒｕｅの時に、インスタンス検索フローにてインスタンス検索が実行される。
【００６８】
図１３は、図１１のＳ１１０４の登録済機器検討フローのフローチャートである。
Ｓ１３０１では、図１１のＳ１１０１において受信した個体識別情報取得応答のＥＣＨＯＮＥＴ電文から、個体識別情報と電文送信元のＥＣＨＯＮＥＴアドレスを取得し、個体識別情報管理テーブル４００から取得した個体識別情報の行に登録されているＥＣＨＯＮＥＴアドレスと該個体識別情報取得応答のＥＣＨＯＮＥＴ電文の送信元のＥＣＨＯＮＥＴアドレスとを比較する。個体識別情報管理テーブル４００に記載のＥＣＨＯＮＥＴアドレスと該個体識別情報取得応答のＥＣＨＯＮＥＴ電文の送信元のＥＣＨＯＮＥＴアドレスとが異なる場合（Ｓ１３０１でＹＥＳの場合）は、Ｓ１３０２へ移り、個体識別情報管理テーブル４００の該当するＥＣＨＯＮＥＴアドレスの欄を該個体識別情報取得応答のＥＣＨＯＮＥＴ電文の送信元のＥＣＨＯＮＥＴアドレスに書き換える。その後、Ｓ１３０３へ移る。Ｓ１３０１でＮＯの場合、そのままＳ１３０３へ移る。
【００６９】
次に、Ｓ１３０３では、個体識別情報管理テーブル４００において、図１１のＳ１１０１で受信した個体識別情報に対応する再検索待機数がある数Ｘ（例えば５）以上であるかどうかを調査する。Ｘ以上であれば（Ｓ１３０３でＹＥＳの場合）Ｓ１３０４へ移り、個体識別情報管理テーブル４００のインスタンス検索フラグをｔｒｕｅに設定し、Ｓ１３０５へ移る。Ｓ１３０５では個体識別情報管理テーブル４００における図１１のＳ１１０１で受信した個体識別情報に対応する再検索待機数を０クリアして処理を終了する。Ｘ以上でなければ（Ｓ１３０３でＮＯの場合）Ｓ１３０６に移り、個体識別情報管理テーブル４００のインスタンス検索フラグをｆａｌｓｅに設定し、Ｓ１３０７へ移る。Ｓ１３０７では個体識別情報管理テーブル４００における図１１のＳ１１０１で受信した個体識別情報に対応する再検索待機数を＋１して処理を終了する。インスタンス検索フラグは図１４のインスタンス検索フローにて参照される。
【００７０】
このように、既に個体識別情報管理テーブル４００に個体識別情報が登録済みのＥＣＨＯＮＥＴ機器に対して、ＥＣＨＯＮＥＴアドレスが変更になっていないかを調査し、また、機器オブジェクトの再検索を行うかどうかの判断を行うことで、例えば、ＩＰ網におけるＥＣＨＯＮＥＴ電文がＵＤＰでやり取りされることに起因するパケットロスの発生の可能性や、ＥＣＨＯＮＥＴ機器が起動中のまま、機器オブジェクトが追加される場合に対応することができる。すなわち、Ｓ１３０３で再検索待機数がＸ以上であるか否か調査することで、検出済みの機器を毎回再検索することによるネットワークに流れる情報量の増加を抑制できる。検出済みの機器本実施例ではＸ回に１回だけ検索することとなる。
【００７１】
図１４は、図１１のＳ１１０５のインスタンス検索フローのフローチャートである。
Ｓ１４０１では、図１２または図１３のフローチャートで説明したインスタンス検索フラグを参照し、インスタンス検索フラグがｔｒｕｅであるか否かを判断する。インスタンス検索フラグがｔｒｕｅでなければ（Ｓ１４０１でＮＯの場合、ｆａｌｓｅであれば）処理を終了する。フラグがｔｒｕｅであれば（Ｓ１４０１でＹＥＳの場合）、Ｓ１４０２へ移る。
【００７２】
Ｓ１４０２では、図１１のＳ１１０１において受信した個体識別情報取得応答のＥＣＨＯＮＥＴ電文の送信元のＥＣＨＯＮＥＴ機器から、ノードプロファイルの自ノードインスタンス数プロパティを取得し、Ｓ１４０３へ移る。
Ｓ１４０３では取得した自ノードインスタンス数が６以上であるかどうかを調査し、６以上であれば（Ｓ１４０３でＹＥＳの場合）Ｓ１４０４へ移り、４以下であれば（Ｓ１４０３でＮＯの場合）Ｓ１４０５へ移る。
【００７３】
Ｓ１４０４では、該ＥＣＨＯＮＥＴ機器からノードプロファイルの自ノードインスタンスリストプロパティを取得し、処理を終了する。
Ｓ１４０５では、該ＥＣＨＯＮＥＴ機器からノードプロファイルの自ノードインスタンスリストＳプロパティを取得し、処理を終了する。
【００７４】
ここで、Ｓ１４０３で取得した自ノードインスタンス数が６以上であるか否かを調査することについて説明する。ＥＣＨＯＮＥＴ規格では、自ノードインスタンスリスト数が「５以下」のときは自ノードインスタンスリストプロパティを搭載しなくてもよく、「６以上」のときは自ノードインスタンスリストＳには総数のみ記載するとの規定がある。そのため、後のフローで自ノードインスタンス数が５以下のときは自ノードインスタンスリストＳプロパティを取得、６以上のときは自ノードインスタンスリストプロパティを取得するとしている。本実施例はＥＣＨＯＮＥＴ規格に基づいて説明しているためＳ１４０３のステップがあるが、かかる規定がない場合はこのステップは削除してもよい。
【００７５】
図１５は、図１１の手順のＳ１１０６のＯＳＧｉ登録フローのフローチャートである。
Ｓ１５０１では、図１１のＳ１１０１において受信した個体識別情報と、Ｓ１４０４で取得した自ノードインスタンスリストプロパティ、またはＳ１４０５で取得した自ノードインスタンスリストＳプロパティから、ＥＣＨＯＮＥＴデバイスサービスのサービス識別情報を作成し、Ｓ１５０２へ移る。ここでは、図５において説明したように、機器オブジェクト毎に個体識別情報とＥＣＨＯＮＥＴオブジェクトから機器オブジェクトを一意に区別するための識別情報を作成する。
【００７６】
Ｓ１５０２では、ＯＳＧｉフレームワークから図１１のＳ１１０１で受信した個体識別情報のＥＣＨＯＮＥＴ機器に対応するＥＣＨＯＮＥＴデバイスサービスを取得するためのフィルタ情報を作成し、Ｓ１５０３へ移る。フィルタについては図５で説明したとおりである。
【００７７】
Ｓ１５０３では、ＯＳＧｉフレームワークからＳ１５０２で作成したフィルタ情報に該当するＥＣＨＯＮＥＴデバイスサービスの一覧を取得し、Ｓ１５０４へ移る。
Ｓ１５０４では、Ｓ１５０１で作成したサービス識別情報とＳ１５０３で取得したＥＣＨＯＮＥＴデバイスサービスのｓｅｒｖｉｃｅ．ｐｉｄを比較し、ＯＳＧｉフレームワークに未登録の機器オブジェクトを調査し、Ｓ１５０５へ移る。
【００７８】
Ｓ１５０５では、未登録のインスタンスに対応するＥＣＨＯＮＥＴデバイスオブジェクトを生成し、サービスプロパティ（ＯＳＧｉフレームワークに登録するサービスに対して付与されるサービスに関する情報）としてｓｅｒｖｉｃｅ．ｐｉｄ（サービス識別情報）を設定した上でＥＣＨＯＮＥＴデバイスサービスとして（ＥＣＨＯＮＥＴデバイスサービス名で）ＯＳＧｉフレームワークにサービス登録する。
以上が、本実施例におけるＥＣＨＯＮＥＴ機器の検出およびＯＳＧｉフレームワークへの登録の手順である。これにより、アプリケーションバンドルは宅内ネットワーク上の各機器オブジェクトを一意に区別することができる。
【００７９】
ここで、図６、図７、図８、図９のシーケンス図と図１０、図１１、図１２、図１３、図１４、図１５のフローチャートとの対応関係を明らかにしておく。
図６は、図５の手順と同様の処理であるが、図１１のＳ１１０２において、個体識別情報管理テーブル４００に個体識別情報が登録無しであり、図１４のＳ１４０３において、自ノードインスタンス数が６以上の場合の手順である。
【００８０】
図７は、図１１のＳ１１０２において、個体識別情報管理テーブル４００に個体識別情報が登録済みであり、図１３のＳ１３０３において、再検索待機数がある数Ｘ以上であり、図１４のＳ１４０３において、自ノードインスタンス数が６以上でない場合の手順である。
【００８１】
図８は、図１１のＳ１１０２において、個体識別情報管理テーブル４００に個体識別情報が登録済みであり、図１３のＳ１３０３において、再検索待機数がある数Ｘ以上でない場合の手順である。
【００８２】
図９は、図１１のＳ１１０２において、個体識別情報管理テーブル４００に個体識別情報が記載無しであり、図１４のＳ１４０３において、自ノードインスタンス数が６以上でない場合の手順である。
【００８３】
次に、ＥＣＨＯＮＥＴ機器が宅内ネットワークから離脱したかどうか（ネットワークから切断されたかどうか）を監視する切断監視の手順について説明する。
【００８４】
図１６は、切断監視のフローチャートである。
切断監視はＥＣＨＯＮＥＴバンドルが動作している間、動作を継続する。
Ｓ１６０１では、ＥＣＨＯＮＥＴバンドルの動作が継続中であることを確認し、動作が継続中であれば（Ｓ１６０１でＹＥＳの場合）Ｓ１６０２へ移り、動作が継続中でなければ（Ｓ１６０１でＮＯの場合）処理を終了する。
【００８５】
Ｓ１６０２では、ＯＳＧｉフレームワークから、ＯＳＧｉフレームワークに登録済みのＥＣＨＯＮＥＴデバイスサービスの一覧を取得し、Ｓ１６０３へ移る。
Ｓ１６０３では、取得した各々のＥＣＨＯＮＥＴデバイスサービスから機器オブジェクトスーパークラスの動作の状態のプロパティを取得し、Ｓ１０６４へ移る。機器オブジェクトスーパークラスとは、ＥＣＨＯＮＥＴ規格で規定する、すべての機器オブジェクトが有するプロパティである。
【００８６】
Ｓ１６０４では、Ｓ１６０３の応答がＥＣＨＯＮＥＴ機器から返ってくるか（ＥＣＨＯＮＥＴ機器が動作しているか）否かを調査する。ここで、動作の状態のプロパティとして戻ってくる値は問題とせず、応答があった場合は該当する機器オブジェクトは宅内ネットワークを介して通信可能な状態であるため、オンライン状態であると判断してもよい。応答がない場合は宅内ネットワークから切断されたと判断してもよい。応答が無い場合（Ｓ１６０４でＹＥＳの場合）は、Ｓ１６０５に進み、応答がある場合（Ｓ１６０４でＮＯの場合）はＳ１６０８に進む。
【００８７】
Ｓ１６０５では、ＯＳＧｉフレームワークから応答がないＥＣＨＯＮＥＴデバイスサービスを削除し、Ｓ１６０６へ移る。
Ｓ１６０６では、Ｓ１６０５にて削除したＥＣＨＯＮＥＴデバイスサービスと同じ個体識別情報を有する機器オブジェクトが他にないかどうかを調査する。すなわち、Ｓ１６０２にて取得したＥＣＨＯＮＥＴデバイスサービスのサービスプロパティであるｓｅｒｖｉｃｅ．ｐｉｄを調査し、Ｓ１６０５にて削除したＥＣＨＯＮＥＴデバイスサービスのｓｅｒｖｉｃｅ．ｐｉｄに記載の個体識別情報と同じ個体識別情報を持つＥＣＨＯＮＥＴデバイスサービスが他にないかを調査する。他にも同じ個体識別情報をもつＥＣＨＯＮＥＴデバイスサービスが存在する場合には（Ｓ１６０６でＮＯの場合）Ｓ１６０８に進む。他に同じ個体識別情報をもつＥＣＨＯＮＥＴデバイスサービスが存在しない場合（Ｓ１６０６でＹＥＳの場合）にはＳ１６０７へ移る。
【００８８】
Ｓ１６０７では、個体機別情報管理テーブル４００からＳ１６０５にて削除したＥＣＨＯＮＥＴデバイスサービスに対応する個体識別情報と対応する情報を削除し、Ｓ１６０８へ移る。
Ｓ１６０８では、一定時間停止し、Ｓ１６０１に戻る。
【００８９】
図１６の手順は、ＥＣＨＯＮＥＴデバイスサービス毎、すなわち、ＥＣＨＯＮＥＴ機器の機器オブジェクト毎に切断監視をする手順である。この場合、ＥＣＨＯＮＥＴ機器の通信モジュールであるノードが動作中に機器オブジェクトのみが削除されるような場合に対応可能であるが、宅内ネットワーク上に流れる情報量が増加するという欠点もある。
【００９０】
図１７は図１６と同様、切断監視の手順を示すフローチャートである。
図１７の手順では、ＥＣＨＯＮＥＴ機器の切断を通信モジュールであるノード毎に切断監視を行う手順である。図１７の手順は、宅内ネットワーク上に流れる情報量が図１６の手順に比べて少ないが、一方ノードが動作中に機器オブジェクトのみが切断される場合には、切断を検知できない欠点がある。
【００９１】
Ｓ１７０１では、ＥＣＨＯＮＥＴバンドルの動作が継続中であることを確認し、動作が継続中であれば（Ｓ１７０１でＹＥＳの場合）Ｓ１７０２へ移り、動作が継続中でなければ（Ｓ１７０１でＮＯの場合）処理を終了する。
【００９２】
Ｓ１７０２では、個体識別情報管理テーブル４００に登録の個体識別情報をすべて読み出し、それら各々に対しノードプロファイルの個体識別情報取得要求をい、Ｓ１７０３へ移る。Ｓ１７０２の処理を実現する手段を個体識別情報取得手段ともいう。
【００９３】
Ｓ１７０３では、Ｓ１７０２の要求に対する応答があるかどうかを確認する）））。応答がある場合（Ｓ１７０３でＮＯの場合）は、オンラインであると判断し、Ｓ１７０８へと進む。応答がない場合（Ｓ１７０３でＹＥＳの場合）は、オフラインであると判断し、Ｓ１７０４へと進む。Ｓ１７０３の処理を実現する手段を個体識別情報取得応答判断手段ともいう。
【００９４】
Ｓ１７０４では、ＯＳＧｉフレームワークからＳ１７０３にて応答のなかった個体識別情報を持つＥＣＨＯＮＥＴデバイスサービスを取得するためのフィルタを作成し、Ｓ１７０５へ移る。
Ｓ１７０５では、ＯＳＧｉフレームワークから、Ｓ１７０４で生成したフィルタに該当するＥＣＨＯＮＥＴデバイスサービスの一覧を取得し、Ｓ１７０６へ移る。
【００９５】
Ｓ１７０６では、Ｓ１７０５で取得したすべてのＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークから削除し、Ｓ１７０７へ移る。Ｓ１７０６の処理を実現する手段をＥＣＨＯＮＥＴデバイスサービス削除手段ともいう。
【００９６】
Ｓ１７０７では、個体識別情報管理テーブル４００から、Ｓ１７０３で応答のなかった個体識別情報をもつＥＣＨＯＮＥＴ機器の個体識別情報を削除し、Ｓ１７０８へ移る。
Ｓ１７０８では、一定時間停止し、Ｓ１７０１に戻る。
【００９７】
以上が、本実施例におけるＥＣＨＯＮＥＴ機器の切断監視の手順である。上述のＥＣＨＯＮＥＴ機器の検出手順と切断監視の手順により、本実施例における宅内機器管理装置は宅内ネットワークへのＥＣＨＯＮＥＴ機器の参入、離脱を知ることができる。
【００９８】
次に、ＥＣＨＯＮＥＴバンドルがＯＳＧｉフレームワークに登録したＥＣＨＯＮＥＴデバイスサービスを用いて、ＯＳＧｉフレームワーク上で動作する他のバンドルがＥＣＨＯＮＥＴ機器を制御する手順の一例を説明する。
【００９９】
図１８は、機器を制御する動作の例を示すフローチャートである。ここでは、ＯＳＧｉフレームワーク上で動作するバンドルがエアコン機器に対し、温度設定を制御する手順を示す。ＯＳＧｉフレームワーク上で動作するバンドルをアプリケーションバンドルともいう。
Ｓ１８０１では、アプリケーションバンドルが、ＯＳＧｉフレームワークに登録済みのＥＣＨＯＮＥＴデバイスサービスからエアコン機器のＥＣＨＯＮＥＴデバイスサービスを取得するためのフィルタを作成し、Ｓ１８０２へ移る。すなわち、ＥＣＨＯＮＥＴデバイスサービスのサービスプロパティであるｓｅｒｖｉｃｅ．ｐｉｄがエアコン機器を示すものをフィルタリングするフィルタを作成する。例えば、ｓｅｒｖｉｃｅ．ｐｉｄが「*-０１３０*」となる。すなわち、個体識別番号およびＥＣＨＯＮＥＴオブジェクトのインスタンスコードをワイルドカードとしている。
【０１００】
Ｓ１８０２では、Ｓ１８０１で作成したフィルタに該当するＥＣＨＯＮＥＴデバイスサービスの一覧を取得し、Ｓ１８０３へ移る。
ここでは、宅内に複数のエアコン機器が存在した場合を想定しないが、必要に応じて複数のエアコン機器から所望のエアコン機器を判別する処理を加えても良い。例えば、Ｓ１８０２で取得したＥＣＨＯＮＥＴデバイスサービスの各々から機器オブジェクトスーパークラスの設置場所のプロパティを取得することで、所望の部屋のエアコン機器のみを制御することが可能となる。
【０１０１】
Ｓ１８０３では、ＥＣＨＯＮＥＴバンドルが提供するＥＣＨＯＮＥＴプロパティのオブジェクトを生成し、温度設定プロパティに対する値（すなわち「温度」）を設定し、Ｓ１８０４へ移る。ＥＣＨＯＮＥＴプロパティとは、ＥＣＨＯＮＥＴ規格が機器の種類毎に定めるＥＰＣ（ＥＣＨＯＮＥＴ規格が機器の種類毎に定める機器から取得可能な、または設定可能な情報）に対応する値を示す情報である。温度設定プロパティとは、ここではエアコン機器のＥＣＨＯＮＥＴプロパティのひとつである。
【０１０２】
Ｓ１８０４では、制御するＥＣＨＯＮＥＴデバイスサービスに、エアコン機器の温度設定プロパティに対し、Ｓ１８０３にて生成したＥＣＨＯＮＥＴプロパティオブジェクトの値を設定し、処理を終了する。Ｓ１８０２、Ｓ１８０３の処理を実現する手段をＥＣＨＯＮＥＴプロパティ取得、設定手段ともいう。
以上が、本実施例におけるアプリケーションバンドルによるＥＣＨＯＮＥＴ機器の制御の例である。
【０１０３】
次に、アプリケーションバンドルが所望のＥＣＨＯＮＥＴ機器からのイベントを取得する手順を説明する。
図１９は、アプリケーションバンドルがＯＳＧｉフレームワークに対して、イベント取得用のサービス（ＥＣＨＯＮＥＴバンドルが提供するＥＣＨＯＮＥＴイベントリスナインタフェースのアプリケーションバンドルでの実装オブジェクト）を登録する手順の一例を示すフローチャートである。このイベント取得用のサービスをＥＣＨＯＮＥＴイベントリスナサービスともいう。イベントとは例えば人感センサがセンサの人の存在を検知したことを通知すること、エアコンの電源が「ＯＮ」にされたことを通知することである。人感センサとは、センサの周囲に人が存在するかどうかを判断可能な種類のセンサである。ここでは、アプリケーションバンドルが人感センサのイベントを取得するためにＥＣＨＯＮＥＴイベントリスナサービスをＯＳＧｉフレームワークに登録する手順を示す。
【０１０４】
Ｓ１９０１では、人感センサからのイベントを取得するためのフィルタ情報を作成し、Ｓ１９０２へ移る。例えば、ｓｅｒｖｉｃｅ．ｐｉｄが「*-００７０*」となるような機器からのイベントを取得するようなフィルタを作成する。フィルタ情報はＥＣＨＯＮＥＴイベントリスナサービスを登録する際のサービスプロパティとして登録する。登録に用いるＫｅｙ情報はＥＣＨＯＮＥＴバンドルの中で定義するＥＣＨＯＮＥＴイベントリスナインタフェースにて規定する。また、上記Ｋｅｙ情報に対応するＶａｌｕｅ情報は、ワイルドカードの他ＡＮＤおよびＯＲの条件を可能とすることでさらに柔軟性の高いフィルタリングが可能となる。例えば、人感センサまたはエアコン機器からのイベントを取得したい場合は（ｓｅｒｖｉｃｅ．ｐｉｄ=*-００７０*）|（ｓｅｒｖｉｃｅ．ｐｉｄ=*-０１３０*)）等と表記することが可能である。Ｓ１９０１の処理を実現する手段をイベントフィルタ作成手段ともいう。
【０１０５】
Ｓ１９０２では、取得するイベントの制御を行うＥＣＨＯＮＥＴイベントリスナ実装オブジェクトを生成し、Ｓ１９０３へ移る。ＯＳＧｉサービス基盤はＪａｖａ（登録商標）ベースであるため、具体的に説明すると、ＥＣＨＯＮＥＴバンドル内でＥＣＨＯＮＥＴイベントリスナのインタフェースのみを規定する。アプリケーションバンドルはＥＣＨＯＮＥＴイベントリスナインタフェースをインプリメント（実装）して実際の処理を記述することで、ＥＣＨＯＮＥＴイベントリスナ実装クラスを作成する。そして、ＥＣＨＯＮＥＴイベントリスナ実装クラスのオブジェクトを生成することがＳ１９０２の具体的な内容である。
【０１０６】
Ｓ１９０３では、Ｓ１９０２で生成したＥＣＨＯＮＥＴイベントリスナ実装オブジェクトを、ＥＣＨＯＮＥＴイベントリスナサービスとして、サービスプロパティとしてＳ１９０１で生成したフィルタ情報を付加してＯＳＧｉフレームワークに登録する。Ｓ１９０３の処理を実現する手段をイベントリスナ登録手段ともいう。
【０１０７】
以上が、イベント登録のフローチャートである。イベントの登録を行うことで、アプリケーションバンドルは所望のＥＣＨＯＮＥＴ機器からのイベントのみを簡単に受信することができる。また、フィルタをかけることで、任意の人感センサやエアコンからの通知を受け取りやすくすることができる。
【０１０８】
次に、ＥＣＨＯＮＥＴ機器からのイベントを取得するイベント通知取得の手順を説明する。
図２０はイベント通知取得の手順を示すフローチャートである。
Ｓ２００１ではＥＣＨＯＮＥＴバンドルが宅内機器（宅内にあるＥＣＨＯＮＥＴ機器）からのイベント通知を取得し、Ｓ２００２へ移る。Ｓ２００１の処理をイベント取得手段ともいう。
【０１０９】
Ｓ２００２では、イベント通知を行った機器からのＥＣＨＯＮＥＴ電文に含まれる送信元のＥＣＨＯＮＥＴアドレスを取得する。個体識別情報管理テーブル４００から該取得したＥＣＨＯＮＥＴアドレスに対応する個体識別情報を取得し、ＥＣＨＯＮＥＴ電文に含まれる送信元ＥＣＨＯＮＥＴオブジェクトと合わせてサービス識別情報を作成し、Ｓ２００３へ移る。Ｓ２００２の処理を実現する手段をイベント受信時サービス識別情報生成手段ともいう。
【０１１０】
Ｓ２００３では、Ｓ２００２で作成したサービス識別情報を用いて、ＯＳＧｉフレームワークから該当するＥＣＨＯＮＥＴイベントリスナサービスを取得するためのフィルタ情報を作成し、Ｓ２００４へ移る。
【０１１１】
Ｓ２００４では、、ＯＳＧｉフレームワークからＳ２００３で生成したフィルタ情報に該当するＥＣＨＯＮＥＴイベントリスナサービスの一覧を取得し、Ｓ２００５へ移る。
【０１１２】
Ｓ２００５では、Ｓ２００４にてＥＣＨＯＮＥＴイベントリスナサービスが取得されたかどうかを調査し、サービスがなければ（Ｓ２００５でＮＯの場合）処理を終了する。サービスがあれば（Ｓ２００５でＹＥＳの場合）Ｓ２００６へと進む。
【０１１３】
Ｓ２００６では、Ｓ２００１で取得したイベント通知を記述するＥｃｈｏｎｅｔＥｖｅｎｔオブジェクトを生成し、Ｓ２００７へ進む。ここで、ＥＣＨＯＮＥＴ機器からのイベント通知とは、例えばどの種類のどの機器のどのプロパティがどういう値になった、という内容である。「どの種類のどの機器」という情報はサービス識別情報に含まれるため、ＥｃｈｏｎｅｔＥｖｅｎｔオブジェクトには「どのプロパティがどういう値になった」という情報が含まれていればよい。
【０１１４】
Ｓ２００７では、Ｓ２００４で取得したすべてのＥＣＨＯＮＥＴイベントリスナサービスに対してサービス識別情報およびＳ２００６で生成したＥｃｈｏｎｅｔＥｖｅｎｔオブジェクトをアプリケーションバンドルに通知する。Ｓ２００７の処理を実現する手段をイベント通知手段ともいう。
【０１１５】
以上が、本実施例における宅内機器管理装置のイベントを管理する手順である。このようにすることで、ＥＣＨＯＮＥＴ機器からのイベントをそのイベントの通知先であるアプリケーションバンドルに対して通知しやすくなる効果があり、処理の効率化が図れる。
【０１１６】
図２１は、本実施例の宅内機器管理装置を用いたＥＣＨＯＮＥＴ機器の動作の一例を示すシーケンス図である。
図２１において、アプリケーションバンドルは人感センサのイベントを取得すると、照明を点灯させるという動作を行う。
【０１１７】
Ｓ２１０１では、アプリケーションバンドルは、人感センサのイベントを取得するためのフィルタ情報を作成する。
Ｓ２１０２では、ＥＣＨＯＮＥＴイベントリスナ実装オブジェクトを生成する。
Ｓ２１０３では、サービスプロパティに上記フィルタの情報を設定した上でＥＣＨＯＮＥＴイベントリスナ実装オブジェクトをＥＣＨＯＮＥＴイベントリスナサービスとしてＯＳＧｉフレームワークに登録する。
【０１１８】
Ｓ２１０１からＳ２１０３は図１９で説明したイベント取得用のサービスの登録と同様である。
Ｓ２１０４では、人感センサが反応すると、人感センサは人体検知情報プロパティを宅内ネットワーク（マルチキャストアドレス）に対して通知する。
Ｓ２１０５では、ＥＣＨＯＮＥＴバンドルは通知を受信し、個体識別情報管理テーブル４００からイベントの通知を行った機器のＥＣＨＯＮＥＴアドレスに対応する個体識別情報を読み出し、イベントの通知を行った機器のＥＣＨＯＮＥＴオブジェクトと個体識別情報よりイベントの通知を行った機器のサービス識別情報を生成する。
【０１１９】
Ｓ２１０６では、上記サービス識別情報に対応するフィルタ情報を作成する。
Ｓ２１０７では、ＥＣＨＯＮＥＴバンドルは、ＯＳＧｉフレームワークに対して上記フィルタ情報に該当するＥＣＨＯＮＥＴイベントリスナサービスの一覧を取得する要求を送信する。
Ｓ２１０８では、ＯＳＧｉフレームワークはＥＣＨＯＮＥＴバンドルに対してＳ２１０７のＥＣＨＯＮＥＴバンドルの要求対する応答を返す。
【０１２０】
Ｓ２１０９では、該当するＥＣＨＯＮＥＴイベントリスナサービスに対応するＥｃｈｏｎｅｔＥｖｅｎｔオブジェクトを生成する。
Ｓ２１１０では、Ｓ２１０９で生成したＥｃｈｏｎｅｔＥｖｅｎｔオブジェクトをｓｅｒｖｉｃｅ．ｐｉｄとともにアプリケーションバンドルが提供するＥＣＨＯＮＥＴイベントリスナサービスへと通知する。
Ｓ２１１１では、アプリケーションバンドルのＥＣＨＯＮＥＴイベントリスナ実装オブジェクトは通知を受信し、照明機器に対応するフィルタ情報を作成する。
【０１２１】
Ｓ２１１２では、アプリケーションバンドルはフィルタ情報に該当するＥＣＨＯＮＥＴデバイスサービスの一覧を取得する要求をＯＳＧｉフレームワークに送信する。
Ｓ２１１３では、ＯＳＧｉフレームワークはＳ２１１２の要求に対する応答をアプリケーションバンドルに返す。
Ｓ２１１４では、ＥＣＨＯＮＥＴプロパティオブジェクトを生成し、照明機器の動作状態のプロパティとして「ＯＮ」の値を設定する。ＥＣＨＯＮＥＴプロパティオブジェクトとは、ＥＣＨＯＮＥＴプロパティに値を設定したオブジェクトである。
【０１２２】
Ｓ２１１５では、アプリケーションバンドルはＥＣＨＯＮＥＴデバイスサービスの照明機器の動作状態のプロパティに対し、Ｓ２１１４でＥＣＨＯＮＥＴプロパティオブジェクトに設定した値（ＯＮ）を設定するよう要求を行う。
Ｓ２１１６では、ＥＣＨＯＮＥＴバンドルはＳ２１１５のアプリケーションバンドルの要求にしたがって該当するＥＣＨＯＮＥＴ機器に動作状態をＯＮとする制御を行う。
Ｓ２１１７では、Ｓ２１１６でのＥＣＨＯＮＥＴバンドルの制御により照明が点灯する。
以上が、本実施例におけるＥＣＨＯＮＥＴ機器の動作の一例である。
【０１２３】
以上述べたように、ＥＣＨＯＮＥＴバンドルは宅内のＥＣＨＯＮＥＴ機器の検出および切断監視によってＥＣＨＯＮＥＴ機器の接続切断状態を監視することができる。また、ノードプロファイルの個体識別情報プロパティを用いてＥＣＨＯＮＥＴ機器管理テーブル４００において検出した機器を管理し、また検出済み機器についても個体識別情報とＥＣＨＯＮＥＴアドレスの組合せが変わっていないかを定期的に確認することにより、ＥＣＨＯＮＥＴ機器の再起動等によるＥＣＨＯＮＥＴアドレスの変更によらずに機器を区別し、制御することができる。
【０１２４】
また、ＥＣＨＯＮＥＴ機器を機器オブジェクト（インスタンス、ＥＣＨＯＮＥＴオブジェクト）毎に、ＯＳＧｉフレームワーク上のサービス（ＥＣＨＯＮＥＴデバイスサービス）として登録することによりＯＳＧｉフレームワーク上で動作するアプリケーションバンドルはＥＣＨＯＮＥＴ機器に対し、プロパティ値の設定、読み出しといった制御を行うことができる。
【０１２５】
ＥＣＨＯＮＥＴバンドルがＥＣＨＯＮＥＴデバイスサービスをＯＳＧｉフレームワークに登録する際に、サービスプロパティとしてｓｅｒｖｉｃｅ．ｐｉｄにＥＣＨＯＮＥＴ機器の個体識別情報および機器オブジェクト情報から生成するサービス識別情報を設定することにより、アプリケーションバンドルは宅内ネットワーク上の各機器オブジェクトを一意に区別することができる。
【０１２６】
また、サービス識別情報を応用してＥＣＨＯＮＥＴイベントリスナ実装オブジェクトをＯＳＧｉフレームワークに登録することにより、アプリケーションバンドルは所望のＥＣＨＯＮＥＴ機器からのイベントのみを簡単に受信することができる。
【０１２７】
ＥＣＨＯＮＥＴ機器を制御する際や、イベントの通知の際、アプリケーションバンドルとＥＣＨＯＮＥＴバンドルの間では、直接オブジェクトのやり取りは行わず、必ずＯＳＧｉフレームワークを介してＥＣＨＯＮＥＴデバイスサービスやＥＣＨＯＮＥＴイベントリスナサービスを取得する。ＯＳＧｉフレームワークはバンドルのライフサイクルを管理、把握しているため、アプリケーションバンドルまたはＥＣＨＯＮＥＴバンドルが予期せず終了してしまったような場合にもメモリリーク等、システム全体への重大な影響を防ぐことができる。
【０１２８】
本実施例において述べた、ＥＣＨＯＮＥＴデバイスサービスの一覧取得やＥｃｈｏｎｅｔＥｅｖｎｔＬｉｓｔｅｎｅｒの取得の際に生成するフィルタはＯＳＧｉサービス基盤に含まれる標準のものを使用することができる。そのため、アプリケーションバンドルの作成者は所望の機器のオブジェクトや所望の機器からのイベントのみを取得したい場合にも標準のフィルタを用いて簡単にプログラムを作成することが可能である。さらにＯＳＧｉサービス基盤のフィルタ機能はワイルドカードやＡＮＤ、ＯＲ等の表記が可能であるため、標準の中で高い機能の使用、柔軟なプログラミングが可能となる。
【０１２９】
本実施例ではＥＣＨＯＮＥＴ規格を前提に説明を行ったが、これによりＥＣＨＯＮＥＴ規格に限定されるわけではない。
【図面の簡単な説明】
【０１３０】
【図１】本実施例におけるネットワーク構成図である。
【図２】本実施例における宅内機器管理装置のハードウェア構成図である。
【図３】本実施例におけるＥＣＨＯＮＥＴ機器のハードウェア構成図である。
【図４】本実施例における個体識別情報管理テーブルである。
【図５】本実施例における機器検出からＯＳＧｉフレームワーク登録までのシーケンス図である。
【図６】本実施例における機器検出からＯＳＧｉフレームワーク登録までのシーケンス図である。
【図７】本実施例における機器検出からＯＳＧｉフレームワーク登録までのシーケンス図である。
【図８】本実施例における機器検出からＯＳＧｉフレームワーク登録までのシーケンス図である。
【図９】本実施例における機器検出からＯＳＧｉフレームワーク登録までのシーケンス図である。
【図１０】本実施例における機器検索開始のフローチャートである
【図１１】本実施例における機器の発見からＯＳＧｉ ＦＷに登録するまでのフローチャートである。
【図１２】本実施例における新規に発見した機器の個体識別情報を個体識別情報管理テーブルへ追加するフローチャートである。
【図１３】本実施例における既に個体識別情報管理テーブルに記載済みの機器に対し、インスタンスの再検索をするかどうかを検討する手順を示すフローチャートである。
【図１４】本実施例におけるある個体識別情報を有するＥＣＨＯＮＥＴノードに対し、インスタンス検索を行う際の手順を示すフローチャートである。
【図１５】本実施例におけるある個体識別情報に対応するあるインスタンスを、ＯＳＧｉ ＦＷにＥＣＨＯＮＥＴデバイスサービスとして登録するまでの手順を示すフローチャートである。
【図１６】本実施例におけるＯＳＧｉ登録済みの機器の切断監視のフローチャートである。
【図１７】本実施例におけるＯＳＧｉ登録済みの機器の切断監視のフローチャートである。
【図１８】本実施例におけるアプリケーションソフトウェアがエアコン機器の温度設定を変更する制御を行う際のフローチャートである。
【図１９】本実施例におけるアプリケーションソフトウェトウェアが人感センサ機器からのイベントを取得するリスナを登録するフローチャートである。
【図２０】本実施例におけるアプリケーションソフトウェトウェアが人感センサ機器からのイベント通知を取得するフローチャートである。
【図２１】本実施例におけるＥＣＨＯＮＥＴ機器の協調動作の一例を示すシーケンス図である。
【図２２】本実施例におけるＥＣＨＯＮＥＴバンドルのモジュール構成の概念図である。
【図２３】本実施例におけるＥＣＨＯＮＥＴサービスＡＰＩのクラス図である。
【符号の説明】
【０１３１】
１０１  宅内機器管理装置
１０２  宅内ネットワーク
１０３  ＥＣＨＯＮＥＴ機器
１０４  ＥＣＨＯＮＥＴ機器
１０５  ＥＣＨＯＮＥＴ機器
２０１  ＣＰＵ
２０２  メインメモリ
２０３  ＥＰＲＯＭ
２０４  不揮発性記憶装置
２０５  ＬＡＮ／ＩＦ
２０６  バス
３０１  ＣＰＵ
３０２  メインメモリ
３０３  ＥＰＲＯＭ
３０５  ＬＡＮ／ＩＦ
３０７  バス
４００  個体識別情報管理テーブル
４０１  個体識別情報
４０２  ＥＣＨＯＮＥＴアドレス
４０３  再検索待機数
【図１】
2008172462.tif 000003
【図２】
2008172462.tif 000004
【図３】
2008172462.tif 000005
【図４】
2008172462.tif 000006
【図５】
2008172462.tif 000007
【図６】
2008172462.tif 000008
【図７】
2008172462.tif 000009
【図８】
2008172462.tif 000010
【図９】
2008172462.tif 000011
【図１０】
2008172462.tif 000012
【図１１】
2008172462.tif 000013
【図１２】
2008172462.tif 000014
【図１３】
2008172462.tif 000015
【図１４】
2008172462.tif 000016
【図１５】
2008172462.tif 000017
【図１６】
2008172462.tif 000018
【図１７】
2008172462.tif 000019
【図１８】
2008172462.tif 000020
【図１９】
2008172462.tif 000021
【図２０】
2008172462.tif 000022
【図２１】
2008172462.tif 000023
【図２２】
2008172462.tif 000024
【図２３】
2008172462.tif 000025