(57)【要約】【課題】複数のＯＳＧｉフレームワークを実行する装置において、ＯＳＧｉバンドルをインストールする作業に係る負荷を軽減する。【解決手段】本発明に係るＯＳＧｉ実行装置は、第１および第２ＯＳＧｉフレームワーク部と、各ＯＳＧｉフレームワーク部上にインストールするべきＯＳＧｉバンドルを定義するポリシーテーブルと、ポリシーテーブルの定義にしたがってＯＳＧｉバンドルをインストールするインストール部と、を備える。【選択図】図３
2014194707.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳＧｉフレームワークを実行する装置であって、
ＯＳＧｉフレームワークを実行する第１および第２ＯＳＧｉフレームワーク部と、
前記第１および第２ＯＳＧｉフレームワーク部上にインストールするＯＳＧｉバンドルを定義するポリシーテーブルと、
前記ポリシーテーブルの定義にしたがって前記第１および第２ＯＳＧＩフレームワーク部上に前記ＯＳＧｉバンドルをインストールするインストール部と、
を備え、
前記ポリシーテーブルは、前記ＯＳＧｉバンドル内に埋め込まれた当該ＯＳＧｉバンドルの識別情報と、前記ＯＳＧｉバンドルを前記第１および第２ＯＳＧｉフレームワーク部のいずれに対してインストールすべきかとの間の対応関係を定義しており、
前記インストール部は、前記ＯＳＧｉバンドルをインストールする前に、前記ＯＳＧｉバンドル内に埋め込まれた前記識別情報を前記ＯＳＧｉバンドルから読み取り、その識別情報と前記ポリシーテーブルの定義にしたがって、前記ＯＳＧｉバンドルをインストールする
ことを特徴とするＯＳＧｉ実行装置。
【請求項２】
前記ＯＳＧｉバンドル内には、その製作者の電子署名が埋め込まれており、
前記ポリシーテーブルは、前記ＯＳＧｉバンドル内に埋め込まれたその製作者の識別情報を当該ＯＳＧｉバンドルの識別情報として記述しており、
前記インストール部は、前記ＯＳＧｉバンドルをインストールする前に、前記ＯＳＧｉバンドル内に埋め込まれた前記電子署名を認証することにより、前記ＯＳＧｉバンドルの製作者を特定し、その製作者と前記ポリシーテーブルの定義にしたがって、前記ＯＳＧｉバンドルをインストールする
ことを特徴とする請求項１記載のＯＳＧｉ実行装置。
【請求項３】
前記インストール部は、
ＯＳＧｉフレームワーク上にＯＳＧｉバンドルをインストールするためにＯＳＧｉ規格上で定義されたインターフェースを備えており、
前記インターフェースを介してＯＳＧｉバンドルをインストールするよう要求する、ＯＳＧｉ規格に準拠したリクエストを受け取ると、前記識別情報と前記ポリシーテーブルの定義にしたがって、前記ＯＳＧｉバンドルをインストールする
ことを特徴とする請求項２記載のＯＳＧｉ実行装置。
【請求項４】
前記インストール部は、前記第１または第２ＯＳＧｉフレームワーク部上にインストールされたＯＳＧｉバンドルとして構成されている
ことを特徴とする請求項３記載のＯＳＧｉ実行装置。
【請求項５】
前記インストール部は、前記第１および第２ＯＳＧｉフレームワーク部とは別に常時起動している常駐プログラムとして構成されている
ことを特徴とする請求項３記載のＯＳＧｉ実行装置。
【請求項６】
前記ＯＳＧｉバンドルは、その製作者の識別情報を記述したデータフィールドを有し、
前記ポリシーテーブルは、前記データフィールドが記述している製作者の識別情報を当該ＯＳＧｉバンドルの識別情報として記述しており、
前記インストール部は、前記ＯＳＧｉバンドルをインストールする前に、前記ＯＳＧｉバンドルが有する前記データフィールドを読み取ることにより、前記ＯＳＧｉバンドルの製作者を特定し、その製作者と前記ポリシーテーブルの定義にしたがって、前記ＯＳＧｉバンドルをインストールする
ことを特徴とする請求項１記載のＯＳＧｉ実行装置。
【請求項７】
前記第１ＯＳＧｉフレームワーク部は、前記第１ＯＳＧｉフレームワーク部上で実行しているＯＳＧｉバンドルに対するリクエストを受け付けてその結果を返信する連携インターフェースを備えており、
前記第２ＯＳＧｉフレームワーク部は、前記連携インターフェースを介して前記第１ＯＳＧｉフレームワーク上で実行されているＯＳＧｉバンドルに対するリクエストを発行しその結果を受け取ることにより、前記第２ＯＳＧｉフレームワーク上にインストールされていないＯＳＧｉバンドルの機能を実行することができるように構成されている
ことを特徴とする請求項１記載のＯＳＧｉ実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＳＧｉフレームワークを実行する装置に関する。
【背景技術】
【０００２】
センサや家電などのデバイスの情報を活用したサービスを提供するＭ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）分野における国際標準化が進んでいる。例えばＥＵの標準化団体ＥＴＳＩは、Ｍ２Ｍのアーキテクチャ規格を定めている。同規格において規定されているように、Ｍ２Ｍにおいては、デバイスとサーバを仲介するゲートウェイ装置が重要な役割を果たしている。
【０００３】
ゲートウェイ装置においては、ＯＳＧｉ  Ａｌｌｉａｎｃｅが標準化を進めているＯＳＧｉというＪａｖａ（登録商標）ベースのアプリケーション実行環境が用いられることが多い。ＯＳＧｉとは、ＯＳＧｉアライアンスが策定した、Ｊａｖａモジュールの規格である（非特許文献１）。ＯＳＧｉフレームワーク上においては、ＪａｖａモジュールはＯＳＧｉバンドル（以下単にバンドルとも呼ぶ）と呼ばれる形式でパッケージングされ、ＯＳＧｉフレームワーク上にインストールされる。バンドルはＯＳＧｉフレームワーク上で連携しながら動作し、ＯＳＧｉフレームワークはバンドルのインストール／アンインストール／起動／停止を実施する。これらの操作は、操作対象となっているバンドル以外のバンドルを止めることなく実施することができる。ＯＳＧｉフレームワーク上で動作するバンドルは、「サービス」という形式で他のバンドルに対してその機能を公開し、これによりバンドル間で機能を連携させることができる。
【０００４】
ＯＳＧｉフレームワークにおいては、単一のＪａｖａＶＭプロセス配下で全てのＯＳＧｉバンドルが動作するため、あるバンドルに不具合があるとその不具合が他の全てに波及する恐れがある。このような課題を回避するため、特願２０１２−０７３２３１号においては、複数のＯＳＧｉフレームワークを起動し、いずれかのＯＳＧｉフレームワーク上のＯＳＧｉバンドルに不具合があっても他のＯＳＧｉフレームワーク上のバンドルに不具合が波及しないようにしている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＯＳＧｉ  Ａｌｌｉａｎｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ、ＵＲＬ：http://www.osgi.org/Specifications/HomePage（２０１３年３月２１日取得）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特願２０１２−０７３２３１号が記載しているように、複数のＯＳＧｉフレームワークを起動する場合、ＯＳＧｉ実行装置の信頼性を高めることができる一方で、以下のような新たな課題が生じる。
【０００７】
すなわち、各ＯＳＧｉバンドルをいずれのＯＳＧｉフレームワーク上にインストールすべきかについて、システム管理者が人為的に判断する必要があるため、特にＯＳＧｉバンドルをインストール／アンインストールする回数が多い場合において、システム運用が煩雑になり易い。
【０００８】
本発明は、上記のような課題に鑑みてなされたものであり、複数のＯＳＧｉフレームワークを実行する装置において、ＯＳＧｉバンドルをインストールする作業に係る負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るＯＳＧｉ実行装置は、第１および第２ＯＳＧｉフレームワーク部と、各ＯＳＧｉフレームワーク部上にインストールするべきＯＳＧｉバンドルを定義するポリシーテーブルと、ポリシーテーブルの定義にしたがってＯＳＧｉバンドルをインストールするインストール部と、を備える。
【発明の効果】
【００１０】
本発明に係るＯＳＧｉ実行装置によれば、ポリシーテーブルの定義にしたがって、ＯＳＧｉバンドルをインストールする作業を自動化することができる。これにより、ＯＳＧｉバンドルをインストールする作業負荷を軽減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係るＯＳＧｉシステム１０００の構成図である。
【図２】ゲートウェイ装置１００上にインストールされているソフトウェア構成を示す図である。
【図３】ゲートウェイ装置１００上で動作するプロセスの連携関係を示す図である。
【図４】ポリシーテーブル１４３の構成とデータ例を示す図である。
【図５】一覧管理テーブル１４４の構成とデータ例を示す図である。
【図６】第１ＯＳＧｉフレームワーク１３１に対してＯＳＧｉバンドルをインストールする手順を説明するシーケンス図である。
【図７】インストール部１４０から第１ＯＳＧｉフレームワーク１３１に対して指示を発行する手順を説明するシーケンス図である。
【図８】ＯＳＧｉフレームワーク間でＯＳＧｉバンドルの機能を連携させる処理を説明するシーケンス図である。
【発明の実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施形態１に係るＯＳＧｉシステム１０００の構成図である。ＯＳＧｉシステム１０００は、ゲートウェイ装置（ＯＳＧｉ実行装置）１００、バンドル配信サーバ２１０、宅内デバイス２２０を有する。ゲートウェイ装置１００とバンドル配信サーバ２１０はインターネット２３０を介して接続され、ゲートウェイ装置１００と宅内デバイス２２０はホームネットワーク２４０を介して接続されている。
【００１３】
ゲートウェイ装置１００は、宅内デバイス２２０とインターネット２３０の間の通信を仲介する装置である。ゲートウェイ装置１００は、ＯＳＧｉフレームワークを実行する装置として構成されており、バンドル配信サーバ２１０が配信するＯＳＧｉバンドルをインストールすることにより、様々な機能を提供することができる。
【００１４】
バンドル配信サーバ２１０が配信するＯＳＧｉバンドルが提供する機能の例としては、例えば宅内デバイス２２０を制御する機能、宅内の消費電力を管理する機能、居住者（例えば高齢者）の安全を監視する機能、などの機能が考えられる。これらＯＳＧｉバンドルは、通信キャリアなどのサービスプロバイダが開発し配信することが想定される。ユーザの操作にしたがってゲートウェイ装置１００がバンドル配信サーバ２１０にアクセスしてＯＳＧｉバンドルをダウンロードする場合もあるし、サービスプロバイダがユーザに意識させることなくバンドル配信サーバ２１０からゲートウェイ装置１００に対してバンドルをプッシュ配信する場合もある。
【００１５】
図２は、ゲートウェイ装置１００上にインストールされているソフトウェア構成を示す図である。これらのソフトウェアはフラッシュメモリなどの不揮発記憶装置内にインストールされている。
【００１６】
オペレーティングシステム１１０は、Ｌｉｎｕｘ（登録商標）のようなコンピュータのオペレーティングシステムである。ＪａｖａＶＭ１２０は、Ｊａｖａアプリケーションの実行環境であり、ＯＳＧｉフレームワークを動作させるために必要となる。
【００１７】
第１ＯＳＧｉフレームワーク１３１と第２ＯＳＧｉフレームワーク１３２はともにＯＳＧｉフレームワークであり、後述の図３で説明するように互いに独立したＪａｖａアプリケーションとしてＪａｖａＶＭ１２０の配下で実行される。ＪａｖａＶＭ１２０はＯＳＧｉフレームワーク毎に設けてもよいし、単一のＪａｖａＶＭ１２０が各ＯＳＧｉフレームワークを個別のプロセスとして実行してもよい。
【００１８】
インストール部１４０は、各ＯＳＧｉフレームワーに対してＯＳＧｉバンドルをインストールする機能部である。また、ユーザがゲートウェイ装置１００に対して操作命令を発行する際のインターフェースとしての機能、および各ＯＳＧｉフレームワークに対してバンドルインストール以外の指示を発行する機能を有する。インストール部１４０の詳細については後述する。
【００１９】
ＯＳＧｉバンドル群１５０は、第１ＯＳＧｉフレームワーク１３１上または第２ＯＳＧｉフレームワーク１３２上で動作するＯＳＧｉバンドルである。ここでは各機能部を連携させるために必要なＯＳＧｉバンドルとして、エージェントバンドル１５１、連携サーババンドル１５２、連携クライアントバンドル１５３を例示したが、その他のＯＳＧｉバンドルをインストールすることもできる。
【００２０】
エージェントバンドル１５１は、インストール部１４０と各ＯＳＧｉフレームワークを連携させる機能を実装したＯＳＧｉバンドルである。連携サーババンドル１５２と連携クライアントバンドル１５３は、各ＯＳＧｉフレームワークが実行するＯＳＧｉバンドル間で機能を連携させるＯＳＧｉバンドルである。連携クライアントバンドル１５３は連携サーババンドル１５２に対してリクエストを発行し、連携サーババンドル１５２はそのリクエストに対応するＯＳＧｉバンドルの機能を実行してその結果を返信する。これらバンドルの詳細については後述する。
【００２１】
本明細書において、記載の便宜上、各ＯＳＧｉフレームワークやＯＳＧｉバンドルを動作主体として説明する場合があるが、実際にこれらが実装している機能を実行するのはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置および演算装置が実行するＪａｖａＶＭであることを付言しておく。「ＯＳＧｉフレームワーク部」はＪａｖａＶＭ１２０およびその配下で実行される各ＯＳＧｉフレームワークによって構成することができる。
【００２２】
図３は、ゲートウェイ装置１００上で動作するプロセスの連携関係を示す図である。ここで言う「プロセス」とは、Ｌｉｎｕｘ上におけるプロセスのような、ＣＰＵが実行するある程度まとまって処理単位を想定する。第１ＯＳＧｉフレームワーク１３１と第２ＯＳＧｉフレームワーク１３２は、それぞれ独立したＪａｖａアプリケーションとして動作するため、それぞれ互いに異なる第１プロセス３１０および第２プロセス３２０として動作する。インストール部１４０は、さらに別の第３プロセスとして動作するように構成することもできるし、第１プロセス３１０または第２プロセス３２０の一部として動作するように構成することもできる。
【００２３】
インストール部１４０は、インストール処理部１４１、起動停止部１４２、ポリシーテーブル１４３、一覧管理テーブル１４４を備える。インストール処理部１４１は、ポリシーテーブル１４３が定義しているルールにしたがって、各ＯＳＧｉフレームワーク上にＯＳＧｉバンドルをインストール（またはアンインストール）する。起動停止部１４２は、各ＯＳＧｉフレームワークを起動または停止する。また、各ＯＳＧｉフレームワーク上にインストールされているＯＳＧｉバンドルを起動または停止するように各ＯＳＧｉフレームワークに対して指示することもできる。ポリシーテーブル１４３と一覧管理テーブル１４４については後述する。
【００２４】
図３において、第２ＯＳＧｉフレームワーク１３２は第１ＯＳＧｉフレームワーク１３１上にインストールされているＯＳＧｉバンドルの機能を利用することを想定している。したがって第１ＯＳＧｉフレームワーク１３１は連携サーババンドル１５２を実行し、第２ＯＳＧｉフレームワーク１３２は連携クライアントバンドル１５３を実行する。各ＯＳＧｉフレームワークが互いの機能を利用する場合は、双方とも連携サーババンドル１５２と連携クライアントバンドル１５３を実行するようにしてもよい。
【００２５】
第１ＯＳＧｉフレームワーク１３１は、ＯＳＧｉバンドルをインストール（またはアンインストール）するインストール機能１３１１と、インストールされたＯＳＧｉバンドルを起動停止する起動停止機能１３１２を備える。第２ＯＳＧｉフレームワーク１３２も同様の機能を備える。各ＯＳＧｉフレームワークは、インストールされたＯＳＧｉバンドルを実行するためのスレッドを起動し、そのスレッドの配下でＯＳＧｉバンドルの機能を実行する。
【００２６】
図２および図３において、記載の便宜上、各ＯＳＧｉバンドルをＯＳＧｉフレームワークの外に記載したが、実際にはこれらＯＳＧｉバンドルはＯＳＧｉフレームワークの配下で実行されることを付言しておく。
【００２７】
図４は、ポリシーテーブル１４３の構成とデータ例を示す図である。ポリシーテーブル１４３は、ＯＳＧｉバンドルをいずれのＯＳＧｉフレームワーク上にインストールすべきかを定義するデータテーブルである。ポリシーテーブル１４３は、署名者フィールド１４３１とインストール先フィールド１４３２を有する。
【００２８】
署名者フィールド１４３１は、ＯＳＧｉバンドルを製作した者の識別情報である。本実施形態１においては、各ＯＳＧｉバンドル内にはその製作者を証明するための電子署名が埋め込まれている。製作者は個人であってもよいし企業などの団体であってもよい。インストール先フィールド１４３２は、ＯＳＧｉバンドルをインストールすべきＯＳＧｉフレームワークを指定する。
【００２９】
インストール部１４０は、ＯＳＧｉバンドルをインストールするようユーザから指示されると、そのＯＳＧｉバンドル内に埋め込まれている電子署名を認証することにより、当該ＯＳＧｉバンドルの製作者を特定する。特定した製作者とポリシーテーブル１４３の記述に基づき、当該ＯＳＧｉバンドルをインストールすべきＯＳＧｉフレームワークを自動的に特定することができる。
【００３０】
図５は、一覧管理テーブル１４４の構成とデータ例を示す図である。一覧管理テーブル１４４は、各ＯＳＧｉフレームワーク上にインストールされているＯＳＧｉバンドルの動作状態を管理するデータテーブルである。一覧管理テーブル１４４が保持するレコードはインストール処理部１４１と起動停止部１４２によって作成される。
【００３１】
一覧管理テーブル１４４は、バンドルフィールド１４４１、フレームワークフィールド１４４２、状態フィールド１４４３を有する。バンドルフィールド１４４１は、ＯＳＧｉバンドルを識別する情報（例えばメインクラス名）を保持する。フレームワークフィールド１４４２は、当該ＯＳＧｉバンドルがインストールされているＯＳＧｉフレームワークを識別する情報（例えばＯＳＧｉフレームワークの通番）を保持する。状態フィールド１４４３は、当該ＯＳＧｉフレームワークの実行状態を表す値を保持する。
【００３２】
図６は、第１ＯＳＧｉフレームワーク１３１に対してＯＳＧｉバンドルをインストールする手順を説明するシーケンス図である。第２ＯＳＧｉフレームワーク１３２に対してＯＳＧｉバンドルをインストールする手順も同様である。以下、図６の各ステップについて説明する。
【００３３】
（図６：ステップＳ６０１）
ゲートウェイ装置１００のユーザは、サービスプロバイダが提供するＯＳＧｉバンドルをバンドル配信サーバ２１０から取得する。インストール部１４０は、そのＯＳＧｉバンドル内に埋め込まれている電子署名を取得し、その電子署名を認証することにより、当該ＯＳＧｉバンドルの製作者を特定する。ここでは当該ＯＳＧｉバンドル内に埋め込まれている署名者は「ｈｉｔａｃｈｉ−ｓｏｌｕｔｉｏｎ．ｃｏｍ」であるものとする。また当該ＯＳＧｉバンドルのメインクラス名はｃｏｍ．ｃｏｍｐａｎｙＡ．ａｐｐＡであるものとする。
【００３４】
（図６：ステップＳ６０２）
インストール部１４０は、当該ＯＳＧｉバンドルの署名者をキーにしてポリシーテーブル１４３を照会し、当該ＯＳＧｉバンドルをいずれのＯＳＧｉフレームワーク上にインストールすべきかを特定する。図４に示したデータ例によれば、当該ＯＳＧｉバンドルは第１ＯＳＧｉフレームワーク１３１上にインストールすべきであることが分かる。
【００３５】
（図６：ステップＳ６０３〜Ｓ６０４）
起動停止部１４２は、第１ＯＳＧｉフレームワーク１３１（第１プロセス３１０）がまだ起動していない場合は第１ＯＳＧｉフレームワーク１３１を起動し、既に起動している場合は何もしない（Ｓ６０３）。第１ＯＳＧｉフレームワーク１３１は、起動停止部１４２によって起動される（Ｓ６０４）。
【００３６】
（図６：ステップＳ６０５〜Ｓ６０６）
インストール処理部１４１は、第１ＯＳＧｉフレームワーク１３１に対して、インストールするＯＳＧｉバンドルを送信する（Ｓ６０５）。第１ＯＳＧｉフレームワーク１３１が備えるエージェントバンドル１５１は、インストール処理部１４１からそのＯＳＧｉバンドルを受け取る（Ｓ６０６）。
【００３７】
（図６：ステップＳ６０７）
インストール処理部１４１は、第１ＯＳＧｉフレームワーク１３１に対して、先に送信したＯＳＧｉバンドルをインストールするよう指示する。
【００３８】
（図６：ステップＳ６０８）
エージェントバンドル１５１は、インストール処理部１４１からＯＳＧｉバンドルをインストールすべき旨の指示を受け取る。第１ＯＳＧｉフレームワーク１３１は、インストール機能１３１１を用いて、受信したＯＳＧｉバンドルを第１ＯＳＧｉフレームワーク１３１上に展開し、インストールする。エージェントバンドル１５１は、インストールが完了した旨をインストール処理部１４１へ返信する。
【００３９】
（図６：ステップＳ６０９）
インストール部１４０は、第１ＯＳＧｉフレームワーク１３１上にインストールしたＯＡＧｉバンドルについてのレコードを一覧管理テーブル１４４に追加する。例えば図５の２行目のようなレコードが追加される。
【００４０】
図７は、インストール部１４０から第１ＯＳＧｉフレームワーク１３１に対して指示を発行する手順を説明するシーケンス図である。第２ＯＳＧｉフレームワーク１３２に対して指示を発行する手順も同様である。以下、図７の各ステップについて説明する。
【００４１】
（図７：ステップＳ７０１）
ゲートウェイ装置１００のユーザは、第１ＯＳＧｉフレームワーク１３１に対する指示をインストール部１４０に対して入力する。例えば、図６において第１ＯＳＧｉフレームワーク１３１上にインストールしたｃｏｍ．ｃｏｍｐａｎｙＡ．ａｐｐＡバンドルを起動する指示を入力したものと仮定する。
【００４２】
（図７：ステップＳ７０２）
起動停止部１４２は、一覧管理テーブル１４４を参照し、いずれのＯＳＧｉフレームワークに対して指示を発行すべきかを特定する。図５の２行目のレコードによれば、第１ＯＳＧｉフレームワーク１３１に対して指示を発行すべきことが分かる。起動停止部１４２は、第１ＯＳＧｉフレームワーク１３１に対して、ｃｏｍ．ｃｏｍｐａｎｙＡ．ａｐｐＡバンドルを起動するよう指示する。
【００４３】
（図７：ステップＳ７０３）
第１ＯＳＧｉフレームワーク１３１が備えるエージェントバンドル１５１は、ｃｏｍ．ｃｏｍｐａｎｙＡ．ａｐｐＡバンドルを起動すべき旨の指示を受信する。第１ＯＳＧｉフレームワーク１３１は、起動停止機能１３１２を用いて同バンドルを起動し、その結果をインストール部１４０に対して返信する。
【００４４】
（図７：ステップＳ７０４）
起動停止部１４２は、一覧管理テーブル１４４を更新する。具体的には、図５の２行目のレコードにおける状態フィールド１４４３を、「インストール済」から「起動中」に更新する。
【００４５】
図８は、ＯＳＧｉフレームワーク間でＯＳＧｉバンドルの機能を連携させる処理を説明するシーケンス図である。ＯＳＧｉフレームワーク間の連携は、例えば特願２０１２−０７３２３１号に記載されているＲ−ＯＳＧｉなどの技術を用いて実装することができる。すなわち、連携サーババンドル１５２と連携クライアントバンドル１５３をＲ−ＯＳＧｉに準拠して実装することができる。図８において、第２ＯＳＧｉフレームワーク１３２から第１ＯＳＧｉフレームワークに対して、第１ＯＳＧｉフレームワーク１３１上のＯＳＧｉバンドルの機能を利用するよう要求するものと仮定する。以下、図８の各ステップについて説明する。
【００４６】
（図８：ステップＳ８０１〜Ｓ８０２）
第２ＯＳＧｉフレームワーク１３２が備える連携クライアントバンドル１５３は、第１ＯＳＧｉフレームワーク１３１が備える連携サーババンドル１５２に対して、第１ＯＳＧｉフレームワーク１３１が公開しているバンドル（サービス）一覧を問い合わせる（Ｓ８０１）。連携サーババンドル１５２は、第１ＯＳＧｉフレームワーク１３１が公開しているサービス一覧を返信する（Ｓ８０２）。
【００４７】
（図８：ステップＳ８０３）
第２ＯＳＧｉフレームワーク１３２は、動作過程において、ステップＳ８０２で受信したサービス一覧内に記載されているいずれかのサービスを呼び出す場合がある。連携クライアントバンドル１５３は、第２ＯＳＧｉフレームワーク１３２上にインストールされておらず、同リスト内に記載されているバンドルに対する呼び出しが発生した場合は、その呼び出し要求を連携サーババンドル１５２に対して転送する。
【００４８】
（図８：ステップＳ８０４）
連携サーババンドル１５２は、サービス呼び出し要求を受信すると、そのサービスを呼び出して実行し、実行結果を連携クライアントバンドル１５３に対して返信する。連携クライアントバンドル１５３は、その実行結果をサービス呼び出し元である第２ＯＳＧｉフレームワーク１３２に対して転送する。
【００４９】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係るゲートウェイ装置１００は、ポリシーテーブル１４３の記述にしたがって、ＯＳＧｉバンドルをいずれのＯＳＧｉフレームワーク上にインストールすべきかを自動的に判断する。したがって、ＯＳＧｉフレームワークを複数動作させることによりＯＳＧｉバンドルの不具合が波及することを抑制してゲートウェイ装置１００の信頼性を高めつつ、ＯＳＧｉバンドルをインストールする作業に係る運用負担を軽減することができる。
【００５０】
また、本実施形態１に係るゲートウェイ装置１００は、ＯＳＧｉバンドル内に埋め込まれた電子署名に基づきその製作者を特定し、いずれのＯＳＧｉフレームワーク上にインストールすべきかを判断する。これにより、ＯＳＧｉバンドルの製作者毎にそのインストール先を振り分けることができるので、いずれかの製作者が提供するＯＳＧｉバンドルに不具合が発生した場合であっても、その影響範囲を当該ＯＳＧｉフレームワーク上のみに抑制することができる。
【００５１】
また、本実施形態１に係るゲートウェイ装置１００は、各ＯＳＧｉフレームワーク間でＯＳＧｉバンドルを連携させることができる。これにより、ＯＳＧｉバンドル間で互いに機能を利用する場合であっても、各ＯＳＧｉバンドルのインストール先をその利用関係によらず自由に振り分けることができる。
【００５２】
＜実施の形態２＞
本発明の実施形態２においては、実施形態１で説明した各構成要素の変形例について説明する。変形部分以外の構成については実施形態１と同様である。
【００５３】
実施形態１においては、ゲートウェイ装置１００は２つのＯＳＧｉフレームワークを実行することを説明したが、２つ以上のＯＳＧｉフレームワークを実行する場合であっても本発明を同様に適用することができる。
【００５４】
実施形態１において、インストール部１４０はユーザがＯＳＧｉフレームワークに対して発行する操作命令を受け取るインターフェースとして機能することを説明したが、操作感を統一する観点から、そのインターフェースはＯＳＧｉ規格において規定されているインターフェースに準拠することが望ましい。
【００５５】
実施形態１において、インストール部１４０の具体的な実装形態については特に限定しなかったが、例えばインストール部１４０は常時起動しているスタンドアロンアプリケーションやＷｅｂアプリケーションなどの形態で実装することができる。スタンドアロンアプリケーションとして実装する場合は、第１ＯＳＧｉフレームワーク１３１および第２ＯＳＧｉフレームワーク１３２とは異なる別のＯＳＧｉフレームワーク上にインストール部１４０の機能を実装することができる。さらには、インストール部１４０の機能をＯＳＧｉバンドルとして実装することもできる。
【００５６】
インストール部１４０の機能をＯＳＧｉバンドルとして実装する場合、そのインストール先はいずれかのＯＳＧｉフレームワーク上であればよい。例えば第１ＯＳＧｉフレームワーク１３１および第２ＯＳＧｉフレームワーク１３２のいずれかであってもよいし、これらとは別のＯＳＧｉフレームワーク上にインストールしてもよい。
【００５７】
実施形態１において、ＯＳＧｉバンドルの識別情報としてその製作者の電子署名を用いることを説明したが、その他の識別情報を用いることもできる。例えば、ＯＳＧｉバンドルのｊａｒ（Ｊａｖａアーカイブ）ファイル内に含まれているマニフェストファイルに記載されているフィールドの値に基づき製作者名を特定することもできる。ＯＳＧｉ仕様においては、「Ｂｕｎｄｌｅ−Ｖｅｎｄｏｒ」「Ｂｕｎｄｌｅ−Ｃｏｐｙｒｉｇｈｔ」などのマニフェストフィールドを用いて各バンドルの製作者名を判断することができると考えられる。
【００５８】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。
【００５９】
上記各構成、機能、処理部、処理手段等は、それらの一部や全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【符号の説明】
【００６０】
１００：ゲートウェイ装置、１１０：オペレーティングシステム、１２０：ＪａｖａＶＭ、１３１：第１ＯＳＧｉフレームワーク、１３２：第２ＯＳＧｉフレームワーク、１４０：インストール部、１４１：インストール処理部、１４２：起動停止部、１４３：ポリシーテーブル、１４４：一覧管理テーブル、１５０：ＯＳＧｉバンドル群、１５１：エージェントバンドル、１５２：連携サーババンドル、１５３：連携クライアントバンドル、２１０：バンドル配信サーバ、２２０：宅内デバイス、２３０：インターネット、２４０：ホームネットワーク、１０００：ＯＳＧｉシステム。
【図１】
2014194707.tif 000003
【図２】
2014194707.tif 000004
【図３】
2014194707.tif 000005
【図４】
2014194707.tif 000006
【図５】
2014194707.tif 000007
【図６】
2014194707.tif 000008
【図７】
2014194707.tif 000009
【図８】
2014194707.tif 000010