(57)【要約】【課題】プラグインの登録の自由度を高めるとともに、プラグインの処理の干渉を防止することができる情報処理装置、コンピュータプログラム及び情報処理方法を提供する。【解決手段】情報処理装置は、任意のノードに複数のプラグインモジュールを登録する場合、複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定する判定部と、判定部で複数のプラグインモジュールの識別符号が同一であると判定した場合、複数のプラグインモジュールに予め割り当てられた優先度に応じて、複数のプラグインモジュールのうちの少なくとも１つをノードに登録する登録部とを備える。【選択図】図３
2015014896.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行する情報処理装置であって、
任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定する判定部と、
該判定部で複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録する登録部と
を備える情報処理装置。
【請求項２】
前記登録部は、
前記判定部で複数のプラグインモジュールの識別符号が同一であると判定した場合、前記優先度が最も高いプラグインモジュールを前記ノードに登録するようにしてある請求項１に記載の情報処理装置。
【請求項３】
前記登録部で複数のプラグインモジュールを前記ノードに登録した場合、該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、前記複数のプラグインモジュールの優先度に応じて実行順序を決定する決定部を備える請求項１に記載の情報処理装置。
【請求項４】
前記登録部で複数のプラグインモジュールを前記ノードに登録した場合、該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、いずれのプラグインモジュールを実行するかを決定する決定部を備える請求項１に記載の情報処理装置。
【請求項５】
前記任意のノードに優先度を割り当てるノード優先度割当部と、
前記ノードに前記複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールの優先度と前記ノードの優先度を比較する比較部と
を備え、
前記登録部は、
前記複数のプラグインモジュールの優先度が前記ノードの優先度より高い場合、該複数のプラグインモジュールのうち、少なくとも１つを前記ノードに登録するようにしてある請求項１から請求項４までのいずれか１項に記載の情報処理装置。
【請求項６】
コンピュータに、アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行させるためのコンピュータプログラムであって、
コンピュータに、
任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定するステップと、
複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録するステップと
を実行させるコンピュータプログラム。
【請求項７】
アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行する情報処理方法であって、
任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定するステップと、
複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録するステップと
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、ノードに対応付けられたデータ及びノードに登録されたプラグインモジュールを用いて所定の情報処理を実行する情報処理装置、該情報処理装置を実現するためのコンピュータプログラム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、サービスゲートウェイ、ルータ、車載機器、宅内機器、携帯電話、タブレット端末装置、パーソナルコンピュータ、ネットワーク機器などの様々な情報処理装置のネットワーク化が進展している。このような様々な装置をネットワーク化するには、装置間の相互接続が重要であり、そのような相互接続のための１つのプラットフォームとして、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ）技術が注目を集めている。
【０００３】
ＯＳＧｉ（登録商標）では、様々な機能を組み込んだ情報処理装置の各機能をバンドルと称されるソフトウェアモジュール（アプリ又はアプリケーションとも称する）によって構成している。バンドルが実行される環境は、ＯＳＧｉフレームワークによって提供される。ＯＳＧｉフレームワークは、Ｊａｖａ（登録商標）バーチャルマシン上で動作し、Ｊａｖａプログラムをプラグンイン（Ｐｌｕｇｉｎ）モジュールとして取扱い、動的にアプリケーション（バンドル）への追加又は更新などを行うことができる。また、バンドルが実行する各機能は、階層化されてあり、例えば、複数のノード及びノード間のリンクで構成されたツリー構造により管理されている。ツリー構造内の階層化されたノードには、バンドル（プラグンインモジュール）が所定の処理を実行する際に用いるデータが対応付けられている。
【０００４】
このような階層化されたノードにプラグインモジュール（プラグインとも称する）を登録する際の規則（ルール）は、非特許文献１に記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】OSGi Service Platform Service Compendium, The OSGi Alliance Release 4, Version 4.3 January 2012, pages 423-431
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１によれば、階層化されたノードの所要のノードに対して、識別符号が異なる複数のプラグインを登録する場合には、該ノードの複数の子ノードにそれぞれプラグインを登録することにより、該子ノードに対応付けられたデータを用いて所要の処理を実行してノードを管理することが可能である。しかし、同じ識別符号を有する複数のプラグインを同一のノードに同時に登録する場合の規則については規定されていない。仮に同一のノードに複数のプラグインを登録したとすると、該ノードに対する処理が実行された場合には、複数の登録されたプラグインの処理が干渉する可能性があり、正しい処理結果を得られないおそれがある。また、所要のノードに既に登録済のプラグインが存在する場合、後からプラグインを登録して使用したいときには、既に登録済のプラグインを削除する手続きが必要となる。
【０００７】
本発明は、斯かる事情に鑑みてなされたものであり、プラグインの登録の自由度を高めるとともに、プラグインの処理の干渉を防止することができる情報処理装置、該情報処理装置を実現するためのコンピュータプログラム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の実施の形態に係る情報処理装置は、アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行する情報処理装置であって、任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定する判定部と、該判定部で複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録する登録部とを備える。
【０００９】
任意のノードに登録するプラグインモジュールに該プラグインモジュールを識別する識別符号及び優先度が予め割り当てられている。識別符号は、プラグインモジュールが登録されるノードの異同を示すことができる情報であり、例えば、識別符号が同一のプラグインモジュールが複数ある場合、それぞれのプラグインモジュールは、対応するノードのデータを異なった意味合いで使用することができる。優先度は、優先度を示すことができるものであれば、数値、符号、その他記号等であってもよい。判定部は、ノードに複数のプラグインモジュールを登録する場合、当該複数のプラグインモジュールそれぞれの識別符号が同一であるか否かを判定する。
【００１０】
登録部は、複数のプラグインモジュールの識別符号が同一であると判定した場合、当該複数のプラグインモジュールの優先度に応じて、当該複数のプラグインモジュールのうちの少なくとも１つを当該ノードに登録する。当該ノードに登録するプラグインモジュールを登録する場合、識別符号が同一であると判定された全てのプラグインモジュールを登録してもよく、優先度の高い順に所定数のプラグインモジュールを登録してもよい。同一のノードに複数のプラグインモジュールが登録された場合でも、登録されたプラグインモジュールには、割り当てられた優先度を有しているので、アプリケーションの開発者あるいはユーザなどが、優先度を用いてプラグインモジュールを選択して、例えば、実行条件あるいは実行順序などを決定することができるので、プラグインモジュールの処理の干渉を防止することができる。また、同一のノードに対する処理を異ならせることができる。また、登録するプラグインモジュールの数が１つに限定されないので、プラグインモジュールの登録の自由度を高めることができる。
【００１１】
また、前記登録部は、前記判定部で複数のプラグインモジュールの識別符号が同一であると判定した場合、前記優先度が最も高いプラグインモジュールを前記ノードに登録するようにしてもよい。
【００１２】
登録部は、複数のプラグインモジュールの識別符号が同一であると判定した場合、優先度が最も高いプラグインモジュールをノードに登録する。所要のノードに既にプラグインモジュールが登録されている場合に、別のプラグインモジュールを登録するときに、優先度の高低（大小）が比較されて、優先度の高いプラグインモジュールが自動的に登録されるので、既に登録済のプラグインを削除する手続きが不要となる。また、アプリケーションの開発者が、プラグインモジュールの削除（解除）及び登録する処理をアプリケーション内に実装する必要がなくなるので、処理の実装に係る労力の低減を図ることができるとともに、実装エラーが生じる可能性を低減することができる。
【００１３】
また、前記登録部で複数のプラグインモジュールを前記ノードに登録した場合、該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、前記複数のプラグインモジュールの優先度に応じて実行順序を決定する決定部を備えてもよい。
【００１４】
決定部は、複数のプラグインモジュールがノードに登録された場合、当該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、複数のプラグインモジュールの優先度に応じて実行順序を決定する。例えば、所要のノードに対して、複数の処理を所要の順序で実行させたい場合には、プラグインモジュールの実行順序に応じて、優先度を定めておくことにより、複数のプラグインモジュールを所要の順序で実行させることができる。
【００１５】
また、前記登録部で複数のプラグインモジュールを前記ノードに登録した場合、該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、いずれのプラグインモジュールを実行するかを決定する決定部を備えてもよい。
【００１６】
決定部は、複数のプラグインモジュールがノードに登録された場合、当該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、いずれのプラグインモジュールを実行するかを決定する。登録された複数のプラグインモジュールそれぞれには優先度が割り当てられているので、例えば、アプリケーション開発者は、優先度を参考にして、プラグインモジュールの実行時に、いずれのプラグインモジュールを実行するかを選択的に決定することができる。また、優先度に、処理に関する意味合いを持たせることで、アプリケーション開発者は、プラグインモジュールを選択的に使用することもできる。例えば、エラー等が発生した場合の処理を行うプラグインモジュールの優先度を高くすることにより、通常時（エラーが発生していないとき）には、優先度の低い（小さい）プラグインモジュールを実行させるようにし、エラーが発生した場合には、優先度の高い（大きい）プラグインモジュールを実行させることができる。
【００１７】
また、前記任意のノードに優先度を割り当てるノード優先度割当部と、前記ノードに前記複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールの優先度と前記ノードの優先度を比較する比較部とを備え、前記登録部は、前記複数のプラグインモジュールの優先度が前記ノードの優先度より高い場合、該複数のプラグインモジュールのうち、少なくとも１つを前記ノードに登録するようにしてもよい。
【００１８】
ノード優先度割当部は、任意のノードに優先度を割り当てる。ノードに割り当てられる優先度は、ノードに登録するプラグインモジュールに割り当てられる優先度と比較することができる。比較部は、ノードに同一の識別符号を有する複数のプラグインモジュールを登録する場合、複数のプラグインモジュールの優先度と当該ノードの優先度を比較する。登録部は、複数のプラグインモジュールの優先度がノードの優先度より高い場合、複数のプラグインモジュールのうち、少なくとも１つを当該ノードに登録する。
【００１９】
例えば、ノードの優先度が３であり、当該ノードにプラグインモジュールが登録されていない場合、登録するプラグインモジュールの優先度が、例えば、４であれば、プラグインモジュールの優先度がノードの優先度より高いので、当該プラグインモジュールを登録する。また、登録するプラグインモジュールの優先度が、例えば、２であれば、プラグインモジュールの優先度がノードの優先度より低いので、当該プラグインモジュールを登録しない。
【００２０】
また、ノードの優先度が３であり、当該ノードにプラグインモジュールが既に登録されており、新たに登録するプラグインモジュールの優先度が、例えば、４であれば、プラグインモジュールの優先度がノードの優先度より高いので、当該プラグインモジュールを登録する。また、登録するプラグインモジュールの優先度が、例えば、２であれば、プラグインモジュールの優先度がノードの優先度より低いので、当該プラグインモジュールを登録しない。ノードに優先度を割り当てることにより、ノードに登録済のプラグインモジュールが存在するか否かに関わらず、当該ノードに登録することができるプラグインモジュールを自動的に判定することができ、当該ノードに対応して所定の処理を実行させるか、あるいは実行させないようにするかの機能を確実に組み込むことができる。
【００２１】
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行させるためのコンピュータプログラムであって、コンピュータに、任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定するステップと、複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録するステップとを実行させる。
【００２２】
本発明の実施の形態に係る情報処理方法は、アプリケーションプログラムの情報処理機能が、複数のノード及びノード間のリンクで構成されたツリー構造により階層化してあり、前記ノードに対応付けられたデータ及び該ノードに登録されたプラグインモジュールを用いて所定の情報処理を実行する情報処理方法であって、任意のノードに複数のプラグインモジュールを登録する場合、該複数のプラグインモジュールを識別する識別符号が同一であるか否かを判定するステップと、複数のプラグインモジュールの識別符号が同一であると判定した場合、該複数のプラグインモジュールに予め割り当てられた優先度に応じて、該複数のプラグインモジュールのうちの少なくとも１つを前記ノードに登録するステップとを含む。
【００２３】
任意のノードに登録するプラグインモジュールに該プラグインモジュールを識別する識別符号及び優先度が予め割り当てられている。識別符号は、プラグインモジュールが登録されるノードの異同を示すことができる情報であり、例えば、識別符号が同一のプラグインモジュールが複数ある場合、それぞれのプラグインモジュールは、対応するノードのデータを異なった意味合いで使用することができる。優先度は、優先度を示すことができるものであれば、数値、符号、その他記号等であってもよい。判定するステップは、ノードに複数のプラグインモジュールを登録する場合、当該複数のプラグインモジュールそれぞれの識別符号が同一であるか否かを判定する。
【００２４】
登録するステップは、複数のプラグインモジュールの識別符号が同一であると判定した場合、当該複数のプラグインモジュールの優先度に応じて、当該複数のプラグインモジュールのうちの少なくとも１つを当該ノードに登録する。当該ノードに登録するプラグインモジュールを登録する場合、識別符号が同一であると判定された全てのプラグインモジュールを登録してもよく、優先度の高い順に所定数のプラグインモジュールを登録してもよい。同一のノードに複数のプラグインモジュールが登録された場合でも、登録されたプラグインモジュールには、割り当てられた優先度を有しているので、アプリケーションの開発者あるいはユーザなどが、優先度を用いてプラグインモジュールを選択して、例えば、実行条件あるいは実行順序などを決定することができるので、プラグインの処理の干渉を防止することができる。また、同一のノードに対する処理を異ならせることができる。また、登録するプラグインの数が１つに限定されないので、プラグインの登録の自由度を高めることができる。
【発明の効果】
【００２５】
本発明によれば、プラグインの登録の自由度を高めるとともに、プラグインの処理の干渉を防止することができる。
【図面の簡単な説明】
【００２６】
【図１】本実施の形態のホームゲートウェイ装置を用いたネットワークの構成の一例を示す模式図である。
【図２】本実施の形態のホームゲートウェイ装置を用いたサービスの一例を示す模式図である。
【図３】本実施の形態のホームゲートウェイ装置の構成の一例を示すブロック図である。
【図４】ＤＭＴの構成の一例を示す説明図である。
【図５】ノードに対応付けられたプラグインの一例を示す説明図である。
【図６】従来のプラグインの登録の一例を示す説明図である。
【図７】本実施の形態のＤＭＴサービス部によるプラグインの登録方法の第１例を示す説明図である。
【図８】本実施の形態のＤＭＴサービス部によるプラグインの登録方法の第２例を示す説明図である。
【図９】本実施の形態のＤＭＴサービス部によるプラグインの登録方法の第３例を示す説明図である。
【図１０】本実施の形態のＤＭＴサービス部によるノードに登録した複数のプラグインの実行順序の一例を示す説明図である。
【図１１】プラグインの登録を記述する文の一例を示す説明図である。
【図１２】本実施の形態のホームゲートウェイ装置によるプラグインの登録処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、本発明に係る情報処理装置の実施の形態を示す図面に基づいて説明する。図１は本実施の形態のホームゲートウェイ装置１００を用いたネットワークの構成の一例を示す模式図であり、図２は本実施の形態のホームゲートウェイ装置１００を用いたサービスの一例を示す模式図であり、図３は本実施の形態のホームゲートウェイ装置１００の構成の一例を示すブロック図である。本実施の形態では、情報処理装置の一例として、ホームゲートウェイ装置１００を用いて説明するが、情報処理装置は、ホームゲートウェイ装置１００に限定されるものではなく、ルータ、車載機器、宅内機器、携帯電話、タブレット端末装置、パーソナルコンピュータ、ネットワーク機器などの様々な情報処理装置を含むことができる。
【００２８】
図１に示すように、宅内にホームゲートウェイ装置１００が設置され、ホームゲートウェイ装置１００は、宅内に設置された家電機器２０１を制御する家電管理アプリ５２、センサ機器２０２を制御するセキュリティアプリ５３などを備える。また、ホームゲートウェイ装置１００は、インターネット１に接続してある。インターネット１には、サービス事業者のサーバ３０１、３０２、３０３などを接続してある。また、インターネット１には、所要の通信回線を介して携帯電話又はタブレット端末などの端末装置４０１が接続される。
【００２９】
ホームゲートウェイ装置１００は、宅内の電気機器の一例である家電機器２０１、センサ機器２０２を用いたサービスを実現するための基盤となる装置である。そして、複数の異なるサービス事業者が提供するサービスを同一のホームゲートウェイ装置１００上で動作させること、あるいはサービス事業者が提供するサービスをユーザ毎にカスタマイズすることが求められる。
【００３０】
サービス事業者は、ホームゲートウェイ装置１００の機能を実現するためのソフトウェアモジュール（ソフトウェア部品、アプリケーションプログラム）をバンドルとして提供する。すなわち、サービス事業者は、例えば、サーバ３０１を用いて、バンドルのホームゲートウェイ装置１００へのダウンロード、カスタマイズ、遠隔操作、あるいはバンドルの追加、削除又は更新をホームゲートウェイ装置１００の動作を停止させることなく行うことができる。同様に他のサービス事業者は、サーバ３０２、３０３などを用いて同様のサービスを提供する。図１の例では、サービス事業者は、ホームゲートウェイ装置１００上の家電管理アプリ５２、セキュリティアプリ５３（バンドルとも称する）を用いたサービスを提供する。
【００３１】
図２に示すように、ホームゲートウェイ装置１００は、バンドルが実行される環境としてのＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ）フレームワーク４０が搭載されている（ＯＳＧｉは登録商標）。ＯＳＧｉフレームワーク４０上には、例えば、ＯＳＧｉ仕様で規定された基本サービスバンドルとしてのＷｅｂ  ＡＰＩ５１ａ、アプリケーションバンドルとしてのセキュリティアプリ５３を例示している。ホームゲートウェイ装置１００は、宅内の家電機器２０１の一例である、エアコン２０１ａ、照明器具２０１ｂを制御するとともに、センサ機器２０２の一例である、温度センサ２０２ａ、照度センサ２０２ｂ、人感センサ２０２ｃなどを制御する。
【００３２】
ユーザは、携帯する端末装置４０１を操作して、宅内の温度変化の様子を表示画面に表示させる。宅内の温度が低い場合には、ユーザが端末装置４０１を操作することにより、宅内のエアコン２０１ａのスイッチをオンさせることができ、帰宅時には室内の温度が快適な温度になっている。なお、ホームゲートウェイ装置１００により提供されるサービスは、図２の例に限定されるものではない。
【００３３】
図３に示すように、ホームゲートウェイ装置１００は、装置自体のハードウェア１０、ＯＳ（オペレーティングシステムとも称する）２０、Ｊａｖａバーチャルマシン３０（Ｊａｖａは登録商標）、ＯＳＧｉフレームワーク４０、並びにバンドルとしての基本サービスバンドル５１、家電管理アプリ５２、セキュリティアプリ５３、プラグイン５４（プラグインモジュールとも称する）及びアプリケーション（アプリ）５５などで構成されている。なお、図３の例では、簡便のため、１個のアプリケーション（アプリ）５５だけを例示しているが、アプリケーションは複数あってもよい。
【００３４】
ＯＳ２０は、オペレーティングシステムであり、例えば、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ、ＭａｃＯＳ（いずれも登録商標）などであり、ハードウェア１０に応じて適宜のものを用いることができる。
【００３５】
Ｊａｖａバーチャルマシン３０は、ＯＳＧｉフレームワーク４０が、機器のプラットフォームであるハードウェア及びＯＳが異なっても、プラットフォームに依存することなく実行させることができるＪａｖａ実行環境を提供する。
【００３６】
ＯＳＧｉフレームワーク４０は、バンドルを実行するための実行環境を提供する。ダウンロードされたバンドルは、ＯＳＧｉフレームワーク４０上で起動・実行される。ダウンロードされたバンドルは、種々の機能を有するが、本実施の形態では、その一例として、ＤＭＴサービス部４１、ＤＭＴ４２を例示している。
【００３７】
ＤＭＴ（Ｄｅｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ  Ｔｒｅｅ）４２は、複数のノード及びノード間のリンクで構成されたツリー構造をなすものであり、アプリケーションの情報処理機能をツリー構造により階層化したものである。すなわち、ＤＭＴ４２は、ツリー構造の階層化されたノード及び該ノードに対応付けられたプラグイン（プラグインモジュール）により実現されるＯＳＧｉ環境の論理的な構成を示すものである。
【００３８】
図４はＤＭＴ４２の構成の一例を示す説明図である。図４の例では、符号「. 」で示すルートノードの下位にノードＡ、Ｂ、Ｃ、Ｘ、Ｙが階層化されている。ノード. の子ノードは、ノードＡであり、ノードＡの子ノードは、ノードＸ、Ｃ、Ｂである。他のノードも、図４に例示するとおり同様である。
【００３９】
ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｒｅｓ）は、階層化されたノードを特定するものであり、該当するノードまでのパス（ルートノードからのリンク）を特定することにより、ノードを特定する。例えば、ノードＢのＵＲＩは、. ／Ａ／Ｂとなる。
【００４０】
また、ノードＢには、プラグインＰ１が対応付けられてあり、プラグインＰ１の子ノードは、ノードｂａである。同様に、ノードＣには、プラグインＰ２が対応付けられてあり、プラグインＰ２の子ノードは、ノードｃａである。また、ノードＹには、プラグインＰ３が対応付けられてあり、プラグインＰ３の子ノードは、ノードｙａ、ｙｂである。
【００４１】
ＤＭＴ４２の任意のノードには、セッションオブジェクトにより設定されるいくつかの属性を有する。例えば、ノードには、データが対応付けられており、ノードに対するアクセスがあると、ＤＭＴオペレーションが開始され、当該ノードに対応付けられたデータを用いて、プラグインが所定のデータ処理（読み書きなど）、命令の実行などが行われる。
【００４２】
ＤＭＴ（Ｄｅｖｉｃｅ  Ｍａｎａｇｅｍｅｎｔ  Ｔｒｅｅ）サービス部４１は、ＤＭＴ４２を用いて所定の機能を実施する。例えば、ＤＭＴサービス部４１は、ＤＭＴオペレーションをデータプラグイン（プラグイン５４）へ送出するとともに、実行（ｅｘｅｃｕｔｅ）オペレーションをＥｘｅｃプラグイン（プラグイン５４）へ送出する。すなわち、ＤＭＴサービス部４１は、ＤＭＴ４２の任意のノードに対してデータの読み書き、命令の実行を行うことができる。
【００４３】
プラグイン５４は、データプラグイン及びＥｘｅｃプラグインを含む。データプラグインは、例えば、任意のノードのデータに対して、読み書きのセッションを生成する。また、Ｅｘｅｃプラグインは、命令の実行を行う。
【００４４】
図５はノードに対応付けられたプラグインの一例を示す説明図である。図５の例では、ルートノードの下位に、Ｇａｔｅｗａｙ、Ｉｎｔｅｒｆａｃｅ、ＬＡＮ、ＶＰＮ、ＷＡＮなどのノードが階層化されている。ノードＷＡＮには、プラグイン「ＷＡＮ  Ｉｆ. 」が対応付けられ（登録され）ている。プラグイン「ＷＡＮ  Ｉｆ. 」は、例えば、ＷＡＮハンドラーと称するモジュール（バンドル又はバンドル内のモジュール）により、ノードＷＡＮに対してアクセスがあった場合に、実行される。
【００４５】
アプリケーション（アプリ）５５は、プラグインを識別する識別符号及びプラグインの優先度を割り当てる機能を有する。また、ＤＭＴサービス部４１は、プラグインをノードに登録する登録部としての機能、複数のプラグインの識別符号が同一であるか否かを判定する判定部としての機能、ＤＭＴ４２の任意のノードに優先度を割り当てるノード優先度割当部としての機能、優先度を比較する比較部としての機能、プラグインの実行を決定する決定部としての機能などを有する。
【００４６】
以下、本実施の形態のホームゲートウェイ装置１００によるプラグインの登録方法について説明する。なお、プラグインの登録は、ＤＭＴサービス部４１により行われる。まず、本実施の形態によるオプラグインの登録方法の説明の前に、参考として従来のプラグインの登録について説明する。
【００４７】
図６は従来のプラグインの登録の一例を示す説明図である。図６の例も、図５と同様に、ルートノードの下位に、Ｇａｔｅｗａｙ、Ｉｎｔｅｒｆａｃｅ、ＬＡＮ、ＶＰＮ、ＷＡＮなどのノードが階層化されている。ノードＷＡＮのＵＲＩは、. ／Ｇａｔｅｗａｙ／Ｉｎｔｅｒｆａｃｅ／ＷＡＮであり、登録済のプラグインは、「ＷＡＮ  Ｉｆ. 」であり、プラグイン「ＷＡＮ  Ｉｆ. 」の番号は「１０」であるとする。この場合、ノードＷＡＮに、同じ番号「１０」を有するプラグイン「ＷＡＮ  Ｉｆ. 」を登録すると、ノードＷＡＮに対する処理が実行された場合には、登録された複数のプラグインの処理が干渉する可能性があり、正しい処理結果を得られないおそれがある。したがって、ノードＷＡＮに既に登録済のプラグインが存在する場合、後からプラグインを登録して使用するときには、既に登録済のプラグインを削除する手続きが必要となる。本実施の形態では、このような問題を解決することができる。次に、本実施の形態によるプラグインの登録方法について説明する。
【００４８】
図７は本実施の形態のＤＭＴサービス部４１によるプラグインの登録方法の第１例を示す説明図である。プラグインを登録する側であるアプリケーション５５は、任意のノードに登録するプラグイン（プラグインモジュール）に該プラグインを識別する識別符号及び優先度を割り当てる。
【００４９】
識別符号は、プラグインの登録先を示すものであり、プラグインが登録されるノードの異同を示すことができる情報である。同一のノードに、識別符号が同一のプラグインが複数登録される場合には、それぞれのプラグインは、対応するノードのデータを異なった意味合いで使用することができる。また、優先度は、優先度を示すことができるものであれば、数値、符号、その他記号等であってもよい。
【００５０】
図７の例では、ノードＷＡＮに既に登録されたプラグイン「ＷＡＮ  Ｉｆ．」の識別符号は「３３」であり、優先度は「２」である。また、ノードＷＡＮに新たに登録しようとするプラグイン「ＷＡＮ  Ｉｆ．」の識別符号は「３３」であり、優先度は「３」である。
【００５１】
ＤＭＴサービス部４１は、ノードに複数のプラグインを登録する場合、当該複数のプラグインそれぞれの識別符号が同一であるか否かを判定する。そして、ＤＭＴサービス部４１は、複数のプラグインの識別符号が同一であると判定した場合、当該複数のプラグインの優先度に応じて、当該複数のプラグインのうちの少なくとも１つを当該ノードに登録する。
【００５２】
図７の例では、登録しようとするプラグインの優先度「３」が、既に登録済のプラグインの優先度「２」より高いので、新たに登録しようとするプラグインは登録される。なお、ノードにプラグインを登録する場合、識別符号が同一であると判定された全てのプラグインを登録してもよく、優先度の高い順に所定数（例えば、１以上の整数）のプラグインを登録してもよい。また、予め優先度の閾値を定めておき、閾値より大きい優先度のプラグインを全て登録するようにしてもよい。
【００５３】
同一のノードに複数のプラグインが登録された場合でも、登録されたプラグインには、割り当てられた優先度を有しているので、アプリケーションの開発者あるいはユーザなどが、優先度を用いてプラグインを選択することができる。例えば、実行条件あるいは実行順序などを決定することができるので、プラグインの処理の干渉を防止することができる。また、同一のノードに対する処理を異ならせることができる。また、登録するプラグインの数が１つに限定されないので、プラグインの登録の自由度を高めることができる。
【００５４】
また、ＤＭＴサービス部４１は、複数のプラグインの識別符号が同一であると判定した場合、優先度が最も高いプラグインをノードに登録することもできる。図７の例では、優先度が「２」、「３」のプラグインのうち、優先度が最も高い「３」のプラグインだけをノードＷＡＮに登録する。
【００５５】
所要のノードに既にプラグインが登録されている場合に、別のプラグインを登録するときに、プラグインの優先度の高低（大小）が比較されて、優先度の高いプラグインが自動的に登録されるので、既に登録済のプラグンを削除する手続きが不要となる。また、アプリケーションの開発者が、プラグインの削除（解除）及び登録する処理をアプリケーション内に実装する必要がなくなるので、処理の実装に係る労力の低減を図ることができるとともに、実装エラーが生じる可能性を低減することができる。
【００５６】
図８は本実施の形態のＤＭＴサービス部４１によるプラグインの登録方法の第２例を示す説明図である。ＤＭＴサービス部４１は、任意のノードに優先度を割り当てる。ノードに割り当てられる優先度は、ノードに登録するプラグインに割り当てられる優先度と比較することができる。
【００５７】
ＤＭＴサービス部４１は、ノードに同一の識別符号を有する１又は複数のプラグインを登録する場合、プラグインモジュールの優先度と当該ノードの優先度を比較する。そして、ＤＭＴサービス部４１は、１又は複数のプラグインの優先度がノードの優先度より高い場合、１又は複数のプラグインのうち、少なくとも１つを当該ノードに登録する。
【００５８】
図８の例では、ノードＷＡＮの優先度が「３」であり、ノードＷＡＮにプラグイン「ＷＡＮ  Ｉｆ．」が登録されている。登録しようとするプラグインの優先度が「４」であれば、プラグインの優先度「４」がノードの優先度「３」より高いので、当該プラグインを登録する。仮に、登録しようとするプラグインの優先度が、例えば、２であれば、プラグインの優先度「２」がノードの優先度「３」より低いので、当該プラグインは登録されない。図８の例では、ノードＷＡＮに、すでにプラグイン「ＷＡＮ  Ｉｆ．」が登録済であるが、ノードＷＡＮにプラグインが登録されていない場合も同様である。
【００５９】
なお、ノードにプラグインを登録する場合、プラグインの優先度がノードの優先度より高いと判定された全てのプラグインを登録してもよく、優先度の高い順に所定数（例えば、１以上の整数）のプラグインを登録してもよい。
【００６０】
ノードに優先度を割り当てることにより、ノードに登録済のプラグインが存在するか否かに関わらず、当該ノードに登録することができるプラグインを自動的に判定することができ、当該ノードに対応して所定の処理を実行させるか、あるいは実行させないようにするかの機能を確実に組み込むことができる。
【００６１】
図９は本実施の形態のＤＭＴサービス部４１によるプラグインの登録方法の第３例を示す説明図である。第３例は、第１例と第２例とを組み合わせたものである。図９に示すように、ノードＷＡＮには、識別符号が「３３」、優先度が「５」のプラグイン「ＷＡＮ  Ｉｆ．」が既に登録されている。また、ノードＷＡＮの優先度を「３」とする。
【００６２】
新たに、ノードＷＡＮに登録しようとするプラグイン「ＷＡＮ  Ｉｆ．」の識別符号は「３３」であり、優先度は「６」であるとする。この場合、登録しようとするプラグインの優先度「６」は、ノードの優先度「３」より高く、かつ登録済のプラグインの優先度「５」より高いので、新たに登録しようとするプラグインは登録される。
【００６３】
なお、例えば、図９の例で、新たに、ノードＷＡＮに登録しようとするプラグイン「ＷＡＮ  Ｉｆ．」の優先度が「４」であるとすると、登録しようとするプラグインの優先度「４」は、ノードの優先度「３」より高いものの、登録済のプラグインの優先度「５」より低いので、新たに登録しようとするプラグインは登録されない。
【００６４】
図１０は本実施の形態のＤＭＴサービス部４１によるノードに登録した複数のプラグインの実行順序の一例を示す説明図である。図１０に示すように、ノードＷＡＮには、２つのプラグイン「ＷＡＮ  Ｉｆ．」が登録されており、識別符号は、いずれも「３３」であり、優先度は、それぞれ「５」、「３」であるとする。
【００６５】
ＤＭＴサービス部４１は、複数のプラグインがノードに登録された場合、当該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、複数のプラグインの優先度に応じて実行順序を決定する。
【００６６】
図１０の例では、ノードＷＡＮに対して、所定の処理を実行するためのアクセスがあった場合、まず、優先度が「５」のプラグイン「ＷＡＮ  Ｉｆ．」が実行され、次にノードＷＡＮに対してアクセスがあった場合、優先度が「３」のプラグイン「ＷＡＮ  Ｉｆ．」が実行される。このように、例えば、所要のノードに対して、複数の処理を所要の順序で実行させたい場合には、プラグインの実行順序に応じて、優先度を定めておくことにより、複数のプラグインを所要の順序で実行させることができる。
【００６７】
なお、図１０の例では、プラグインを登録する際の優先度を用いて、実行順序を決定する構成であったが、これに限定されるものではない。例えば、登録する際に用いる優先度に加えて、別途実行順序を決定付ける別個の優先度を用いる構成であってもよい。
【００６８】
また、ＤＭＴサービス部４１は、複数のプラグインがノードに登録された場合、当該ノードに対して所定の情報処理を実行するためのアクセスを受け付けたときに、いずれのプラグインを実行するかを決定することもできる。
【００６９】
すなわち、登録された複数のプラグインそれぞれには優先度が割り当てられているので、例えば、アプリケーション開発者は、優先度を参考にして、プラグインの実行時に、いずれのプラグインを実行するかを選択的に決定することができる。また、優先度に、処理に関する意味合いを持たせることで、アプリケーション開発者は、プラグインを選択的に使用することもできる。例えば、エラー等が発生した場合の処理を行うプラグインの優先度を高くすることにより、通常時（エラーが発生していないとき）には、優先度の低い（小さい）プラグインを実行させるようにし、エラーが発生した場合には、優先度の高い（大きい）プラグインを実行させることができる。
【００７０】
また、例えば、アプリＡ（アプリケーションＡ）は、ホームゲートウェイ装置１００のリブート（Ｒｅｂｏｏｔ）機能を制御するプラグイン「Ｒｅｂｏｏｔ  Ｉｆ．」を登録してあり、当該プラグイン「Ｒｅｂｏｏｔ  Ｉｆ．」の優先度を「４」とする。一方で別のアプリＢ（アプリケーションＢ）は、所定の処理中（例えば、通信処理中など）にホームゲートウェイ装置１００がリブートした場合、不具合が生じるとする。この場合、アプリＢでは、アプリＡのプラグイン「Ｒｅｂｏｏｔ  Ｉｆ．」の優先度よりも高い優先度、例えば、優先度が「６」のプラグイン「Ｒｅｂｏｏｔ  Ｉｆ．」を登録する。これにより、アプリＢの実行中に不要なリブートが発生することを防止することができる。このような仕組みは、アプリケーションの開発者が注意してプラグインの登録及び解除処理を実装することができるが、リブートを防止するための処理が実装依存となり、アプリケーションの開発者のエラーにより問題が発生するおそれもある。そこで、上述のような、優先度によりプラグインの実行を決定することにより、実装依存となる問題を解決することができる。
【００７１】
図１１はプラグインの登録を記述する文の一例を示す説明図である。第３文で指定するＰＩＤ（Ｐｅｒｓｉｓｔｅｎｔ  ＩＤ）は、登録するプラグインそのものの識別子を示す。第４文では、プラグインの識別符号として登録先のノード情報を指定する。第５文では、登録するプラグインの優先度「５」を指定する。第６文では、プラグインの登録をＤＭＴサービス部４１へ依頼する。第６文が実行されると、ＤＭＴサービス部４１は、登録しようとするプラグインに設定された識別符号及び優先度を確認し、「複数プラグインの識別符号が同一であるかの判定」、「プラグインの優先度比較」、「プラグインを登録するかの決定」、「登録が決定したプラグインの登録」などの処理を行う。つまり、アプリケーション５５は、プラグインの登録命令を出し、ＤＭＴサービス部４１は、プラグインの登録処理を行う。
【００７２】
次に、本実施の形態のホームゲートウェイ装置１００の動作について説明する。図１２は本実施の形態のホームゲートウェイ装置１００によるプラグインの登録処理の手順の一例を示すフローチャートである。ＤＭＴサービス部４１は、プラグインの登録要求の有無を判定し（Ｓ１１）、登録要求がない場合（Ｓ１１でＮＯ）、ステップＳ１１の処理を続ける。なお、プラグインの登録要求は、例えば、バンドル開発用の開発環境内のモジュール等から行われる。
【００７３】
登録要求があった場合（Ｓ１１でＹＥＳ）、ＤＭＴサービス部４１は、登録するプラグインの優先度が、ノードの優先度より高いか否かを判定する（Ｓ１２）。登録するプラグインの優先度が、ノードの優先度より高い場合（Ｓ１２でＹＥＳ）、ＤＭＴサービス部４１は、登録するノードに、既にプラグインが登録されているか否かを判定する（Ｓ１３）。
【００７４】
既にプラグインが登録されている場合（Ｓ１３でＹＥＳ）、ＤＭＴサービス部４１は、登録するプラグインの識別符号が既に登録されているプラグインの識別符号と同一であるか否かを判定する（Ｓ１４）。
【００７５】
識別符号が同一である場合（Ｓ１４でＹＥＳ）、ＤＭＴサービス部４１は、登録するプラグインの優先度が、既に登録されているプラグインの優先度より高いか否かを判定する（Ｓ１５）。
【００７６】
登録するプラグインの優先度が、既に登録されているプラグインの優先度より高い場合（Ｓ１５でＹＥＳ）、ＤＭＴサービス部４１は、プラグインを登録し（Ｓ１６）、処理を終了する。
【００７７】
登録するプラグインの優先度が、既に登録されているプラグインの優先度より高くない場合（Ｓ１５でＮＯ）、あるいは、登録するプラグインの優先度が、ノードの優先度より高くない場合（Ｓ１２でＮＯ）、ＤＭＴサービス部４１は、プラグインを登録せずに（Ｓ１７）、処理を終了する。
【００７８】
また、既にプラグインが登録されていない場合（Ｓ１３でＮＯ）、あるいは、識別符号が同一でない場合（Ｓ１４でＮＯ）、ＤＭＴサービス部４１は、ステップＳ１６の処理を行う。
【００７９】
なお、図１２の例では、ステップＳ１２、Ｓ１５の両方の判定を行う構成であったが、ステップＳ１２、Ｓ１５のいずれか一方のみの判定を行うようにしてもよい。
【００８０】
本実施の形態の情報処理装置は、ＣＰＵ、ＲＡＭなどを備えた汎用コンピュータを用いて実現することもできる。すなわち、図１２に示すような、各処理手順を定めたコンピュータプログラムをＣＤ、ＤＶＤ、ＵＳＢメモリ等のコンピュータプログラム記録媒体に記録しておき、当該コンピュータプログラムをコンピュータに備えられたＲＡＭにロードし、コンピュータプログラムをＣＰＵで実行することにより、コンピュータ上で情報処理装置を実現することができる。
【００８１】
本実施の形態では、ＯＳＧｉフレームワークを用いる情報処理装置について説明したが、ＯＳＧｉフレームワークに限定されるものではなく、例えば、アプリケーションの情報処理機能をツリー構造により階層化してあり、ノードに対応付けられたデータ及びノードに登録されたプラグインを用いて所定の情報処理を実行するものであれば、本実施の形態を適用することができる。
【００８２】
開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８３】
１００  ホームゲートウェイ装置
１０  ハードウェア
２０  ＯＳ
３０  Ｊａｖａバーチャルマシン
４０  ＯＳＧｉフレームワーク
４１  ＤＭＴサービス部
４２  ＤＭＴ
５５  アプリケーション
【図１】
2015014896.tif 000003
【図２】
2015014896.tif 000004
【図３】
2015014896.tif 000005
【図４】
2015014896.tif 000006
【図５】
2015014896.tif 000007
【図６】
2015014896.tif 000008
【図７】
2015014896.tif 000009
【図８】
2015014896.tif 000010
【図９】
2015014896.tif 000011
【図１０】
2015014896.tif 000012
【図１１】
2015014896.tif 000013
【図１２】
2015014896.tif 000014