(57)【要約】【課題】デバイスの機能、種別その他の内容に応じたサービスを提供するバンドル再構成システムを提供する。【解決手段】ホームゲートウェイ２００は、バンドル管理サーバ１００から制御バンドルを取得し、取得した制御バンドルをＲＡＭ５４に格納して実行する。また、ＲＡＭ５４のメモリ使用率が所定値以上となったときは、制御バンドルａに含まれるクラス、コンポーネントおよびパッケージと、制御バンドルｂに含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージをそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定し、共通クラス、共通コンポーネントおよび共通パッケージが重複しないように、制御バンドルａおよび制御バンドルｂを１つの制御バンドル４００として再構成する。【選択図】  図１５
2004227240.tif 000002
【特許請求の範囲】
【請求項１】
１又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項２】
少なくとも３つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部及び前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部及び前記共通機能部を少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項３】
１又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルのうち少なくとも２つのものを結合して１つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項４】
請求項３において、
前記バンドル再構成手段は、前記１つのバンドルに含まれる複数の機能部のなかから前記共通機能部を特定し、前記１つのバンドルを、前記第１のバンドル及び前記第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項５】
少なくとも３つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルを分離して少なくとも２つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部及び前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部及び前記共通機能部を少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項６】
請求項５において、
前記バンドル再構成手段は、前記第１のバンドルに含まれる機能部と、前記第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を前記共通機能部として特定し、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項７】
請求項４及び６のいずれかにおいて、
デバイスを通信可能に接続するゲートウェイ端末と、前記ゲートウェイ端末からの取得要求に応じて前記バンドルを提供するバンドル提供端末とを通信可能に接続し、
前記バンドル提供端末は、前記バンドルを生成するバンドル生成手段と、前記バンドル生成手段で生成したバンドルを前記取得要求に応じて前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル取得手段、前記バンドル格納手段、前記バンドル実行手段及び前記バンドル再構成手段を有し、
前記バンドル取得手段は、前記バンドル提供端末に前記取得要求を送信し、前記バンドル提供端末から前記バンドルを取得するようになっていることを特徴とするバンドル再構成システム。
【請求項８】
請求項７において、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントと、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージとを有してなり、
前記バンドル再構成手段は、前記第１のバンドルに含まれるクラス、コンポーネント及びパッケージと、前記第２のバンドルに含まれるクラス、コンポーネント及びパッケージとを対比してそれらに共通するクラス、コンポーネント及びパッケージをそれぞれ共通クラス、共通コンポーネント及び共通パッケージとして特定し、前記共通クラス、前記共通コンポーネント及び前記共通パッケージが重複しないように、前記第１のバンドル及び前記第２のバンドルを１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項９】
請求項８において、
前記バンドル再構成手段は、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれるクラスのうち前記共通クラス以外のもの、前記第２のバンドルに含まれるクラスのうち前記共通クラス以外のもの、及び前記共通クラスを有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１０】
請求項８及び９のいずれかにおいて、
前記バンドル再構成手段は、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、前記第２のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、及び前記共通コンポーネントを有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１１】
請求項８乃至１０のいずれかにおいて、
前記バンドル再構成手段は、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、前記第２のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、及び前記共通パッケージを有する１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１２】
請求項８乃至１１のいずれかにおいて、
前記クラスは、複数のクラスメソッドを含み、
前記バンドル再構成手段は、前記第１のバンドルの共通クラスに含まれるクラスメソッドと、前記第２のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないときは、前記第１のバンドルの共通クラスに含まれるクラスメソッドと、前記第２のバンドルの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、前記第１のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、前記第２のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、及び前記共通クラスメソッドを含むクラスを前記共通クラスとして構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１３】
請求項８乃至１２のいずれかにおいて、
前記バンドル再構成手段は、前記第１のバンドルに含まれるクラス、コンポーネント及びパッケージのうち前記共通クラス、前記共通コンポーネント及び前記共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネント及び不要パッケージとして指定されたときは、前記第１のバンドル及び前記第２のバンドルを、前記不要クラス、前記不要コンポーネント及び前記不要パッケージを有しない１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１４】
請求項１３において、
前記バンドル再構成手段は、前記第２のバンドルに含まれるクラス、コンポーネント及びパッケージのうち前記共通クラス、前記共通コンポーネント及び前記共通パッケージ以外のものであって不要なものがそれぞれ前記不要クラス、前記不要コンポーネント及び前記不要パッケージとして指定されたときは、前記第１のバンドル及び前記第２のバンドルを、前記不要クラス、前記不要コンポーネント及び前記不要パッケージを有しない１つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１５】
請求項７において、
前記バンドルは、前記機能部としてのクラスを少なくとも３つ含むコンポーネントを有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のクラスのなかから、当該複数のクラスのうち第１のクラスと、当該複数のクラスのうち第２のクラスとが共通に利用するクラスを共通クラスとして特定し、前記記憶手段のバンドルを、前記第１のクラス及び前記共通クラスを少なくとも有する第１のバンドル、並びに前記第２のクラス及び前記共通クラスを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１６】
請求項７において、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントを少なくとも３つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のコンポーネントのなかから、当該複数のコンポーネントのうち第１のコンポーネントと、当該複数のコンポーネントのうち第２のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、前記記憶手段のバンドルを、前記第１のコンポーネント及び前記共通コンポーネントを少なくとも有する第１のバンドル、並びに前記第２のコンポーネント及び前記共通コンポーネントを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１７】
請求項７において、
前記バンドルは、前記機能部としてのクラスを複数有し、且つ、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージを少なくとも３つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のパッケージのなかから、当該複数のパッケージのうち第１のパッケージと、当該複数のパッケージのうち第２のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、前記記憶手段のバンドルを、前記第１のパッケージ及び前記共通パッケージを少なくとも有する第１のバンドル、並びに前記第２のパッケージ及び前記共通パッケージを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１８】
請求項７乃至１７のいずれかにおいて、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときは、前記バンドルを再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項１９】
請求項８乃至１８のいずれかにおいて、
前記バンドルは、さらに、前記コンポーネントに含まれるクラスを識別可能に登録したコンポーネント情報を有してなり、
前記バンドル再構成手段は、前記バンドルに含まれるコンポーネント情報に基づいて前記バンドルを再構成するようになっていることを特徴とするバンドル再構成システム。
【請求項２０】
請求項７乃至１８のいずれかにおいて、
さらに、前記バンドルの再構成を代行するバンドル再構成代行端末を通信可能に接続し、
前記バンドル再構成代行端末は、前記バンドルを受信するバンドル受信手段と、前記バンドル受信手段で受信したバンドルを前記バンドル再構成手段と同一の手法により再構成する第２バンドル再構成手段と、前記第２バンドル再構成手段で再構成したバンドルを前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル再構成手段による再構成が困難であると判定したときは、再構成の対象となるバンドルを前記バンドル再構成代行端末に送信するようになっていることを特徴とするバンドル再構成システム。
【請求項２１】
１又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するプログラムであって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する１つのバンドルとして再構成する処理をコンピュータに実行させるためのプログラムであることを特徴とするバンドル再構成プログラム。
【請求項２２】
少なくとも３つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するプログラムであって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部及び前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部及び前記共通機能部を少なくとも有する第２のバンドルとして再構成する処理をコンピュータに実行させるためのプログラムであることを特徴とするバンドル再構成プログラム。
【請求項２３】
１又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成する方法であって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドル及び前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する１つのバンドルとして再構成することを特徴とするバンドル再構成方法。
【請求項２４】
少なくとも３つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成する方法であって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部及び前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部及び前記共通機能部を少なくとも有する第２のバンドルとして再構成することを特徴とするバンドル再構成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホームゲートウェイ、ＰＣ、ＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）、ネットワークカード、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、腕時計その他プログラム実行可能なデバイスに適用して所定のサービスを提供するバンドルを再構成するシステムおよびプログラム、並びに方法に係り、特に、動的にバンドルが組み込まれるホームゲートウェイにおいてメモリの利用効率を向上するのに好適なバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法に関する。
【０００２】
【従来の技術】
近い将来、各家庭においては、ホームゲートウェイをインターネットに接続するとともに、複数のネットワークデバイスをホームゲートウェイに接続し、ホームゲートウェイを介して各ネットワークデバイスがインターネット上のサービスを利用するというような形態が予想される。
【０００３】
ホームゲートウェイには、多種多様なネットワークデバイスが接続される。例えば、ネットワーク対応のスキャナやプリンタがそれである。その他にも、ＯＡ製品、家電製品その他の電子機器がネットワークデバイスとして接続可能となる。ホームゲートウェイがネットワークデバイスを適切に制御するためには、ネットワークデバイスの制御プログラムをホームゲートウェイに組み込む必要があるが、想定されるすべての種類のネットワークデバイスに対応した制御プログラムを組み込むのは現実的ではない。そこで、現実的には、ネットワークデバイスのメーカ等がネットワークデバイスを販売すると同時にその制御プログラムである制御バンドルを所定のサーバにダウンロード可能に掲載する。そして、ユーザが購入したネットワークデバイスを接続すると、ホームゲートウェイでは、対応の制御バンドルが所定のサーバからダウンロードして実行する。ダウンロードは自動的またはユーザの手動操作により行う。
【０００４】
しかしながら、ホームゲートウェイに接続されるネットワークデバイスの数が増えてくると、それに伴って多数の制御バンドルを組み込まなければならないが、制御バンドルをメモリ上で実行させる関係上、ホームゲートウェイのメモリ容量が十分でない場合は、組み込める数に一定の限界がある。
そこで、制限されたメモリ容量の下で、より多くの制御バンドルを組み込めるよう工夫することが要求される。従来、メモリの利用効率を高める技術およびその関連技術としては、例えば、特許文献１に開示されているオブジェクト指向言語の実行処理方式（第１の従来例という。）、特許文献２に開示されているソフトウェア構築システム（第２の従来例という。）および特許文献３に開示されているデータ処理装置（第３の従来例という。）がある。
【０００５】
第１の従来例では、クラス情報格納装置は、クラス名とクラス属性とメソッド情報およびメソッド定義とを含むクラス情報を、クラスＩＤによって検索可能に保持する。オブジェクトは、メッセージの受信時に、クラスＩＤおよびメソッド選択情報を指定した問い合わせを出し、これに応答してメソッド検索部は、クラス情報格納装置から、そのクラスＩＤおよびメソッド選択情報に適合するメソッドを検索し、オブジェクトはこの検索されたメソッドを実行する。クラス情報抽出部は、クラス定義ソースプログラムのコンパイル時にクラス情報を抽出してクラス情報格納装置に格納する。排他制御部は、クラス情報格納装置に対するメソッド検索部、クラス情報抽出部のアクセスの排他制御を行う。
【０００６】
第２の従来例は、特定のコンポーネントの機能を呼び出す処理コードをすべて、それを管理する管理コンポーネントに集中させる。動的拡張を行う際には、特定のコンポーネントとともに管理コンポーネントを交換することで、コンポーネント協調のための情報も自動的に更新される。そのほかのコンポーネントについては、再利用することが可能になる。
【０００７】
第３の従来例は、項目データと項目データの種類を識別する項目識別子とその項目識別子の少なくとも一つに関連付けられた項目データを実行する添付プログラムとを入力部で読み込んで前記項目データを処理するデータ処理装置であって、項目識別子の内容に応じて、プログラム格納部に格納されている処理モジュール毎の内部プログラムか前記添付プログラムのいずれかを選択するプログラム選択部を備える。
【０００８】
【特許文献１】
特開平１０−２１０７７号公報
【特許文献２】
特開平１１−１６１４８３号公報
【特許文献３】
特開平１１−３１２０８１号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、第１ないし第３の従来例にあってはいずれも、プログラムの構造または取扱に関する工夫であるため、プログラムのデータ容量を低減するための具体的な構成について直接的な記載がなく、メモリの利用効率を向上するには不十分である。
【００１０】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、動的にバンドルが組み込まれるホームゲートウェイにおいてメモリの利用効率を向上するのに好適なバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を提供することを目的としている。
【００１１】
【課題を解決するための手段】
〔発明１〕
上記目的を達成するために、発明１のバンドル再構成システムは、
１または異なる複数の機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００１２】
このような構成であれば、少なくとも２つのバンドルが記憶手段に格納されていると、第１のバンドルに含まれる機能部と、第２のバンドルに含まれる機能部とが対比されて共通機能部として特定される。そして、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれる機能部のうち共通機能部以外のもの、第２のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する１つのバンドルとして再構成される。例えば、第１のバンドルが機能部Ａ，Ｂを有し、第２のバンドルが機能部Ｂ，Ｃを有する場合は、共通機能部が機能部Ｂとなるので、第１のバンドルおよび第２のバンドルが、機能部Ａ，Ｂ，Ｃを有する１つのバンドルとして再構成される。
【００１３】
ここで、本発明に係るバンドル再構成システムは、動的にバンドルが組み込まれるホームゲートウェイに適用するに限らず、デスクトップ型若しくはノート型のＰＣ、携帯電話やＰＤＡ等の携帯端末、その他の情報処理装置に適用することもできる。特に、ホームゲートウェイや携帯端末のようにメモリ容量が十分でない端末に適用するのが有益である。以下、発明２、３および５のバンドル再構成システムにおいて同じである。
【００１４】
また、バンドルは、再構成するにあたって記憶手段に格納されていればよく、外部からバンドルを取得して記憶手段に格納するようになっていてもよいし、ＦＤ等の記憶媒体からバンドルを読み込んで記憶手段に格納するようになっていてもよい。以下、発明２のバンドル再構成システムにおいて同じである。
〔発明２〕
さらに、発明２のバンドル再構成システムは、
少なくとも３つの機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部および前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部および前記共通機能部を少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とする。
【００１５】
このような構成であれば、バンドルが記憶手段に格納されていると、記憶手段のバンドルに含まれる複数の機能部のなかから、第１の機能部と第２の機能部とが共通に利用する機能部が共通機能部として特定され、記憶手段のバンドルが、第１の機能部および共通機能部を少なくとも有する第１のバンドル、並びに第２の機能部および共通機能部を少なくとも有する第２のバンドルとして再構成される。例えば、機能部Ａ，Ｂ，Ｃを有するバンドルが存在する場合に、機能部Ａと機能部Ｃとが機能部Ｂを共通で利用するときは、共通機能部が機能部Ｂとなるので、そのバンドルが、機能部Ａ，Ｂを有する第１のバンドルおよび機能部Ｂ，Ｃを有する第２のバンドルとして再構成される。このようにバンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明３〕
さらに、発明３のバンドル再構成システムは、
１または異なる複数の機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルのうち少なくとも２つのものを結合して１つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００１６】
このような構成であれば、バンドル取得手段により、バンドルが取得され、バンドル格納手段により、取得されたバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。これにより、機能部が機能してサービスが提供される。また、バンドル再構成手段により、第１のバンドルに含まれる機能部と、第２のバンドルに含まれる機能部とが対比されて共通機能部として特定される。そして、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれる機能部のうち共通機能部以外のもの、第２のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する１つのバンドルとして再構成される。例えば、第１のバンドルが機能部Ａ，Ｂを有し、第２のバンドルが機能部Ｂ，Ｃを有する場合は、共通機能部が機能部Ｂとなるので、第１のバンドルおよび第２のバンドルが、機能部Ａ，Ｂ，Ｃを有する１つのバンドルとして再構成される。
〔発明４〕
さらに、発明４のバンドル再構成システムは、発明３のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記１つのバンドルに含まれる複数の機能部のなかから前記共通機能部を特定し、前記１つのバンドルを、前記第１のバンドルおよび前記第２のバンドルとして再構成するようになっていることを特徴とする。
【００１７】
このような構成であれば、バンドル再構成手段により、再構成された１つのバンドル（再構成バンドル）に含まれる複数の機能部のなかから共通機能部が特定され、再構成バンドルが、第１のバンドルおよび第２のバンドルとして再構成される。例えば、機能部Ａ，Ｂ，Ｃを有する再構成バンドルが存在する場合に、機能部Ａと機能部Ｃとが機能部Ｂを共通で利用するときは、共通機能部が機能部Ｂとなるので、その再構成バンドルが、機能部Ａ，Ｂを有する第１のバンドルおよび機能部Ｂ，Ｃを有する第２のバンドルとして再構成される。このように再構成バンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明５〕
さらに、発明５のバンドル再構成システムは、
少なくとも３つの機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルを分離して少なくとも２つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部および前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部および前記共通機能部を少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とする。
【００１８】
このような構成であれば、バンドル取得手段により、バンドルが取得され、バンドル格納手段により、取得されたバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。これにより、機能部が機能してサービスが提供される。また、バンドル再構成手段により、記憶手段のバンドルに含まれる複数の機能部のなかから、第１の機能部と第２の機能部とが共通に利用する機能部が共通機能部として特定され、記憶手段のバンドルが、第１の機能部および共通機能部を少なくとも有する第１のバンドル、並びに第２の機能部および共通機能部を少なくとも有する第２のバンドルとして再構成される。例えば、機能部Ａ，Ｂ，Ｃを有するバンドルが存在する場合に、機能部Ａと機能部Ｃとが機能部Ｂを共通で利用するときは、共通機能部が機能部Ｂとなるので、そのバンドルが、機能部Ａ，Ｂを有する第１のバンドルおよび機能部Ｂ，Ｃを有する第２のバンドルとして再構成される。このようにバンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明６〕
さらに、発明６のバンドル再構成システムは、発明５のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第１のバンドルに含まれる機能部と、前記第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を前記共通機能部として特定し、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００１９】
このような構成であれば、バンドル再構成手段により、第１のバンドルに含まれる機能部と、第２のバンドルに含まれる機能部とが対比されて機能が共通する機能部が共通機能部として特定され、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれる機能部のうち共通機能部以外のもの、第２のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する１つのバンドルとして再構成される。例えば、第１のバンドルが機能部Ａ，Ｂを有し、第２のバンドルが機能部Ｂ，Ｃを有する場合は、共通機能部が機能部Ｂとなるので、第１のバンドルおよび第２のバンドルが、機能部Ａ，Ｂ，Ｃを有する１つのバンドルとして再構成される。
〔発明７〕
さらに、発明７のバンドル再構成システムは、発明４および６のいずれかのバンドル再構成システムにおいて、
デバイスを通信可能に接続するゲートウェイ端末と、前記ゲートウェイ端末からの取得要求に応じて前記バンドルを提供するバンドル提供端末とを通信可能に接続し、
前記バンドル提供端末は、前記バンドルを生成するバンドル生成手段と、前記バンドル生成手段で生成したバンドルを前記取得要求に応じて前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル取得手段、前記バンドル格納手段、前記バンドル実行手段および前記バンドル再構成手段を有し、
前記バンドル取得手段は、前記バンドル提供端末に前記取得要求を送信し、前記バンドル提供端末から前記バンドルを取得するようになっていることを特徴とする。
【００２０】
このような構成であれば、ゲートウェイ端末では、バンドル取得手段により、バンドル提供端末に取得要求が送信される。
バンドル提供端末では、バンドル生成手段により、バンドルが生成され、取得要求を受信すると、バンドル送信手段により、受信した取得要求に応じて、生成されたバンドルがゲートウェイ端末に送信される。
【００２１】
ゲートウェイ端末では、バンドル取得手段によりバンドルを受信（取得）すると、バンドル格納手段により、受信したバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。また、バンドル再構成手段により、記憶手段のバンドルが再構成される。
ここで、バンドル提供端末は、ゲートウェイ端末との通信路の一端に接続する通信設備であって少なくともサーバ機能を有するものであればよく、クライアント機能およびサーバ機能の両方を兼ね揃えるものとして構成することもできる。このことは、ゲートウェイ端末についても同様である。
〔発明８〕
さらに、発明８のバンドル再構成システムは、発明７のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントと、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージとを有してなり、
前記バンドル再構成手段は、前記第１のバンドルに含まれるクラス、コンポーネントおよびパッケージと、前記第２のバンドルに含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージをそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定し、前記共通クラス、前記共通コンポーネントおよび前記共通パッケージが重複しないように、前記第１のバンドルおよび前記第２のバンドルを１つのバンドルとして再構成するようになっていることを特徴とする。
【００２２】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第１のバンドルに含まれるクラス、コンポーネントおよびパッケージと、第２のバンドルに含まれるクラス、コンポーネントおよびパッケージとが対比されてそれらに共通するクラス、コンポーネントおよびパッケージがそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定される。そして、共通クラス、共通コンポーネントおよび共通パッケージが重複しないように、第１のバンドルおよび第２のバンドルが１つのバンドルとして再構成される。
〔発明９〕
さらに、発明９のバンドル再構成システムは、発明８のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれるクラスのうち前記共通クラス以外のもの、前記第２のバンドルに含まれるクラスのうち前記共通クラス以外のもの、および前記共通クラスを有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００２３】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれるクラスのうち共通クラス以外のもの、第２のバンドルに含まれるクラスのうち共通クラス以外のもの、および共通クラスを有する１つのバンドルとして再構成される。
〔発明１０〕
さらに、発明１０のバンドル再構成システムは、発明８および９のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、前記第２のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、および前記共通コンポーネントを有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００２４】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれるコンポーネントのうち共通コンポーネント以外のもの、第２のバンドルに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを有する１つのバンドルとして再構成される。
〔発明１１〕
さらに、発明１１のバンドル再構成システムは、発明８ないし１０のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、前記第２のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、および前記共通パッケージを有する１つのバンドルとして再構成するようになっていることを特徴とする。
【００２５】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第１のバンドルおよび第２のバンドルが、第１のバンドルに含まれるパッケージのうち共通パッケージ以外のもの、第２のバンドルに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを有する１つのバンドルとして再構成される。
〔発明１２〕
さらに、発明１２のバンドル再構成システムは、発明８ないし１１のいずれかのバンドル再構成システムにおいて、
前記クラスは、複数のクラスメソッドを含み、
前記バンドル再構成手段は、前記第１のバンドルの共通クラスに含まれるクラスメソッドと、前記第２のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないときは、前記第１のバンドルの共通クラスに含まれるクラスメソッドと、前記第２のバンドルの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、前記第１のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、前記第２のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、および前記共通クラスメソッドを含むクラスを前記共通クラスとして構成するようになっていることを特徴とする。
【００２６】
このような構成であれば、ゲートウェイ端末では、第１のバンドルの共通クラスに含まれるクラスメソッドと、第２のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないと、バンドル再構成手段により、第１のバンドルの共通クラスに含まれるクラスメソッドと、第２のバンドルの共通クラスに含まれるクラスメソッドとが対比されて共通クラスメソッドが特定される。そして、第１のバンドルの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、第２のバンドルの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスが共通クラスとして構成される。例えば、第１のバンドルの共通クラスがクラスメソッドＡ，Ｂ，Ｃを含み、第２のバンドルの共通クラスがクラスメソッドＢ，Ｃ，Ｄを含む場合は、共通クラスメソッドがクラスメソッドＢ，Ｃとなるので、共通クラスが、クラスメソッドＡ，Ｂ，Ｃ，Ｄを含むクラスとして構成される。
〔発明１３〕
さらに、発明１３のバンドル再構成システムは、発明８ないし１２のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第１のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち前記共通クラス、前記共通コンポーネントおよび前記共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、前記第１のバンドルおよび前記第２のバンドルを、前記不要クラス、前記不要コンポーネントおよび前記不要パッケージを有しない１つのバンドルとして再構成するようになっていることを特徴とする。
【００２７】
このような構成であれば、ゲートウェイ端末では、第１のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されると、バンドル再構成手段により、第１のバンドルおよび第２のバンドルが、不要クラス、不要コンポーネントおよび不要パッケージを有しない１つのバンドルとして再構成される。
〔発明１４〕
さらに、発明１４のバンドル再構成システムは、発明１３のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第２のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち前記共通クラス、前記共通コンポーネントおよび前記共通パッケージ以外のものであって不要なものがそれぞれ前記不要クラス、前記不要コンポーネントおよび前記不要パッケージとして指定されたときは、前記第１のバンドルおよび前記第２のバンドルを、前記不要クラス、前記不要コンポーネントおよび前記不要パッケージを有しない１つのバンドルとして再構成するようになっていることを特徴とする。
【００２８】
このような構成であれば、ゲートウェイ端末では、第１のバンドルまたは第２のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されると、バンドル再構成手段により、第１のバンドルおよび第２のバンドルが、不要クラス、不要コンポーネントおよび不要パッケージを有しない１つのバンドルとして再構成される。
〔発明１５〕
さらに、発明１５のバンドル再構成システムは、発明７のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを少なくとも３つ含むコンポーネントを有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のクラスのなかから、当該複数のクラスのうち第１のクラスと、当該複数のクラスのうち第２のクラスとが共通に利用するクラスを共通クラスとして特定し、前記記憶手段のバンドルを、前記第１のクラスおよび前記共通クラスを少なくとも有する第１のバンドル、並びに前記第２のクラスおよび前記共通クラスを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とする。
【００２９】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のクラスのなかから、複数のクラスのうち第１のクラスと、複数のクラスのうち第２のクラスとが共通に利用するクラスが共通クラスとして特定される。そして、記憶手段のバンドルが、第１のクラスおよび共通クラスを少なくとも有する第１のバンドル、並びに第２のクラスおよび共通クラスを少なくとも有する第２のバンドルとして再構成される。
〔発明１６〕
さらに、発明１６のバンドル再構成システムは、発明７のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントを少なくとも３つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のコンポーネントのなかから、当該複数のコンポーネントのうち第１のコンポーネントと、当該複数のコンポーネントのうち第２のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、前記記憶手段のバンドルを、前記第１のコンポーネントおよび前記共通コンポーネントを少なくとも有する第１のバンドル、並びに前記第２のコンポーネントおよび前記共通コンポーネントを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とする。
【００３０】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のコンポーネントのなかから、複数のコンポーネントのうち第１のコンポーネントと、複数のコンポーネントのうち第２のコンポーネントとが共通に利用するコンポーネントが共通コンポーネントとして特定される。そして、記憶手段のバンドルが、第１のコンポーネントおよび共通コンポーネントを少なくとも有する第１のバンドル、並びに第２のコンポーネントおよび共通コンポーネントを少なくとも有する第２のバンドルとして再構成される。
〔発明１７〕
さらに、発明１７のバンドル再構成システムは、発明７のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数有し、かつ、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージを少なくとも３つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のパッケージのなかから、当該複数のパッケージのうち第１のパッケージと、当該複数のパッケージのうち第２のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、前記記憶手段のバンドルを、前記第１のパッケージおよび前記共通パッケージを少なくとも有する第１のバンドル、並びに前記第２のパッケージおよび前記共通パッケージを少なくとも有する第２のバンドルとして再構成するようになっていることを特徴とする。
【００３１】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のパッケージのなかから、複数のパッケージのうち第１のパッケージと、複数のパッケージのうち第２のパッケージとが共通に利用するパッケージが共通パッケージとして特定される。そして、記憶手段のバンドルが、第１のパッケージおよび共通パッケージを少なくとも有する第１のバンドル、並びに第２のパッケージおよび共通パッケージを少なくとも有する第２のバンドルとして再構成される。
〔発明１８〕
さらに、発明１８のバンドル再構成システムは、発明７ないし１７のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときは、前記バンドルを再構成するようになっていることを特徴とする。
【００３２】
このような構成であれば、ゲートウェイ端末では、記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続すると、バンドル再構成手段により、バンドルが再構成される。すなわち、記憶手段のメモリ使用率が所定値未満である場合、および記憶手段のメモリ使用率が所定値以上であってもその状態が所定期間継続しない場合は、バンドルに不要な部分が存在しても再構成は行われない。
〔発明１９〕
さらに、発明１９のバンドル再構成システムは、発明８ないし１８のいずれかのバンドル再構成システムにおいて、
前記バンドルは、さらに、前記コンポーネントに含まれるクラスを識別可能に登録したコンポーネント情報を有してなり、
前記バンドル再構成手段は、前記バンドルに含まれるコンポーネント情報に基づいて前記バンドルを再構成するようになっていることを特徴とする。
【００３３】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、バンドルに含まれるコンポーネント情報に基づいてバンドルが再構成される。
〔発明２０〕
さらに、発明２０のバンドル再構成システムは、発明７ないし１８のいずれかのバンドル再構成システムにおいて、
さらに、前記バンドルの再構成を代行するバンドル再構成代行端末を通信可能に接続し、
前記バンドル再構成代行端末は、前記バンドルを受信するバンドル受信手段と、前記バンドル受信手段で受信したバンドルを前記バンドル再構成手段と同一の手法により再構成する第２バンドル再構成手段と、前記第２バンドル再構成手段で再構成したバンドルを前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル再構成手段による再構成が困難であると判定したときは、再構成の対象となるバンドルを前記バンドル再構成代行端末に送信するようになっていることを特徴とする。
【００３４】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段による再構成が困難であると判定されると、再構成の対象となるバンドルがバンドル再構成代行端末に送信される。
バンドル再構成代行端末では、バンドル受信手段によりバンドルを受信すると、第２バンドル再構成手段により、受信したバンドルがバンドル再構成手段と同一の手法により再構成される。そして、バンドル送信手段により、再構成されたバンドルがゲートウェイ端末に送信される。
【００３５】
ゲートウェイ端末では、バンドルを受信すると、バンドル格納手段により、受信したバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。
ここで、バンドル再構成手段による再構成が困難である場合としては、例えば、ゲートウェイ端末での処理負荷が大きい場合、またはゲートウェイ端末のメモリ容量が不足している場合が含まれる。
〔発明２１〕
一方、上記目的を達成するために、発明２１のバンドル再構成プログラムは、
１または異なる複数の機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するプログラムであって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する１つのバンドルとして再構成する処理をコンピュータに実行させるためのプログラムであることを特徴とする。
【００３６】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明１のバンドル再構成システムと同等の作用が得られる。
〔発明２２〕
さらに、発明２２のバンドル再構成プログラムは、
少なくとも３つの機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するプログラムであって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部および前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部および前記共通機能部を少なくとも有する第２のバンドルとして再構成する処理をコンピュータに実行させるためのプログラムであることを特徴とする。
【００３７】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明２のバンドル再構成システムと同等の作用が得られる。
〔発明２３〕
一方、上記目的を達成するために、発明２３のバンドル再構成方法は、
１または異なる複数の機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成する方法であって、
少なくとも２つの前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルのうち第１のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第２のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第１のバンドルおよび前記第２のバンドルを、前記第１のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第２のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する１つのバンドルとして再構成することを特徴とする。
〔発明２４〕
さらに、発明２４のバンドル再構成方法は、
少なくとも３つの機能部を有しかつその実行により前記機能部を機能させてサービスを提供するバンドルを再構成する方法であって、
前記バンドルが記憶手段に格納されている場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第１の機能部と、当該複数の機能部のうち第２の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第１の機能部および前記共通機能部を少なくとも有する第１のバンドル、並びに前記第２の機能部および前記共通機能部を少なくとも有する第２のバンドルとして再構成することを特徴とする。
【００３８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図１ないし図２４は、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法の実施の形態を示す図である。
本実施の形態は、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、図１に示すように、ホームゲートウェイ２００において、バンドル管理サーバ１００から複数のバンドルを取得し、取得したバンドルをそのメモリ使用率に応じて再構成する場合について適用したものである。
〔１．本実施の形態の構成〕
〔１−１．システム構成の概要〕
まず、本発明を適用するネットワークシステムの構成を図１を参照しながら説明する。図１は、本発明を適用するネットワークシステムの構成を示すブロック図である。
【００３９】
インターネット１９９には、図１に示すように、バンドルを管理するバンドル管理サーバ１００と、複数のデバイス２１０〜２２０を通信可能に接続するホームゲートウェイ２００とが接続されている。なお、発明の理解を容易にするため、ホームゲートウェイ２００を１台しか図示していないが、実際には、複数のホームゲートウェイ２００がインターネット１９９に接続されている。
【００４０】
ホームゲートウェイ２００には、プリンタからなるデバイス２１０と、プロジェクタからなるデバイス２１２と、サウンドシステムからなるデバイス２１４と、ＰＣからなるデバイス２１６と、電子レンジからなるデバイス２１８と、その他のデバイス２２０とが接続されている。これらデバイス２１０〜２２０は、１人のユーザが所有するものであり、ホームゲートウェイ２００を介してインターネット１９９と情報の送受信を行うようになっている。
【００４１】
〔１−２−１．バンドル管理サーバの構成〕
次に、バンドル管理サーバ１００の構成を図２を参照しながら詳細に説明する。図２は、バンドル管理サーバ１００の構成を示すブロック図である。
バンドル管理サーバ１００は、図２に示すように、制御プログラムに基づいて演算およびシステム全体を制御するＣＰＵ３０と、所定領域にあらかじめＣＰＵ３０の制御プログラム等を格納しているＲＯＭ３２と、ＲＯＭ３２等から読み出したデータやＣＰＵ３０の演算過程で必要な演算結果を格納するためのＲＡＭ３４と、外部装置に対してデータの入出力を媒介するＩ／Ｆ３８とで構成されており、これらは、データを転送するための信号線であるバス３９で相互にかつデータ授受可能に接続されている。
【００４２】
Ｉ／Ｆ３８には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置４０と、データやテーブル等をファイルとして格納する記憶装置４２と、画像信号に基づいて画面を表示する表示装置４４と、インターネット１９９に接続するための信号線とが接続されている。
【００４３】
ＣＰＵ３０は、マイクロプロセッシングユニットＭＰＵ等からなり、ＲＯＭ３２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図３ないし図５のフローチャートに示すユーザ登録処理、ユーザ管理処理およびバンドル提供処理をそれぞれ時分割で実行するようになっている。
〔１−２−２．バンドル管理サーバの処理１〕
初めに、ユーザ登録処理を図３を参照しながら詳細に説明する。図３は、バンドル管理サーバ１００で実行するユーザ登録処理を示すフローチャートである。
【００４４】
ユーザ登録処理は、ユーザ登録要求に応じてユーザ情報を登録する処理であって、ＣＰＵ５０において実行されると、図３に示すように、まず、ステップＳ１００に移行するようになっている。
ステップＳ１００では、ユーザ登録要求をホームゲートウェイ２００から受信したか否かを判定し、ユーザ登録要求を受信したと判定したとき（Ｙｅｓ）は、ステップＳ１０２に移行するが、そうでないと判定したとき（Ｎｏ）は、ユーザ登録要求を受信するまでステップＳ１００で待機する。
【００４５】
ステップＳ１０２では、例えば、ユーザ名、パスワード、氏名、住所、性別、年齢、職業、所属グループ、提供を許可するサービスおよびホームゲートウェイ２００のアドレスを含むユーザ情報を受信し、ステップＳ１０４に移行して、受信したユーザ情報を記憶装置４２に登録し、一連の処理を終了して元の処理に復帰させる。
【００４６】
〔１−２−３．バンドル管理サーバの処理２〕
次に、ユーザ管理処理を図４を参照しながら詳細に説明する。図４は、バンドル管理サーバ１００で実行するユーザ管理処理を示すフローチャートである。
ユーザ管理処理は、管理要求に応じてユーザ情報の公開等を行う処理であって、ＣＰＵ５０において実行されると、図４に示すように、まず、ステップＳ１５０に移行するようになっている。
【００４７】
ステップＳ１５０では、ホームゲートウェイ２００から管理要求を受信したか否かを判定し、管理要求を受信したと判定したとき（Ｙｅｓ）は、ステップＳ１５２に移行するが、そうでないと判定したとき（Ｎｏ）は、管理要求を受信するまでステップＳ１５０で待機する。
ステップＳ１５２では、要求内容を判定し、ステップＳ１５４に移行して、判定結果に基づいて管理要求が適切なものであるか否かを判定し、管理要求が適切なものであると判定したとき（Ｙｅｓ）は、ステップＳ１５６に移行する。
【００４８】
ステップＳ１５６では、ユーザ認証処理を行い、ステップＳ１５８に移行して、認証結果に基づいてユーザ認証が得られたか否かを判定し、ユーザ認証が得られたと判定したとき（Ｙｅｓ）は、ステップＳ１６０に移行して、管理要求の内容に応じたそれぞれの処理を実行し、一連の処理を終了して元の処理に復帰させる。具体的に、ステップＳ１６０では、管理要求がユーザ情報の変更・更新を行うべき要求である場合は、ユーザ情報の変更・更新を行う。また、管理要求がユーザ情報を公開すべき要求である場合は、ユーザ情報を要求元に対して公開し、管理要求がホームゲートウェイ２００を公開すべき要求である場合は、ホームゲートウェイ２００を要求元に対して公開する。
【００４９】
一方、ステップＳ１５８で、ユーザ認証が得られないと判定したとき（Ｎｏ）は、ステップＳ１６２に移行して、エラー処理を実行し、ステップＳ１５０に移行する。
〔１−２−４．バンドル管理サーバの処理３〕
次に、バンドル提供処理を図５を参照しながら詳細に説明する。図５は、バンドル管理サーバ１００で実行するバンドル提供処理を示すフローチャートである。
【００５０】
バンドル提供処理は、バンドル取得要求に応じてバンドルをホームゲートウェイ２００に提供する処理であって、ＣＰＵ５０において実行されると、図５に示すように、まず、ステップＳ２００に移行するようになっている。
ステップＳ２００では、バンドル取得要求をホームゲートウェイ２００から受信したか否かを判定し、バンドル取得要求を受信したと判定したとき（Ｙｅｓ）は、ステップＳ２０２に移行するが、そうでないと判定したとき（Ｎｏ）は、バンドル取得要求を受信するまでステップＳ２００で待機する。
【００５１】
ステップＳ２０２では、バンドルを生成する。
バンドルのデータ構造を図６および図７を参照しながら詳細に説明する。図６および図７は、バンドルのデータ構造を示す図である。
バンドルには、図６に示すように、各デバイス２１０〜２２０に対応しかつそのデバイスを制御する制御バンドル４００と、制御バンドル４００を再構成するバンドル再構成バンドル４０２とがある。なお、バンドル再構成バンドル４０２の構成については後段で詳述する。
【００５２】
バンドル４００，４０２は、図７に示すように、複数のクラスを含むコンポーネント４１０と、コンポーネント４１０に含まれるクラスを識別可能に登録したコンポーネント情報４１２と、バンドル４００，４０２をコントロールするバンドルコントローラ４１４とを有して構成されている。その他、図示しないが、バンドル４００，４０２に含まれる複数のクラスの論理的結合を規定したパッケージを有している。
【００５３】
図８は、コンポーネント情報４１２のデータ構造を示す図である。
コンポーネント情報４１２には、図８に示すように、各コンポーネント４１０ごとにそのコンポーネント４１０に含まれるクラスのクラス名が登録されている。図８の例では、コンポーネントＡには、クラス１，２が含まれていることを、コンポーネントＢには、クラス３、クラス４、クラス５および初期化ファイル１が含まれていることをそれぞれ示している。
【００５４】
図９は、コンポーネント４１０のデータ構造を示す図である。
コンポーネント４１０は、図９に示すように、実行プログラムを含むクラス４２０と、クラス４２０に含まれる実行プログラムであるクラスメソッドを識別可能に登録したクラス情報４２２と、コンポーネント４１０を制御する実行プログラムを含むコンポーネント制御クラス４２４とを有して構成されている。
【００５５】
図１０は、クラス情報４２２のデータ構造を示す図である。
クラス情報４２２には、図１０に示すように、各クラス４２０ごとにそのクラス４２０に含まれるクラスメソッドのメソッド名が登録されている。図１０の例では、クラスＡには、クラスメソッド１，２が含まれていることを、クラスＢには、クラスメソッド３、クラスメソッド４、クラスメソッド５および初期化ファイルが含まれていることをそれぞれ示している。
【００５６】
図５に戻り、次いで、ステップＳ２０２に移行して、生成したバンドル４００，４０２をホームゲートウェイ２００に送信し、ステップＳ２０６に移行して、バンドル４００，４０２を正常に適用したことを示すバンドル適用通知をホームゲートウェイ２００から受信したか否かを判定し、バンドル適用通知を受信したと判定したとき（Ｙｅｓ）は、一連の処理を終了して元の処理に復帰させる。
【００５７】
一方、ステップＳ２０６で、バンドル適用通知を受信しないと判定したとき（Ｎｏ）は、バンドル適用通知を受信するまでステップＳ２０６で待機する。
〔１−３−１．ホームゲートウェイの構成〕
次に、ホームゲートウェイ２００の構成を図１１を参照しながら詳細に説明する。図１１は、ホームゲートウェイ２００の構成を示すブロック図である。
【００５８】
ホームゲートウェイ２００は、図１１に示すように、制御プログラムに基づいて演算およびシステム全体を制御するＣＰＵ５０と、所定領域にあらかじめＣＰＵ５０の制御プログラム等を格納しているＲＯＭ５２と、ＲＯＭ５２等から読み出したデータやＣＰＵ５０の演算過程で必要な演算結果を格納するためのＲＡＭ５４と、外部装置に対してデータの入出力を媒介するＩ／Ｆ５８とで構成されており、これらは、データを転送するための信号線であるバス５９で相互にかつデータ授受可能に接続されている。
【００５９】
Ｉ／Ｆ５８には、外部装置として、デバイス２１０〜２２０と、インターネット１９９に接続するための信号線とが接続されている。
ＣＰＵ５０は、マイクロプロセッシングユニットＭＰＵ等からなり、ＲＯＭ５２の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図１２のフローチャートに示すバンドル取得処理を実行するようになっている。
【００６０】
〔１−３−２．ホームゲートウェイの処理１〕
初めに、バンドル取得処理を図１２を参照しながら詳細に説明する。図１２は、ホームゲートウェイ２００で実行するバンドル取得処理を示すフローチャートである。
バンドル取得処理は、バンドル４００，４０２をバンドル管理サーバ１００から取得する処理であって、ＣＰＵ５０において実行されると、図１２に示すように、まず、ステップＳ３００に移行するようになっている。
【００６１】
ステップＳ３００では、バンドル４００，４０２を取得すべきことがユーザにより要求されたか否かを判定し、バンドル４００，４０２の取得が要求されたと判定したとき（Ｙｅｓ）は、ステップＳ３０２に移行するが、そうでないと判定したとき（Ｎｏ）は、バンドル４００，４０２の取得が要求されるまでステップＳ３００で待機する。
【００６２】
ステップＳ３０２では、バンドル取得要求をバンドル管理サーバ１００に送信し、ステップＳ３０４に移行して、バンドル４００，４０２をバンドル管理サーバ１００から受信したか否かを判定し、バンドル４００，４０２を受信したと判定したとき（Ｙｅｓ）は、ステップＳ３０６に移行する。
ステップＳ３０６では、受信したバンドル４００，４０２をＲＡＭ５４に格納し、ステップＳ３０８に移行して、ＲＡＭ５４のバンドル４００，４０２を実行させ、ステップＳ３１０に移行して、バンドル適用通知をバンドル管理サーバ１００に送信し、一連の処理を終了して元の処理に復帰させる。
【００６３】
一方、ステップＳ３０４で、バンドル４００，４０２をバンドル管理サーバ１００から受信しないと判定したとき（Ｎｏ）は、バンドル４００，４０２を受信するまでステップＳ３０４で待機する。
〔１−３−３．バンドル再構成バンドルの構成〕
次に、バンドル再構成バンドル４０２の構成を説明する。
バンドル再構成バンドル４０２は、複数の制御バンドル４００を１つの制御バンドル４００に結合することにより再構成するバンドル結合処理と、結合した制御バンドル４００を複数の制御バンドル４００に分離することにより再構成するバンドル分離処理とを実行するためのプログラムを含んで構成されている。
【００６４】
〔１−３−４．ホームゲートウェイの処理２〕
次に、バンドル結合処理を図１３を参照しながら詳細に説明する。図１３は、バンドル結合処理を示すフローチャートである。
バンドル結合処理は、ＣＰＵ５０において実行されると、図１３に示すように、まず、ステップＳ４００に移行するようになっている。
【００６５】
ステップＳ４００では、ＲＡＭ５４のメモリ使用率が所定値（例えば、８０％）以上であるか否かを判定し、ＲＡＭ５４のメモリ使用率が所定値以上であると判定したとき（Ｙｅｓ）は、ステップＳ４０２に移行する。
ステップＳ４０２では、タイマがセットされているか否かを判定し、タイマがセットされていないと判定したとき（Ｎｏ）は、ステップＳ４０４に移行して、タイマをセットし、ステップＳ４０６に移行して、タイマをセットしてから所定時間（例えば、３時間）が経過したか否かを判定し、所定時間が経過したと判定したとき（Ｙｅｓ）は、ステップＳ４０８に移行する。
【００６６】
ステップＳ４０８では、タイマを停止させ、ステップＳ４１０に移行して、ＲＡＭ５４のなかから結合可能な制御バンドル４００を検索する。具体的に、ステップＳ４１０では、検索対象となる一方の制御バンドル４００に含まれるクラス、コンポーネントおよびパッケージと、検索対象となる他方の制御バンドル４００に含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージが存在するか否かを判定し、存在すると判定したときは、それら制御バンドル４００を結合可能な制御バンドル４００として索出する。
【００６７】
次いで、ステップＳ４１２に移行して、検索により該当の制御バンドル４００が索出されたか否かを判定し、該当の制御バンドル４００が索出されたと判定したとき（Ｙｅｓ）は、ステップＳ４１４に移行する。
ステップＳ４１４では、索出した一方の制御バンドル４００（以下、制御バンドルａという。）に含まれるパッケージと、索出した他方の制御バンドル４００（以下、制御バンドルｂという。）に含まれるパッケージとを対比してそれらに共通するパッケージを共通パッケージとして特定し、ステップＳ４１６に移行して、制御バンドルａに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルｂに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを制御バンドルａ，ｂから抽出し、ステップＳ４１８に移行する。
【００６８】
ステップＳ４１８では、制御バンドルａに含まれるコンポーネントと、制御バンドルｂに含まれるコンポーネントとを対比してそれらに共通するコンポーネントを共通コンポーネントとして特定し、ステップＳ４２０に移行して、制御バンドルａに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルｂに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを制御バンドルａ，ｂから抽出し、ステップＳ４２２に移行する。
【００６９】
ステップＳ４２２では、制御バンドルａ，ｂに含まれるコンポーネント情報４１２に基づいて、制御バンドルａに含まれるクラスと、制御バンドルｂに含まれるクラスとを対比してそれらクラスに共通するクラスを共通クラスとして特定し、ステップＳ４２４に移行する。
ステップＳ４２４では、制御バンドルａ，ｂに含まれるクラス情報４２２に基づいて、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致しているか否かを判定し、クラスメソッドが完全一致していると判定したとき（Ｙｅｓ）は、ステップＳ４２６に移行して、制御バンドルａに含まれるクラスのうち共通クラス以外のもの、制御バンドルｂに含まれるクラスのうち共通クラス以外のもの、および共通クラスを制御バンドルａ，ｂから抽出し、ステップＳ４２８に移行する。
【００７０】
ステップＳ４２８では、抽出したパッケージ、コンポーネントおよびクラス（クラスメソッドを含む。）の一覧を表示し、ステップＳ４３０に移行して、表示したパッケージ、コンポーネントおよびクラスのなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドがユーザにより指定されたか否かを判定し、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されたと判定したとき（Ｙｅｓ）は、ステップＳ４３２に移行して、抽出したパッケージ、コンポーネントおよびクラスのうち指定のされたものを削除し、ステップＳ４３４に移行する。
【００７１】
ステップＳ４３４では、抽出したパッケージ、コンポーネントおよびクラスをもとに、制御バンドルａ，ｂを１つの制御バンドル４００として再構成し、ステップＳ４３６に移行して、制御バンドルａ，ｂをＲＡＭ５４上から削除し、一連の処理を終了して元の処理に復帰させる。
一方、ステップＳ４３０で、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されないと判定したとき（Ｎｏ）は、ステップＳ４３４に移行する。
【００７２】
一方、ステップＳ４２４で、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致していないと判定したとき（Ｎｏ）は、ステップＳ４３８に移行して、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、制御バンドルａの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルｂの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスを新たな共通クラスとして構成し、ステップＳ４２８に移行する。
【００７３】
一方、ステップＳ４１２で、検索により該当の制御バンドル４００が索出されないと判定したとき（Ｎｏ）は、一連の処理を終了して元の処理に復帰させる。
一方、ステップＳ４０６で、タイマをセットしてから所定時間が経過しないと判定したとき（Ｎｏ）は、ステップＳ４００に移行する。
一方、ステップＳ４０２で、タイマがセットされていると判定したとき（Ｙｅｓ）は、ステップＳ４０６に移行する。
【００７４】
一方、ステップＳ４００で、ＲＡＭ５４のメモリ使用率が所定値未満であると判定したとき（Ｎｏ）は、ステップＳ４４０に移行して、タイマがセットされているか否かを判定し、タイマがセットされていると判定したとき（Ｙｅｓ）は、ステップＳ４４２に移行して、タイマを停止させ、ステップＳ４００に移行する。
一方、ステップＳ４４０で、タイマがセットされていないと判定したとき（Ｎｏ）は、ステップＳ４００に移行する。
【００７５】
〔１−３−５．ホームゲートウェイの処理３〕
次に、バンドル分離処理を図１４を参照しながら詳細に説明する。図１４は、バンドル分離処理を示すフローチャートである。
バンドル分離処理は、ＣＰＵ５０において実行されると、図１４に示すように、まず、ステップＳ５００に移行するようになっている。
【００７６】
ステップＳ５００では、再構成した制御バンドル４００を分離すべきことがユーザにより要求されたか否かを判定し、制御バンドル４００の分離が要求されたと判定したとき（Ｙｅｓ）は、ステップＳ５０２に移行するが、そうでないと判定したとき（Ｎｏ）は、制御バンドル４００の分離が要求されるまでステップＳ５００で待機する。
【００７７】
ステップＳ５０２では、再構成により結合した制御バンドル４００を分離可能な制御バンドル４００としてＲＡＭ５４のなかから検索し、ステップＳ５０４に移行して、検索により該当の制御バンドル４００が索出されたか否かを判定し、該当の制御バンドル４００が索出されたと判定したとき（Ｙｅｓ）は、ステップＳ５０６に移行する。
【００７８】
ステップＳ５０６では、索出された制御バンドル４００（以下、制御バンドルｃという。）のなかから共通パッケージを特定し、ステップＳ５０８に移行して、共通パッケージを含むすべてのパッケージを制御バンドルｃから抽出し、ステップＳ５１０に移行する。
ステップＳ５１０では、制御バンドルｃのなかから共通コンポーネントを特定し、ステップＳ５１２に移行して、共通コンポーネントを含むすべてのコンポーネントを制御バンドルｃから抽出し、ステップＳ５１４に移行する。
【００７９】
ステップＳ５１４では、制御バンドルｃに含まれるコンポーネント情報４１２に基づいて制御バンドルｃのなかから共通クラスを特定し、ステップＳ５１６に移行して、共通クラスを含むすべてのクラスを制御バンドルｃから抽出し、ステップＳ５１８に移行する。
ステップＳ５１８では、抽出したパッケージ、コンポーネントおよびクラス（クラスメソッドを含む。）の一覧を表示し、ステップＳ５２０に移行して、表示したパッケージ、コンポーネントおよびクラスのなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドがユーザにより指定されたか否かを判定し、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されたと判定したとき（Ｙｅｓ）は、ステップＳ５２２に移行して、抽出したパッケージ、コンポーネントおよびクラスのうち指定のされたものを削除し、ステップＳ５２４に移行する。
【００８０】
ステップＳ５２４では、抽出したパッケージ、コンポーネントおよびクラスのなかで、分離後の制御バンドル４００を再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足しているか否かを判定し、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足していると判定したとき（Ｙｅｓ）は、ステップＳ５２６に移行して、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドで不足しているものをバンドル管理サーバ１００から取得し、ステップＳ５２８に移行する。
【００８１】
ステップＳ５２８では、抽出したパッケージ、コンポーネントおよびクラス、並びに取得したパッケージ、コンポーネントおよびクラスをもとに、制御バンドルｃを結合前の複数の制御バンドル４００として再構成し、ステップＳ５３０に移行して、制御バンドルｃをＲＡＭ５４上から削除し、一連の処理を終了して元の処理に復帰させる。
【００８２】
一方、ステップＳ５２４で、分離後の制御バンドル４００を再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足していないと判定したとき（Ｎｏ）は、ステップＳ５２８に移行する。
一方、ステップＳ５２０で、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されないと判定したとき（Ｎｏ）は、ステップＳ５２４に移行する。
【００８３】
一方、ステップＳ５０４で、検索により該当の制御バンドル４００が索出されないと判定したとき（Ｎｏ）は、一連の処理を終了して元の処理に復帰させる。
〔２．本実施の形態の動作〕
次に、上記実施の形態の動作を説明する。
まず、ホームゲートウェイ２００において各デバイス２１０〜２２０に対応した制御バンドル４００を取得する場合を説明する。
【００８４】
制御バンドル４００を取得するには、ホームゲートウェイ２００において、ユーザは、制御バンドル４００の取得を要求する。ホームゲートウェイ２００では、制御バンドル４００の取得が要求されると、ステップＳ３００，Ｓ３０２を経て、バンドル取得要求がバンドル管理サーバ１００に送信される。
バンドル管理サーバ１００では、バンドル取得要求を受信すると、ステップＳ２００〜Ｓ２０４を経て、バンドル取得要求に係る制御バンドル４００が生成され、生成された制御バンドル４００がホームゲートウェイ２００に送信される。
【００８５】
ホームゲートウェイ２００では、制御バンドル４００を受信すると、ステップＳ３０４〜Ｓ３１０を経て、受信した制御バンドル４００がＲＡＭ５４に格納され、ＲＡＭ５４の制御バンドル４００が実行される。これにより、対応するデバイス２１０〜２２０が適切に制御されることとなる。例えば、プリンタであるデバイス２１０に対応した制御バンドル４００であれば、デバイス２１０により良好な印刷結果が得られるようになる。
【００８６】
また、バンドル再構成バンドル４０２を取得するには、ホームゲートウェイ２００において、ユーザは、バンドル再構成バンドル４０２の取得を要求する。ホームゲートウェイ２００では、バンドル再構成バンドル４０２の取得が要求されると、ステップＳ３００，Ｓ３０２を経て、バンドル取得要求がバンドル管理サーバ１００に送信される。
【００８７】
バンドル管理サーバ１００では、バンドル取得要求を受信すると、ステップＳ２００〜Ｓ２０４を経て、バンドル再構成バンドル４０２が生成され、生成されたバンドル再構成バンドル４０２がホームゲートウェイ２００に送信される。
ホームゲートウェイ２００では、バンドル再構成バンドル４０２を受信すると、ステップＳ３０４〜Ｓ３１０を経て、受信したバンドル再構成バンドル４０２がＲＡＭ５４に格納され、ＲＡＭ５４のバンドル再構成バンドル４０２が実行される。これにより、バンドル結合処理およびバンドル分離処理がそれぞれ時分割で実行される。
【００８８】
次に、複数の制御バンドル４００を１つの制御バンドル４００に結合する場合を説明する。
ホームゲートウェイ２００では、バンドル再構成バンドル４０２が取得されると、バンドル結合処理が実行される。バンドル結合処理では、ＲＡＭ５４のメモリ使用率が所定値（例えば、８０％）以上となり、かつ、その状態が所定期間（例えば、３時間）継続すると、ステップＳ４１０を経て、ＲＡＭ５４のなかから結合可能な制御バンドル４００が検索される。その結果、該当の制御バンドル４００が索出されると、ステップＳ４１４，Ｓ４１６を経て、制御バンドルａに含まれるパッケージと、制御バンドルｂに含まれるパッケージとが対比されて共通パッケージが特定され、制御バンドルａに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルｂに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージが制御バンドルａ，ｂから抽出される。
【００８９】
次いで、ステップＳ４１８，Ｓ４２０を経て、制御バンドルａに含まれるコンポーネントと、制御バンドルｂに含まれるコンポーネントとが対比されて共通コンポーネントが特定され、制御バンドルａに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルｂに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントが制御バンドルａ，ｂから抽出される。
【００９０】
次いで、ステップＳ４２２を経て、制御バンドルａ，ｂに含まれるコンポーネント情報４１２に基づいて、制御バンドルａに含まれるクラスと、制御バンドルｂに含まれるクラスとが対比されて共通クラスが特定される。このとき、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致していると、ステップＳ４２４，Ｓ４２６を経て、制御バンドルａに含まれるクラスのうち共通クラス以外のもの、制御バンドルｂに含まれるクラスのうち共通クラス以外のもの、および共通クラスが制御バンドルａ，ｂから抽出される。
【００９１】
次いで、ステップＳ４２８を経て、抽出されたパッケージ、コンポーネントおよびクラス（クラスメソッドを含む。）の一覧が表示される。ここで、ホームゲートウェイ２００のユーザが、表示された一覧のなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドを指定すると、ステップＳ４３２を経て、抽出されたパッケージ、コンポーネントおよびクラスのうち指定のされたものが削除される。なお、削除されたパッケージ、コンポーネントおよびクラスは、結合後に分離可能となるように、それらの名称等の識別情報を削除項目ファイル等に記述して、結合後の制御バンドル４００に内包する。
【００９２】
そして、ステップＳ４３４，Ｓ４３６を経て、抽出されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルａ，ｂが１つの制御バンドル４００として再構成され、制御バンドルａ，ｂがＲＡＭ５４上から削除される。
なお、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致しない場合には、ステップＳ４３８を経て、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが対比されて共通クラスメソッドが特定され、制御バンドルａの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルｂの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスが新たな共通クラスとして構成される。
【００９３】
制御バンドル４００の結合例を図面を参照しながら説明する。
図１５は、制御バンドル４００を結合する第１のパターンを示す図である。
図１５の例では、制御バンドルＡは、プリンタであるデバイス２１０のインク残量を監視するインク残量監視バンドルであり、制御バンドルＡにより、デバイス２１０のインク残量が監視される。また、制御バンドルＢは、デバイス２１０の紙残量を監視する紙残量監視バンドルであり、制御バンドルＢにより、デバイス２１０の紙残量が監視される。また、制御バンドルＡ，Ｂには、デバイス２１０のステータスを監視するプリンタステータス監視コンポーネントが共通に含まれている。
【００９４】
したがって、ＲＡＭ５４のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルＡ，Ｂが結合可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルＡ，Ｂは、プリンタステータス監視コンポーネントの重複を排除した制御バンドルＣとして再構成される。すなわち、制御バンドルＣは、制御バンドルＡに含まれるコンポーネントのうちプリンタステータス監視コンポーネント以外のもの、制御バンドルＢに含まれるコンポーネントのうちプリンタステータス監視コンポーネント以外のもの、およびプリンタステータス監視コンポーネントを有している。この結合により、プリンタステータス監視コンポーネント１つ分のメモリ容量を低減することができる。
【００９５】
図１６は、制御バンドル４００を結合する第２のパターンを示す図である。
図１５の例では、制御バンドルＡ，Ｂを一つの制御バンドルＣとして再構成したが、制御バンドルＣが有するクラス、コンポーネントおよびパッケージを提供可能な制御バンドルＤを生成する。さらに、制御バンドルＤに含まれるクラス、コンポーネントおよびパッケージのうち制御バンドルＡを機能させるのに必要なものを参照する制御バンドルＡ’と、制御バンドルＤに含まれるクラス、コンポーネントおよびパッケージのうち制御バンドルＢを機能させるのに必要なものを参照する制御バンドルＢ’とを生成する。この場合、制御バンドルＡ’，Ｂ’には、クラス、コンポーネントおよびパッケージに代えてそれらを参照する参照情報が含まれている。このように、制御バンドルＤをライブラリのように構成すれば、制御バンドルＤに含まれるクラス、コンポーネントおよびパッケージを利用する他の制御バンドルが適用された場合は、同様にして、制御バンドルＤに含まれるクラス、コンポーネントおよびパッケージのうちその制御バンドルを機能させるのに必要なものを参照する制御バンドルとして再構成することができる。したがって、メモリ容量の低減を効果的に行うことができる。
【００９６】
図１７は、制御バンドル４００を結合する第３のパターンを示す図である。
図１７の例では、制御バンドルＡは、クラス等（クラスメソッド、クラス、コンポーネントまたはパッケージをいう。）４５０，４５２，４５４を有して構成されている。また、制御バンドルＢは、クラス等４５０，４５６，４５８を有して構成されている。ここで、同一の符合は、同一内容のクラス等であることを示す。
【００９７】
したがって、ＲＡＭ５４のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルＡ，Ｂが結合可能な制御バンドルとして索出され、クラス等４５０が共通クラス等（共通クラス、共通コンポーネントまたは共通パッケージ等をいう。）として特定される。また、ホームゲートウェイ２００のユーザにより、制御バンドルＡについてはクラス等４５２が、制御バンドルＢについてはクラス等４５６がそれぞれ不要なクラス等として指定されると、クラス等４５２，４５６が削除され、制御バンドルＡ，Ｂは、クラス等４５０，４５４，４５８を有する制御バンドルＣとして再構成される。
【００９８】
図１８は、制御バンドル４００を結合する第４のパターンを示す図である。
図１８は、制御バンドルＡの共通クラスに含まれるクラスメソッドと、制御バンドルＢの共通クラスに含まれるクラスメソッドとが完全一致していない場合に制御バンドルＡ，Ｂを結合する例を示している。図１８の例では、制御バンドルＡ，Ｂには共通クラスとしてクラスＱが含まれているが、制御バンドルＡのクラスＱには、クラスメソッドＸ，Ｙが、制御バンドルＢのクラスＱには、クラスメソッドＸ，Ｚがそれぞれ含まれており、制御バンドルＡ，Ｂのクラスメソッドが完全一致してない。
【００９９】
したがって、ＲＡＭ５４のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルＡ，Ｂが結合可能な制御バンドルとして索出され、クラスＱが共通クラスとして特定される。このとき、制御バンドルＡのクラスＱに含まれるクラスメソッドと、制御バンドルＢのクラスＱに含まれるクラスメソッドとが完全一致していないので、クラスメソッドＸが共通クラスとして特定され、クラスメソッドＸ，Ｙ，Ｚを有するクラスが新たな共通クラスＱとして構成される。そして、制御バンドルＡ，Ｂは、新たな共通クラスＱを有する制御バンドルＣとして再構成される。これにより、制御バンドルＣのうち制御バンドルＡの機能に係る部分も、制御バンドルＣのうち制御バンドルＢの機能に係る部分も不具合なく動作することができる。
【０１００】
図１９は、制御バンドル４００を結合する第５のパターンを示す図である。
図１９は、図１８の例と同様に、制御バンドルＡの共通クラスに含まれるクラスメソッドと、制御バンドルＢの共通クラスに含まれるクラスメソッドとが完全一致していない場合に制御バンドルＡ，Ｂを結合する例を示しており、図１８の場合と異なるのは、結合の際に不要なクラスメソッドを削除する点にある。図１８の例では、制御バンドルＡ，Ｂには共通クラスとしてクラスＱが含まれているが、制御バンドルＡのクラスＱには、クラスメソッドＸ，Ｙ，αが、制御バンドルＢのクラスＱには、クラスメソッドＸ，Ｚ，βがそれぞれ含まれている。
【０１０１】
したがって、ＲＡＭ５４のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルＡ，Ｂが結合可能な制御バンドルとして索出され、クラスＱが共通クラスとして特定される。このとき、制御バンドルＡのクラスＱに含まれるクラスメソッドと、制御バンドルＢのクラスＱに含まれるクラスメソッドとが完全一致していないので、クラスメソッドＸが共通クラスとして特定され、クラスメソッドＸ，Ｙ，Ｚを有するクラスが新たな共通クラスＱとして構成される。また、ホームゲートウェイ２００のユーザにより、制御バンドルＡについてはクラスメソッドＹが、制御バンドルＢについてはクラスメソッドＺがそれぞれ不要なクラスメソッドとして指定されると、クラスメソッドＹ，Ｚが削除され、制御バンドルＡ，Ｂは、クラスメソッドＸ，α，βを有する制御バンドルＣとして再構成される。これにより、制御バンドルＣのうち制御バンドルＡの機能に係る部分も、制御バンドルＣのうち制御バンドルＢの機能に係る部分も不具合なく動作することができるとともに、不要なクラスメソッドＸ，Ｙが削除されるので、メモリ容量の低減を効果的に行うことができる。
【０１０２】
次に、結合した制御バンドル４００を複数の制御バンドル４００に分離する場合を説明する。
ホームゲートウェイ２００では、バンドル再構成バンドル４０２が取得されると、バンドル分離処理が実行される。バンドル分離処理では、ホームゲートウェイ２００のユーザにより制御バンドル４００の分離が要求されると、ステップＳ５０２を経て、ＲＡＭ５４のなかから分離可能な制御バンドル４００が検索される。その結果、該当の制御バンドル４００が索出されると、ステップＳ５０６，Ｓ５０８を経て、制御バンドルｃのなかから共通パッケージが特定され、共通パッケージを含むすべてのパッケージが制御バンドルｃから抽出される。
【０１０３】
次いで、ステップＳ５１０，Ｓ５１２を経て、制御バンドルｃのなかから共通コンポーネントが特定され、共通コンポーネントを含むすべてのコンポーネントが制御バンドルｃから抽出される。
次いで、ステップＳ５１４，Ｓ５１６を経て、制御バンドルｃに含まれるコンポーネント情報４１２に基づいて制御バンドルｃのなかから共通クラスが特定され、共通クラスを含むすべてのクラスが制御バンドルｃから抽出される。
【０１０４】
次いで、ステップＳ５１８を経て、抽出されたパッケージ、コンポーネントおよびクラス（クラスメソッドを含む。）の一覧が表示される。ここで、ホームゲートウェイ２００のユーザが、表示された一覧のなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドを指定すると、ステップＳ５２２を経て、抽出されたパッケージ、コンポーネントおよびクラスのうち指定のされたものが削除される。
【０１０５】
そして、ステップＳ５２８，Ｓ５３０を経て、抽出されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルｃが結合前の制御バンドルａ，ｂとして再構成され、制御バンドルｃがＲＡＭ５４上から削除される。
なお、制御バンドルａ，ｂを再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足している場合には、ステップＳ５２６，Ｓ５２８を経て、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドで不足しているものがバンドル管理サーバ１００から取得され、抽出されたパッケージ、コンポーネントおよびクラス、並びに取得されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルｃが結合前の制御バンドルａ，ｂとして再構成される。
【０１０６】
制御バンドル４００の分離例を図面を参照しながら説明する。
図２０は、制御バンドル４００を分離する第１のパターンを示す図である。
図２０は、図１５の例により結合した制御バンドルＣを元の制御バンドルＡ，Ｂに分離する場合を示している。図２０の例では、ユーザにより制御バンドル４００の分離が要求されると、制御バンドルＣが分離可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルＣは、プリンタステータス監視コンポーネントをそれぞれ有する元の制御バンドルＡ，Ｂとして再構成される。
【０１０７】
図２１は、制御バンドル４００を分離する第２のパターンを示す図である。
図２１は、図１６の例により結合した制御バンドルＤ，Ａ’，Ｂ’を元の制御バンドルＡ，Ｂに分離する場合を示している。図２１の例では、ユーザにより制御バンドル４００の分離が要求されると、制御バンドルＤ，Ａ’，Ｂ’が分離可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルＤ，Ａ’，Ｂ’は、プリンタステータス監視コンポーネントをそれぞれ有する元の制御バンドルＡ，Ｂとして再構成される。
【０１０８】
図２２は、制御バンドル４００を分離する第３のパターンを示す図である。
図２２は、図１７の例により結合した制御バンドルＣを元の制御バンドルＡ，Ｂに分離する場合を示している。図２２の例では、ユーザにより制御バンドル４００の分離が要求されると、制御バンドルＣが分離可能な制御バンドルとして索出され、クラス等４５０が共通クラスとして特定される。しかし、制御バンドルＣには、制御バンドルＡ，Ｂを再構成するにあたってクラス等４５２，４５６が不足しているので、クラス等４５２，４５６がバンドル管理サーバ１００から取得される。そして、制御バンドルＣは、クラス等４５０，４５２，４５４を有する元の制御バンドルＡ、およびクラス等４５０，４５６，４５８を有する元の制御バンドルＢとして再構成される。
【０１０９】
図２３は、制御バンドル４００を分離する第４のパターンを示す図である。
図２３は、図１８の例により結合した制御バンドルＣを元の制御バンドルＡ，Ｂに分離する場合を示している。図２３の例では、ユーザにより制御バンドル４００の分離が要求されると、制御バンドルＣが分離可能な制御バンドルとして索出され、クラスＱが共通クラスとして特定される。そして、制御バンドルＣは、クラスメソッドＸ，Ｙを含むクラスＱを有する元の制御バンドルＡ、およびクラスメソッドＸ，Ｙを含むクラスＱを有する元の制御バンドルＢとして再構成される。
【０１１０】
図２４は、制御バンドル４００を分離する第５のパターンを示す図である。
図２４は、図１９の例により結合した制御バンドルＣを元の制御バンドルＡ，Ｂに分離する場合を示している。図２４の例では、ユーザにより制御バンドル４００の分離が要求されると、制御バンドルＣが分離可能な制御バンドルとして索出され、クラスＱが共通クラスとして特定される。しかし、制御バンドルＣには、制御バンドルＡ，Ｂを再構成するにあたってクラスメソッドＹ，Ｚが不足しているので、クラスメソッドＹ，Ｚがバンドル管理サーバ１００から取得される。そして、制御バンドルＣは、クラスメソッドＸ，Ｙ，αを有する元の制御バンドルＡ、およびクラスメソッドＸ，Ｚ，βを有する元の制御バンドルＢとして再構成される。
【０１１１】
一方、ホームゲートウェイ２００のユーザは、バンドル４００，４０２の提供を受けるためには、バンドル管理サーバ１００に対してあらかじめユーザ登録を行っておくことが望ましい。
ユーザ登録を行う場合、ホームゲートウェイ２００において、ユーザは、例えば、ユーザ名、パスワード、氏名、住所、性別、年齢、職業、所属グループ、提供を許可するサービスおよびホームゲートウェイ２００のアドレスを含むユーザ情報を入力する。ユーザ情報が入力されると、入力されたユーザ情報がユーザ登録要求とともにバンドル管理サーバ１００に送信する。
【０１１２】
バンドル管理サーバ１００では、ユーザ登録要求を受信すると、ステップＳ１００〜Ｓ１０４を経て、ユーザ情報を受信し、受信したユーザ情報が記憶装置４２に登録される。
また、ユーザ情報の変更・更新、またはユーザ情報若しくはホームゲートウェイ２００の公開を行うこともできる。
【０１１３】
これらを行う場合、ホームゲートウェイ２００において、ユーザは、バンドル管理サーバ１００に管理要求を送信する。
バンドル管理サーバ１００では、管理要求を受信すると、ステップＳ１５０〜Ｓ１５６を経て、要求内容が判定され、管理要求が適切なものであれば、ユーザ認証処理が行われる。その結果、ユーザ認証が得られると、ステップＳ１５８，Ｓ１６０を経て、管理要求の内容に応じたそれぞれの処理が実行される。すなわち、ユーザ情報の変更・更新に係る管理要求であれば、ユーザ情報の変更・更新が行われ、ユーザ情報またはホームゲートウェイ２００の公開に係る管理要求であれば、ユーザ情報またはホームゲートウェイ２００が要求元に対して公開される。
〔３．本実施の形態の効果〕
〔３−１．効果１〕
このようにして、本実施の形態では、制御バンドルａに含まれるクラス、コンポーネントおよびパッケージと、制御バンドルｂに含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージをそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定し、共通クラス、共通コンポーネントおよび共通パッケージが重複しないように、制御バンドルａおよび制御バンドルｂを１つの制御バンドル４００として再構成するようになっている。
【０１１４】
これにより、共通クラス、共通コンポーネントおよび共通パッケージの重複を排除して制御バンドル４００が再構成されるので、従来に比して、ホームゲートウェイ２００においてメモリの利用効率を向上することができる。ここで、メモリの利用効率には、ＲＡＭ５４の利用効率だけでなく、ホームゲートウェイ２００にＨＤＤ等の記憶装置を設けた場合には、制御バンドル４００が記憶装置にも格納されるので記憶装置の利用効率も含まれる。以下、同じ。
【０１１５】
〔３−２．効果２〕
さらに、本実施の形態では、制御バンドルａおよび制御バンドルｂを、制御バンドルａに含まれるクラスのうち共通クラス以外のもの、制御バンドルｂに含まれるクラスのうち共通クラス以外のもの、および共通クラスを有する１つの制御バンドル４００として再構成するようになっている。
【０１１６】
これにより、共通クラスの重複を積極的に排除して制御バンドル４００が再構成されるので、メモリの利用効率をさらに向上することができる。
〔３−３．効果３〕
さらに、本実施の形態では、制御バンドルａおよび制御バンドルｂを、制御バンドルａに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルｂに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを有する１つの制御バンドル４００として再構成するようになっている。
【０１１７】
これにより、共通コンポーネントの重複を積極的に排除して制御バンドル４００が再構成されるので、メモリの利用効率をさらに向上することができる。
〔３−４．効果４〕
さらに、本実施の形態では、制御バンドルａおよび制御バンドルｂを、制御バンドルａに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルｂに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを有する１つの制御バンドル４００として再構成するようになっている。
【０１１８】
これにより、共通パッケージの重複を積極的に排除して制御バンドル４００が再構成されるので、メモリの利用効率をさらに向上することができる。
〔３−５．効果５〕
さらに、本実施の形態では、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致していないときは、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、制御バンドルａの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルｂの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスを共通クラスとして構成するようになっている。
【０１１９】
これにより、制御バンドルａの共通クラスに含まれるクラスメソッドと、制御バンドルｂの共通クラスに含まれるクラスメソッドとが完全一致していない場合に、制御バンドル４００を結合して再構成を行った後に不具合が生じる可能性を低減することができる。
〔３−６．効果６〕
さらに、本実施の形態では、制御バンドルａに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、制御バンドルａおよび制御バンドルｂを、不要クラス、不要コンポーネントおよび不要パッケージを有しない１つの制御バンドル４００として再構成するようになっている。
【０１２０】
これにより、制御バンドル４００を結合して再構成するにあたって、制御バンドルａに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができる。
〔３−７．効果７〕
さらに、本実施の形態では、制御バンドルｂに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、制御バンドルａおよび制御バンドルｂを、不要クラス、不要コンポーネントおよび不要パッケージを有しない１つの制御バンドル４００として再構成するようになっている。
【０１２１】
これにより、制御バンドル４００を結合して再構成するにあたって、制御バンドルａおよび制御バンドルｂに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができる。
〔３−８．効果８〕
さらに、本実施の形態では、ＲＡＭ５４の制御バンドル４００に含まれる複数のクラスのなかから、複数のクラスのうち第１のクラスと、複数のクラスのうち第２のクラスとが共通に利用するクラスを共通クラスとして特定し、ＲＡＭ５４の制御バンドル４００を、第１のクラスおよび共通クラスを少なくとも有する制御バンドルａ、並びに第２のクラスおよび共通クラスを少なくとも有する制御バンドルｂとして再構成するようになっている。
【０１２２】
これにより、制御バンドル４００を分離して機能的に不要なものを削除することにより制御バンドル４００の整理を行えば、不要なクラスを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔３−９．効果９〕
さらに、本実施の形態では、ＲＡＭ５４の制御バンドル４００に含まれる複数のコンポーネントのなかから、複数のコンポーネントのうち第１のコンポーネントと、複数のコンポーネントのうち第２のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、ＲＡＭ５４の制御バンドル４００を、第１のコンポーネントおよび共通コンポーネントを少なくとも有する制御バンドルａ、並びに第２のコンポーネントおよび共通コンポーネントを少なくとも有する制御バンドルｂとして再構成するようになっている。
【０１２３】
これにより、制御バンドル４００を分離して機能的に不要なものを削除することにより制御バンドル４００の整理を行えば、不要なコンポーネントを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔３−１０．効果１０〕
さらに、本実施の形態では、ＲＡＭ５４の制御バンドル４００に含まれる複数のパッケージのなかから、複数のパッケージのうち第１のパッケージと、複数のパッケージのうち第２のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、ＲＡＭ５４の制御バンドル４００を、第１のパッケージおよび共通パッケージを少なくとも有する制御バンドルａ、並びに第２のパッケージおよび共通パッケージを少なくとも有する制御バンドルｂとして再構成するようになっている。
【０１２４】
これにより、制御バンドル４００を分離して機能的に不要なものを削除することにより制御バンドル４００の整理を行えば、不要なパッケージを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔３−１１．効果１１〕
さらに、本実施の形態では、ＲＡＭ５４のメモリ使用率が所定値以上となった状態が所定期間継続したときは、制御バンドル４００を再構成するようになっている。
【０１２５】
これにより、ＲＡＭ５４のメモリ使用率が所定値以上となった状態が所定期間継続したときに初めて制御バンドル４００の再構成が行われるので、制御バンドル４００の再構成が頻繁に行われることにより他の処理に負荷を与える可能性を低減することができる。
〔４．請求範囲との対応関係〕
上記実施の形態において、バンドル管理サーバ１００は、発明７のバンドル提供端末に対応し、ホームゲートウェイ２００は、発明７のゲートウェイ端末に対応し、ＲＡＭ５４は、発明１ないし３、５、１５ないし１８、２１ないし２４の記憶手段に対応し、クラスメソッド、クラス、コンポーネントおよびパッケージは、発明１ないし６、８、１５ないし１７、２１ないし２４の機能部に対応している。また、共通クラス、共通コンポーネントおよび共通パッケージは、発明１ないし６、２１ないし２４の共通機能部に対応し、ステップＳ２０２は、発明７のバンドル生成手段に対応し、ステップＳ２０４は、発明７のバンドル送信手段に対応している。
【０１２６】
また、上記実施の形態において、ステップＳ３０２，Ｓ３０４は、発明３、５または７のバンドル取得手段に対応し、ステップＳ３０６は、発明３、５または７のバンドル格納手段に対応し、ステップＳ３０８は、発明３、５または７のバンドル実行手段に対応し、ステップＳ４００〜Ｓ４４２，Ｓ５００〜Ｓ５３０は、発明３ないし１９のバンドル再構成手段に対応している。
〔５．他の実施の形態〕
〔５−１．形態１〕
なお、上記実施の形態においては、制御バンドル４００の再構成をホームゲートウェイ２００で行うように構成したが、これに限らず、バンドル管理サーバ１００その他の端末で行うように構成することもできる。バンドル管理サーバ１００で行う場合、バンドル管理サーバ１００は、制御バンドル４００を受信し、受信した制御バンドル４００をバンドル再構成バンドルと同一の手法により再構成し、再構成した制御バンドル４００をホームゲートウェイ２００に送信する。また、ホームゲートウェイ２００は、ホームゲートウェイ２００での処理負荷が大きい場合（例えば、ＣＰＵ占有率が３０％以上の場合）、またはホームゲートウェイ２００のメモリ容量が不足している場合（例えば、メモリ使用率が９０％の場合）など、制御バンドル４００の再構成が困難であると判定したときは、再構成の対象となる制御バンドル４００をバンドル管理サーバ１００に送信する。なお、バンドル管理サーバ１００以外の端末（例えば、他のホームゲートウェイ２００）で再構成を代行する場合もこれと同じ要領で行うことができる。
【０１２７】
これにより、制御バンドル４００の再構成が困難である場合には、バンドル管理サーバ１００が制御バンドル４００の再構成を代行してくれるので、制御バンドル４００の再構成に伴ってホームゲートウェイ２００にかかる負担を低減することができる。
この場合において、バンドル管理サーバ１００は、発明２０のバンドル再構成代行端末に対応し、ホームゲートウェイ２００は、発明２０のゲートウェイ端末に対応し、ステップＳ４００〜Ｓ４４２，Ｓ５００〜Ｓ５３０は、発明２０のバンドル再構成手段に対応している。
【０１２８】
〔５−２．形態２〕
また、上記実施の形態においては、制御バンドル４００の再構成をホームゲートウェイ２００で行うように構成したが、これに限らず、バンドル管理サーバ１００および複数のホームゲートウェイ２００を分散結合して、それらの端末で協調的に行うように構成することもできる。
【０１２９】
〔５−３．形態３〕
また、上記実施の形態においては、バンドル４００，４０２をバンドル取得要求に応じて生成し、生成したバンドル４００，４０２をホームゲートウェイ２００に送信するように構成したが、これに限らず、バンドル４００，４０２をあらかじめ生成して記憶装置４２に格納しておき、バンドル取得要求を受信したときは、受信したバンドル取得要求に係るバンドル４００，４０２を記憶装置４２から読み出し、読み出したバンドル４００，４０２をホームゲートウェイ２００に送信するように構成することもできる。
【０１３０】
〔５−４．形態４〕
また、上記実施の形態においては、制御バンドル４００を結合する場合、２つの制御バンドル４００を１つの制御バンドル４００として再構成するように構成したが、これに限らず、３つ以上の制御バンドル４００を１つの制御バンドルとして再構成するように構成することもできる。より広義には、ｍ（ｍは２以上の整数）個の制御バンドル４００をｎ（ｎは１以上の整数でかつｍ＞ｎ）として再構成するように構成することができる。
【０１３１】
〔５−５．形態５〕
また、上記実施の形態においては、制御バンドル４００を分離する場合、１つの制御バンドル４００を２つの制御バンドル４００として再構成するように構成したが、これに限らず、１つの制御バンドル４００を３つ以上の制御バンドル４００として再構成するように構成することもできる。より広義には、ｍ（ｍは１以上の整数）個の制御バンドル４００をｎ（ｎは２以上の整数でかつｎ＞ｍ）として再構成するように構成することができる。
【０１３２】
〔５−６．形態６〕
また、上記実施の形態においては、再構成した制御バンドル４００を分離するように構成したが、これに限らず、１度も再構成されていない制御バンドル４００を分離するように構成することもできる。
〔５−７．形態７〕
また、上記実施の形態においては、ＲＡＭ５４のメモリ使用率が所定値以上となった状態が所定期間継続したときは、制御バンドル４００を再構成するように構成したが、これに限らず、例えば、ＣＰＵ占有率が所定値以下となったときは、制御バンドル４００を再構成するように構成することもできる。
【０１３３】
〔５−８．形態８〕
また、上記実施の形態においては、プリンタ、プロジェクタ、サウンドシステム、ＰＣおよび電子レンジをデバイスとして採用したが、これに限らず、ディジタルカメラ、ディジタルビデオカメラ、冷蔵庫、テレビ、ゲーム機および携帯情報端末（ＰＤＡを含む。）をデバイスとして採用してもよい。
【０１３４】
〔５−９．形態９〕
また、上記実施の形態においては、ホームゲートウェイ２００にバンドルを適用するように構成したが、これに限らず、例えば、ネットワーク対応のプリンタ、プロジェクタ、スキャナ、ディジタルカメラ、ディジタルビデオカメラ、ネットワークカード、ＰＣ、ＰＤＡ、ネットワークストレージ、オーディオ機器、携帯電話、ＰＨＳ（登録商標）（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）、腕時計、ウォッチ型ＰＤＡ、ＳＴＢ、ＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅ）端末、コピー機、ＦＡＸ機、電話（ＩＰ電話等も含む。）、交換機、ＮＣＵ（Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）、ルータ、ハブ、ブリッジ、その他プログラム実行可能なデバイスにバンドルを適用するように構成することもできる。本発明は、ＨＤＤを持たないようなデバイスでも、ＲＡＭやフラッシュさえあれば動作が可能である。また、ホームゲートウェイがない環境でも、プリンタ、スキャナ、プロジェクタ、デジカメ、オーディオ、（白物）家電等の各種デバイスに、ホームゲートウェイの役割を果たす機能が搭載されていれば動作可能である。
【０１３５】
〔５−１０．形態１０〕
また、上記実施の形態において、図３ないし図５のフローチャートに示す処理を実行するにあたっては、ＲＯＭ３２にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭ３４に読み込んで実行するようにしてもよい。
【０１３６】
また、上記実施の形態において、図１２ないし図１４のフローチャートに示す処理を実行するにあたってはいずれも、ＲＯＭ５２にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをＲＡＭ５４に読み込んで実行するようにしてもよい。
【０１３７】
ここで、記憶媒体とは、ＲＡＭ、ＲＯＭ等の半導体記憶媒体、ＦＤ、ＨＤ等の磁気記憶型記憶媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記憶媒体、ＭＯ等の磁気記憶型／光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【０１３８】
〔５−１１．形態１１〕
また、上記実施の形態においては、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、インターネット１９９からなるネットワークシステムに適用した場合について説明したが、これに限らず、例えば、インターネット１９９と同一方式により通信を行ういわゆるイントラネットに適用してもよい。もちろん、インターネット１９９と同一方式により通信を行うネットワークに限らず、通常のネットワークに適用することもできる。
【０１３９】
〔５−１２．形態１２〕
また、上記実施の形態においては、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、図１に示すように、ホームゲートウェイ２００において、バンドル管理サーバ１００から複数のバンドルを取得し、取得したバンドルをそのメモリ使用率に応じて再構成する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【０１４０】
【発明の効果】
以上説明したように、本発明に係る請求項１、３または５記載のバンドル再構成システムによれば、共通機能部の重複を排除してバンドルが再構成されるので、従来に比して、動的にバンドルが組み込まれるホームゲートウェイその他の情報処理装置においてメモリの利用効率を向上することができるという効果が得られる。
【０１４１】
さらに、本発明に係る請求項２、４または６記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができるので、従来に比して、動的にバンドルが組み込まれるホームゲートウェイその他の情報処理装置においてメモリの利用効率を向上することができるという効果が得られる。
【０１４２】
さらに、本発明に係る請求項７ないし２０記載のバンドル再構成システムによれば、共通機能部の重複を排除してバンドルが再構成されるとともに、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができるので、従来に比して、動的にバンドルが組み込まれるゲートウェイ端末においてメモリの利用効率を向上することができるという効果が得られる。
【０１４３】
さらに、本発明に係る請求項８ないし１４記載のバンドル再構成システムによれば、共通クラス、共通コンポーネントおよび共通パッケージの重複を排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項９記載のバンドル再構成システムによれば、共通クラスの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【０１４４】
さらに、本発明に係る請求項１０記載のバンドル再構成システムによれば、共通コンポーネントの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項１１記載のバンドル再構成システムによれば、共通パッケージの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【０１４５】
さらに、本発明に係る請求項１２記載のバンドル再構成システムによれば、第１のバンドルの共通クラスに含まれるクラスメソッドと、第２のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していない場合に、バンドルを結合して再構成を行った後に不具合が生じる可能性を低減することができるという効果も得られる。
【０１４６】
さらに、本発明に係る請求項１３または１４記載のバンドル再構成システムによれば、バンドルを結合して再構成するにあたって、第１のバンドルに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項１４記載のバンドル再構成システムによれば、バンドルを結合して再構成するにあたって、第１のバンドルおよび第２のバンドルに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【０１４７】
さらに、本発明に係る請求項１５記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なクラスを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項１６記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なコンポーネントを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【０１４８】
さらに、本発明に係る請求項１７記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なパッケージを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項１８記載のバンドル再構成システムによれば、記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときに初めてバンドルの再構成が行われるので、バンドルの再構成が頻繁に行われることにより他の処理に負荷を与える可能性を低減することができるという効果も得られる。
【０１４９】
さらに、本発明に係る請求項２０記載のバンドル再構成システムによれば、バンドルの再構成が困難である場合には、バンドル再構成代行端末がバンドルの再構成を代行してくれるので、バンドルの再構成に伴ってゲートウェイ端末にかかる負担を低減することができるという効果も得られる。
一方、本発明に係る請求項２１記載のバンドル再構成プログラムによれば、請求項１記載のバンドル再構成システムと同等の効果が得られる。
【０１５０】
さらに、本発明に係る請求項２２記載のバンドル再構成プログラムによれば、請求項２記載のバンドル再構成システムと同等の効果が得られる。
一方、本発明に係る請求項２３記載のバンドル再構成方法によれば、請求項１記載のバンドル再構成システムと同等の効果が得られる。
さらに、本発明に係る請求項２４記載のバンドル再構成方法によれば、請求項２記載のバンドル再構成システムと同等の効果が得られる。
【図面の簡単な説明】
【図１】本発明を適用するネットワークシステムの構成を示すブロック図である。
【図２】バンドル管理サーバ１００の構成を示すブロック図である。
【図３】バンドル管理サーバ１００で実行するユーザ登録処理を示すフローチャートである。
【図４】バンドル管理サーバ１００で実行するユーザ管理処理を示すフローチャートである。
【図５】バンドル管理サーバ１００で実行するバンドル提供処理を示すフローチャートである。
【図６】バンドルのデータ構造を示す図である。
【図７】バンドルのデータ構造を示す図である。
【図８】コンポーネント情報４１２のデータ構造を示す図である。
【図９】コンポーネント４１０のデータ構造を示す図である。
【図１０】クラス情報４２２のデータ構造を示す図である。
【図１１】ホームゲートウェイ２００の構成を示すブロック図である。
【図１２】ホームゲートウェイ２００で実行するバンドル取得処理を示すフローチャートである。
【図１３】バンドル結合処理を示すフローチャートである。
【図１４】バンドル分離処理を示すフローチャートである。
【図１５】制御バンドル４００を結合する第１のパターンを示す図である。
【図１６】制御バンドル４００を結合する第２のパターンを示す図である。
【図１７】制御バンドル４００を結合する第３のパターンを示す図である。
【図１８】制御バンドル４００を結合する第４のパターンを示す図である。
【図１９】制御バンドル４００を結合する第５のパターンを示す図である。
【図２０】制御バンドル４００を分離する第１のパターンを示す図である。
【図２１】制御バンドル４００を分離する第２のパターンを示す図である。
【図２２】制御バンドル４００を分離する第３のパターンを示す図である。
【図２３】制御バンドル４００を分離する第４のパターンを示す図である。
【図２４】制御バンドル４００を分離する第５のパターンを示す図である。
【符号の説明】
１００…バンドル管理サーバ，２００…ホームゲートウェイ，２１０〜２２０…デバイス，１９９…インターネット，３０，５０…ＣＰＵ，３２，５２…ＲＯＭ，３４，５４…ＲＡＭ，３８，５８…Ｉ／Ｆ，４０…入力装置，４２…記憶装置，４４…表示装置，４００…制御バンドル，４０２…バンドル再構成バンドル，４１０…コンポーネント，４１２…コンポーネント情報，４１４…バンドルコントローラ，４２０…クラス，４２２…クラス情報，４２４…コンポーネント制御クラス，４５０〜４５８…クラス等
【図１】
2004227240.tif 000003
【図２】
2004227240.tif 000004
【図３】
2004227240.tif 000005
【図４】
2004227240.tif 000006
【図５】
2004227240.tif 000007
【図６】
2004227240.tif 000008
【図７】
2004227240.tif 000009
【図８】
2004227240.tif 000010
【図９】
2004227240.tif 000011
【図１０】
2004227240.tif 000012
【図１１】
2004227240.tif 000013
【図１２】
2004227240.tif 000014
【図１３】
2004227240.tif 000015
【図１４】
2004227240.tif 000016
【図１５】
2004227240.tif 000017
【図１６】
2004227240.tif 000018
【図１７】
2004227240.tif 000019
【図１８】
2004227240.tif 000020
【図１９】
2004227240.tif 000021
【図２０】
2004227240.tif 000022
【図２１】
2004227240.tif 000023
【図２２】
2004227240.tif 000024
【図２３】
2004227240.tif 000025
【図２４】
2004227240.tif 000026