JP4363044B2 - Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method - Google Patents

Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method Download PDF

Info

Publication number
JP4363044B2
JP4363044B2 JP2003013609A JP2003013609A JP4363044B2 JP 4363044 B2 JP4363044 B2 JP 4363044B2 JP 2003013609 A JP2003013609 A JP 2003013609A JP 2003013609 A JP2003013609 A JP 2003013609A JP 4363044 B2 JP4363044 B2 JP 4363044B2
Authority
JP
Japan
Prior art keywords
bundle
common
unit
class
functional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003013609A
Other languages
Japanese (ja)
Other versions
JP2004227240A (en
Inventor
透 ▲高▼橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003013609A priority Critical patent/JP4363044B2/en
Publication of JP2004227240A publication Critical patent/JP2004227240A/en
Application granted granted Critical
Publication of JP4363044B2 publication Critical patent/JP4363044B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ホームゲートウェイ、PC、STB(Set Top Box)、ネットワークカード、携帯電話、PDA(Personal Digital Assistant)、腕時計その他プログラム実行可能なデバイスに適用して所定のサービスを提供するバンドルを再構成するシステムおよびプログラム、並びに方法に係り、特に、動的にバンドルが組み込まれるホームゲートウェイにおいてメモリの利用効率を向上するのに好適なバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法に関する。
【0002】
【従来の技術】
近い将来、各家庭においては、ホームゲートウェイをインターネットに接続するとともに、複数のネットワークデバイスをホームゲートウェイに接続し、ホームゲートウェイを介して各ネットワークデバイスがインターネット上のサービスを利用するというような形態が予想される。
【0003】
ホームゲートウェイには、多種多様なネットワークデバイスが接続される。例えば、ネットワーク対応のスキャナやプリンタがそれである。その他にも、OA製品、家電製品その他の電子機器がネットワークデバイスとして接続可能となる。ホームゲートウェイがネットワークデバイスを適切に制御するためには、ネットワークデバイスの制御プログラムをホームゲートウェイに組み込む必要があるが、想定されるすべての種類のネットワークデバイスに対応した制御プログラムを組み込むのは現実的ではない。そこで、現実的には、ネットワークデバイスのメーカ等がネットワークデバイスを販売すると同時にその制御プログラムである制御バンドルを所定のサーバにダウンロード可能に掲載する。そして、ユーザが購入したネットワークデバイスを接続すると、ホームゲートウェイでは、対応の制御バンドルが所定のサーバからダウンロードして実行する。ダウンロードは自動的またはユーザの手動操作により行う。
【0004】
しかしながら、ホームゲートウェイに接続されるネットワークデバイスの数が増えてくると、それに伴って多数の制御バンドルを組み込まなければならないが、制御バンドルをメモリ上で実行させる関係上、ホームゲートウェイのメモリ容量が十分でない場合は、組み込める数に一定の限界がある。
そこで、制限されたメモリ容量の下で、より多くの制御バンドルを組み込めるよう工夫することが要求される。従来、メモリの利用効率を高める技術およびその関連技術としては、例えば、特許文献1に開示されているオブジェクト指向言語の実行処理方式(第1の従来例という。)、特許文献2に開示されているソフトウェア構築システム(第2の従来例という。)および特許文献3に開示されているデータ処理装置(第3の従来例という。)がある。
【0005】
第1の従来例では、クラス情報格納装置は、クラス名とクラス属性とメソッド情報およびメソッド定義とを含むクラス情報を、クラスIDによって検索可能に保持する。オブジェクトは、メッセージの受信時に、クラスIDおよびメソッド選択情報を指定した問い合わせを出し、これに応答してメソッド検索部は、クラス情報格納装置から、そのクラスIDおよびメソッド選択情報に適合するメソッドを検索し、オブジェクトはこの検索されたメソッドを実行する。クラス情報抽出部は、クラス定義ソースプログラムのコンパイル時にクラス情報を抽出してクラス情報格納装置に格納する。排他制御部は、クラス情報格納装置に対するメソッド検索部、クラス情報抽出部のアクセスの排他制御を行う。
【0006】
第2の従来例は、特定のコンポーネントの機能を呼び出す処理コードをすべて、それを管理する管理コンポーネントに集中させる。動的拡張を行う際には、特定のコンポーネントとともに管理コンポーネントを交換することで、コンポーネント協調のための情報も自動的に更新される。そのほかのコンポーネントについては、再利用することが可能になる。
【0007】
第3の従来例は、項目データと項目データの種類を識別する項目識別子とその項目識別子の少なくとも一つに関連付けられた項目データを実行する添付プログラムとを入力部で読み込んで前記項目データを処理するデータ処理装置であって、項目識別子の内容に応じて、プログラム格納部に格納されている処理モジュール毎の内部プログラムか前記添付プログラムのいずれかを選択するプログラム選択部を備える。
【0008】
【特許文献1】
特開平10−21077号公報
【特許文献2】
特開平11−161483号公報
【特許文献3】
特開平11−312081号公報
【0009】
【発明が解決しようとする課題】
しかしながら、第1ないし第3の従来例にあってはいずれも、プログラムの構造または取扱に関する工夫であるため、プログラムのデータ容量を低減するための具体的な構成について直接的な記載がなく、メモリの利用効率を向上するには不十分である。
【0010】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、動的にバンドルが組み込まれるホームゲートウェイにおいてメモリの利用効率を向上するのに好適なバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を提供することを目的としている。
【0011】
【課題を解決するための手段】
〔発明1〕
上記目的を達成するために、発明1のバンドル再構成システムは、
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成するゲートウェイ端末を含むことを特徴とする。
【0012】
このような構成であれば、少なくとも2つのバンドルが記憶手段に格納されていると、第1のバンドルに含まれる機能部と、第2のバンドルに含まれる機能部とが対比されて共通機能部として特定される。そして、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれる機能部のうち共通機能部以外のもの、第2のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する1つのバンドルとして再構成される。例えば、第1のバンドルが機能部A,Bを有し、第2のバンドルが機能部B,Cを有する場合は、共通機能部が機能部Bとなるので、第1のバンドルおよび第2のバンドルが、機能部A,B,Cを有する1つのバンドルとして再構成される。
【0013】
ここで、本発明に係るバンドル再構成システムは、動的にバンドルが組み込まれるホームゲートウェイに適用するに限らず、デスクトップ型若しくはノート型のPC、携帯電話やPDA等の携帯端末、その他の情報処理装置に適用することもできる。特に、ホームゲートウェイや携帯端末のようにメモリ容量が十分でない端末に適用するのが有益である。以下、発明2、3および5のバンドル再構成システムにおいて同じである。
【0014】
また、バンドルは、再構成するにあたって記憶手段に格納されていればよく、
外部からバンドルを取得して記憶手段に格納するようになっていてもよいし、FD等の記憶媒体からバンドルを読み込んで記憶手段に格納するようになっていてもよい。以下、発明2のバンドル再構成システムにおいて同じである。
〔発明2〕
さらに、発明2のバンドル再構成システムは、
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成するゲートウェイ端末を含むことを特徴とする。
【0015】
このような構成であれば、バンドルが記憶手段に格納されていると、記憶手段のバンドルに含まれる複数の機能部のなかから、第1の機能部と第2の機能部とが共通に利用する機能部が共通機能部として特定され、記憶手段のバンドルが、第1の機能部および共通機能部を少なくとも有する第1のバンドル、並びに第2の機能部および共通機能部を少なくとも有する第2のバンドルとして再構成される。例えば、機能部A,B,Cを有するバンドルが存在する場合に、機能部Aと機能部Cとが機能部Bを共通で利用するときは、共通機能部が機能部Bとなるので、そのバンドルが、機能部A,Bを有する第1のバンドルおよび機能部B,Cを有する第2のバンドルとして再構成される。このようにバンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明3〕
さらに、発明3のバンドル再構成システムは、
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルのうち少なくとも2つのものを結合して1つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成するゲートウェイ端末を含むことを特徴とする。
【0016】
このような構成であれば、バンドル取得手段により、バンドルが取得され、バンドル格納手段により、取得されたバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。これにより、機能部が機能してサービスが提供される。また、バンドル再構成手段により、第1のバンドルに含まれる機能部と、第2のバンドルに含まれる機能部とが対比されて共通機能部として特定される。そして、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれる機能部のうち共通機能部以外のもの、第2のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する1つのバンドルとして再構成される。例えば、第1のバンドルが機能部A,Bを有し、第2のバンドルが機能部B,Cを有する場合は、共通機能部が機能部Bとなるので、第1のバンドルおよび第2のバンドルが、機能部A,B,Cを有する1つのバンドルとして再構成される。
〔発明4〕
さらに、発明4のバンドル再構成システムは、発明3のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記1つのバンドルに含まれる複数の機能部のなかから前記共通機能部を特定し、前記1つのバンドルを、前記第1のバンドルおよび前記第2のバンドルとして再構成するようになっていることを特徴とする。
【0017】
このような構成であれば、バンドル再構成手段により、再構成された1つのバンドル(再構成バンドル)に含まれる複数の機能部のなかから共通機能部が特定され、再構成バンドルが、第1のバンドルおよび第2のバンドルとして再構成される。例えば、機能部A,B,Cを有する再構成バンドルが存在する場合に、機能部Aと機能部Cとが機能部Bを共通で利用するときは、共通機能部が機能部Bとなるので、その再構成バンドルが、機能部A,Bを有する第1のバンドルおよび機能部B,Cを有する第2のバンドルとして再構成される。このように再構成バンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明5〕
さらに、発明5のバンドル再構成システムは、
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルを分離して少なくとも2つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成するゲートウェイ端末を含むことを特徴とする。
【0018】
このような構成であれば、バンドル取得手段により、バンドルが取得され、バンドル格納手段により、取得されたバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。これにより、機能部が機能してサービスが提供される。また、バンドル再構成手段により、記憶手段のバンドルに含まれる複数の機能部のなかから、第1の機能部と第2の機能部とが共通に利用する機能部が共通機能部として特定され、記憶手段のバンドルが、第1の機能部および共通機能部を少なくとも有する第1のバンドル、並びに第2の機能部および共通機能部を少なくとも有する第2のバンドルとして再構成される。例えば、機能部A,B,Cを有するバンドルが存在する場合に、機能部Aと機能部Cとが機能部Bを共通で利用するときは、共通機能部が機能部Bとなるので、そのバンドルが、機能部A,Bを有する第1のバンドルおよび機能部B,Cを有する第2のバンドルとして再構成される。このようにバンドルの分離を行い、分離したバンドルのうち機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができる。
〔発明6〕
さらに、発明6のバンドル再構成システムは、発明5のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第1のバンドルに含まれる機能部と、前記第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を前記共通機能部として特定し、前記第1のバンドルおよび前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、および前記共通機能部を有する1つのバンドルとして再構成するようになっていることを特徴とする。
【0019】
このような構成であれば、バンドル再構成手段により、第1のバンドルに含まれる機能部と、第2のバンドルに含まれる機能部とが対比されて機能が共通する機能部が共通機能部として特定され、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれる機能部のうち共通機能部以外のもの、第2のバンドルに含まれる機能部のうち共通機能部以外のもの、および共通機能部を有する1つのバンドルとして再構成される。例えば、第1のバンドルが機能部A,Bを有し、第2のバンドルが機能部B,Cを有する場合は、共通機能部が機能部Bとなるので、第1のバンドルおよび第2のバンドルが、機能部A,B,Cを有する1つのバンドルとして再構成される。
〔発明7〕
さらに、発明7のバンドル再構成システムは、発明4および6のいずれかのバンドル再構成システムにおいて、
前記ゲートウェイ端末は、前記ゲートウェイ端末からの取得要求に応じて前記バンドルを提供するバンドル提供端末と通信可能に接続し、
前記バンドル提供端末は、前記バンドルを生成するバンドル生成手段と、前記バンドル生成手段で生成したバンドルを前記取得要求に応じて前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル取得手段、前記バンドル格納手段、前記バンドル実行手段及び前記バンドル再構成手段を有し、
前記バンドル取得手段は、前記バンドル提供端末に前記取得要求を送信し、前記バンドル提供端末から前記バンドルを取得するようになっていることを特徴とする。
【0020】
このような構成であれば、ゲートウェイ端末では、バンドル取得手段により、バンドル提供端末に取得要求が送信される。
バンドル提供端末では、バンドル生成手段により、バンドルが生成され、取得要求を受信すると、バンドル送信手段により、受信した取得要求に応じて、生成されたバンドルがゲートウェイ端末に送信される。
【0021】
ゲートウェイ端末では、バンドル取得手段によりバンドルを受信(取得)すると、バンドル格納手段により、受信したバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。また、バンドル再構成手段により、記憶手段のバンドルが再構成される。
ここで、バンドル提供端末は、ゲートウェイ端末との通信路の一端に接続する通信設備であって少なくともサーバ機能を有するものであればよく、クライアント機能およびサーバ機能の両方を兼ね揃えるものとして構成することもできる。このことは、ゲートウェイ端末についても同様である。
〔発明8〕
さらに、発明8のバンドル再構成システムは、発明7のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントと、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージとを有してなり、
前記バンドル再構成手段は、前記第1のバンドルに含まれるクラス、コンポーネントおよびパッケージと、前記第2のバンドルに含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージをそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定し、前記共通クラス、前記共通コンポーネントおよび前記共通パッケージが重複しないように、前記第1のバンドルおよび前記第2のバンドルを1つのバンドルとして再構成するようになっていることを特徴とする。
【0022】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第1のバンドルに含まれるクラス、コンポーネントおよびパッケージと、第2のバンドルに含まれるクラス、コンポーネントおよびパッケージとが対比されてそれらに共通するクラス、コンポーネントおよびパッケージがそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定される。そして、共通クラス、共通コンポーネントおよび共通パッケージが重複しないように、第1のバンドルおよび第2のバンドルが1つのバンドルとして再構成される。
〔発明9〕
さらに、発明9のバンドル再構成システムは、発明8のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第1のバンドルおよび前記第2のバンドルを、前記第1のバンドルに含まれるクラスのうち前記共通クラス以外のもの、前記第2のバンドルに含まれるクラスのうち前記共通クラス以外のもの、および前記共通クラスを有する1つのバンドルとして再構成するようになっていることを特徴とする。
【0023】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれるクラスのうち共通クラス以外のもの、第2のバンドルに含まれるクラスのうち共通クラス以外のもの、および共通クラスを有する1つのバンドルとして再構成される。
〔発明10〕
さらに、発明10のバンドル再構成システムは、発明8および9のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第1のバンドルおよび前記第2のバンドルを、前記第1のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、前記第2のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、および前記共通コンポーネントを有する1つのバンドルとして再構成するようになっていることを特徴とする。
【0024】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれるコンポーネントのうち共通コンポーネント以外のもの、第2のバンドルに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを有する1つのバンドルとして再構成される。
〔発明11〕
さらに、発明11のバンドル再構成システムは、発明8ないし10のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第1のバンドルおよび前記第2のバンドルを、前記第1のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、前記第2のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、および前記共通パッケージを有する1つのバンドルとして再構成するようになっていることを特徴とする。
【0025】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、第1のバンドルおよび第2のバンドルが、第1のバンドルに含まれるパッケージのうち共通パッケージ以外のもの、第2のバンドルに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを有する1つのバンドルとして再構成される。
〔発明12〕
さらに、発明12のバンドル再構成システムは、発明8ないし11のいずれかのバンドル再構成システムにおいて、
前記クラスは、複数のクラスメソッドを含み、
前記バンドル再構成手段は、前記第1のバンドルの共通クラスに含まれるクラスメソッドと、前記第2のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないときは、前記第1のバンドルの共通クラスに含まれるクラスメソッドと、前記第2のバンドルの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、前記第1のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、前記第2のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、および前記共通クラスメソッドを含むクラスを前記共通クラスとして構成するようになっていることを特徴とする。
【0026】
このような構成であれば、ゲートウェイ端末では、第1のバンドルの共通クラスに含まれるクラスメソッドと、第2のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないと、バンドル再構成手段により、第1のバンドルの共通クラスに含まれるクラスメソッドと、第2のバンドルの共通クラスに含まれるクラスメソッドとが対比されて共通クラスメソッドが特定される。そして、第1のバンドルの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、第2のバンドルの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスが共通クラスとして構成される。例えば、第1のバンドルの共通クラスがクラスメソッドA,B,Cを含み、第2のバンドルの共通クラスがクラスメソッドB,C,Dを含む場合は、共通クラスメソッドがクラスメソッドB,Cとなるので、共通クラスが、クラスメソッドA,B,C,Dを含むクラスとして構成される。
〔発明13〕
さらに、発明13のバンドル再構成システムは、発明8ないし12のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第1のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち前記共通クラス、前記共通コンポーネントおよび前記共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、前記第1のバンドルおよび前記第2のバンドルを、前記不要クラス、前記不要コンポーネントおよび前記不要パッケージを有しない1つのバンドルとして再構成するようになっていることを特徴とする。
【0027】
このような構成であれば、ゲートウェイ端末では、第1のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されると、バンドル再構成手段により、第1のバンドルおよび第2のバンドルが、不要クラス、不要コンポーネントおよび不要パッケージを有しない1つのバンドルとして再構成される。
〔発明14〕
さらに、発明14のバンドル再構成システムは、発明13のバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記第2のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち前記共通クラス、前記共通コンポーネントおよび前記共通パッケージ以外のものであって不要なものがそれぞれ前記不要クラス、前記不要コンポーネントおよび前記不要パッケージとして指定されたときは、前記第1のバンドルおよび前記第2のバンドルを、前記不要クラス、前記不要コンポーネントおよび前記不要パッケージを有しない1つのバンドルとして再構成するようになっていることを特徴とする。
【0028】
このような構成であれば、ゲートウェイ端末では、第1のバンドルまたは第2のバンドルに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されると、バンドル再構成手段により、第1のバンドルおよび第2のバンドルが、不要クラス、不要コンポーネントおよび不要パッケージを有しない1つのバンドルとして再構成される。
〔発明15〕
さらに、発明15のバンドル再構成システムは、発明7のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを少なくとも3つ含むコンポーネントを有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のクラスのなかから、当該複数のクラスのうち第1のクラスと、当該複数のクラスのうち第2のクラスとが共通に利用するクラスを共通クラスとして特定し、前記記憶手段のバンドルを、前記第1のクラスおよび前記共通クラスを少なくとも有する第1のバンドル、並びに前記第2のクラスおよび前記共通クラスを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とする。
【0029】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のクラスのなかから、複数のクラスのうち第1のクラスと、複数のクラスのうち第2のクラスとが共通に利用するクラスが共通クラスとして特定される。そして、記憶手段のバンドルが、第1のクラスおよび共通クラスを少なくとも有する第1のバンドル、並びに第2のクラスおよび共通クラスを少なくとも有する第2のバンドルとして再構成される。
〔発明16〕
さらに、発明16のバンドル再構成システムは、発明7のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントを少なくとも3つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のコンポーネントのなかから、当該複数のコンポーネントのうち第1のコンポーネントと、当該複数のコンポーネントのうち第2のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、前記記憶手段のバンドルを、前記第1のコンポーネントおよび前記共通コンポーネントを少なくとも有する第1のバンドル、並びに前記第2のコンポーネントおよび前記共通コンポーネントを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とする。
【0030】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のコンポーネントのなかから、複数のコンポーネントのうち第1のコンポーネントと、複数のコンポーネントのうち第2のコンポーネントとが共通に利用するコンポーネントが共通コンポーネントとして特定される。そして、記憶手段のバンドルが、第1のコンポーネントおよび共通コンポーネントを少なくとも有する第1のバンドル、並びに第2のコンポーネントおよび共通コンポーネントを少なくとも有する第2のバンドルとして再構成される。
〔発明17〕
さらに、発明17のバンドル再構成システムは、発明7のバンドル再構成システムにおいて、
前記バンドルは、前記機能部としてのクラスを複数有し、かつ、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージを少なくとも3つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のパッケージのなかから、当該複数のパッケージのうち第1のパッケージと、当該複数のパッケージのうち第2のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、前記記憶手段のバンドルを、前記第1のパッケージおよび前記共通パッケージを少なくとも有する第1のバンドル、並びに前記第2のパッケージおよび前記共通パッケージを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とする。
【0031】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、記憶手段のバンドルに含まれる複数のパッケージのなかから、複数のパッケージのうち第1のパッケージと、複数のパッケージのうち第2のパッケージとが共通に利用するパッケージが共通パッケージとして特定される。そして、記憶手段のバンドルが、第1のパッケージおよび共通パッケージを少なくとも有する第1のバンドル、並びに第2のパッケージおよび共通パッケージを少なくとも有する第2のバンドルとして再構成される。
〔発明18〕
さらに、発明18のバンドル再構成システムは、発明7ないし17のいずれかのバンドル再構成システムにおいて、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときは、前記バンドルを再構成するようになっていることを特徴とする。
【0032】
このような構成であれば、ゲートウェイ端末では、記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続すると、バンドル再構成手段により、バンドルが再構成される。すなわち、記憶手段のメモリ使用率が所定値未満である場合、および記憶手段のメモリ使用率が所定値以上であってもその状態が所定期間継続しない場合は、バンドルに不要な部分が存在しても再構成は行われない。
〔発明19〕
さらに、発明19のバンドル再構成システムは、発明8ないし18のいずれかのバンドル再構成システムにおいて、
前記バンドルは、さらに、前記コンポーネントに含まれるクラスを識別可能に登録したコンポーネント情報を有してなり、
前記バンドル再構成手段は、前記バンドルに含まれるコンポーネント情報に基づいて前記バンドルを再構成するようになっていることを特徴とする。
【0033】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段により、バンドルに含まれるコンポーネント情報に基づいてバンドルが再構成される。
〔発明20〕
さらに、発明20のバンドル再構成システムは、発明7ないし18のいずれかのバンドル再構成システムにおいて、
さらに、前記バンドルの再構成を代行するバンドル再構成代行端末を通信可能に接続し、
前記バンドル再構成代行端末は、前記バンドルを受信するバンドル受信手段と、前記バンドル受信手段で受信したバンドルを前記バンドル再構成手段と同一の手法により再構成する第2バンドル再構成手段と、前記第2バンドル再構成手段で再構成したバンドルを前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル再構成手段による再構成が困難であると判定したときは、再構成の対象となるバンドルを前記バンドル再構成代行端末に送信するようになっていることを特徴とする。
【0034】
このような構成であれば、ゲートウェイ端末では、バンドル再構成手段による再構成が困難であると判定されると、再構成の対象となるバンドルがバンドル再構成代行端末に送信される。
バンドル再構成代行端末では、バンドル受信手段によりバンドルを受信すると、第2バンドル再構成手段により、受信したバンドルがバンドル再構成手段と同一の手法により再構成される。そして、バンドル送信手段により、再構成されたバンドルがゲートウェイ端末に送信される。
【0035】
ゲートウェイ端末では、バンドルを受信すると、バンドル格納手段により、受信したバンドルが記憶手段に格納され、バンドル実行手段により、記憶手段のバンドルが実行される。
ここで、バンドル再構成手段による再構成が困難である場合としては、例えば、ゲートウェイ端末での処理負荷が大きい場合、またはゲートウェイ端末のメモリ容量が不足している場合が含まれる。
〔発明21〕
一方、上記目的を達成するために、発明21のバンドル再構成プログラムは、
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルの再構成を、ゲートウェイ端末に実行させるためのプログラムであって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成する処理を、前記ゲートウェイ端末のコンピュータに実行させることを特徴とする。
【0036】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明1のバンドル再構成システムと同等の作用が得られる。
〔発明22〕
さらに、発明22のバンドル再構成プログラムは、
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルの再構成を、ゲートウェイ端末に実行させるためのプログラムであって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成する処理を、前記ゲートウェイ端末のコンピュータに実行させることを特徴とする。
【0037】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明2のバンドル再構成システムと同等の作用が得られる。
〔発明23〕
一方、上記目的を達成するために、発明23のバンドル再構成方法は、
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するゲートウェイ端末のバンドル再構成方法であって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成することを特徴とする。
〔発明24〕
さらに、発明24のバンドル再構成方法は、
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するゲートウェイ端末のバンドル再構成方法であって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成することを特徴とする。
【0038】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図1ないし図24は、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法の実施の形態を示す図である。
本実施の形態は、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、図1に示すように、ホームゲートウェイ200において、バンドル管理サーバ100から複数のバンドルを取得し、取得したバンドルをそのメモリ使用率に応じて再構成する場合について適用したものである。
〔1.本実施の形態の構成〕
〔1-1.システム構成の概要〕
まず、本発明を適用するネットワークシステムの構成を図1を参照しながら説明する。図1は、本発明を適用するネットワークシステムの構成を示すブロック図である。
【0039】
インターネット199には、図1に示すように、バンドルを管理するバンドル管理サーバ100と、複数のデバイス210〜220を通信可能に接続するホームゲートウェイ200とが接続されている。なお、発明の理解を容易にするため、ホームゲートウェイ200を1台しか図示していないが、実際には、複数のホームゲートウェイ200がインターネット199に接続されている。
【0040】
ホームゲートウェイ200には、プリンタからなるデバイス210と、プロジェクタからなるデバイス212と、サウンドシステムからなるデバイス214と、PCからなるデバイス216と、電子レンジからなるデバイス218と、その他のデバイス220とが接続されている。これらデバイス210〜220は、1人のユーザが所有するものであり、ホームゲートウェイ200を介してインターネット199と情報の送受信を行うようになっている。
【0041】
〔1-2-1.バンドル管理サーバの構成〕
次に、バンドル管理サーバ100の構成を図2を参照しながら詳細に説明する。図2は、バンドル管理サーバ100の構成を示すブロック図である。
バンドル管理サーバ100は、図2に示すように、制御プログラムに基づいて演算およびシステム全体を制御するCPU30と、所定領域にあらかじめCPU30の制御プログラム等を格納しているROM32と、ROM32等から読み出したデータやCPU30の演算過程で必要な演算結果を格納するためのRAM34と、外部装置に対してデータの入出力を媒介するI/F38とで構成されており、これらは、データを転送するための信号線であるバス39で相互にかつデータ授受可能に接続されている。
【0042】
I/F38には、外部装置として、ヒューマンインターフェースとしてデータの入力が可能なキーボードやマウス等からなる入力装置40と、データやテーブル等をファイルとして格納する記憶装置42と、画像信号に基づいて画面を表示する表示装置44と、インターネット199に接続するための信号線とが接続されている。
【0043】
CPU30は、マイクロプロセッシングユニットMPU等からなり、ROM32の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図3ないし図5のフローチャートに示すユーザ登録処理、ユーザ管理処理およびバンドル提供処理をそれぞれ時分割で実行するようになっている。
〔1-2-2.バンドル管理サーバの処理1〕
初めに、ユーザ登録処理を図3を参照しながら詳細に説明する。図3は、バンドル管理サーバ100で実行するユーザ登録処理を示すフローチャートである。
【0044】
ユーザ登録処理は、ユーザ登録要求に応じてユーザ情報を登録する処理であって、CPU50において実行されると、図3に示すように、まず、ステップS100に移行するようになっている。
ステップS100では、ユーザ登録要求をホームゲートウェイ200から受信したか否かを判定し、ユーザ登録要求を受信したと判定したとき(Yes)は、ステップS102に移行するが、そうでないと判定したとき(No)は、ユーザ登録要求を受信するまでステップS100で待機する。
【0045】
ステップS102では、例えば、ユーザ名、パスワード、氏名、住所、性別、年齢、職業、所属グループ、提供を許可するサービスおよびホームゲートウェイ200のアドレスを含むユーザ情報を受信し、ステップS104に移行して、受信したユーザ情報を記憶装置42に登録し、一連の処理を終了して元の処理に復帰させる。
【0046】
〔1-2-3.バンドル管理サーバの処理2〕
次に、ユーザ管理処理を図4を参照しながら詳細に説明する。図4は、バンドル管理サーバ100で実行するユーザ管理処理を示すフローチャートである。
ユーザ管理処理は、管理要求に応じてユーザ情報の公開等を行う処理であって、CPU50において実行されると、図4に示すように、まず、ステップS150に移行するようになっている。
【0047】
ステップS150では、ホームゲートウェイ200から管理要求を受信したか否かを判定し、管理要求を受信したと判定したとき(Yes)は、ステップS152に移行するが、そうでないと判定したとき(No)は、管理要求を受信するまでステップS150で待機する。
ステップS152では、要求内容を判定し、ステップS154に移行して、判定結果に基づいて管理要求が適切なものであるか否かを判定し、管理要求が適切なものであると判定したとき(Yes)は、ステップS156に移行する。
【0048】
ステップS156では、ユーザ認証処理を行い、ステップS158に移行して、認証結果に基づいてユーザ認証が得られたか否かを判定し、ユーザ認証が得られたと判定したとき(Yes)は、ステップS160に移行して、管理要求の内容に応じたそれぞれの処理を実行し、一連の処理を終了して元の処理に復帰させる。具体的に、ステップS160では、管理要求がユーザ情報の変更・更新を行うべき要求である場合は、ユーザ情報の変更・更新を行う。また、管理要求がユーザ情報を公開すべき要求である場合は、ユーザ情報を要求元に対して公開し、管理要求がホームゲートウェイ200を公開すべき要求である場合は、ホームゲートウェイ200を要求元に対して公開する。
【0049】
一方、ステップS158で、ユーザ認証が得られないと判定したとき(No)は、ステップS162に移行して、エラー処理を実行し、ステップS150に移行する。
〔1-2-4.バンドル管理サーバの処理3〕
次に、バンドル提供処理を図5を参照しながら詳細に説明する。図5は、バンドル管理サーバ100で実行するバンドル提供処理を示すフローチャートである。
【0050】
バンドル提供処理は、バンドル取得要求に応じてバンドルをホームゲートウェイ200に提供する処理であって、CPU50において実行されると、図5に示すように、まず、ステップS200に移行するようになっている。
ステップS200では、バンドル取得要求をホームゲートウェイ200から受信したか否かを判定し、バンドル取得要求を受信したと判定したとき(Yes)は、ステップS202に移行するが、そうでないと判定したとき(No)は、バンドル取得要求を受信するまでステップS200で待機する。
【0051】
ステップS202では、バンドルを生成する。
バンドルのデータ構造を図6および図7を参照しながら詳細に説明する。図6および図7は、バンドルのデータ構造を示す図である。
バンドルには、図6に示すように、各デバイス210〜220に対応しかつそのデバイスを制御する制御バンドル400と、制御バンドル400を再構成するバンドル再構成バンドル402とがある。なお、バンドル再構成バンドル402の構成については後段で詳述する。
【0052】
バンドル400,402は、図7に示すように、複数のクラスを含むコンポーネント410と、コンポーネント410に含まれるクラスを識別可能に登録したコンポーネント情報412と、バンドル400,402をコントロールするバンドルコントローラ414とを有して構成されている。その他、図示しないが、バンドル400,402に含まれる複数のクラスの論理的結合を規定したパッケージを有している。
【0053】
図8は、コンポーネント情報412のデータ構造を示す図である。
コンポーネント情報412には、図8に示すように、各コンポーネント410ごとにそのコンポーネント410に含まれるクラスのクラス名が登録されている。図8の例では、コンポーネントAには、クラス1,2が含まれていることを、コンポーネントBには、クラス3、クラス4、クラス5および初期化ファイル1が含まれていることをそれぞれ示している。
【0054】
図9は、コンポーネント410のデータ構造を示す図である。
コンポーネント410は、図9に示すように、実行プログラムを含むクラス420と、クラス420に含まれる実行プログラムであるクラスメソッドを識別可能に登録したクラス情報422と、コンポーネント410を制御する実行プログラムを含むコンポーネント制御クラス424とを有して構成されている。
【0055】
図10は、クラス情報422のデータ構造を示す図である。
クラス情報422には、図10に示すように、各クラス420ごとにそのクラス420に含まれるクラスメソッドのメソッド名が登録されている。図10の例では、クラスAには、クラスメソッド1,2が含まれていることを、クラスBには、クラスメソッド3、クラスメソッド4、クラスメソッド5および初期化ファイルが含まれていることをそれぞれ示している。
【0056】
図5に戻り、次いで、ステップS202に移行して、生成したバンドル400,402をホームゲートウェイ200に送信し、ステップS206に移行して、バンドル400,402を正常に適用したことを示すバンドル適用通知をホームゲートウェイ200から受信したか否かを判定し、バンドル適用通知を受信したと判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させる。
【0057】
一方、ステップS206で、バンドル適用通知を受信しないと判定したとき(No)は、バンドル適用通知を受信するまでステップS206で待機する。
〔1-3-1.ホームゲートウェイの構成〕
次に、ホームゲートウェイ200の構成を図11を参照しながら詳細に説明する。図11は、ホームゲートウェイ200の構成を示すブロック図である。
【0058】
ホームゲートウェイ200は、図11に示すように、制御プログラムに基づいて演算およびシステム全体を制御するCPU50と、所定領域にあらかじめCPU50の制御プログラム等を格納しているROM52と、ROM52等から読み出したデータやCPU50の演算過程で必要な演算結果を格納するためのRAM54と、外部装置に対してデータの入出力を媒介するI/F58とで構成されており、これらは、データを転送するための信号線であるバス59で相互にかつデータ授受可能に接続されている。
【0059】
I/F58には、外部装置として、デバイス210〜220と、インターネット199に接続するための信号線とが接続されている。
CPU50は、マイクロプロセッシングユニットMPU等からなり、ROM52の所定領域に格納されている所定のプログラムを起動させ、そのプログラムに従って、図12のフローチャートに示すバンドル取得処理を実行するようになっている。
【0060】
〔1-3-2.ホームゲートウェイの処理1〕
初めに、バンドル取得処理を図12を参照しながら詳細に説明する。図12は、ホームゲートウェイ200で実行するバンドル取得処理を示すフローチャートである。
バンドル取得処理は、バンドル400,402をバンドル管理サーバ100から取得する処理であって、CPU50において実行されると、図12に示すように、まず、ステップS300に移行するようになっている。
【0061】
ステップS300では、バンドル400,402を取得すべきことがユーザにより要求されたか否かを判定し、バンドル400,402の取得が要求されたと判定したとき(Yes)は、ステップS302に移行するが、そうでないと判定したとき(No)は、バンドル400,402の取得が要求されるまでステップS300で待機する。
【0062】
ステップS302では、バンドル取得要求をバンドル管理サーバ100に送信し、ステップS304に移行して、バンドル400,402をバンドル管理サーバ100から受信したか否かを判定し、バンドル400,402を受信したと判定したとき(Yes)は、ステップS306に移行する。
ステップS306では、受信したバンドル400,402をRAM54に格納し、ステップS308に移行して、RAM54のバンドル400,402を実行させ、ステップS310に移行して、バンドル適用通知をバンドル管理サーバ100に送信し、一連の処理を終了して元の処理に復帰させる。
【0063】
一方、ステップS304で、バンドル400,402をバンドル管理サーバ100から受信しないと判定したとき(No)は、バンドル400,402を受信するまでステップS304で待機する。
〔1-3-3.バンドル再構成バンドルの構成〕
次に、バンドル再構成バンドル402の構成を説明する。
バンドル再構成バンドル402は、複数の制御バンドル400を1つの制御バンドル400に結合することにより再構成するバンドル結合処理と、結合した制御バンドル400を複数の制御バンドル400に分離することにより再構成するバンドル分離処理とを実行するためのプログラムを含んで構成されている。
【0064】
〔1-3-4.ホームゲートウェイの処理2〕
次に、バンドル結合処理を図13を参照しながら詳細に説明する。図13は、バンドル結合処理を示すフローチャートである。
バンドル結合処理は、CPU50において実行されると、図13に示すように、まず、ステップS400に移行するようになっている。
【0065】
ステップS400では、RAM54のメモリ使用率が所定値(例えば、80%)以上であるか否かを判定し、RAM54のメモリ使用率が所定値以上であると判定したとき(Yes)は、ステップS402に移行する。
ステップS402では、タイマがセットされているか否かを判定し、タイマがセットされていないと判定したとき(No)は、ステップS404に移行して、タイマをセットし、ステップS406に移行して、タイマをセットしてから所定時間(例えば、3時間)が経過したか否かを判定し、所定時間が経過したと判定したとき(Yes)は、ステップS408に移行する。
【0066】
ステップS408では、タイマを停止させ、ステップS410に移行して、RAM54のなかから結合可能な制御バンドル400を検索する。具体的に、ステップS410では、検索対象となる一方の制御バンドル400に含まれるクラス、コンポーネントおよびパッケージと、検索対象となる他方の制御バンドル400に含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージが存在するか否かを判定し、存在すると判定したときは、それら制御バンドル400を結合可能な制御バンドル400として索出する。
【0067】
次いで、ステップS412に移行して、検索により該当の制御バンドル400が索出されたか否かを判定し、該当の制御バンドル400が索出されたと判定したとき(Yes)は、ステップS414に移行する。
ステップS414では、索出した一方の制御バンドル400(以下、制御バンドルaという。)に含まれるパッケージと、索出した他方の制御バンドル400(以下、制御バンドルbという。)に含まれるパッケージとを対比してそれらに共通するパッケージを共通パッケージとして特定し、ステップS416に移行して、制御バンドルaに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルbに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを制御バンドルa,bから抽出し、ステップS418に移行する。
【0068】
ステップS418では、制御バンドルaに含まれるコンポーネントと、制御バンドルbに含まれるコンポーネントとを対比してそれらに共通するコンポーネントを共通コンポーネントとして特定し、ステップS420に移行して、制御バンドルaに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルbに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを制御バンドルa,bから抽出し、ステップS422に移行する。
【0069】
ステップS422では、制御バンドルa,bに含まれるコンポーネント情報412に基づいて、制御バンドルaに含まれるクラスと、制御バンドルbに含まれるクラスとを対比してそれらクラスに共通するクラスを共通クラスとして特定し、ステップS424に移行する。
ステップS424では、制御バンドルa,bに含まれるクラス情報422に基づいて、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致しているか否かを判定し、クラスメソッドが完全一致していると判定したとき(Yes)は、ステップS426に移行して、制御バンドルaに含まれるクラスのうち共通クラス以外のもの、制御バンドルbに含まれるクラスのうち共通クラス以外のもの、および共通クラスを制御バンドルa,bから抽出し、ステップS428に移行する。
【0070】
ステップS428では、抽出したパッケージ、コンポーネントおよびクラス(クラスメソッドを含む。)の一覧を表示し、ステップS430に移行して、表示したパッケージ、コンポーネントおよびクラスのなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドがユーザにより指定されたか否かを判定し、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されたと判定したとき(Yes)は、ステップS432に移行して、抽出したパッケージ、コンポーネントおよびクラスのうち指定のされたものを削除し、ステップS434に移行する。
【0071】
ステップS434では、抽出したパッケージ、コンポーネントおよびクラスをもとに、制御バンドルa,bを1つの制御バンドル400として再構成し、ステップS436に移行して、制御バンドルa,bをRAM54上から削除し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS430で、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されないと判定したとき(No)は、ステップS434に移行する。
【0072】
一方、ステップS424で、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致していないと判定したとき(No)は、ステップS438に移行して、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、制御バンドルaの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルbの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスを新たな共通クラスとして構成し、ステップS428に移行する。
【0073】
一方、ステップS412で、検索により該当の制御バンドル400が索出されないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
一方、ステップS406で、タイマをセットしてから所定時間が経過しないと判定したとき(No)は、ステップS400に移行する。
一方、ステップS402で、タイマがセットされていると判定したとき(Yes)は、ステップS406に移行する。
【0074】
一方、ステップS400で、RAM54のメモリ使用率が所定値未満であると判定したとき(No)は、ステップS440に移行して、タイマがセットされているか否かを判定し、タイマがセットされていると判定したとき(Yes)は、ステップS442に移行して、タイマを停止させ、ステップS400に移行する。
一方、ステップS440で、タイマがセットされていないと判定したとき(No)は、ステップS400に移行する。
【0075】
〔1-3-5.ホームゲートウェイの処理3〕
次に、バンドル分離処理を図14を参照しながら詳細に説明する。図14は、バンドル分離処理を示すフローチャートである。
バンドル分離処理は、CPU50において実行されると、図14に示すように、まず、ステップS500に移行するようになっている。
【0076】
ステップS500では、再構成した制御バンドル400を分離すべきことがユーザにより要求されたか否かを判定し、制御バンドル400の分離が要求されたと判定したとき(Yes)は、ステップS502に移行するが、そうでないと判定したとき(No)は、制御バンドル400の分離が要求されるまでステップS500で待機する。
【0077】
ステップS502では、再構成により結合した制御バンドル400を分離可能な制御バンドル400としてRAM54のなかから検索し、ステップS504に移行して、検索により該当の制御バンドル400が索出されたか否かを判定し、該当の制御バンドル400が索出されたと判定したとき(Yes)は、ステップS506に移行する。
【0078】
ステップS506では、索出された制御バンドル400(以下、制御バンドルcという。)のなかから共通パッケージを特定し、ステップS508に移行して、共通パッケージを含むすべてのパッケージを制御バンドルcから抽出し、ステップS510に移行する。
ステップS510では、制御バンドルcのなかから共通コンポーネントを特定し、ステップS512に移行して、共通コンポーネントを含むすべてのコンポーネントを制御バンドルcから抽出し、ステップS514に移行する。
【0079】
ステップS514では、制御バンドルcに含まれるコンポーネント情報412に基づいて制御バンドルcのなかから共通クラスを特定し、ステップS516に移行して、共通クラスを含むすべてのクラスを制御バンドルcから抽出し、ステップS518に移行する。
ステップS518では、抽出したパッケージ、コンポーネントおよびクラス(クラスメソッドを含む。)の一覧を表示し、ステップS520に移行して、表示したパッケージ、コンポーネントおよびクラスのなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドがユーザにより指定されたか否かを判定し、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されたと判定したとき(Yes)は、ステップS522に移行して、抽出したパッケージ、コンポーネントおよびクラスのうち指定のされたものを削除し、ステップS524に移行する。
【0080】
ステップS524では、抽出したパッケージ、コンポーネントおよびクラスのなかで、分離後の制御バンドル400を再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足しているか否かを判定し、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足していると判定したとき(Yes)は、ステップS526に移行して、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドで不足しているものをバンドル管理サーバ100から取得し、ステップS528に移行する。
【0081】
ステップS528では、抽出したパッケージ、コンポーネントおよびクラス、並びに取得したパッケージ、コンポーネントおよびクラスをもとに、制御バンドルcを結合前の複数の制御バンドル400として再構成し、ステップS530に移行して、制御バンドルcをRAM54上から削除し、一連の処理を終了して元の処理に復帰させる。
【0082】
一方、ステップS524で、分離後の制御バンドル400を再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足していないと判定したとき(No)は、ステップS528に移行する。
一方、ステップS520で、不要なパッケージ、コンポーネント、クラスおよびクラスメソッドが指定されないと判定したとき(No)は、ステップS524に移行する。
【0083】
一方、ステップS504で、検索により該当の制御バンドル400が索出されないと判定したとき(No)は、一連の処理を終了して元の処理に復帰させる。
〔2.本実施の形態の動作〕
次に、上記実施の形態の動作を説明する。
まず、ホームゲートウェイ200において各デバイス210〜220に対応した制御バンドル400を取得する場合を説明する。
【0084】
制御バンドル400を取得するには、ホームゲートウェイ200において、ユーザは、制御バンドル400の取得を要求する。ホームゲートウェイ200では、制御バンドル400の取得が要求されると、ステップS300,S302を経て、バンドル取得要求がバンドル管理サーバ100に送信される。
バンドル管理サーバ100では、バンドル取得要求を受信すると、ステップS200〜S204を経て、バンドル取得要求に係る制御バンドル400が生成され、生成された制御バンドル400がホームゲートウェイ200に送信される。
【0085】
ホームゲートウェイ200では、制御バンドル400を受信すると、ステップS304〜S310を経て、受信した制御バンドル400がRAM54に格納され、RAM54の制御バンドル400が実行される。これにより、対応するデバイス210〜220が適切に制御されることとなる。例えば、プリンタであるデバイス210に対応した制御バンドル400であれば、デバイス210により良好な印刷結果が得られるようになる。
【0086】
また、バンドル再構成バンドル402を取得するには、ホームゲートウェイ200において、ユーザは、バンドル再構成バンドル402の取得を要求する。ホームゲートウェイ200では、バンドル再構成バンドル402の取得が要求されると、ステップS300,S302を経て、バンドル取得要求がバンドル管理サーバ100に送信される。
【0087】
バンドル管理サーバ100では、バンドル取得要求を受信すると、ステップS200〜S204を経て、バンドル再構成バンドル402が生成され、生成されたバンドル再構成バンドル402がホームゲートウェイ200に送信される。
ホームゲートウェイ200では、バンドル再構成バンドル402を受信すると、ステップS304〜S310を経て、受信したバンドル再構成バンドル402がRAM54に格納され、RAM54のバンドル再構成バンドル402が実行される。これにより、バンドル結合処理およびバンドル分離処理がそれぞれ時分割で実行される。
【0088】
次に、複数の制御バンドル400を1つの制御バンドル400に結合する場合を説明する。
ホームゲートウェイ200では、バンドル再構成バンドル402が取得されると、バンドル結合処理が実行される。バンドル結合処理では、RAM54のメモリ使用率が所定値(例えば、80%)以上となり、かつ、その状態が所定期間(例えば、3時間)継続すると、ステップS410を経て、RAM54のなかから結合可能な制御バンドル400が検索される。その結果、該当の制御バンドル400が索出されると、ステップS414,S416を経て、制御バンドルaに含まれるパッケージと、制御バンドルbに含まれるパッケージとが対比されて共通パッケージが特定され、制御バンドルaに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルbに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージが制御バンドルa,bから抽出される。
【0089】
次いで、ステップS418,S420を経て、制御バンドルaに含まれるコンポーネントと、制御バンドルbに含まれるコンポーネントとが対比されて共通コンポーネントが特定され、制御バンドルaに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルbに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントが制御バンドルa,bから抽出される。
【0090】
次いで、ステップS422を経て、制御バンドルa,bに含まれるコンポーネント情報412に基づいて、制御バンドルaに含まれるクラスと、制御バンドルbに含まれるクラスとが対比されて共通クラスが特定される。このとき、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致していると、ステップS424,S426を経て、制御バンドルaに含まれるクラスのうち共通クラス以外のもの、制御バンドルbに含まれるクラスのうち共通クラス以外のもの、および共通クラスが制御バンドルa,bから抽出される。
【0091】
次いで、ステップS428を経て、抽出されたパッケージ、コンポーネントおよびクラス(クラスメソッドを含む。)の一覧が表示される。ここで、ホームゲートウェイ200のユーザが、表示された一覧のなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドを指定すると、ステップS432を経て、抽出されたパッケージ、コンポーネントおよびクラスのうち指定のされたものが削除される。なお、削除されたパッケージ、コンポーネントおよびクラスは、結合後に分離可能となるように、それらの名称等の識別情報を削除項目ファイル等に記述して、結合後の制御バンドル400に内包する。
【0092】
そして、ステップS434,S436を経て、抽出されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルa,bが1つの制御バンドル400として再構成され、制御バンドルa,bがRAM54上から削除される。
なお、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致しない場合には、ステップS438を経て、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが対比されて共通クラスメソッドが特定され、制御バンドルaの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルbの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスが新たな共通クラスとして構成される。
【0093】
制御バンドル400の結合例を図面を参照しながら説明する。
図15は、制御バンドル400を結合する第1のパターンを示す図である。
図15の例では、制御バンドルAは、プリンタであるデバイス210のインク残量を監視するインク残量監視バンドルであり、制御バンドルAにより、デバイス210のインク残量が監視される。また、制御バンドルBは、デバイス210の紙残量を監視する紙残量監視バンドルであり、制御バンドルBにより、デバイス210の紙残量が監視される。また、制御バンドルA,Bには、デバイス210のステータスを監視するプリンタステータス監視コンポーネントが共通に含まれている。
【0094】
したがって、RAM54のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルA,Bが結合可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルA,Bは、プリンタステータス監視コンポーネントの重複を排除した制御バンドルCとして再構成される。すなわち、制御バンドルCは、制御バンドルAに含まれるコンポーネントのうちプリンタステータス監視コンポーネント以外のもの、制御バンドルBに含まれるコンポーネントのうちプリンタステータス監視コンポーネント以外のもの、およびプリンタステータス監視コンポーネントを有している。この結合により、プリンタステータス監視コンポーネント1つ分のメモリ容量を低減することができる。
【0095】
図16は、制御バンドル400を結合する第2のパターンを示す図である。
図15の例では、制御バンドルA,Bを一つの制御バンドルCとして再構成したが、制御バンドルCが有するクラス、コンポーネントおよびパッケージを提供可能な制御バンドルDを生成する。さらに、制御バンドルDに含まれるクラス、コンポーネントおよびパッケージのうち制御バンドルAを機能させるのに必要なものを参照する制御バンドルA’と、制御バンドルDに含まれるクラス、コンポーネントおよびパッケージのうち制御バンドルBを機能させるのに必要なものを参照する制御バンドルB’とを生成する。この場合、制御バンドルA’,B’には、クラス、コンポーネントおよびパッケージに代えてそれらを参照する参照情報が含まれている。このように、制御バンドルDをライブラリのように構成すれば、制御バンドルDに含まれるクラス、コンポーネントおよびパッケージを利用する他の制御バンドルが適用された場合は、同様にして、制御バンドルDに含まれるクラス、コンポーネントおよびパッケージのうちその制御バンドルを機能させるのに必要なものを参照する制御バンドルとして再構成することができる。したがって、メモリ容量の低減を効果的に行うことができる。
【0096】
図17は、制御バンドル400を結合する第3のパターンを示す図である。
図17の例では、制御バンドルAは、クラス等(クラスメソッド、クラス、コンポーネントまたはパッケージをいう。)450,452,454を有して構成されている。また、制御バンドルBは、クラス等450,456,458を有して構成されている。ここで、同一の符合は、同一内容のクラス等であることを示す。
【0097】
したがって、RAM54のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルA,Bが結合可能な制御バンドルとして索出され、クラス等450が共通クラス等(共通クラス、共通コンポーネントまたは共通パッケージ等をいう。)として特定される。また、ホームゲートウェイ200のユーザにより、制御バンドルAについてはクラス等452が、制御バンドルBについてはクラス等456がそれぞれ不要なクラス等として指定されると、クラス等452,456が削除され、制御バンドルA,Bは、クラス等450,454,458を有する制御バンドルCとして再構成される。
【0098】
図18は、制御バンドル400を結合する第4のパターンを示す図である。
図18は、制御バンドルAの共通クラスに含まれるクラスメソッドと、制御バンドルBの共通クラスに含まれるクラスメソッドとが完全一致していない場合に制御バンドルA,Bを結合する例を示している。図18の例では、制御バンドルA,Bには共通クラスとしてクラスQが含まれているが、制御バンドルAのクラスQには、クラスメソッドX,Yが、制御バンドルBのクラスQには、クラスメソッドX,Zがそれぞれ含まれており、制御バンドルA,Bのクラスメソッドが完全一致してない。
【0099】
したがって、RAM54のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルA,Bが結合可能な制御バンドルとして索出され、クラスQが共通クラスとして特定される。このとき、制御バンドルAのクラスQに含まれるクラスメソッドと、制御バンドルBのクラスQに含まれるクラスメソッドとが完全一致していないので、クラスメソッドXが共通クラスとして特定され、クラスメソッドX,Y,Zを有するクラスが新たな共通クラスQとして構成される。そして、制御バンドルA,Bは、新たな共通クラスQを有する制御バンドルCとして再構成される。これにより、制御バンドルCのうち制御バンドルAの機能に係る部分も、制御バンドルCのうち制御バンドルBの機能に係る部分も不具合なく動作することができる。
【0100】
図19は、制御バンドル400を結合する第5のパターンを示す図である。
図19は、図18の例と同様に、制御バンドルAの共通クラスに含まれるクラスメソッドと、制御バンドルBの共通クラスに含まれるクラスメソッドとが完全一致していない場合に制御バンドルA,Bを結合する例を示しており、図18の場合と異なるのは、結合の際に不要なクラスメソッドを削除する点にある。図18の例では、制御バンドルA,Bには共通クラスとしてクラスQが含まれているが、制御バンドルAのクラスQには、クラスメソッドX,Y,αが、制御バンドルBのクラスQには、クラスメソッドX,Z,βがそれぞれ含まれている。
【0101】
したがって、RAM54のメモリ使用率が所定値以上となり、かつ、その状態が所定期間継続すると、制御バンドルA,Bが結合可能な制御バンドルとして索出され、クラスQが共通クラスとして特定される。このとき、制御バンドルAのクラスQに含まれるクラスメソッドと、制御バンドルBのクラスQに含まれるクラスメソッドとが完全一致していないので、クラスメソッドXが共通クラスとして特定され、クラスメソッドX,Y,Zを有するクラスが新たな共通クラスQとして構成される。また、ホームゲートウェイ200のユーザにより、制御バンドルAについてはクラスメソッドYが、制御バンドルBについてはクラスメソッドZがそれぞれ不要なクラスメソッドとして指定されると、クラスメソッドY,Zが削除され、制御バンドルA,Bは、クラスメソッドX,α,βを有する制御バンドルCとして再構成される。これにより、制御バンドルCのうち制御バンドルAの機能に係る部分も、制御バンドルCのうち制御バンドルBの機能に係る部分も不具合なく動作することができるとともに、不要なクラスメソッドX,Yが削除されるので、メモリ容量の低減を効果的に行うことができる。
【0102】
次に、結合した制御バンドル400を複数の制御バンドル400に分離する場合を説明する。
ホームゲートウェイ200では、バンドル再構成バンドル402が取得されると、バンドル分離処理が実行される。バンドル分離処理では、ホームゲートウェイ200のユーザにより制御バンドル400の分離が要求されると、ステップS502を経て、RAM54のなかから分離可能な制御バンドル400が検索される。その結果、該当の制御バンドル400が索出されると、ステップS506,S508を経て、制御バンドルcのなかから共通パッケージが特定され、共通パッケージを含むすべてのパッケージが制御バンドルcから抽出される。
【0103】
次いで、ステップS510,S512を経て、制御バンドルcのなかから共通コンポーネントが特定され、共通コンポーネントを含むすべてのコンポーネントが制御バンドルcから抽出される。
次いで、ステップS514,S516を経て、制御バンドルcに含まれるコンポーネント情報412に基づいて制御バンドルcのなかから共通クラスが特定され、共通クラスを含むすべてのクラスが制御バンドルcから抽出される。
【0104】
次いで、ステップS518を経て、抽出されたパッケージ、コンポーネントおよびクラス(クラスメソッドを含む。)の一覧が表示される。ここで、ホームゲートウェイ200のユーザが、表示された一覧のなかから機能的に不要なパッケージ、コンポーネント、クラスおよびクラスメソッドを指定すると、ステップS522を経て、抽出されたパッケージ、コンポーネントおよびクラスのうち指定のされたものが削除される。
【0105】
そして、ステップS528,S530を経て、抽出されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルcが結合前の制御バンドルa,bとして再構成され、制御バンドルcがRAM54上から削除される。
なお、制御バンドルa,bを再構成するにあたって必要なパッケージ、コンポーネント、クラスおよびクラスメソッドが不足している場合には、ステップS526,S528を経て、必要なパッケージ、コンポーネント、クラスおよびクラスメソッドで不足しているものがバンドル管理サーバ100から取得され、抽出されたパッケージ、コンポーネントおよびクラス、並びに取得されたパッケージ、コンポーネントおよびクラスをもとに、制御バンドルcが結合前の制御バンドルa,bとして再構成される。
【0106】
制御バンドル400の分離例を図面を参照しながら説明する。
図20は、制御バンドル400を分離する第1のパターンを示す図である。
図20は、図15の例により結合した制御バンドルCを元の制御バンドルA,Bに分離する場合を示している。図20の例では、ユーザにより制御バンドル400の分離が要求されると、制御バンドルCが分離可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルCは、プリンタステータス監視コンポーネントをそれぞれ有する元の制御バンドルA,Bとして再構成される。
【0107】
図21は、制御バンドル400を分離する第2のパターンを示す図である。
図21は、図16の例により結合した制御バンドルD,A’,B’を元の制御バンドルA,Bに分離する場合を示している。図21の例では、ユーザにより制御バンドル400の分離が要求されると、制御バンドルD,A’,B’が分離可能な制御バンドルとして索出され、プリンタステータス監視コンポーネントが共通コンポーネントとして特定される。そして、制御バンドルD,A’,B’は、プリンタステータス監視コンポーネントをそれぞれ有する元の制御バンドルA,Bとして再構成される。
【0108】
図22は、制御バンドル400を分離する第3のパターンを示す図である。
図22は、図17の例により結合した制御バンドルCを元の制御バンドルA,Bに分離する場合を示している。図22の例では、ユーザにより制御バンドル400の分離が要求されると、制御バンドルCが分離可能な制御バンドルとして索出され、クラス等450が共通クラスとして特定される。しかし、制御バンドルCには、制御バンドルA,Bを再構成するにあたってクラス等452,456が不足しているので、クラス等452,456がバンドル管理サーバ100から取得される。そして、制御バンドルCは、クラス等450,452,454を有する元の制御バンドルA、およびクラス等450,456,458を有する元の制御バンドルBとして再構成される。
【0109】
図23は、制御バンドル400を分離する第4のパターンを示す図である。
図23は、図18の例により結合した制御バンドルCを元の制御バンドルA,Bに分離する場合を示している。図23の例では、ユーザにより制御バンドル400の分離が要求されると、制御バンドルCが分離可能な制御バンドルとして索出され、クラスQが共通クラスとして特定される。そして、制御バンドルCは、クラスメソッドX,Yを含むクラスQを有する元の制御バンドルA、およびクラスメソッドX,Yを含むクラスQを有する元の制御バンドルBとして再構成される。
【0110】
図24は、制御バンドル400を分離する第5のパターンを示す図である。
図24は、図19の例により結合した制御バンドルCを元の制御バンドルA,Bに分離する場合を示している。図24の例では、
ユーザにより制御バンドル400の分離が要求されると、制御バンドルCが分離可能な制御バンドルとして索出され、クラスQが共通クラスとして特定される。しかし、制御バンドルCには、制御バンドルA,Bを再構成するにあたってクラスメソッドY,Zが不足しているので、クラスメソッドY,Zがバンドル管理サーバ100から取得される。そして、制御バンドルCは、クラスメソッドX,Y,αを有する元の制御バンドルA、およびクラスメソッドX,Z,βを有する元の制御バンドルBとして再構成される。
【0111】
一方、ホームゲートウェイ200のユーザは、バンドル400,402の提供を受けるためには、バンドル管理サーバ100に対してあらかじめユーザ登録を行っておくことが望ましい。
ユーザ登録を行う場合、ホームゲートウェイ200において、ユーザは、例えば、ユーザ名、パスワード、氏名、住所、性別、年齢、職業、所属グループ、提供を許可するサービスおよびホームゲートウェイ200のアドレスを含むユーザ情報を入力する。ユーザ情報が入力されると、入力されたユーザ情報がユーザ登録要求とともにバンドル管理サーバ100に送信する。
【0112】
バンドル管理サーバ100では、ユーザ登録要求を受信すると、ステップS100〜S104を経て、ユーザ情報を受信し、受信したユーザ情報が記憶装置42に登録される。
また、ユーザ情報の変更・更新、またはユーザ情報若しくはホームゲートウェイ200の公開を行うこともできる。
【0113】
これらを行う場合、ホームゲートウェイ200において、ユーザは、バンドル管理サーバ100に管理要求を送信する。
バンドル管理サーバ100では、管理要求を受信すると、ステップS150〜S156を経て、要求内容が判定され、管理要求が適切なものであれば、ユーザ認証処理が行われる。その結果、ユーザ認証が得られると、ステップS158,S160を経て、管理要求の内容に応じたそれぞれの処理が実行される。すなわち、ユーザ情報の変更・更新に係る管理要求であれば、ユーザ情報の変更・更新が行われ、ユーザ情報またはホームゲートウェイ200の公開に係る管理要求であれば、ユーザ情報またはホームゲートウェイ200が要求元に対して公開される。
〔3.本実施の形態の効果〕
〔3-1.効果1〕
このようにして、本実施の形態では、制御バンドルaに含まれるクラス、コンポーネントおよびパッケージと、制御バンドルbに含まれるクラス、コンポーネントおよびパッケージとを対比してそれらに共通するクラス、コンポーネントおよびパッケージをそれぞれ共通クラス、共通コンポーネントおよび共通パッケージとして特定し、共通クラス、共通コンポーネントおよび共通パッケージが重複しないように、制御バンドルaおよび制御バンドルbを1つの制御バンドル400として再構成するようになっている。
【0114】
これにより、共通クラス、共通コンポーネントおよび共通パッケージの重複を排除して制御バンドル400が再構成されるので、従来に比して、ホームゲートウェイ200においてメモリの利用効率を向上することができる。ここで、メモリの利用効率には、RAM54の利用効率だけでなく、ホームゲートウェイ200にHDD等の記憶装置を設けた場合には、制御バンドル400が記憶装置にも格納されるので記憶装置の利用効率も含まれる。以下、同じ。
【0115】
〔3-2.効果2〕
さらに、本実施の形態では、制御バンドルaおよび制御バンドルbを、制御バンドルaに含まれるクラスのうち共通クラス以外のもの、制御バンドルbに含まれるクラスのうち共通クラス以外のもの、および共通クラスを有する1つの制御バンドル400として再構成するようになっている。
【0116】
これにより、共通クラスの重複を積極的に排除して制御バンドル400が再構成されるので、メモリの利用効率をさらに向上することができる。
〔3-3.効果3〕
さらに、本実施の形態では、制御バンドルaおよび制御バンドルbを、制御バンドルaに含まれるコンポーネントのうち共通コンポーネント以外のもの、制御バンドルbに含まれるコンポーネントのうち共通コンポーネント以外のもの、および共通コンポーネントを有する1つの制御バンドル400として再構成するようになっている。
【0117】
これにより、共通コンポーネントの重複を積極的に排除して制御バンドル400が再構成されるので、メモリの利用効率をさらに向上することができる。
〔3-4.効果4〕
さらに、本実施の形態では、制御バンドルaおよび制御バンドルbを、制御バンドルaに含まれるパッケージのうち共通パッケージ以外のもの、制御バンドルbに含まれるパッケージのうち共通パッケージ以外のもの、および共通パッケージを有する1つの制御バンドル400として再構成するようになっている。
【0118】
これにより、共通パッケージの重複を積極的に排除して制御バンドル400が再構成されるので、メモリの利用効率をさらに向上することができる。
〔3-5.効果5〕
さらに、本実施の形態では、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致していないときは、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、制御バンドルaの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、制御バンドルbの共通クラスに含まれるクラスメソッドのうち共通クラスメソッド以外のもの、および共通クラスメソッドを含むクラスを共通クラスとして構成するようになっている。
【0119】
これにより、制御バンドルaの共通クラスに含まれるクラスメソッドと、制御バンドルbの共通クラスに含まれるクラスメソッドとが完全一致していない場合に、制御バンドル400を結合して再構成を行った後に不具合が生じる可能性を低減することができる。
〔3-6.効果6〕
さらに、本実施の形態では、制御バンドルaに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、制御バンドルaおよび制御バンドルbを、不要クラス、不要コンポーネントおよび不要パッケージを有しない1つの制御バンドル400として再構成するようになっている。
【0120】
これにより、制御バンドル400を結合して再構成するにあたって、制御バンドルaに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができる。
〔3-7.効果7〕
さらに、本実施の形態では、制御バンドルbに含まれるクラス、コンポーネントおよびパッケージのうち共通クラス、共通コンポーネントおよび共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネントおよび不要パッケージとして指定されたときは、制御バンドルaおよび制御バンドルbを、不要クラス、不要コンポーネントおよび不要パッケージを有しない1つの制御バンドル400として再構成するようになっている。
【0121】
これにより、制御バンドル400を結合して再構成するにあたって、制御バンドルaおよび制御バンドルbに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができる。
〔3-8.効果8〕
さらに、本実施の形態では、RAM54の制御バンドル400に含まれる複数のクラスのなかから、複数のクラスのうち第1のクラスと、複数のクラスのうち第2のクラスとが共通に利用するクラスを共通クラスとして特定し、RAM54の制御バンドル400を、第1のクラスおよび共通クラスを少なくとも有する制御バンドルa、並びに第2のクラスおよび共通クラスを少なくとも有する制御バンドルbとして再構成するようになっている。
【0122】
これにより、制御バンドル400を分離して機能的に不要なものを削除することにより制御バンドル400の整理を行えば、不要なクラスを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔3-9.効果9〕
さらに、本実施の形態では、RAM54の制御バンドル400に含まれる複数のコンポーネントのなかから、複数のコンポーネントのうち第1のコンポーネントと、複数のコンポーネントのうち第2のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、RAM54の制御バンドル400を、第1のコンポーネントおよび共通コンポーネントを少なくとも有する制御バンドルa、並びに第2のコンポーネントおよび共通コンポーネントを少なくとも有する制御バンドルbとして再構成するようになっている。
【0123】
これにより、制御バンドル400を分離して機能的に不要なものを削除することにより制御バンドル400の整理を行えば、不要なコンポーネントを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔3-10.効果10〕
さらに、本実施の形態では、RAM54の制御バンドル400に含まれる複数のパッケージのなかから、複数のパッケージのうち第1のパッケージと、複数のパッケージのうち第2のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、RAM54の制御バンドル400を、第1のパッケージおよび共通パッケージを少なくとも有する制御バンドルa、並びに第2のパッケージおよび共通パッケージを少なくとも有する制御バンドルbとして再構成するようになっている。
【0124】
これにより、制御バンドル400を分離して機能的に不要なものを削除することにより制御バンドル400の整理を行えば、不要なパッケージを効果的に排除することができるので、メモリの利用効率をさらに向上することができる。
〔3-11.効果11〕
さらに、本実施の形態では、RAM54のメモリ使用率が所定値以上となった状態が所定期間継続したときは、制御バンドル400を再構成するようになっている。
【0125】
これにより、RAM54のメモリ使用率が所定値以上となった状態が所定期間継続したときに初めて制御バンドル400の再構成が行われるので、制御バンドル400の再構成が頻繁に行われることにより他の処理に負荷を与える可能性を低減することができる。
〔4.請求範囲との対応関係〕
上記実施の形態において、バンドル管理サーバ100は、発明7のバンドル提供端末に対応し、ホームゲートウェイ200は、発明7のゲートウェイ端末に対応し、RAM54は、発明1ないし3、5、15ないし18、21ないし24の記憶手段に対応し、クラスメソッド、クラス、コンポーネントおよびパッケージは、発明1ないし6、8、15ないし17、21ないし24の機能部に対応している。また、共通クラス、共通コンポーネントおよび共通パッケージは、発明1ないし6、21ないし24の共通機能部に対応し、ステップS202は、発明7のバンドル生成手段に対応し、ステップS204は、発明7のバンドル送信手段に対応している。
【0126】
また、上記実施の形態において、ステップS302,S304は、発明3、5または7のバンドル取得手段に対応し、ステップS306は、発明3、5または7のバンドル格納手段に対応し、ステップS308は、発明3、5または7のバンドル実行手段に対応し、ステップS400〜S442,S500〜S530は、発明3ないし19のバンドル再構成手段に対応している。
〔5.他の実施の形態〕
〔5-1.形態1〕
なお、上記実施の形態においては、制御バンドル400の再構成をホームゲートウェイ200で行うように構成したが、これに限らず、バンドル管理サーバ100その他の端末で行うように構成することもできる。バンドル管理サーバ100で行う場合、バンドル管理サーバ100は、制御バンドル400を受信し、受信した制御バンドル400をバンドル再構成バンドルと同一の手法により再構成し、再構成した制御バンドル400をホームゲートウェイ200に送信する。また、ホームゲートウェイ200は、ホームゲートウェイ200での処理負荷が大きい場合(例えば、CPU占有率が30%以上の場合)、またはホームゲートウェイ200のメモリ容量が不足している場合(例えば、メモリ使用率が90%の場合)など、制御バンドル400の再構成が困難であると判定したときは、再構成の対象となる制御バンドル400をバンドル管理サーバ100に送信する。なお、バンドル管理サーバ100以外の端末(例えば、他のホームゲートウェイ200)で再構成を代行する場合もこれと同じ要領で行うことができる。
【0127】
これにより、制御バンドル400の再構成が困難である場合には、バンドル管理サーバ100が制御バンドル400の再構成を代行してくれるので、制御バンドル400の再構成に伴ってホームゲートウェイ200にかかる負担を低減することができる。
この場合において、バンドル管理サーバ100は、発明20のバンドル再構成代行端末に対応し、ホームゲートウェイ200は、発明20のゲートウェイ端末に対応し、ステップS400〜S442,S500〜S530は、発明20のバンドル再構成手段に対応している。
【0128】
〔5-2.形態2〕
また、上記実施の形態においては、制御バンドル400の再構成をホームゲートウェイ200で行うように構成したが、これに限らず、バンドル管理サーバ100および複数のホームゲートウェイ200を分散結合して、それらの端末で協調的に行うように構成することもできる。
【0129】
〔5-3.形態3〕
また、上記実施の形態においては、バンドル400,402をバンドル取得要求に応じて生成し、生成したバンドル400,402をホームゲートウェイ200に送信するように構成したが、これに限らず、バンドル400,402をあらかじめ生成して記憶装置42に格納しておき、バンドル取得要求を受信したときは、受信したバンドル取得要求に係るバンドル400,402を記憶装置42から読み出し、読み出したバンドル400,402をホームゲートウェイ200に送信するように構成することもできる。
【0130】
〔5-4.形態4〕
また、上記実施の形態においては、制御バンドル400を結合する場合、2つの制御バンドル400を1つの制御バンドル400として再構成するように構成したが、これに限らず、3つ以上の制御バンドル400を1つの制御バンドルとして再構成するように構成することもできる。より広義には、m(mは2以上の整数)個の制御バンドル400をn(nは1以上の整数でかつm>n)として再構成するように構成することができる。
【0131】
〔5-5.形態5〕
また、上記実施の形態においては、制御バンドル400を分離する場合、1つの制御バンドル400を2つの制御バンドル400として再構成するように構成したが、これに限らず、1つの制御バンドル400を3つ以上の制御バンドル400として再構成するように構成することもできる。より広義には、m(mは1以上の整数)個の制御バンドル400をn(nは2以上の整数でかつn>m)として再構成するように構成することができる。
【0132】
〔5-6.形態6〕
また、上記実施の形態においては、再構成した制御バンドル400を分離するように構成したが、これに限らず、1度も再構成されていない制御バンドル400を分離するように構成することもできる。
〔5-7.形態7〕
また、上記実施の形態においては、RAM54のメモリ使用率が所定値以上となった状態が所定期間継続したときは、制御バンドル400を再構成するように構成したが、これに限らず、例えば、CPU占有率が所定値以下となったときは、制御バンドル400を再構成するように構成することもできる。
【0133】
〔5-8.形態8〕
また、上記実施の形態においては、プリンタ、プロジェクタ、サウンドシステム、PCおよび電子レンジをデバイスとして採用したが、これに限らず、ディジタルカメラ、ディジタルビデオカメラ、冷蔵庫、テレビ、ゲーム機および携帯情報端末(PDAを含む。)をデバイスとして採用してもよい。
【0134】
〔5-9.形態9〕
また、上記実施の形態においては、ホームゲートウェイ200にバンドルを適用するように構成したが、これに限らず、例えば、ネットワーク対応のプリンタ、プロジェクタ、スキャナ、ディジタルカメラ、ディジタルビデオカメラ、ネットワークカード、PC、PDA、ネットワークストレージ、オーディオ機器、携帯電話、PHS(登録商標)(Personal Handyphone System)、腕時計、ウォッチ型PDA、STB、POS(Point Of Sale)端末、コピー機、FAX機、電話(IP電話等も含む。)、交換機、NCU(Network Control Unit)、ルータ、ハブ、ブリッジ、その他プログラム実行可能なデバイスにバンドルを適用するように構成することもできる。本発明は、HDDを持たないようなデバイスでも、RAMやフラッシュさえあれば動作が可能である。また、ホームゲートウェイがない環境でも、プリンタ、スキャナ、プロジェクタ、デジカメ、オーディオ、(白物)家電等の各種デバイスに、ホームゲートウェイの役割を果たす機能が搭載されていれば動作可能である。
【0135】
〔5-10.形態10〕
また、上記実施の形態において、図3ないし図5のフローチャートに示す処理を実行するにあたっては、ROM32にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM34に読み込んで実行するようにしてもよい。
【0136】
また、上記実施の形態において、図12ないし図14のフローチャートに示す処理を実行するにあたってはいずれも、ROM52にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM54に読み込んで実行するようにしてもよい。
【0137】
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【0138】
〔5-11.形態11〕
また、上記実施の形態においては、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、インターネット199からなるネットワークシステムに適用した場合について説明したが、これに限らず、例えば、インターネット199と同一方式により通信を行ういわゆるイントラネットに適用してもよい。もちろん、インターネット199と同一方式により通信を行うネットワークに限らず、通常のネットワークに適用することもできる。
【0139】
〔5-12.形態12〕
また、上記実施の形態においては、本発明に係るバンドル再構成システムおよびバンドル再構成プログラム、並びにバンドル再構成方法を、図1に示すように、ホームゲートウェイ200において、バンドル管理サーバ100から複数のバンドルを取得し、取得したバンドルをそのメモリ使用率に応じて再構成する場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。
【0140】
【発明の効果】
以上説明したように、本発明に係る請求項1、3または5記載のバンドル再構成システムによれば、共通機能部の重複を排除してバンドルが再構成されるので、従来に比して、動的にバンドルが組み込まれるホームゲートウェイその他の情報処理装置においてメモリの利用効率を向上することができるという効果が得られる。
【0141】
さらに、本発明に係る請求項2、4または6記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができるので、従来に比して、動的にバンドルが組み込まれるホームゲートウェイその他の情報処理装置においてメモリの利用効率を向上することができるという効果が得られる。
【0142】
さらに、本発明に係る請求項7ないし20記載のバンドル再構成システムによれば、共通機能部の重複を排除してバンドルが再構成されるとともに、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要な機能部を効果的に排除することができるので、従来に比して、動的にバンドルが組み込まれるゲートウェイ端末においてメモリの利用効率を向上することができるという効果が得られる。
【0143】
さらに、本発明に係る請求項8ないし14記載のバンドル再構成システムによれば、共通クラス、共通コンポーネントおよび共通パッケージの重複を排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項9記載のバンドル再構成システムによれば、共通クラスの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【0144】
さらに、本発明に係る請求項10記載のバンドル再構成システムによれば、共通コンポーネントの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項11記載のバンドル再構成システムによれば、共通パッケージの重複を積極的に排除してバンドルが再構成されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【0145】
さらに、本発明に係る請求項12記載のバンドル再構成システムによれば、第1のバンドルの共通クラスに含まれるクラスメソッドと、第2のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していない場合に、バンドルを結合して再構成を行った後に不具合が生じる可能性を低減することができるという効果も得られる。
【0146】
さらに、本発明に係る請求項13または14記載のバンドル再構成システムによれば、バンドルを結合して再構成するにあたって、第1のバンドルに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項14記載のバンドル再構成システムによれば、バンドルを結合して再構成するにあたって、第1のバンドルおよび第2のバンドルに含まれる不要クラス、不要コンポーネントおよび不要パッケージが排除されるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【0147】
さらに、本発明に係る請求項15記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なクラスを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項16記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なコンポーネントを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
【0148】
さらに、本発明に係る請求項17記載のバンドル再構成システムによれば、バンドルを分離して機能的に不要なものを削除することによりバンドルの整理を行えば、不要なパッケージを効果的に排除することができるので、メモリの利用効率をさらに向上することができるという効果も得られる。
さらに、本発明に係る請求項18記載のバンドル再構成システムによれば、記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときに初めてバンドルの再構成が行われるので、バンドルの再構成が頻繁に行われることにより他の処理に負荷を与える可能性を低減することができるという効果も得られる。
【0149】
さらに、本発明に係る請求項20記載のバンドル再構成システムによれば、バンドルの再構成が困難である場合には、バンドル再構成代行端末がバンドルの再構成を代行してくれるので、バンドルの再構成に伴ってゲートウェイ端末にかかる負担を低減することができるという効果も得られる。
一方、本発明に係る請求項21記載のバンドル再構成プログラムによれば、請求項1記載のバンドル再構成システムと同等の効果が得られる。
【0150】
さらに、本発明に係る請求項22記載のバンドル再構成プログラムによれば、請求項2記載のバンドル再構成システムと同等の効果が得られる。
一方、本発明に係る請求項23記載のバンドル再構成方法によれば、請求項1記載のバンドル再構成システムと同等の効果が得られる。
さらに、本発明に係る請求項24記載のバンドル再構成方法によれば、請求項2記載のバンドル再構成システムと同等の効果が得られる。
【図面の簡単な説明】
【図1】 本発明を適用するネットワークシステムの構成を示すブロック図である。
【図2】 バンドル管理サーバ100の構成を示すブロック図である。
【図3】 バンドル管理サーバ100で実行するユーザ登録処理を示すフローチャートである。
【図4】 バンドル管理サーバ100で実行するユーザ管理処理を示すフローチャートである。
【図5】 バンドル管理サーバ100で実行するバンドル提供処理を示すフローチャートである。
【図6】 バンドルのデータ構造を示す図である。
【図7】 バンドルのデータ構造を示す図である。
【図8】 コンポーネント情報412のデータ構造を示す図である。
【図9】 コンポーネント410のデータ構造を示す図である。
【図10】 クラス情報422のデータ構造を示す図である。
【図11】 ホームゲートウェイ200の構成を示すブロック図である。
【図12】 ホームゲートウェイ200で実行するバンドル取得処理を示すフローチャートである。
【図13】 バンドル結合処理を示すフローチャートである。
【図14】 バンドル分離処理を示すフローチャートである。
【図15】 制御バンドル400を結合する第1のパターンを示す図である。
【図16】 制御バンドル400を結合する第2のパターンを示す図である。
【図17】 制御バンドル400を結合する第3のパターンを示す図である。
【図18】 制御バンドル400を結合する第4のパターンを示す図である。
【図19】 制御バンドル400を結合する第5のパターンを示す図である。
【図20】 制御バンドル400を分離する第1のパターンを示す図である。
【図21】 制御バンドル400を分離する第2のパターンを示す図である。
【図22】 制御バンドル400を分離する第3のパターンを示す図である。
【図23】 制御バンドル400を分離する第4のパターンを示す図である。
【図24】 制御バンドル400を分離する第5のパターンを示す図である。
【符号の説明】
100…バンドル管理サーバ,200…ホームゲートウェイ,210〜220…デバイス,199…インターネット,30,50…CPU,32,52…ROM,34,54…RAM,38,58…I/F,40…入力装置,42…記憶装置,44…表示装置,400…制御バンドル,402…バンドル再構成バンドル,410…コンポーネント,412…コンポーネント情報,414…バンドルコントローラ,420…クラス,422…クラス情報,424…コンポーネント制御クラス,450〜458…クラス等
[0001]
BACKGROUND OF THE INVENTION
The present invention is applied to a home gateway, a PC, an STB (Set Top Box), a network card, a mobile phone, a PDA (Personal Digital Assistant), a wristwatch, and other devices capable of executing a program to reconfigure a bundle for providing a predetermined service. In particular, the present invention relates to a bundle reconfiguration system, a bundle reconfiguration program, and a bundle reconfiguration method suitable for improving the memory utilization efficiency in a home gateway in which a bundle is dynamically incorporated.
[0002]
[Prior art]
In the near future, it is expected that each home will connect a home gateway to the Internet, connect multiple network devices to the home gateway, and each network device will use services on the Internet via the home gateway. Is done.
[0003]
A wide variety of network devices are connected to the home gateway. For example, a network compatible scanner or printer. In addition, OA products, home appliances, and other electronic devices can be connected as network devices. In order for the home gateway to properly control the network device, it is necessary to incorporate a control program for the network device into the home gateway, but it is not realistic to incorporate a control program for all possible types of network devices. Absent. Therefore, in reality, a network device manufacturer or the like sells a network device, and at the same time, posts a control bundle, which is a control program, on a predetermined server so that it can be downloaded. When the network device purchased by the user is connected, the corresponding control bundle is downloaded from a predetermined server and executed in the home gateway. Downloading is performed automatically or manually by the user.
[0004]
However, as the number of network devices connected to the home gateway increases, it is necessary to incorporate a large number of control bundles accordingly. However, the memory capacity of the home gateway is sufficient because the control bundles are executed on the memory. If not, there is a certain limit to the number that can be included.
Therefore, it is required to devise so that more control bundles can be incorporated under the limited memory capacity. Conventionally, as a technique for improving the memory utilization efficiency and related techniques, for example, an object-oriented language execution processing method (referred to as a first conventional example) disclosed in Patent Document 1 is disclosed in Patent Document 2. And a software processing system (referred to as a second conventional example) and a data processing device disclosed in Patent Document 3 (referred to as a third conventional example).
[0005]
In the first conventional example, the class information storage device holds class information including a class name, a class attribute, method information, and a method definition so as to be searchable by class ID. Upon receiving the message, the object issues a query specifying the class ID and method selection information, and in response to this, the method search unit searches the class information storage device for a method that matches the class ID and method selection information. The object then executes this retrieved method. The class information extraction unit extracts class information when compiling the class definition source program and stores it in the class information storage device. The exclusive control unit performs exclusive control of access of the method search unit and the class information extraction unit to the class information storage device.
[0006]
In the second conventional example, all processing codes that call functions of a specific component are concentrated on a management component that manages the processing code. When dynamic extension is performed, information for component cooperation is automatically updated by exchanging management components together with specific components. Other components can be reused.
[0007]
In the third conventional example, an item identifier for identifying item data, the type of item data, and an attached program for executing item data associated with at least one of the item identifiers is read by the input unit and the item data is processed. And a program selection unit that selects either the internal program for each processing module stored in the program storage unit or the attached program according to the content of the item identifier.
[0008]
[Patent Document 1]
JP-A-10-21077
[Patent Document 2]
Japanese Patent Laid-Open No. 11-161383
[Patent Document 3]
Japanese Patent Laid-Open No. 11-312081
[0009]
[Problems to be solved by the invention]
However, since any of the first to third conventional examples is a device related to the structure or handling of the program, there is no direct description of a specific configuration for reducing the data capacity of the program. It is not enough to improve the utilization efficiency.
[0010]
Accordingly, the present invention has been made paying attention to such an unsolved problem of the conventional technology, and is suitable for improving the memory utilization efficiency in a home gateway in which a bundle is dynamically incorporated. An object of the present invention is to provide a bundle reconfiguration system, a bundle reconfiguration program, and a bundle reconfiguration method.
[0011]
[Means for Solving the Problems]
[Invention 1]
  In order to achieve the above object, a bundle reconfiguration system of the invention 1 includes:
  A system that has one or a plurality of different functional units and reconfigures a bundle that provides services by executing the functional units by executing the functional units,
  At least two of the bundles are stored in a storage meansThe memory usage rate of the storage means is a predetermined value or more.In this case, the functional unit included in the first bundle among the bundles of the storage unit and the functional unit included in the second bundle among the bundles of the storage unit are compared with each other. Identifying the first bundle and the second bundle as functional units, the functional units included in the first bundle other than the common functional unit, the functional units included in the second bundle Among them, reconfigure as one bundle having the common function unit other than the common function unitIncludes gateway terminalsIt is characterized by that.
[0012]
With such a configuration, when at least two bundles are stored in the storage unit, the functional unit included in the first bundle is compared with the functional unit included in the second bundle, so that the common functional unit is compared. Identified as The first bundle and the second bundle are other than the common function unit among the function units included in the first bundle, and other than the common function unit among the function units included in the second bundle, and It is reconfigured as one bundle having a common function part. For example, when the first bundle has the functional units A and B and the second bundle has the functional units B and C, the common functional unit is the functional unit B, so the first bundle and the second The bundle is reconfigured as one bundle having functional parts A, B, and C.
[0013]
Here, the bundle reconfiguration system according to the present invention is not limited to being applied to a home gateway in which a bundle is dynamically incorporated, but also a desktop or notebook PC, a portable terminal such as a mobile phone or a PDA, and other information processing. It can also be applied to a device. In particular, it is beneficial to apply to a terminal with insufficient memory capacity such as a home gateway or a portable terminal. Hereinafter, the same applies to the bundle reconfiguration systems of the inventions 2, 3 and 5.
[0014]
  Moreover, the bundle should just be stored in the memory | storage means in reconfiguration | reconstruction,
The bundle may be acquired from the outside and stored in the storage unit, or the bundle may be read from a storage medium such as an FD and stored in the storage unit. The same applies to the bundle reconfiguration system of the second aspect.
[Invention 2]
  Furthermore, the bundle reconfiguration system of the invention 2 is
  A system having at least three functional units and reconfiguring a bundle that provides services by executing the functional units by executing the functional units,
  The bundle is stored in a storage means, Separation of the bundle was requestedIn this case, the first functional unit among the plurality of functional units and the second functional unit among the plurality of functional units are commonly used from among the plurality of functional units included in the bundle of the storage unit. A function unit to be identified as a common function unit, a bundle of the storage means, a first bundle having at least the first function unit and the common function unit, and the second function unit and the common function unit. Reconfigure as a second bundle with at leastIncludes gateway terminalsIt is characterized by that.
[0015]
  In such a configuration, when the bundle is stored in the storage unit, the first functional unit and the second functional unit are commonly used from the plurality of functional units included in the bundle of the storage unit. A functional unit to be identified as a common functional unit, a bundle of storage means includes a first bundle having at least a first functional unit and a common functional unit, and a second bundle having at least a second functional unit and a common functional unit Reconfigured as a bundle. For example, when there is a bundle having functional units A, B, and C, when the functional unit A and the functional unit C use the functional unit B in common, the common functional unit becomes the functional unit B. The bundle is reconfigured as a first bundle having functional parts A and B and a second bundle having functional parts B and C. If the bundles are separated in this way and the bundles are organized by deleting functionally unnecessary ones of the separated bundles, unnecessary functional units can be effectively eliminated.
[Invention 3]
  Furthermore, the bundle reconstruction system of the invention 3 is
  A system that has one or a plurality of different functional units and reconfigures a bundle that provides services by executing the functional units by executing the functional units,
  Bundle acquisition means for acquiring the bundle, bundle storage means for storing the bundle acquired by the bundle acquisition means in storage means, bundle execution means for executing the bundle of the storage means, and at least of the bundles of the storage means A bundle reconfiguring unit that combines two things and reconfigures them as one bundle,
  The bundle reconfiguration meansWhen the memory usage rate of the storage means is a predetermined value or more,A functional unit having a common function by comparing a functional unit included in the first bundle among the bundles of the storage unit and a functional unit included in the second bundle among the bundles of the storage unit as a common functional unit. The first bundle and the second bundle are identified, the common unit among the functional units included in the first bundle, other than the common functional unit, and the common among the functional units included in the second bundle Reconfigure as a single bundle having a function unit other than the common function unitIncludes gateway terminalsIt is characterized by that.
[0016]
With such a configuration, the bundle is acquired by the bundle acquisition unit, the acquired bundle is stored in the storage unit by the bundle storage unit, and the bundle of the storage unit is executed by the bundle execution unit. As a result, the functional unit functions to provide a service. In addition, the bundle reconfiguration unit compares the functional unit included in the first bundle with the functional unit included in the second bundle and identifies the common functional unit. The first bundle and the second bundle are other than the common function unit among the function units included in the first bundle, and other than the common function unit among the function units included in the second bundle, and It is reconfigured as one bundle having a common function part. For example, when the first bundle has the functional units A and B and the second bundle has the functional units B and C, the common functional unit is the functional unit B, so the first bundle and the second The bundle is reconfigured as one bundle having functional parts A, B, and C.
[Invention 4]
Furthermore, the bundle reconstruction system of the invention 4 is the bundle reconstruction system of the invention 3,
The bundle reconfiguration unit specifies the common function unit from among a plurality of function units included in the one bundle, and reconfigures the one bundle as the first bundle and the second bundle. It is characterized by that.
[0017]
  If it is such a structure, a common function part will be identified from the several function parts contained in one reconfigured bundle (reconstruction bundle) by the bundle reconfiguration means, and the reconfiguration bundle will be the first And the second bundle are reconfigured. For example, when there is a reconfiguration bundle having functional units A, B, and C, when the functional unit A and the functional unit C use the functional unit B in common, the common functional unit becomes the functional unit B. The reconfigured bundle is reconfigured as a first bundle having functional parts A and B and a second bundle having functional parts B and C. If the reconfigured bundles are separated in this way, and the bundles are arranged by deleting functionally unnecessary ones among the separated bundles, unnecessary functional units can be effectively eliminated.
[Invention 5]
  Furthermore, the bundle reconstruction system of the invention 5 is
  A system having at least three functional units and reconfiguring a bundle that provides services by executing the functional units by executing the functional units,
  A bundle acquisition unit that acquires the bundle, a bundle storage unit that stores the bundle acquired by the bundle acquisition unit in a storage unit, a bundle execution unit that executes a bundle of the storage unit, and a bundle of the storage unit are separated. Bundle reconfiguring means for reconfiguring as at least two bundles,
  The bundle reconfiguration meansWhen separation of the bundle is requested,Among the plurality of function units included in the bundle of the storage unit, the first function unit among the plurality of function units and the function unit commonly used by the second function unit among the plurality of function units. As a common function unit, a bundle of the storage means, a first bundle having at least the first function unit and the common function unit, and a second bundle having at least the second function unit and the common function unit. Reconfigure as a bundle of 2Includes gateway terminalsIt is characterized by that.
[0018]
With such a configuration, the bundle is acquired by the bundle acquisition unit, the acquired bundle is stored in the storage unit by the bundle storage unit, and the bundle of the storage unit is executed by the bundle execution unit. As a result, the functional unit functions to provide a service. In addition, the bundle reconfiguring unit identifies a function unit commonly used by the first function unit and the second function unit as a common function unit from among a plurality of function units included in the bundle of the storage unit. The bundle of storage means is reconfigured as a first bundle having at least a first functional unit and a common functional unit, and a second bundle having at least a second functional unit and a common functional unit. For example, when there is a bundle having functional units A, B, and C, when the functional unit A and the functional unit C use the functional unit B in common, the common functional unit becomes the functional unit B. The bundle is reconfigured as a first bundle having functional parts A and B and a second bundle having functional parts B and C. If the bundles are separated in this way and the bundles are organized by deleting functionally unnecessary ones of the separated bundles, unnecessary functional units can be effectively eliminated.
[Invention 6]
Furthermore, the bundle reconstruction system of the invention 6 is the bundle reconstruction system of the invention 5,
The bundle reconfiguring means identifies a functional unit having a common function as the common functional unit by comparing the functional unit included in the first bundle and the functional unit included in the second bundle, and The first bundle and the second bundle are functions other than the common function unit among the function units included in the first bundle, and other than the common function unit among the function units included in the second bundle. And a single bundle having the common function unit.
[0019]
  If it is such a structure, the function part which a function part contained in a 1st bundle and the function part contained in a 2nd bundle will be contrasted by a bundle reconfiguration means as a common function part The first bundle and the second bundle are identified, the functional units included in the first bundle other than the common functional unit, the functional units included in the second bundle other than the common functional unit, And reconfigured as a single bundle with a common function. For example, when the first bundle has the functional units A and B and the second bundle has the functional units B and C, the common functional unit is the functional unit B, so the first bundle and the second The bundle is reconfigured as one bundle having functional parts A, B, and C.
[Invention 7]
  Furthermore, the bundle reconstruction system of the invention 7 is the bundle reconstruction system of any of the inventions 4 and 6,
  The gateway terminal isBundle providing terminal that provides the bundle in response to an acquisition request from the gateway terminalAndConnects reliablyAnd
  The bundle providing terminal includes a bundle generation unit that generates the bundle, and a bundle transmission unit that transmits the bundle generated by the bundle generation unit to the gateway terminal in response to the acquisition request.
  The gateway terminal includes the bundle acquisition unit, the bundle storage unit, the bundle execution unit, and the bundle reconfiguration unit,
  The bundle acquisition means is configured to transmit the acquisition request to the bundle providing terminal and acquire the bundle from the bundle providing terminal.
[0020]
With such a configuration, in the gateway terminal, the bundle acquisition unit transmits an acquisition request to the bundle providing terminal.
In the bundle providing terminal, when the bundle is generated by the bundle generation unit and the acquisition request is received, the generated bundle is transmitted to the gateway terminal by the bundle transmission unit in response to the received acquisition request.
[0021]
In the gateway terminal, when the bundle is received (acquired) by the bundle acquisition means, the received bundle is stored in the storage means by the bundle storage means, and the bundle of the storage means is executed by the bundle execution means. Moreover, the bundle of the storage unit is reconfigured by the bundle reconfiguration unit.
Here, the bundle providing terminal may be a communication facility connected to one end of the communication path with the gateway terminal and has at least a server function, and is configured to have both a client function and a server function. You can also. The same applies to the gateway terminal.
[Invention 8]
Furthermore, the bundle reconstruction system of the invention 8 is the bundle reconstruction system of the invention 7,
The bundle includes a component that includes a plurality of classes as the functional unit, and a package that defines a logical combination of the plurality of classes included in the bundle.
The bundle reconfiguration unit compares the class, component, and package included in the first bundle with the class, component, and package included in the second bundle, and class, component, and package common to them. Respectively identify as a common class, a common component, and a common package, and reconfigure the first bundle and the second bundle as one bundle so that the common class, the common component, and the common package do not overlap. It is characterized by becoming.
[0022]
With such a configuration, the gateway terminal compares the classes, components, and packages included in the first bundle with the classes, components, and packages included in the second bundle by the bundle reconfiguration unit. Classes, components, and packages that are common to each other are identified as common classes, common components, and common packages, respectively. Then, the first bundle and the second bundle are reconfigured as one bundle so that the common class, common component, and common package do not overlap.
[Invention 9]
Furthermore, the bundle reconstruction system of the invention 9 is the bundle reconstruction system of the invention 8,
The bundle reconfiguring means includes the first bundle and the second bundle, the classes included in the first bundle other than the common class, and the class included in the second bundle. It is reconfigured as a bundle other than the common class and one bundle having the common class.
[0023]
In such a configuration, the gateway terminal uses the bundle reconfiguration unit to change the first bundle and the second bundle into a second bundle other than the common class among the classes included in the first bundle. The included classes are reconfigured as one bundle having a common class other than the common class.
[Invention 10]
Furthermore, the bundle reconstruction system of the invention 10 is the bundle reconstruction system of any of the inventions 8 and 9,
The bundle reconfiguring means includes the first bundle and the second bundle that are components other than the common component among the components included in the first bundle, and the components included in the second bundle. A component other than the common component and one bundle having the common component are reconfigured.
[0024]
In such a configuration, the gateway terminal uses the bundle reconfiguration unit to change the first bundle and the second bundle into components other than the common components among the components included in the first bundle, and the second bundle. Among the included components, those other than the common component and one bundle having the common component are reconfigured.
[Invention 11]
Furthermore, the bundle reconfiguration system according to the eleventh aspect of the present invention is the bundle reconfiguration system according to any one of the eighth to tenth aspects,
The bundle reconfiguring means includes the first bundle and the second bundle that are other than the common package among the packages included in the first bundle, and the package included in the second bundle. It is characterized by being reconfigured as a bundle other than the common package and the common package.
[0025]
In such a configuration, the gateway terminal uses the bundle reconfiguration unit to change the first bundle and the second bundle into a second bundle other than the common package among the packages included in the first bundle. The included packages are reconfigured as one bundle having a common package other than the common package.
[Invention 12]
Furthermore, the bundle reconfiguration system of the invention 12 is the bundle reconfiguration system of any of the inventions 8 to 11,
The class includes a plurality of class methods,
When the class method included in the common class of the first bundle does not completely match the class method included in the common class of the second bundle, the bundle reconfiguration unit A class method included in the common class of the second bundle and a class method included in the common class of the second bundle are identified as a common class method. A class method included in the common class of the bundle other than the common class method, a class method included in the common class of the second bundle other than the common class method, and the common class method A class is configured as the common class.
[0026]
In such a configuration, the gateway terminal reconfigures the bundle if the class method included in the common class of the first bundle and the class method included in the common class of the second bundle do not completely match. The means identifies the common class method by comparing the class method included in the common class of the first bundle with the class method included in the common class of the second bundle. The class methods included in the common class of the first bundle include those other than the common class method, the class methods included in the common class of the second bundle, other than the common class method, and the common class method. The class is configured as a common class. For example, if the common class of the first bundle includes class methods A, B, and C, and the common class of the second bundle includes class methods B, C, and D, the common class methods are class methods B, C, and Therefore, the common class is configured as a class including class methods A, B, C, and D.
[Invention 13]
Further, the bundle reconfiguration system of the invention 13 is the bundle reconfiguration system of any of the inventions 8 to 12,
The bundle reconfiguring means includes an unnecessary class, an unnecessary component, and an unnecessary component other than the common class, the common component, and the common package, among the classes, components, and packages included in the first bundle. When designated as an unnecessary package, the first bundle and the second bundle are reconfigured as one bundle not having the unnecessary class, the unnecessary component, and the unnecessary package. Features.
[0027]
With such a configuration, in the gateway terminal, unnecessary classes and unnecessary components other than the common class, common component, and common package other than the common class, common component, and common package included in the first bundle are included. When specified as an unnecessary package, the bundle reconfiguration unit reconfigures the first bundle and the second bundle as one bundle having no unnecessary class, unnecessary component, and unnecessary package.
[Invention 14]
Furthermore, the bundle reconstruction system of the invention 14 is the bundle reconstruction system of the invention 13,
The bundle reconfiguring means includes a class, a component, and a package included in the second bundle, and the unnecessary class other than the common class, the common component, and the common package, and the unnecessary class, the unnecessary class, respectively. When designated as a component and the unnecessary package, the first bundle and the second bundle are reconfigured as one bundle not having the unnecessary class, the unnecessary component, and the unnecessary package. It is characterized by being.
[0028]
With such a configuration, in the gateway terminal, unnecessary ones other than the common class, the common component, and the common package among the classes, components, and packages included in the first bundle or the second bundle, respectively. When designated as an unnecessary class, an unnecessary component, and an unnecessary package, the bundle reconfiguration unit reconfigures the first bundle and the second bundle as one bundle having no unnecessary class, unnecessary component, and unnecessary package. .
[Invention 15]
Furthermore, the bundle reconstruction system of the invention 15 is the bundle reconstruction system of the invention 7,
The bundle includes components including at least three classes as the functional unit,
The bundle reconfiguration unit uses a first class of the plurality of classes and a second class of the plurality of classes in common among the plurality of classes included in the bundle of the storage unit. A class is specified as a common class, and the bundle of storage means is defined as a first bundle having at least the first class and the common class, and a second bundle having at least the second class and the common class. It is characterized by being reconfigured.
[0029]
With such a configuration, in the gateway terminal, the bundle reconfiguring unit causes the first class among the plurality of classes and the second among the plurality of classes from among the plurality of classes included in the bundle of the storage unit. A class that is commonly used by other classes is identified as a common class. The bundle of storage means is reconfigured as a first bundle having at least a first class and a common class, and a second bundle having at least a second class and a common class.
[Invention 16]
Furthermore, the bundle reconstruction system of the invention 16 is the bundle reconstruction system of the invention 7,
The bundle includes at least three components including a plurality of classes as the functional unit.
The bundle reconfiguring means is commonly used by the first component of the plurality of components and the second component of the plurality of components among the plurality of components included in the bundle of the storage means. A component is identified as a common component, and the bundle of storage means is defined as a first bundle having at least the first component and the common component, and a second bundle having at least the second component and the common component. It is characterized by being reconfigured.
[0030]
With such a configuration, the gateway terminal uses the bundle reconfiguration unit to select the first component of the plurality of components and the second of the plurality of components from the plurality of components included in the bundle of the storage unit. Components that are commonly used by other components are identified as common components. Then, the bundle of storage means is reconfigured as a first bundle having at least a first component and a common component, and a second bundle having at least a second component and a common component.
[Invention 17]
Furthermore, the bundle reconstruction system of the invention 17 is the bundle reconstruction system of the invention 7,
The bundle includes a plurality of classes as the functional unit, and includes at least three packages that define a logical combination of a plurality of classes included in the bundle.
The bundle reconfiguring unit uses the first package of the plurality of packages and the second package of the plurality of packages in common among the plurality of packages included in the bundle of the storage unit. A package is specified as a common package, and the bundle of the storage means is defined as a first bundle having at least the first package and the common package, and a second bundle having at least the second package and the common package. It is characterized by being reconfigured.
[0031]
With such a configuration, in the gateway terminal, the bundle reconfiguring unit causes the first package among the plurality of packages and the second among the plurality of packages from the plurality of packages included in the bundle of the storage unit. A package that is commonly used by other packages is identified as a common package. Then, the bundle of the storage means is reconfigured as a first bundle having at least a first package and a common package, and a second bundle having at least a second package and a common package.
[Invention 18]
Furthermore, the bundle reconstruction system of the invention 18 is the bundle reconstruction system of any of the inventions 7 to 17,
The bundle reconfiguration unit is configured to reconfigure the bundle when the memory usage rate of the storage unit is equal to or greater than a predetermined value for a predetermined period.
[0032]
With such a configuration, in the gateway terminal, when the state in which the memory usage rate of the storage unit is equal to or greater than the predetermined value continues for a predetermined period, the bundle reconfiguration unit reconfigures the bundle. That is, if the memory usage rate of the storage means is less than the predetermined value, and if the memory usage rate of the storage means is not less than the predetermined value and the state does not continue for a predetermined period, there is an unnecessary part in the bundle. Will not be reconfigured.
[Invention 19]
Furthermore, the bundle reconstruction system of the invention 19 is the bundle reconstruction system of any of the inventions 8 to 18,
The bundle further includes component information registered so that the classes included in the component can be identified,
The bundle reconfiguration unit is configured to reconfigure the bundle based on component information included in the bundle.
[0033]
With such a configuration, in the gateway terminal, the bundle is reconfigured by the bundle reconfiguration unit based on the component information included in the bundle.
[Invention 20]
Furthermore, the bundle reconstruction system of the invention 20 is the bundle reconstruction system of any of the inventions 7 to 18,
Further, a bundle reconfiguration proxy terminal that performs the reconfiguration of the bundle is connected to be communicable,
The bundle reconfiguration proxy terminal includes: a bundle receiving unit that receives the bundle; a second bundle reconfiguring unit that reconfigures the bundle received by the bundle receiving unit using the same technique as the bundle reconfiguring unit; 2 bundle transmission means for transmitting the bundle reconfigured by the 2 bundle reconfiguration means to the gateway terminal,
When the gateway terminal determines that reconfiguration by the bundle reconfiguration unit is difficult, the gateway terminal transmits a bundle to be reconfigured to the bundle reconfiguration proxy terminal. .
[0034]
With such a configuration, when the gateway terminal determines that reconfiguration by the bundle reconfiguration unit is difficult, the bundle to be reconfigured is transmitted to the bundle reconfiguration proxy terminal.
In the bundle reconfiguration proxy terminal, when the bundle is received by the bundle receiving unit, the received bundle is reconfigured by the second bundle reconfiguration unit by the same method as the bundle reconfiguration unit. Then, the bundle transmission unit transmits the reconfigured bundle to the gateway terminal.
[0035]
  In the gateway terminal, when the bundle is received, the received bundle is stored in the storage unit by the bundle storage unit, and the bundle of the storage unit is executed by the bundle execution unit.
  Here, the case where the reconfiguration by the bundle reconfiguration unit is difficult includes, for example, a case where the processing load on the gateway terminal is large or a case where the memory capacity of the gateway terminal is insufficient.
[Invention 21]
  On the other hand, in order to achieve the above object, the bundle reconfiguration program of the invention 21
  A bundle having one or a plurality of different functional units and providing services by executing the functional units by executing the functional unitsFor the gateway terminal to reconfigureA program,
  At least two of the bundles are stored in a storage meansThe memory usage rate of the storage means is a predetermined value or more.In this case, the functional unit included in the first bundle among the bundles of the storage unit and the functional unit included in the second bundle among the bundles of the storage unit are compared with each other. Identifying the first bundle and the second bundle as functional units, the functional units included in the first bundle other than the common functional unit, the functional units included in the second bundle Among them, processing other than the common function unit and reconfiguration as one bundle having the common function unitThe gateway terminalLet the computer runRukoAnd features.
[0036]
  With such a configuration, when the program is read by the computer and the computer executes processing in accordance with the read program, an operation equivalent to that of the bundle reconfiguration system of aspect 1 is obtained.
[Invention 22]
  Furthermore, the bundle reconfiguration program of the invention 22
  Bundle that has at least three functional units and provides services by causing the functional units to function by executionFor the gateway terminal to reconfigureA program,
  The bundle is stored in a storage means, Separation of the bundle was requestedIn this case, the first functional unit among the plurality of functional units and the second functional unit among the plurality of functional units are commonly used from among the plurality of functional units included in the bundle of the storage unit. A function unit to be identified as a common function unit, a bundle of the storage means, a first bundle having at least the first function unit and the common function unit, and the second function unit and the common function unit. A process of reconfiguring at least as a second bundleThe gateway terminalLet the computer runRukoAnd features.
[0037]
  With such a configuration, when the program is read by the computer and the computer executes processing according to the read program, an operation equivalent to that of the bundle reconfiguration system of the invention 2 is obtained.
[Invention 23]
  On the other hand, in order to achieve the above object, the bundle reconfiguration method of the invention 23 is
  Reconfiguring a bundle that has one or a plurality of different functional units and that executes the functional units to provide services by executing the functional unitsGateway terminal bundle reconfiguration methodBecause
  At least two of the bundles are stored in a storage meansThe memory usage rate of the storage means is a predetermined value or more.In this case, the functional unit included in the first bundle among the bundles of the storage unit and the functional unit included in the second bundle among the bundles of the storage unit are compared with each other. Identifying the first bundle and the second bundle as functional units, the functional units included in the first bundle other than the common functional unit, the functional units included in the second bundle Of these, the configuration is reconfigured as one bundle having the common function unit other than the common function unit.
[Invention 24]
  Furthermore, the bundle reconstruction method of the invention 24 includes
  A bundle having at least three function units and having the function units function by executing the function units is reconfigured.Gateway terminal bundle reconfiguration methodBecause
  The bundle is stored in a storage means, Separation of the bundle was requestedIn this case, the first functional unit among the plurality of functional units and the second functional unit among the plurality of functional units are commonly used from among the plurality of functional units included in the bundle of the storage unit. A function unit to be identified as a common function unit, a bundle of the storage means, a first bundle having at least the first function unit and the common function unit, and the second function unit and the common function unit. It is reconfigure | reconstructed as the 2nd bundle which has at least.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. 1 to 24 are diagrams showing an embodiment of a bundle reconfiguration system, a bundle reconfiguration program, and a bundle reconfiguration method according to the present invention.
In the present embodiment, the bundle reconfiguration system, the bundle reconfiguration program, and the bundle reconfiguration method according to the present invention are obtained by acquiring a plurality of bundles from the bundle management server 100 in the home gateway 200 as shown in FIG. This is applied to the case where the acquired bundle is reconfigured according to the memory usage rate.
[1. Configuration of the embodiment]
[1-1. System configuration overview)
First, the configuration of a network system to which the present invention is applied will be described with reference to FIG. FIG. 1 is a block diagram showing a configuration of a network system to which the present invention is applied.
[0039]
As shown in FIG. 1, a bundle management server 100 that manages bundles and a home gateway 200 that connects a plurality of devices 210 to 220 so as to communicate with each other are connected to the Internet 199. In order to facilitate understanding of the invention, only one home gateway 200 is shown, but actually, a plurality of home gateways 200 are connected to the Internet 199.
[0040]
Connected to the home gateway 200 are a device 210 composed of a printer, a device 212 composed of a projector, a device 214 composed of a sound system, a device 216 composed of a PC, a device 218 composed of a microwave oven, and other devices 220. Has been. These devices 210 to 220 are owned by one user, and transmit / receive information to / from the Internet 199 via the home gateway 200.
[0041]
[1-2-1. (Configuration of bundle management server)
Next, the configuration of the bundle management server 100 will be described in detail with reference to FIG. FIG. 2 is a block diagram illustrating a configuration of the bundle management server 100.
As shown in FIG. 2, the bundle management server 100 reads out from the CPU 30 that controls the operation and the entire system based on the control program, the ROM 32 that stores the control program of the CPU 30 in a predetermined area, the ROM 32, and the like. It is composed of a RAM 34 for storing data and calculation results required in the calculation process of the CPU 30, and an I / F 38 for mediating input / output of data to / from an external device. These are used for transferring data. The buses 39 as signal lines are connected to each other so as to be able to exchange data.
[0042]
The I / F 38 includes, as external devices, an input device 40 such as a keyboard and a mouse that can input data as a human interface, a storage device 42 that stores data, tables, and the like as files, and a screen based on image signals. Is connected to a signal line for connecting to the Internet 199.
[0043]
The CPU 30 includes a microprocessing unit MPU and the like, starts a predetermined program stored in a predetermined area of the ROM 32, and provides user registration processing, user management processing, and bundle provision shown in the flowcharts of FIGS. 3 to 5 according to the program. Each process is executed in a time-sharing manner.
[1-2-2. Bundle management server process 1]
First, the user registration process will be described in detail with reference to FIG. FIG. 3 is a flowchart showing user registration processing executed by the bundle management server 100.
[0044]
The user registration process is a process for registering user information in response to a user registration request. When the user registration process is executed in the CPU 50, the process first proceeds to step S100 as shown in FIG.
In step S100, it is determined whether or not a user registration request is received from the home gateway 200. When it is determined that a user registration request is received (Yes), the process proceeds to step S102, but when it is determined that it is not ( No) waits in step S100 until a user registration request is received.
[0045]
In step S102, for example, user information including a user name, password, name, address, gender, age, occupation, affiliation group, service permitted to be provided, and address of home gateway 200 is received, and the process proceeds to step S104. The received user information is registered in the storage device 42, a series of processing is terminated, and the original processing is restored.
[0046]
[1-2-3. Processing of bundle management server 2]
Next, the user management process will be described in detail with reference to FIG. FIG. 4 is a flowchart showing user management processing executed by the bundle management server 100.
The user management process is a process for disclosing user information in response to a management request. When the user management process is executed in the CPU 50, as shown in FIG. 4, first, the process proceeds to step S150.
[0047]
In step S150, it is determined whether or not a management request has been received from the home gateway 200. When it is determined that a management request has been received (Yes), the process proceeds to step S152, but when it is determined that it is not (No). Waits in step S150 until a management request is received.
In step S152, the request content is determined, and the process proceeds to step S154, where it is determined whether or not the management request is appropriate based on the determination result, and when the management request is determined to be appropriate ( If “Yes”, the process proceeds to step S156.
[0048]
In step S156, user authentication processing is performed, and the process proceeds to step S158, where it is determined whether user authentication is obtained based on the authentication result. If it is determined that user authentication is obtained (Yes), step S160 is performed. Then, each process according to the content of the management request is executed, a series of processes are terminated, and the original process is restored. Specifically, in step S160, if the management request is a request for changing / updating user information, the user information is changed / updated. Further, when the management request is a request for publishing user information, the user information is disclosed to the request source. When the management request is a request for publishing the home gateway 200, the home gateway 200 is requested. Publish against.
[0049]
On the other hand, when it is determined in step S158 that user authentication cannot be obtained (No), the process proceeds to step S162, error processing is executed, and the process proceeds to step S150.
[1-2-4. Processing of bundle management server 3]
Next, the bundle providing process will be described in detail with reference to FIG. FIG. 5 is a flowchart showing bundle provision processing executed by the bundle management server 100.
[0050]
The bundle providing process is a process of providing a bundle to the home gateway 200 in response to a bundle acquisition request. When the bundle providing process is executed in the CPU 50, as shown in FIG. 5, first, the process proceeds to step S200. .
In step S200, it is determined whether or not a bundle acquisition request has been received from the home gateway 200. When it is determined that a bundle acquisition request has been received (Yes), the process proceeds to step S202, but when it is determined that this is not the case ( No) waits in step S200 until a bundle acquisition request is received.
[0051]
In step S202, a bundle is generated.
The data structure of the bundle will be described in detail with reference to FIGS. 6 and 7 are diagrams showing the data structure of the bundle.
As shown in FIG. 6, the bundle includes a control bundle 400 that corresponds to each device 210 to 220 and controls the device, and a bundle reconfiguration bundle 402 that reconfigures the control bundle 400. The configuration of the bundle reconfiguration bundle 402 will be described in detail later.
[0052]
As illustrated in FIG. 7, the bundles 400 and 402 include a component 410 including a plurality of classes, component information 412 registered so that the classes included in the component 410 can be identified, and a bundle controller 414 that controls the bundles 400 and 402. It is comprised. In addition, although not shown, it has a package that defines a logical combination of a plurality of classes included in the bundles 400 and 402.
[0053]
FIG. 8 is a diagram illustrating a data structure of the component information 412.
In the component information 412, as shown in FIG. 8, the class name of the class included in the component 410 is registered for each component 410. In the example of FIG. 8, the component A includes classes 1 and 2, and the component B includes class 3, class 4, class 5, and initialization file 1, respectively. ing.
[0054]
FIG. 9 is a diagram illustrating a data structure of the component 410.
As shown in FIG. 9, the component 410 includes a class 420 including an execution program, class information 422 in which class methods that are execution programs included in the class 420 are registered in an identifiable manner, and an execution program that controls the component 410. And a component control class 424.
[0055]
FIG. 10 is a diagram illustrating the data structure of the class information 422.
In the class information 422, as shown in FIG. 10, the method names of the class methods included in the class 420 are registered for each class 420. In the example of FIG. 10, class A includes class methods 1 and 2, and class B includes class method 3, class method 4, class method 5, and an initialization file. Respectively.
[0056]
Returning to FIG. 5, the process proceeds to step S <b> 202 to transmit the generated bundles 400 and 402 to the home gateway 200, and the process proceeds to step S <b> 206 to indicate that the bundles 400 and 402 have been successfully applied. Is received from the home gateway 200, and when it is determined that the bundle application notification has been received (Yes), the series of processes is terminated and the original process is restored.
[0057]
On the other hand, when it is determined in step S206 that the bundle application notification is not received (No), the process waits in step S206 until the bundle application notification is received.
[1-3-1. (Home gateway configuration)
Next, the configuration of the home gateway 200 will be described in detail with reference to FIG. FIG. 11 is a block diagram illustrating a configuration of the home gateway 200.
[0058]
As shown in FIG. 11, the home gateway 200 includes a CPU 50 that controls operations and the entire system based on a control program, a ROM 52 that stores a control program for the CPU 50 in a predetermined area, and data read from the ROM 52 and the like. And a RAM 54 for storing calculation results required in the calculation process of the CPU 50, and an I / F 58 for mediating input / output of data to / from an external device, which are signals for transferring data The buses 59 are connected to each other so as to be able to exchange data.
[0059]
To the I / F 58, devices 210 to 220 and a signal line for connecting to the Internet 199 are connected as external devices.
The CPU 50 includes a microprocessing unit MPU and the like, starts a predetermined program stored in a predetermined area of the ROM 52, and executes bundle acquisition processing shown in the flowchart of FIG. 12 according to the program.
[0060]
[1-3-2. Processing of home gateway 1]
First, the bundle acquisition process will be described in detail with reference to FIG. FIG. 12 is a flowchart showing bundle acquisition processing executed by the home gateway 200.
The bundle acquisition process is a process for acquiring the bundles 400 and 402 from the bundle management server 100. When the bundle acquisition process is executed by the CPU 50, as shown in FIG. 12, first, the process proceeds to step S300.
[0061]
In step S300, it is determined whether or not the user has requested acquisition of the bundles 400 and 402. When it is determined that acquisition of the bundles 400 and 402 is requested (Yes), the process proceeds to step S302. If it is determined that this is not the case (No), the process waits in step S300 until acquisition of the bundles 400 and 402 is requested.
[0062]
In step S302, a bundle acquisition request is transmitted to the bundle management server 100, the process proceeds to step S304, it is determined whether the bundles 400 and 402 are received from the bundle management server 100, and the bundles 400 and 402 are received. When it determines (Yes), it transfers to step S306.
In step S306, the received bundles 400 and 402 are stored in the RAM 54, the process proceeds to step S308, the bundles 400 and 402 in the RAM 54 are executed, the process proceeds to step S310, and a bundle application notification is transmitted to the bundle management server 100. Then, the series of processes is terminated and the original process is restored.
[0063]
On the other hand, when it is determined in step S304 that the bundles 400 and 402 are not received from the bundle management server 100 (No), the process waits in step S304 until the bundles 400 and 402 are received.
[1-3-3. (Bundle reconfiguration bundle configuration)
Next, the configuration of the bundle reconfiguration bundle 402 will be described.
The bundle reconfiguration bundle 402 is reconfigured by combining a bundle combining process for reconfiguring a plurality of control bundles 400 into one control bundle 400, and separating the combined control bundle 400 into a plurality of control bundles 400. It includes a program for executing bundle separation processing.
[0064]
[1-3-4. Home gateway processing 2]
Next, the bundle combining process will be described in detail with reference to FIG. FIG. 13 is a flowchart showing bundle combining processing.
When the bundle combining process is executed in the CPU 50, as shown in FIG. 13, first, the process proceeds to step S400.
[0065]
In step S400, it is determined whether or not the memory usage rate of the RAM 54 is greater than or equal to a predetermined value (for example, 80%). If it is determined that the memory usage rate of the RAM 54 is greater than or equal to the predetermined value (Yes), step S402 Migrate to
In step S402, it is determined whether or not a timer is set. When it is determined that the timer is not set (No), the process proceeds to step S404, the timer is set, and the process proceeds to step S406. It is determined whether or not a predetermined time (for example, 3 hours) has elapsed since the timer was set. If it is determined that the predetermined time has elapsed (Yes), the process proceeds to step S408.
[0066]
In step S408, the timer is stopped, the process proceeds to step S410, and the control bundle 400 that can be combined is searched from the RAM 54. Specifically, in step S410, the classes, components and packages included in one control bundle 400 to be searched are compared with the classes, components and packages included in the other control bundle 400 to be searched. It is determined whether or not there are classes, components, and packages that are common to each other, and if it is determined that they exist, the control bundle 400 is searched as a control bundle 400 that can be combined.
[0067]
Next, the process proceeds to step S412, where it is determined whether or not the corresponding control bundle 400 has been retrieved by the search. When it is determined that the corresponding control bundle 400 has been retrieved (Yes), the process proceeds to step S414. .
In step S414, a package included in one searched control bundle 400 (hereinafter referred to as control bundle a) and a package included in the other searched control bundle 400 (hereinafter referred to as control bundle b) are included. In contrast, packages that are common to them are identified as common packages, and the process proceeds to step S416, where packages other than the common package among packages included in the control bundle a and packages other than the common package among packages included in the control bundle b are transferred. And the common package are extracted from the control bundles a and b, and the process proceeds to step S418.
[0068]
In step S418, the components included in the control bundle a and the components included in the control bundle b are compared and the components common to them are specified as common components, and the process proceeds to step S420 to be included in the control bundle a. Components other than the common component, components other than the common component among the components included in the control bundle b, and the common component are extracted from the control bundles a and b, and the process proceeds to step S422.
[0069]
In step S422, based on the component information 412 included in the control bundles a and b, the classes included in the control bundle a and the classes included in the control bundle b are compared and the classes common to these classes are set as common classes. Then, the process proceeds to step S424.
In step S424, based on the class information 422 included in the control bundles a and b, is the class method included in the common class of the control bundle a completely matched with the class method included in the common class of the control bundle b? If it is determined that the class methods match completely (Yes), the process proceeds to step S426, and the classes included in the control bundle a are included in the control bundle b, other than the common class. Of the classes to be extracted, those other than the common class and common classes are extracted from the control bundles a and b, and the process proceeds to step S428.
[0070]
In step S428, a list of extracted packages, components, and classes (including class methods) is displayed, and the process proceeds to step S430, and functionally unnecessary packages, components, and classes are displayed among the displayed packages, components, and classes. It is determined whether or not a class and a class method have been specified by the user. When it is determined that an unnecessary package, component, class, and class method have been specified (Yes), the process proceeds to step S432, and the extracted package and component are determined. Then, the designated class is deleted, and the process proceeds to step S434.
[0071]
In step S434, based on the extracted package, component, and class, the control bundles a and b are reconfigured as one control bundle 400, and the process proceeds to step S436 to delete the control bundles a and b from the RAM 54. Then, the series of processes is terminated and the original process is restored.
On the other hand, when it is determined in step S430 that an unnecessary package, component, class, and class method are not designated (No), the process proceeds to step S434.
[0072]
On the other hand, when it is determined in step S424 that the class method included in the common class of the control bundle a and the class method included in the common class of the control bundle b do not completely match (No), the process proceeds to step S438. The class method included in the common class of the control bundle a and the class method included in the common class of the control bundle b are compared, and the class method included in the common class is specified as the common class method. The class methods included in the common class of the control bundle a other than the common class method, the class methods included in the common class of the control bundle b other than the common class method, and a class including the common class method are newly added. The common class is configured, and the process proceeds to step S428.
[0073]
On the other hand, when it is determined in step S412 that the corresponding control bundle 400 is not found by the search (No), the series of processes is terminated and the process returns to the original process.
On the other hand, when it is determined in step S406 that the predetermined time has not elapsed since the timer was set (No), the process proceeds to step S400.
On the other hand, when it is determined in step S402 that the timer is set (Yes), the process proceeds to step S406.
[0074]
On the other hand, when it is determined in step S400 that the memory usage rate of the RAM 54 is less than the predetermined value (No), the process proceeds to step S440, where it is determined whether the timer is set, and the timer is set. If it is determined (Yes), the process proceeds to step S442, the timer is stopped, and the process proceeds to step S400.
On the other hand, when it is determined in step S440 that the timer is not set (No), the process proceeds to step S400.
[0075]
[1-3-5. Processing of home gateway 3]
Next, the bundle separation process will be described in detail with reference to FIG. FIG. 14 is a flowchart showing the bundle separation process.
When the bundle separation process is executed in the CPU 50, first, as shown in FIG. 14, the process proceeds to step S500.
[0076]
In step S500, it is determined whether or not the user has requested that the reconfigured control bundle 400 be separated. When it is determined that separation of the control bundle 400 is requested (Yes), the process proceeds to step S502. When it is determined that this is not the case (No), the process waits in step S500 until the separation of the control bundle 400 is requested.
[0077]
In step S502, the control bundle 400 combined by reconfiguration is searched from the RAM 54 as a separable control bundle 400, and the process proceeds to step S504 to determine whether or not the corresponding control bundle 400 is found by the search. If it is determined that the corresponding control bundle 400 has been found (Yes), the process proceeds to step S506.
[0078]
In step S506, a common package is identified from the retrieved control bundle 400 (hereinafter referred to as control bundle c), and the process proceeds to step S508 to extract all packages including the common package from the control bundle c. The process proceeds to step S510.
In step S510, a common component is identified from the control bundle c, the process proceeds to step S512, all components including the common component are extracted from the control bundle c, and the process proceeds to step S514.
[0079]
In step S514, a common class is specified from the control bundle c based on the component information 412 included in the control bundle c, and the process proceeds to step S516 to extract all classes including the common class from the control bundle c. The process proceeds to step S518.
In step S518, a list of extracted packages, components, and classes (including class methods) is displayed, and the process proceeds to step S520, and functionally unnecessary packages, components, and classes are displayed from the displayed packages, components, and classes. It is determined whether or not a class and a class method are specified by the user. When it is determined that an unnecessary package, component, class, and class method are specified (Yes), the process proceeds to step S522, and the extracted package and component are determined. Then, the designated class is deleted from the classes, and the process proceeds to step S524.
[0080]
In step S524, it is determined whether or not packages, components, classes, and class methods necessary for reconfiguring the separated control bundle 400 are missing among the extracted packages, components, and classes. If it is determined that the component, class, and class method are insufficient (Yes), the process proceeds to step S526, and the necessary package, component, class, and class method are acquired from the bundle management server 100. Acquire and move to step S528.
[0081]
In step S528, the control bundle c is reconfigured as a plurality of control bundles 400 before combining based on the extracted package, component, and class, and the acquired package, component, and class, and the process proceeds to step S530 to perform control. The bundle c is deleted from the RAM 54, a series of processes are terminated, and the original process is restored.
[0082]
On the other hand, when it is determined in step S524 that the packages, components, classes, and class methods necessary for reconfiguring the control bundle 400 after separation are not insufficient (No), the process proceeds to step S528.
On the other hand, when it is determined in step S520 that an unnecessary package, component, class, and class method are not designated (No), the process proceeds to step S524.
[0083]
On the other hand, when it is determined in step S504 that the corresponding control bundle 400 is not found by the search (No), the series of processes is ended and the process returns to the original process.
[2. Operation of this embodiment]
Next, the operation of the above embodiment will be described.
First, a case where the home gateway 200 acquires the control bundle 400 corresponding to each device 210 to 220 will be described.
[0084]
In order to acquire the control bundle 400, the user requests acquisition of the control bundle 400 in the home gateway 200. In the home gateway 200, when acquisition of the control bundle 400 is requested, a bundle acquisition request is transmitted to the bundle management server 100 through steps S300 and S302.
When the bundle management server 100 receives the bundle acquisition request, the control bundle 400 related to the bundle acquisition request is generated through steps S200 to S204, and the generated control bundle 400 is transmitted to the home gateway 200.
[0085]
When the home gateway 200 receives the control bundle 400, the received control bundle 400 is stored in the RAM 54 through steps S304 to S310, and the control bundle 400 of the RAM 54 is executed. As a result, the corresponding devices 210 to 220 are appropriately controlled. For example, if the control bundle 400 corresponds to the device 210 that is a printer, the device 210 can obtain a good print result.
[0086]
In order to acquire the bundle reconfiguration bundle 402, the user requests acquisition of the bundle reconfiguration bundle 402 in the home gateway 200. In the home gateway 200, when acquisition of the bundle reconfiguration bundle 402 is requested, the bundle acquisition request is transmitted to the bundle management server 100 through steps S300 and S302.
[0087]
When the bundle management server 100 receives the bundle acquisition request, the bundle reconfiguration bundle 402 is generated through steps S200 to S204, and the generated bundle reconfiguration bundle 402 is transmitted to the home gateway 200.
In the home gateway 200, when the bundle reconfiguration bundle 402 is received, the received bundle reconfiguration bundle 402 is stored in the RAM 54 through steps S304 to S310, and the bundle reconfiguration bundle 402 in the RAM 54 is executed. Thereby, the bundle combination process and the bundle separation process are executed in a time division manner.
[0088]
Next, a case where a plurality of control bundles 400 are combined into one control bundle 400 will be described.
In the home gateway 200, when the bundle reconfiguration bundle 402 is acquired, bundle combination processing is executed. In the bundle combining process, when the memory usage rate of the RAM 54 becomes a predetermined value (for example, 80%) or more and the state continues for a predetermined period (for example, 3 hours), it can be combined from the RAM 54 through step S410. The control bundle 400 is searched. As a result, when the corresponding control bundle 400 is searched, the common package is identified by comparing the package included in the control bundle a and the package included in the control bundle b through steps S414 and S416. The packages other than the common package among the packages included in a, the packages other than the common package among the packages included in the control bundle b, and the common package are extracted from the control bundles a and b.
[0089]
Next, through steps S418 and S420, a component included in the control bundle a and a component included in the control bundle b are compared to identify a common component, and components other than the common component among the components included in the control bundle a are identified. Among the components included in the control bundle b, those other than the common components and the common components are extracted from the control bundles a and b.
[0090]
Next, through step S422, based on the component information 412 included in the control bundles a and b, the class included in the control bundle a and the class included in the control bundle b are compared and the common class is specified. At this time, if the class method included in the common class of the control bundle a and the class method included in the common class of the control bundle b completely match, the class included in the control bundle a is passed through steps S424 and S426. Are extracted from the control bundles a and b, and the classes included in the control bundle b are extracted from the control bundles a and b.
[0091]
Next, through step S428, a list of extracted packages, components, and classes (including class methods) is displayed. Here, when the user of the home gateway 200 specifies a functionally unnecessary package, component, class, and class method from the displayed list, the extracted package, component, and class are specified through step S432. Deleted items are deleted. The deleted packages, components, and classes are included in the combined control bundle 400 by describing identification information such as their names in a deleted item file or the like so that they can be separated after combining.
[0092]
Then, through steps S434 and S436, the control bundles a and b are reconfigured as one control bundle 400 based on the extracted packages, components, and classes, and the control bundles a and b are deleted from the RAM 54. .
If the class method included in the common class of the control bundle a does not completely match the class method included in the common class of the control bundle b, the class included in the common class of the control bundle a is passed through step S438. The method and the class method included in the common class of the control bundle b are compared to identify the common class method. Among the class methods included in the common class of the control bundle a, those other than the common class method, the control bundle b Among the class methods included in the common class, a class other than the common class method and a class including the common class method are configured as a new common class.
[0093]
A coupling example of the control bundle 400 will be described with reference to the drawings.
FIG. 15 is a diagram illustrating a first pattern for coupling the control bundle 400.
In the example of FIG. 15, the control bundle A is an ink remaining amount monitoring bundle that monitors the remaining ink amount of the device 210 that is a printer, and the remaining amount of ink in the device 210 is monitored by the control bundle A. The control bundle B is a remaining paper amount monitoring bundle for monitoring the remaining amount of paper in the device 210, and the remaining amount of paper in the device 210 is monitored by the control bundle B. In addition, the control bundles A and B include a printer status monitoring component that monitors the status of the device 210 in common.
[0094]
Therefore, when the memory usage rate of the RAM 54 is equal to or greater than a predetermined value and the state continues for a predetermined period, the control bundles A and B are searched as a control bundle that can be combined, and the printer status monitoring component is specified as a common component . The control bundles A and B are reconfigured as a control bundle C that eliminates duplication of printer status monitoring components. That is, the control bundle C includes components other than the printer status monitoring component among components included in the control bundle A, components other than the printer status monitoring component among components included in the control bundle B, and a printer status monitoring component. Yes. This combination can reduce the memory capacity of one printer status monitoring component.
[0095]
FIG. 16 is a diagram illustrating a second pattern for coupling the control bundle 400.
In the example of FIG. 15, the control bundles A and B are reconfigured as one control bundle C, but a control bundle D that can provide classes, components, and packages that the control bundle C has is generated. Furthermore, among the classes, components, and packages included in the control bundle D, the control bundle A ′ that refers to what is necessary to make the control bundle A function, and the control bundle among the classes, components, and packages included in the control bundle D A control bundle B ′ that references what is necessary to make B function is generated. In this case, the control bundles A ′ and B ′ include reference information that refers to them instead of classes, components, and packages. In this way, if the control bundle D is configured like a library, when other control bundles that use classes, components, and packages included in the control bundle D are applied, the control bundle D is similarly included in the control bundle D. Can be reconfigured as a control bundle that references the classes, components, and packages that are needed to make the control bundle work. Therefore, the memory capacity can be effectively reduced.
[0096]
FIG. 17 is a diagram illustrating a third pattern for coupling the control bundle 400.
In the example of FIG. 17, the control bundle A is configured to include classes and the like (referring to class methods, classes, components, or packages) 450, 452, and 454. The control bundle B is configured to have classes 450, 456, 458 and the like. Here, the same sign indicates a class having the same content.
[0097]
Therefore, when the memory usage rate of the RAM 54 becomes equal to or higher than a predetermined value and the state continues for a predetermined period, the control bundles A and B are searched as control bundles that can be combined, and the class 450 is a common class (common class, Common component or common package)). Further, when the user of the home gateway 200 designates the class etc. 452 for the control bundle A and the class etc. 456 for the control bundle B as the unnecessary class etc., the class etc. 452, 456 is deleted, and the control bundle A and B are reconfigured as a control bundle C having classes 450, 454, and 458.
[0098]
FIG. 18 is a diagram illustrating a fourth pattern for coupling the control bundle 400.
FIG. 18 shows an example in which the control bundles A and B are combined when the class method included in the common class of the control bundle A and the class method included in the common class of the control bundle B do not completely match. . In the example of FIG. 18, the control bundles A and B include a class Q as a common class, but the class Q of the control bundle A includes class methods X and Y, and the class Q of the control bundle B includes Class methods X and Z are included, respectively, and the class methods of the control bundles A and B do not completely match.
[0099]
Therefore, when the memory usage rate of the RAM 54 becomes equal to or higher than a predetermined value and the state continues for a predetermined period, the control bundles A and B are searched as a control bundle that can be combined, and the class Q is specified as a common class. At this time, since the class method included in the class Q of the control bundle A and the class method included in the class Q of the control bundle B do not completely match, the class method X is identified as a common class, and the class method X, A class having Y and Z is configured as a new common class Q. Then, the control bundles A and B are reconfigured as a control bundle C having a new common class Q. Thereby, the part which concerns on the function of the control bundle A among the control bundles C and the part which concerns on the function of the control bundle B among the control bundles C can operate | move without a malfunction.
[0100]
FIG. 19 is a diagram illustrating a fifth pattern for combining the control bundles 400.
FIG. 19 shows the control bundles A and B when the class methods included in the common class of the control bundle A and the class methods included in the common class of the control bundle B do not completely match, as in the example of FIG. Is different from the case of FIG. 18 in that unnecessary class methods are deleted at the time of combining. In the example of FIG. 18, the control bundles A and B include the class Q as a common class. However, the class methods X, Y, and α are included in the class Q of the control bundle B. Includes class methods X, Z, and β, respectively.
[0101]
Therefore, when the memory usage rate of the RAM 54 becomes equal to or higher than a predetermined value and the state continues for a predetermined period, the control bundles A and B are searched as a control bundle that can be combined, and the class Q is specified as a common class. At this time, since the class method included in the class Q of the control bundle A and the class method included in the class Q of the control bundle B do not completely match, the class method X is identified as a common class, and the class method X, A class having Y and Z is configured as a new common class Q. Further, when the class method Y is specified as an unnecessary class method for the control bundle A and the class method Z is specified as an unnecessary class method for the control bundle B by the user of the home gateway 200, the class methods Y and Z are deleted, and the control bundle is deleted. A and B are reconfigured as a control bundle C having class methods X, α, and β. As a result, both the part related to the function of the control bundle A in the control bundle C and the part related to the function of the control bundle B in the control bundle C can operate without problems, and unnecessary class methods X and Y are deleted. Therefore, the memory capacity can be effectively reduced.
[0102]
Next, a case where the combined control bundle 400 is separated into a plurality of control bundles 400 will be described.
In the home gateway 200, when the bundle reconfiguration bundle 402 is acquired, a bundle separation process is executed. In the bundle separation process, when the user of the home gateway 200 requests the separation of the control bundle 400, the control bundle 400 that can be separated is searched from the RAM 54 through step S502. As a result, when the corresponding control bundle 400 is retrieved, a common package is specified from the control bundle c through steps S506 and S508, and all packages including the common package are extracted from the control bundle c.
[0103]
Next, through steps S510 and S512, a common component is specified from the control bundle c, and all components including the common component are extracted from the control bundle c.
Next, through steps S514 and S516, a common class is specified from the control bundle c based on the component information 412 included in the control bundle c, and all classes including the common class are extracted from the control bundle c.
[0104]
Next, a list of extracted packages, components, and classes (including class methods) is displayed through step S518. Here, when the user of the home gateway 200 specifies a functionally unnecessary package, component, class, and class method from the displayed list, the specification is made among the extracted package, component, and class through step S522. Deleted items are deleted.
[0105]
Then, through steps S528 and S530, based on the extracted package, component, and class, the control bundle c is reconfigured as the control bundles a and b before being combined, and the control bundle c is deleted from the RAM 54.
If the packages, components, classes, and class methods necessary for reconfiguring the control bundles a and b are insufficient, the necessary packages, components, classes, and class methods are insufficient through steps S526 and S528. Is acquired from the bundle management server 100, and based on the extracted package, component and class, and the acquired package, component and class, the control bundle c is re-established as the control bundles a and b before combining. Composed.
[0106]
An example of separation of the control bundle 400 will be described with reference to the drawings.
FIG. 20 is a diagram illustrating a first pattern for separating the control bundle 400.
FIG. 20 shows a case where the control bundle C combined according to the example of FIG. 15 is separated into the original control bundles A and B. In the example of FIG. 20, when the user requests the separation of the control bundle 400, the control bundle C is searched as a separable control bundle, and the printer status monitoring component is specified as the common component. Then, the control bundle C is reconfigured as original control bundles A and B each having a printer status monitoring component.
[0107]
FIG. 21 is a diagram showing a second pattern for separating the control bundle 400.
FIG. 21 shows a case where the control bundles D, A ′, and B ′ combined according to the example of FIG. 16 are separated into the original control bundles A and B. In the example of FIG. 21, when the user requests separation of the control bundle 400, the control bundles D, A ′, and B ′ are retrieved as separable control bundles, and the printer status monitoring component is specified as a common component. . Then, the control bundles D, A ', and B' are reconfigured as original control bundles A and B each having a printer status monitoring component.
[0108]
FIG. 22 is a diagram showing a third pattern for separating the control bundle 400.
FIG. 22 shows a case where the control bundle C combined according to the example of FIG. 17 is separated into the original control bundles A and B. In the example of FIG. 22, when the user requests the separation of the control bundle 400, the control bundle C is searched as a separable control bundle, and the class 450 is specified as a common class. However, since the control bundle C lacks the classes 452 and 456 when reconfiguring the control bundles A and B, the classes 452 and 456 are acquired from the bundle management server 100. Then, the control bundle C is reconfigured as an original control bundle A having classes 450, 452, and 454 and an original control bundle B having classes 450, 456, and 458.
[0109]
FIG. 23 is a diagram showing a fourth pattern for separating the control bundle 400.
FIG. 23 shows a case where the control bundle C combined in the example of FIG. 18 is separated into the original control bundles A and B. In the example of FIG. 23, when the user requests separation of the control bundle 400, the control bundle C is searched as a separable control bundle, and the class Q is specified as a common class. The control bundle C is reconfigured as an original control bundle A having a class Q including class methods X and Y and an original control bundle B having a class Q including class methods X and Y.
[0110]
FIG. 24 is a diagram showing a fifth pattern for separating the control bundle 400.
FIG. 24 shows a case where the control bundle C combined in the example of FIG. 19 is separated into the original control bundles A and B. In the example of FIG.
When the user requests separation of the control bundle 400, the control bundle C is searched as a separable control bundle, and the class Q is specified as a common class. However, since the control bundle C lacks the class methods Y and Z when reconfiguring the control bundles A and B, the class methods Y and Z are acquired from the bundle management server 100. Then, the control bundle C is reconfigured as an original control bundle A having class methods X, Y, α and an original control bundle B having class methods X, Z, β.
[0111]
On the other hand, it is desirable that the user of the home gateway 200 performs user registration in advance with the bundle management server 100 in order to receive provision of the bundles 400 and 402.
When performing user registration, in the home gateway 200, the user, for example, receives user information including a user name, a password, a name, an address, a gender, an age, an occupation, a group to which the service is permitted, and the address of the home gateway 200. input. When the user information is input, the input user information is transmitted to the bundle management server 100 together with a user registration request.
[0112]
When the bundle management server 100 receives the user registration request, the user information is received through steps S100 to S104, and the received user information is registered in the storage device 42.
In addition, user information can be changed / updated, or user information or the home gateway 200 can be disclosed.
[0113]
When performing these operations, the user transmits a management request to the bundle management server 100 in the home gateway 200.
When receiving the management request, the bundle management server 100 determines the request content through steps S150 to S156, and performs user authentication processing if the management request is appropriate. As a result, when user authentication is obtained, the processes corresponding to the contents of the management request are executed through steps S158 and S160. That is, if the management request is related to the change / update of the user information, the user information is changed / updated. If the management request is related to the disclosure of the user information or the home gateway 200, the user information or the home gateway 200 requests it. Published to the original.
[3. Effect of the present embodiment]
[3-1. Effect 1]
In this way, in the present embodiment, the classes, components, and packages included in the control bundle a are compared with the classes, components, and packages included in the control bundle b, and the classes, components, and packages that are common to them are determined. The control bundle a and the control bundle b are reconfigured as one control bundle 400 so as to be identified as a common class, a common component, and a common package, respectively, so that the common class, common component, and common package do not overlap.
[0114]
As a result, the control bundle 400 is reconfigured by eliminating duplication of common classes, common components, and common packages, so that the use efficiency of the memory in the home gateway 200 can be improved as compared with the conventional case. Here, the memory utilization efficiency includes not only the utilization efficiency of the RAM 54 but also the storage device such as an HDD provided in the home gateway 200, since the control bundle 400 is also stored in the storage device. Efficiency is also included. same as below.
[0115]
[3-2. Effect 2]
Furthermore, in the present embodiment, the control bundle a and the control bundle b are classified into classes other than the common class among classes included in the control bundle a, classes other than the common class among classes included in the control bundle b, and common classes. Is reconfigured as one control bundle 400 having
[0116]
Thereby, since the control bundle 400 is reconfigured by actively eliminating duplication of common classes, it is possible to further improve the memory utilization efficiency.
[3-3. Effect 3]
Furthermore, in the present embodiment, the control bundle a and the control bundle b are classified into components other than the common components among components included in the control bundle a, components other than the common components among components included in the control bundle b, and common components. Is reconfigured as one control bundle 400 having
[0117]
Accordingly, since the control bundle 400 is reconfigured by actively eliminating duplication of common components, it is possible to further improve the memory utilization efficiency.
[3-4. Effect 4]
Furthermore, in the present embodiment, the control bundle a and the control bundle b are classified into packages other than the common package among packages included in the control bundle a, packages other than the common package among packages included in the control bundle b, and common packages. Is reconfigured as one control bundle 400 having
[0118]
Thereby, since the control bundle 400 is reconfigured by actively eliminating duplication of common packages, the memory utilization efficiency can be further improved.
[3-5. Effect 5]
Further, in this embodiment, when the class method included in the common class of the control bundle a and the class method included in the common class of the control bundle b do not completely match, they are included in the common class of the control bundle a. Class methods included in the common class of the control bundle b and class methods included in the common class are identified as common class methods, and classes included in the common class of the control bundle a Of the methods other than the common class method, the class methods included in the common class of the control bundle b other than the common class method and the class including the common class method are configured as a common class.
[0119]
As a result, after the class method included in the common class of the control bundle a and the class method included in the common class of the control bundle b do not completely match, after the control bundle 400 is combined and reconfigured It is possible to reduce the possibility of occurrence of defects.
[3-6. Effect 6]
Further, in the present embodiment, unnecessary classes other than the common class, common component, and common package among the classes, components, and packages included in the control bundle a are designated as unnecessary classes, unnecessary components, and unnecessary packages, respectively. In such a case, the control bundle a and the control bundle b are reconfigured as a single control bundle 400 having no unnecessary classes, unnecessary components, and unnecessary packages.
[0120]
Accordingly, when the control bundle 400 is combined and reconfigured, unnecessary classes, unnecessary components, and unnecessary packages included in the control bundle a are eliminated, so that the memory utilization efficiency can be further improved.
[3-7. Effect 7]
Further, in the present embodiment, unnecessary classes other than the common class, common component, and common package among the classes, components, and packages included in the control bundle b are designated as unnecessary classes, unnecessary components, and unnecessary packages, respectively. In such a case, the control bundle a and the control bundle b are reconfigured as a single control bundle 400 having no unnecessary classes, unnecessary components, and unnecessary packages.
[0121]
Thus, when the control bundle 400 is combined and reconfigured, unnecessary classes, unnecessary components, and unnecessary packages included in the control bundle a and the control bundle b are eliminated, so that the memory utilization efficiency can be further improved. .
[3-8. Effect 8]
Furthermore, in the present embodiment, among the plurality of classes included in the control bundle 400 of the RAM 54, a class that is commonly used by the first class among the plurality of classes and the second class among the plurality of classes. Is specified as a common class, and the control bundle 400 of the RAM 54 is reconfigured as a control bundle a having at least a first class and a common class, and a control bundle b having at least a second class and a common class. Yes.
[0122]
As a result, if the control bundle 400 is organized by separating the control bundle 400 and deleting functionally unnecessary ones, unnecessary classes can be effectively eliminated, thereby further increasing the memory utilization efficiency. Can be improved.
[3-9. Effect 9]
Furthermore, in the present embodiment, among the plurality of components included in the control bundle 400 of the RAM 54, the first component among the plurality of components and the second component among the plurality of components are used in common. Is identified as a common component, and the control bundle 400 of the RAM 54 is reconfigured as a control bundle a having at least a first component and a common component, and a control bundle b having at least a second component and a common component. Yes.
[0123]
As a result, if the control bundle 400 is organized by separating the control bundle 400 and deleting functionally unnecessary ones, unnecessary components can be effectively eliminated, thereby further improving the memory utilization efficiency. Can be improved.
[3-10. Effect 10]
Further, in the present embodiment, a package that is commonly used by the first package among the plurality of packages and the second package among the plurality of packages from among the plurality of packages included in the control bundle 400 of the RAM 54. Is identified as a common package, and the control bundle 400 of the RAM 54 is reconfigured as a control bundle a having at least a first package and a common package, and a control bundle b having at least a second package and a common package. Yes.
[0124]
Accordingly, if the control bundle 400 is organized by separating the control bundle 400 and deleting functionally unnecessary ones, unnecessary packages can be effectively eliminated, thereby further improving the memory utilization efficiency. Can be improved.
[3-11. Effect 11]
Further, in the present embodiment, the control bundle 400 is reconfigured when the state in which the memory usage rate of the RAM 54 has exceeded a predetermined value continues for a predetermined period.
[0125]
As a result, the control bundle 400 is reconfigured for the first time only when the memory usage rate of the RAM 54 is equal to or greater than the predetermined value continues for a predetermined period. The possibility of giving a load to the processing can be reduced.
[4. (Correspondence with Claims)
In the above embodiment, the bundle management server 100 corresponds to the bundle providing terminal of the invention 7, the home gateway 200 corresponds to the gateway terminal of the invention 7, and the RAM 54 has the inventions 1 to 3, 5, 15 to 18, Corresponding to 21 to 24 storage means, class methods, classes, components and packages correspond to functional units of inventions 1 to 6, 8, 15 to 17, 21 to 24. The common class, common component, and common package correspond to the common function units of Inventions 1 to 6, 21 to 24, Step S202 corresponds to the bundle generation means of Invention 7, and Step S204 corresponds to the bundle of Invention 7. It corresponds to the transmission means.
[0126]
Moreover, in the said embodiment, step S302, S304 respond | corresponds to the bundle acquisition means of invention 3, 5 or 7, step S306 respond | corresponds to the bundle storage means of invention 3, 5 or 7, step S308 is Corresponding to the bundle executing means of the invention 3, 5 or 7, steps S400 to S442, S500 to S530 correspond to the bundle reconfiguring means of the inventions 3 to 19.
[5. Other Embodiments]
[5-1. Form 1]
In the above-described embodiment, the control bundle 400 is reconfigured by the home gateway 200. However, the present invention is not limited to this, and the control bundle 400 may be configured to be performed by the bundle management server 100 or other terminals. When performed by the bundle management server 100, the bundle management server 100 receives the control bundle 400, reconfigures the received control bundle 400 by the same method as the bundle reconfiguration bundle, and reconfigures the reconfigured control bundle 400 to the home gateway 200. Send to. Further, the home gateway 200 has a large processing load on the home gateway 200 (for example, when the CPU occupancy is 30% or more) or a memory capacity of the home gateway 200 is insufficient (for example, a memory usage rate). When it is determined that the reconfiguration of the control bundle 400 is difficult (such as 90%), the control bundle 400 to be reconfigured is transmitted to the bundle management server 100. Note that the same procedure can be used when the reconstruction is performed by a terminal other than the bundle management server 100 (for example, another home gateway 200).
[0127]
As a result, when it is difficult to reconfigure the control bundle 400, the bundle management server 100 performs the reconfiguration of the control bundle 400. Therefore, the burden on the home gateway 200 accompanying the reconfiguration of the control bundle 400 Can be reduced.
In this case, the bundle management server 100 corresponds to the bundle reconfiguration proxy terminal of the invention 20, the home gateway 200 corresponds to the gateway terminal of the invention 20, and steps S400 to S442, S500 to S530 are the bundle of the invention 20. Corresponds to reconstruction means.
[0128]
[5-2. Form 2]
Moreover, in the said embodiment, although it comprised so that the reconfiguration of the control bundle 400 might be performed by the home gateway 200, not only this but the bundle management server 100 and the some home gateway 200 are distributedly coupled, those It can also be configured to perform cooperatively at the terminal.
[0129]
[5-3. Form 3]
In the above-described embodiment, the bundles 400 and 402 are generated in response to the bundle acquisition request, and the generated bundles 400 and 402 are transmitted to the home gateway 200. 402 is generated in advance and stored in the storage device 42. When a bundle acquisition request is received, the bundles 400 and 402 related to the received bundle acquisition request are read from the storage device 42, and the read bundles 400 and 402 are set as homes. It can also be configured to transmit to the gateway 200.
[0130]
[5-4. Form 4]
In the above embodiment, when the control bundles 400 are combined, the two control bundles 400 are reconfigured as one control bundle 400. However, the present invention is not limited to this, and three or more control bundles 400 are used. Can be reconfigured as a single control bundle. More broadly, m (m is an integer of 2 or more) control bundles 400 can be configured to be reconfigured as n (n is an integer of 1 or more and m> n).
[0131]
[5-5. Form 5]
In the above embodiment, when the control bundle 400 is separated, one control bundle 400 is reconfigured as two control bundles 400. However, the present invention is not limited to this, and one control bundle 400 is divided into three. It can also be configured to reconfigure as one or more control bundles 400. More broadly, m (m is an integer of 1 or more) control bundles 400 can be reconfigured as n (n is an integer of 2 or more and n> m).
[0132]
[5-6. Form 6]
In the above embodiment, the reconfigured control bundle 400 is separated. However, the present invention is not limited to this, and the control bundle 400 that has never been reconfigured can be separated. .
[5-7. Form 7]
Moreover, in the said embodiment, when the state where the memory usage rate of RAM54 became more than predetermined value continued for the predetermined period, it comprised so that the control bundle 400 might be reconfigure | reconstructed. The control bundle 400 can also be configured to be reconfigured when the CPU occupancy is below a predetermined value.
[0133]
[5-8. Form 8]
In the above embodiment, a printer, a projector, a sound system, a PC, and a microwave oven are used as devices. However, the present invention is not limited to this, and a digital camera, a digital video camera, a refrigerator, a television, a game machine, and a portable information terminal ( Including a PDA) may be employed as the device.
[0134]
[5-9. Form 9]
In the above embodiment, the bundle is applied to the home gateway 200. However, the present invention is not limited to this. For example, a network compatible printer, projector, scanner, digital camera, digital video camera, network card, PC , PDA, network storage, audio equipment, mobile phone, PHS (registered trademark) (Personal Handyphone System), wristwatch, watch-type PDA, STB, POS (Point Of Sale) terminal, copy machine, FAX machine, telephone (IP phone, etc.) ), Switch, NCU (Network Control Unit), router, hub, bridge, and other program-executable devices. The present invention can operate even with a device that does not have an HDD as long as it has RAM or flash. Even in an environment without a home gateway, various devices such as a printer, a scanner, a projector, a digital camera, an audio, and a (white goods) home appliance are equipped with a function serving as a home gateway.
[0135]
[5-10. Form 10]
Further, in the above-described embodiment, the case where the control program stored in advance in the ROM 32 is executed when executing the processing shown in the flowcharts of FIGS. 3 to 5 has been described. It is also possible to read the program from the storage medium storing the program shown in FIG.
[0136]
In the above embodiment, the case where the control program stored in advance in the ROM 52 is executed when executing the processes shown in the flowcharts of FIGS. 12 to 14 has been described. Alternatively, the program may be read from the storage medium storing the program showing the above procedure into the RAM 54 and executed.
[0137]
Here, the storage medium is a semiconductor storage medium such as RAM or ROM, a magnetic storage type storage medium such as FD or HD, an optical reading type storage medium such as CD, CDV, LD, or DVD, or a magnetic storage type such as MO. / Optical reading type storage media, including any storage media that can be read by a computer regardless of electronic, magnetic, optical, or other reading methods.
[0138]
[5-11. Form 11]
In the above-described embodiment, the case where the bundle reconfiguration system, the bundle reconfiguration program, and the bundle reconfiguration method according to the present invention are applied to a network system including the Internet 199 is described. For example, you may apply to what is called an intranet which communicates by the same system as the internet 199. Of course, the present invention is not limited to a network that performs communication in the same manner as the Internet 199, and can be applied to a normal network.
[0139]
[5-12. Form 12]
In the above embodiment, the bundle reconfiguration system, the bundle reconfiguration program, and the bundle reconfiguration method according to the present invention, as shown in FIG. However, the present invention is not limited to this and is applicable to other cases without departing from the gist of the present invention.
[0140]
【The invention's effect】
As described above, according to the bundle reconfiguration system according to claim 1, 3 or 5 according to the present invention, since the bundle is reconfigured by eliminating the duplication of the common function unit, In the home gateway or other information processing apparatus in which the bundle is dynamically incorporated, the memory use efficiency can be improved.
[0141]
Furthermore, according to the bundle reconfiguration system according to claim 2, 4 or 6 according to the present invention, if the bundles are organized by separating the bundles and deleting functionally unnecessary ones, unnecessary function units are provided. As a result, it is possible to effectively improve the use efficiency of the memory in the home gateway or other information processing apparatus in which the bundle is dynamically incorporated as compared with the conventional case.
[0142]
Furthermore, according to the bundle reconfiguring system according to claims 7 to 20 of the present invention, the bundle is reconfigured by eliminating the duplication of the common function unit, and the bundle is separated and functionally unnecessary. By organizing bundles by deleting them, it is possible to effectively eliminate unnecessary functional units, so that the use efficiency of memory is improved in gateway terminals in which bundles are dynamically incorporated as compared with the past. The effect of being able to be obtained.
[0143]
Furthermore, according to the bundle reconfiguration system according to claims 8 to 14 of the present invention, the bundle is reconfigured by eliminating duplication of common classes, common components, and common packages, so that the memory utilization efficiency is further improved. The effect that it can do is also acquired.
Furthermore, according to the bundle reconfiguration system according to claim 9 of the present invention, since the bundle is reconfigured by actively eliminating duplication of common classes, the memory utilization efficiency can be further improved. An effect is also obtained.
[0144]
Furthermore, according to the bundle reconfiguration system according to claim 10 of the present invention, since the bundle is reconfigured by actively eliminating duplication of common components, the memory utilization efficiency can be further improved. An effect is also obtained.
Furthermore, according to the bundle reconfiguration system according to claim 11 of the present invention, since the bundle is reconfigured by actively eliminating duplication of common packages, the memory utilization efficiency can be further improved. An effect is also obtained.
[0145]
Furthermore, according to the bundle reconfiguration system according to claim 12 of the present invention, the class method included in the common class of the first bundle completely matches the class method included in the common class of the second bundle. In the case where the bundle is not connected, it is possible to reduce the possibility that a defect occurs after the bundles are combined and reconfigured.
[0146]
Furthermore, according to the bundle reconfiguration system according to claim 13 or 14 according to the present invention, when the bundles are combined and reconfigured, unnecessary classes, unnecessary components and unnecessary packages included in the first bundle are eliminated. Therefore, the effect that the utilization efficiency of the memory can be further improved is also obtained.
Furthermore, according to the bundle reconfiguration system as set forth in claim 14 according to the present invention, when combining and reconfiguring bundles, unnecessary classes, unnecessary components and unnecessary packages included in the first bundle and the second bundle are included. Since it is eliminated, it is possible to further improve the memory utilization efficiency.
[0147]
Furthermore, according to the bundle reconfiguration system according to claim 15 of the present invention, if the bundles are organized by separating the bundles and deleting functionally unnecessary ones, the unnecessary classes are effectively excluded. As a result, the memory utilization efficiency can be further improved.
Furthermore, according to the bundle reconfiguration system according to claim 16 of the present invention, if bundles are organized by separating bundles and deleting functionally unnecessary ones, unnecessary components are effectively eliminated. As a result, the memory utilization efficiency can be further improved.
[0148]
Furthermore, according to the bundle reconfiguration system as set forth in claim 17 according to the present invention, if the bundles are organized by separating the bundles and deleting functionally unnecessary ones, unnecessary packages are effectively eliminated. As a result, the memory utilization efficiency can be further improved.
Furthermore, according to the bundle reconfiguration system according to claim 18 of the present invention, since the reconfiguration of the bundle is performed only when the state in which the memory usage rate of the storage unit is equal to or higher than the predetermined value continues for a predetermined period, The effect that it is possible to reduce the possibility of applying a load to other processing by frequently reconfiguring the bundle is also obtained.
[0149]
Furthermore, according to the bundle reconfiguration system according to claim 20 of the present invention, when it is difficult to reconfigure the bundle, the bundle reconfiguration proxy terminal performs the reconfiguration of the bundle. It is also possible to reduce the burden on the gateway terminal accompanying reconfiguration.
On the other hand, according to the bundle reconfiguration program according to claim 21 of the present invention, an effect equivalent to that of the bundle reconfiguration system according to claim 1 can be obtained.
[0150]
Furthermore, according to the bundle reconfiguration program according to claim 22 of the present invention, an effect equivalent to that of the bundle reconfiguration system according to claim 2 is obtained.
On the other hand, according to the bundle reconfiguration method according to claim 23 of the present invention, an effect equivalent to that of the bundle reconfiguration system according to claim 1 can be obtained.
Furthermore, according to the bundle reconfiguration method according to claim 24 of the present invention, an effect equivalent to that of the bundle reconfiguration system according to claim 2 is obtained.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a network system to which the present invention is applied.
FIG. 2 is a block diagram showing a configuration of a bundle management server 100.
FIG. 3 is a flowchart showing a user registration process executed by the bundle management server 100.
4 is a flowchart showing a user management process executed by the bundle management server 100. FIG.
FIG. 5 is a flowchart showing bundle providing processing executed by the bundle management server 100.
FIG. 6 is a diagram illustrating a data structure of a bundle.
FIG. 7 is a diagram illustrating a data structure of a bundle.
FIG. 8 is a diagram showing a data structure of component information 412;
FIG. 9 is a diagram illustrating a data structure of a component 410;
10 is a diagram showing a data structure of class information 422. FIG.
11 is a block diagram showing a configuration of a home gateway 200. FIG.
12 is a flowchart showing bundle acquisition processing executed by the home gateway 200. FIG.
FIG. 13 is a flowchart showing bundle combining processing.
FIG. 14 is a flowchart showing bundle separation processing;
FIG. 15 is a diagram showing a first pattern for coupling control bundles 400;
FIG. 16 is a diagram showing a second pattern for coupling control bundles 400;
FIG. 17 is a diagram showing a third pattern for coupling control bundles 400;
FIG. 18 is a diagram showing a fourth pattern for coupling the control bundle 400;
FIG. 19 is a diagram showing a fifth pattern for coupling the control bundle 400;
20 is a diagram illustrating a first pattern for separating the control bundle 400. FIG.
FIG. 21 is a diagram showing a second pattern for separating the control bundle 400;
22 is a diagram showing a third pattern for separating the control bundle 400. FIG.
23 is a diagram showing a fourth pattern for separating the control bundle 400. FIG.
24 is a diagram showing a fifth pattern for separating the control bundle 400. FIG.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Bundle management server, 200 ... Home gateway, 210-220 ... Device, 199 ... Internet, 30, 50 ... CPU, 32, 52 ... ROM, 34, 54 ... RAM, 38, 58 ... I / F, 40 ... Input Device, 42 ... Storage device, 44 ... Display device, 400 ... Control bundle, 402 ... Bundle reconfiguration bundle, 410 ... Component, 412 ... Component information, 414 ... Bundle controller, 420 ... Class, 422 ... Class information, 424 ... Component Control class, 450-458 ... class, etc.

Claims (24)

1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成するゲートウェイ端末を含むことを特徴とするバンドル再構成システム。
A system that has one or a plurality of different functional units and reconfigures a bundle that provides services by executing the functional units by executing the functional units,
When at least two of the bundles are stored in the storage unit and the memory usage rate of the storage unit is equal to or greater than a predetermined value , the functional unit included in the first bundle among the bundles of the storage unit, and the storage Among the bundles of means, a functional unit having a common function is identified as a common functional unit in comparison with a functional unit included in the second bundle, and the first bundle and the second bundle are identified as the first bundle. Among the functional units included in the bundle, those other than the common functional unit, those other than the common functional unit among the functional units included in the second bundle, and one bundle having the common functional unit are reconfigured. A bundle reconfiguration system comprising a gateway terminal .
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成するゲートウェイ端末を含むことを特徴とするバンドル再構成システム。
A system having at least three functional units and reconfiguring a bundle that provides services by executing the functional units by executing the functional units,
When the bundle is stored in the storage unit and separation of the bundle is requested , from among the plurality of functional units included in the bundle of the storage unit, the first functional unit among the plurality of functional units, Among the plurality of functional units, a functional unit that is commonly used by the second functional unit is identified as a common functional unit, and the bundle of the storage unit includes at least the first functional unit and the common functional unit. A bundle reconfiguration system, comprising: a bundle terminal, and a gateway terminal that is reconfigured as a second bundle having at least the second function unit and the common function unit.
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルのうち少なくとも2つのものを結合して1つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成するゲートウェイ端末を含むことを特徴とするバンドル再構成システム。
A system that has one or a plurality of different functional units and reconfigures a bundle that provides services by executing the functional units by executing the functional units,
Bundle acquisition means for acquiring the bundle, bundle storage means for storing the bundle acquired by the bundle acquisition means in storage means, bundle execution means for executing the bundle of the storage means, and at least of the bundles of the storage means A bundle reconfiguring unit that combines two things and reconfigures them as one bundle,
The bundle reconfiguration unit includes a functional unit included in a first bundle of the bundles of the storage unit and a bundle of the storage unit when the memory usage rate of the storage unit is equal to or greater than a predetermined value. A function unit having a common function in comparison with a function unit included in the second bundle is specified as a common function unit, and the first bundle and the second bundle are included in the first bundle. Including a gateway terminal that is reconfigured as one bundle having the common function unit, and other than the common function unit, and the function unit included in the second bundle. A bundle reconstruction system characterized by:
請求項3において、
前記バンドル再構成手段は、前記1つのバンドルに含まれる複数の機能部のなかから前記共通機能部を特定し、前記1つのバンドルを、前記第1のバンドル及び前記第2のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 3,
The bundle reconfiguration unit specifies the common function unit from among a plurality of function units included in the one bundle, and reconfigures the one bundle as the first bundle and the second bundle. A bundle reconfiguration system characterized by that.
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するシステムであって、
前記バンドルを取得するバンドル取得手段と、前記バンドル取得手段で取得したバンドルを記憶手段に格納するバンドル格納手段と、前記記憶手段のバンドルを実行させるバンドル実行手段と、前記記憶手段のバンドルを分離して少なくとも2つのバンドルとして再構成するバンドル再構成手段とを備え、
前記バンドル再構成手段は、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成するゲートウェイ端末を含むことを特徴とするバンドル再構成システム。
A system having at least three functional units and reconfiguring a bundle that provides services by executing the functional units by executing the functional units,
A bundle acquisition unit that acquires the bundle, a bundle storage unit that stores the bundle acquired by the bundle acquisition unit in a storage unit, a bundle execution unit that executes a bundle of the storage unit, and a bundle of the storage unit are separated. Bundle reconfiguring means for reconfiguring as at least two bundles,
The bundle reconfiguring unit, when requested to separate the bundle, out of the plurality of functional units included in the bundle of the storage unit, the first functional unit and the plurality of functional units Among the functional units, a functional unit commonly used by the second functional unit is specified as a common functional unit, and the bundle of the storage unit is a first unit having at least the first functional unit and the common functional unit. A bundle reconfiguration system comprising: a bundle, and a gateway terminal that is reconfigured as a second bundle having at least the second function unit and the common function unit.
請求項5において、
前記バンドル再構成手段は、前記第1のバンドルに含まれる機能部と、前記第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を前記共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 5,
The bundle reconfiguring means identifies a functional unit having a common function as the common functional unit by comparing the functional unit included in the first bundle and the functional unit included in the second bundle, and The first bundle and the second bundle are other than the common function unit among the function units included in the first bundle, and other than the common function unit among the function units included in the second bundle. And a bundle reconfiguration system characterized in that it is reconfigured as one bundle having the common function section.
請求項4及び6のいずれかにおいて、
前記ゲートウェイ端末は、前記ゲートウェイ端末からの取得要求に応じて前記バンドルを提供するバンドル提供端末と通信可能に接続し、
前記バンドル提供端末は、前記バンドルを生成するバンドル生成手段と、前記バンドル生成手段で生成したバンドルを前記取得要求に応じて前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル取得手段、前記バンドル格納手段、前記バンドル実行手段及び前記バンドル再構成手段を有し、
前記バンドル取得手段は、前記バンドル提供端末に前記取得要求を送信し、前記バンドル提供端末から前記バンドルを取得するようになっていることを特徴とするバンドル再構成システム。
In any of claims 4 and 6,
The gateway terminal, the bundle connecting bundle providing terminal and signal capable passing to provide in response to the acquisition request from the gateway terminal,
The bundle providing terminal includes a bundle generation unit that generates the bundle, and a bundle transmission unit that transmits the bundle generated by the bundle generation unit to the gateway terminal in response to the acquisition request.
The gateway terminal includes the bundle acquisition unit, the bundle storage unit, the bundle execution unit, and the bundle reconfiguration unit,
The bundle reconfiguration system, wherein the bundle acquisition means is configured to transmit the acquisition request to the bundle providing terminal and acquire the bundle from the bundle providing terminal.
請求項7において、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントと、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージとを有してなり、
前記バンドル再構成手段は、前記第1のバンドルに含まれるクラス、コンポーネント及びパッケージと、前記第2のバンドルに含まれるクラス、コンポーネント及びパッケージとを対比してそれらに共通するクラス、コンポーネント及びパッケージをそれぞれ共通クラス、共通コンポーネント及び共通パッケージとして特定し、前記共通クラス、前記共通コンポーネント及び前記共通パッケージが重複しないように、前記第1のバンドル及び前記第2のバンドルを1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 7,
The bundle includes a component that includes a plurality of classes as the functional unit, and a package that defines a logical combination of the plurality of classes included in the bundle.
The bundle reconfiguration unit compares the classes, components, and packages included in the first bundle with the classes, components, and packages included in the second bundle, and determines classes, components, and packages that are common to them. Respectively identify as a common class, a common component, and a common package, and reconfigure the first bundle and the second bundle as one bundle so that the common class, the common component, and the common package do not overlap. A bundle reconfiguration system characterized by that.
請求項8において、
前記バンドル再構成手段は、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれるクラスのうち前記共通クラス以外のもの、前記第2のバンドルに含まれるクラスのうち前記共通クラス以外のもの、及び前記共通クラスを有する1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 8,
The bundle reconfiguring means includes the first bundle and the second bundle, the classes included in the first bundle other than the common class, and the class included in the second bundle. A bundle reconfiguration system characterized by being reconfigured as a bundle other than the common class and the common class.
請求項8及び9のいずれかにおいて、
前記バンドル再構成手段は、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、前記第2のバンドルに含まれるコンポーネントのうち前記共通コンポーネント以外のもの、及び前記共通コンポーネントを有する1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In any of claims 8 and 9,
The bundle reconfiguring means includes the first bundle and the second bundle, the components other than the common component among the components included in the first bundle, and the components included in the second bundle. A bundle reconfiguration system characterized by being reconfigured as a single bundle having a component other than the common component and the common component.
請求項8乃至10のいずれかにおいて、
前記バンドル再構成手段は、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、前記第2のバンドルに含まれるパッケージのうち前記共通パッケージ以外のもの、及び前記共通パッケージを有する1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In any one of Claims 8 thru | or 10.
The bundle reconfiguring unit includes the first bundle and the second bundle, the packages other than the common package among the packages included in the first bundle, and the packages included in the second bundle. A bundle reconfiguration system characterized in that it is reconfigured as one bundle having a common package other than the common package.
請求項8乃至11のいずれかにおいて、
前記クラスは、複数のクラスメソッドを含み、
前記バンドル再構成手段は、前記第1のバンドルの共通クラスに含まれるクラスメソッドと、前記第2のバンドルの共通クラスに含まれるクラスメソッドとが完全一致していないときは、前記第1のバンドルの共通クラスに含まれるクラスメソッドと、前記第2のバンドルの共通クラスに含まれるクラスメソッドとを対比してそれら共通クラスに共通して含まれるクラスメソッドを共通クラスメソッドとして特定し、前記第1のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、前記第2のバンドルの共通クラスに含まれるクラスメソッドのうち前記共通クラスメソッド以外のもの、及び前記共通クラスメソッドを含むクラスを前記共通クラスとして構成するようになっていることを特徴とするバンドル再構成システム。
In any of claims 8 to 11,
The class includes a plurality of class methods,
When the class method included in the common class of the first bundle does not completely match the class method included in the common class of the second bundle, the bundle reconfiguration unit A class method included in the common class of the second bundle and a class method included in the common class of the second bundle are identified as a common class method. A class method included in a common class of the bundle other than the common class method, a class method included in the common class of the second bundle other than the common class method, and the common class method A van characterized in that a class is configured as the common class. Le reconstruction system.
請求項8乃至12のいずれかにおいて、
前記バンドル再構成手段は、前記第1のバンドルに含まれるクラス、コンポーネント及びパッケージのうち前記共通クラス、前記共通コンポーネント及び前記共通パッケージ以外のものであって不要なものがそれぞれ不要クラス、不要コンポーネント及び不要パッケージとして指定されたときは、前記第1のバンドル及び前記第2のバンドルを、前記不要クラス、前記不要コンポーネント及び前記不要パッケージを有しない1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In any one of Claims 8 thru | or 12.
The bundle reconfiguration unit includes an unnecessary class, an unnecessary component, and an unnecessary component other than the common class, the common component, and the common package among the classes, components, and packages included in the first bundle. When designated as an unnecessary package, the first bundle and the second bundle are reconfigured as a single bundle not including the unnecessary class, the unnecessary component, and the unnecessary package. A featured bundle reconstruction system.
請求項13において、
前記バンドル再構成手段は、前記第2のバンドルに含まれるクラス、コンポーネント及びパッケージのうち前記共通クラス、前記共通コンポーネント及び前記共通パッケージ以外のものであって不要なものがそれぞれ前記不要クラス、前記不要コンポーネント及び前記不要パッケージとして指定されたときは、前記第1のバンドル及び前記第2のバンドルを、前記不要クラス、前記不要コンポーネント及び前記不要パッケージを有しない1つのバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 13,
The bundle reconfiguring means includes a class, a component, and a package included in the second bundle, the unnecessary class other than the common class, the common component, and the common package, and the unnecessary class, the unnecessary class, respectively. When designated as a component and the unnecessary package, the first bundle and the second bundle are reconfigured as one bundle not having the unnecessary class, the unnecessary component, and the unnecessary package. A bundle reconfiguration system characterized by that.
請求項7において、
前記バンドルは、前記機能部としてのクラスを少なくとも3つ含むコンポーネントを有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のクラスのなかから、当該複数のクラスのうち第1のクラスと、当該複数のクラスのうち第2のクラスとが共通に利用するクラスを共通クラスとして特定し、前記記憶手段のバンドルを、前記第1のクラス及び前記共通クラスを少なくとも有する第1のバンドル、並びに前記第2のクラス及び前記共通クラスを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 7,
The bundle includes components including at least three classes as the functional unit,
The bundle reconfiguring unit uses a first class of the plurality of classes and a second class of the plurality of classes in common among the plurality of classes included in the bundle of the storage unit. A class is specified as a common class, and the bundle of the storage means is defined as a first bundle having at least the first class and the common class, and a second bundle having at least the second class and the common class. A bundle reconfiguration system characterized by being reconfigured.
請求項7において、
前記バンドルは、前記機能部としてのクラスを複数含むコンポーネントを少なくとも3つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のコンポーネントのなかから、当該複数のコンポーネントのうち第1のコンポーネントと、当該複数のコンポーネントのうち第2のコンポーネントとが共通に利用するコンポーネントを共通コンポーネントとして特定し、前記記憶手段のバンドルを、前記第1のコンポーネント及び前記共通コンポーネントを少なくとも有する第1のバンドル、並びに前記第2のコンポーネント及び前記共通コンポーネントを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 7,
The bundle includes at least three components including a plurality of classes as the functional unit.
The bundle reconfiguring means is commonly used by the first component of the plurality of components and the second component of the plurality of components from among the plurality of components included in the bundle of the storage means. A component is specified as a common component, and the bundle of the storage means is defined as a first bundle having at least the first component and the common component, and a second bundle having at least the second component and the common component. A bundle reconfiguration system characterized by being reconfigured.
請求項7において、
前記バンドルは、前記機能部としてのクラスを複数有し、且つ、当該バンドルに含まれる複数のクラスの論理的結合を規定したパッケージを少なくとも3つ有してなり、
前記バンドル再構成手段は、前記記憶手段のバンドルに含まれる複数のパッケージのなかから、当該複数のパッケージのうち第1のパッケージと、当該複数のパッケージのうち第2のパッケージとが共通に利用するパッケージを共通パッケージとして特定し、前記記憶手段のバンドルを、前記第1のパッケージ及び前記共通パッケージを少なくとも有する第1のバンドル、並びに前記第2のパッケージ及び前記共通パッケージを少なくとも有する第2のバンドルとして再構成するようになっていることを特徴とするバンドル再構成システム。
In claim 7,
The bundle includes a plurality of classes as the functional unit, and includes at least three packages that define a logical combination of a plurality of classes included in the bundle.
The bundle reconfiguring unit uses the first package of the plurality of packages and the second package of the plurality of packages in common among the plurality of packages included in the bundle of the storage unit. A package is specified as a common package, and the bundle of the storage means is defined as a first bundle having at least the first package and the common package, and a second bundle having at least the second package and the common package. A bundle reconfiguration system characterized by being reconfigured.
請求項7乃至17のいずれかにおいて、
前記バンドル再構成手段は、前記記憶手段のメモリ使用率が所定値以上となった状態が所定期間継続したときは、前記バンドルを再構成するようになっていることを特徴とするバンドル再構成システム。
In any of claims 7 to 17,
The bundle reconfiguration unit is configured to reconfigure the bundle when a state in which the memory usage rate of the storage unit is equal to or greater than a predetermined value continues for a predetermined period of time. .
請求項8乃至18のいずれかにおいて、
前記バンドルは、さらに、前記コンポーネントに含まれるクラスを識別可能に登録したコンポーネント情報を有してなり、
前記バンドル再構成手段は、前記バンドルに含まれるコンポーネント情報に基づいて前記バンドルを再構成するようになっていることを特徴とするバンドル再構成システム。
In any one of Claims 8 thru | or 18.
The bundle further includes component information registered so that the classes included in the component can be identified,
The bundle reconfiguration unit is configured to reconfigure the bundle based on component information included in the bundle.
請求項7乃至18のいずれかにおいて、
さらに、前記バンドルの再構成を代行するバンドル再構成代行端末を通信可能に接続し、
前記バンドル再構成代行端末は、前記バンドルを受信するバンドル受信手段と、前記バンドル受信手段で受信したバンドルを前記バンドル再構成手段と同一の手法により再構成する第2バンドル再構成手段と、前記第2バンドル再構成手段で再構成したバンドルを前記ゲートウェイ端末に送信するバンドル送信手段とを有し、
前記ゲートウェイ端末は、前記バンドル再構成手段による再構成が困難であると判定したときは、再構成の対象となるバンドルを前記バンドル再構成代行端末に送信するようになっていることを特徴とするバンドル再構成システム。
In any of claims 7 to 18,
Further, a bundle reconfiguration proxy terminal that performs the reconfiguration of the bundle is connected to be communicable,
The bundle reconfiguration proxy terminal includes: a bundle receiving unit that receives the bundle; a second bundle reconfiguring unit that reconfigures the bundle received by the bundle receiving unit using the same technique as the bundle reconfiguring unit; 2 bundle transmission means for transmitting the bundle reconfigured by the 2 bundle reconfiguration means to the gateway terminal,
The gateway terminal is configured to transmit a bundle to be reconfigured to the bundle reconfiguration proxy terminal when it is determined that reconfiguration by the bundle reconfiguration means is difficult. Bundle reconfiguration system.
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルの再構成を、ゲートウェイ端末に実行させるためのプログラムであって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成する処理を、前記ゲートウェイ端末のコンピュータに実行させることを特徴とするバンドル再構成プログラム。
A program for causing a gateway terminal to execute reconfiguration of a bundle having one or a plurality of different functional units and causing the functional units to function by the execution thereof to provide a service,
When at least two of the bundles are stored in the storage unit and the memory usage rate of the storage unit is equal to or greater than a predetermined value , the functional unit included in the first bundle among the bundles of the storage unit, and the storage Among the bundles of means, a functional unit having a common function is identified as a common functional unit in comparison with a functional unit included in the second bundle, and the first bundle and the second bundle are identified as the first bundle. Among the functional units included in the bundle, those other than the common functional unit, those other than the common functional unit among the functional units included in the second bundle, and one bundle having the common functional unit are reconfigured. handle, bundle reconstruction program characterized and Turkey is executed by the gateway terminal computer.
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルの再構成を、ゲートウェイ端末に実行させるためのプログラムであって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成する処理を、前記ゲートウェイ端末のコンピュータに実行させることを特徴とするバンドル再構成プログラム。
A program for causing a gateway terminal to execute reconfiguration of a bundle having at least three functional units and providing the service by causing the functional units to function by executing the functional units,
When the bundle is stored in the storage unit and separation of the bundle is requested , from among the plurality of functional units included in the bundle of the storage unit, the first functional unit among the plurality of functional units, Among the plurality of functional units, a functional unit that is commonly used by the second functional unit is specified as a common functional unit, and a bundle of the storage unit includes at least the first functional unit and the common functional unit. 1 bundle, and said second functional unit and a process for reconstructing a second bundle having at least the common functional unit, the bundle reconstruction program characterized and Turkey is executed by the gateway terminal computer.
1又は異なる複数の機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するゲートウェイ端末のバンドル再構成方法であって、
少なくとも2つの前記バンドルが記憶手段に格納され、前記記憶手段のメモリ使用率が所定値以上となっている場合に、前記記憶手段のバンドルのうち第1のバンドルに含まれる機能部と、前記記憶手段のバンドルのうち第2のバンドルに含まれる機能部とを対比して機能が共通する機能部を共通機能部として特定し、前記第1のバンドル及び前記第2のバンドルを、前記第1のバンドルに含まれる機能部のうち前記共通機能部以外のもの、前記第2のバンドルに含まれる機能部のうち前記共通機能部以外のもの、及び前記共通機能部を有する1つのバンドルとして再構成することを特徴とするバンドル再構成方法。
A gateway terminal bundle reconfiguration method for reconfiguring a bundle that has one or a plurality of different functional units, and that executes the functional unit to perform a function to provide a service,
When at least two of the bundles are stored in the storage unit and the memory usage rate of the storage unit is equal to or greater than a predetermined value , the functional unit included in the first bundle among the bundles of the storage unit, and the storage Among the bundles of means, a functional unit having a common function is identified as a common functional unit in comparison with a functional unit included in the second bundle, and the first bundle and the second bundle are identified as the first bundle. Among the functional units included in the bundle, those other than the common functional unit, those other than the common functional unit among the functional units included in the second bundle, and one bundle having the common functional unit are reconfigured. Bundle reconfiguration method characterized by the above.
少なくとも3つの機能部を有し且つその実行により前記機能部を機能させてサービスを提供するバンドルを再構成するゲートウェイ端末のバンドル再構成方法であって、
前記バンドルが記憶手段に格納され、前記バンドルの分離が要求された場合に、前記記憶手段のバンドルに含まれる複数の機能部のなかから、当該複数の機能部のうち第1の機能部と、当該複数の機能部のうち第2の機能部とが共通に利用する機能部を共通機能部として特定し、前記記憶手段のバンドルを、前記第1の機能部及び前記共通機能部を少なくとも有する第1のバンドル、並びに前記第2の機能部及び前記共通機能部を少なくとも有する第2のバンドルとして再構成することを特徴とするバンドル再構成方法。
A gateway terminal bundle reconfiguration method for reconfiguring a bundle having at least three functional units and executing the functional unit to execute a function to provide a service.
When the bundle is stored in the storage unit and separation of the bundle is requested , from among the plurality of functional units included in the bundle of the storage unit, the first functional unit among the plurality of functional units, Among the plurality of functional units, a functional unit that is commonly used by the second functional unit is identified as a common functional unit, and the bundle of the storage unit includes at least the first functional unit and the common functional unit. A bundle reconfiguration method comprising: reconfiguring one bundle, and a second bundle having at least the second functional unit and the common functional unit.
JP2003013609A 2003-01-22 2003-01-22 Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method Expired - Fee Related JP4363044B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003013609A JP4363044B2 (en) 2003-01-22 2003-01-22 Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003013609A JP4363044B2 (en) 2003-01-22 2003-01-22 Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method

Publications (2)

Publication Number Publication Date
JP2004227240A JP2004227240A (en) 2004-08-12
JP4363044B2 true JP4363044B2 (en) 2009-11-11

Family

ID=32901890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003013609A Expired - Fee Related JP4363044B2 (en) 2003-01-22 2003-01-22 Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method

Country Status (1)

Country Link
JP (1) JP4363044B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011055417A1 (en) 2009-11-09 2011-05-12 三菱電機株式会社 Software library reconfiguration device and method, and navigation device using the same
CN113722015B (en) * 2021-09-10 2024-06-18 京东科技控股股份有限公司 Method and device for acquiring combined component and storage medium

Also Published As

Publication number Publication date
JP2004227240A (en) 2004-08-12

Similar Documents

Publication Publication Date Title
US20030093769A1 (en) Apparatus and method for UPnP device code generation using XML
JP5046161B2 (en) Application partitioning for network edge computing
EP1589436A1 (en) Information processing device, content management method, content information management method, and computer program
CN1745369B (en) Information processing device and information processing method
MX2008012378A (en) Policy based message aggregation framework.
JP2009181468A (en) Image search log collection system, image search log collection method and program
CN101421967A (en) Method and apparatus for synchronizing contents of home network devices
CN102053973A (en) Device and method for providing page navigation in multi-character supporting network application
US20040165206A1 (en) Device management system, device management terminal, network device, terminal program, device program, and device management method
KR100717032B1 (en) Method and apparatus for presenting an entity not according to UPnP as UPnP device or content
JP2005202851A (en) Policy implementation system and method for virtual private organization
JP4363044B2 (en) Bundle reconstruction system, bundle reconstruction program, and bundle reconstruction method
CN104978372A (en) Multimedia information processing method, multimedia device and multimedia network system
JP2006079469A (en) Support information processing system and support information processing method
CN111045928A (en) Interface data testing method, device, terminal and storage medium
JP2004096420A (en) Service interruption restoration system, service interruption restoration method, communication terminal, service interruption restoration apparatus, and service interruption restoration program
CN101640667B (en) Process execution method, process execution system and configuration equipment and configuration method of process execution system
CN108614844A (en) Multimedia file producting method and device
JP4974090B2 (en) Item management server and item management system
JP2006318085A (en) Information processor, information processing method, and program
JP7457679B2 (en) Information processing device, information processing method, and information processing program
JP2004240890A (en) Middleware transparent distributed application access system
JPWO2013187034A1 (en) Content management apparatus and content management method
JP2023028416A (en) Information processing device, information processing method, and information processing program
JP2009118058A (en) Communication control system and communication control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060118

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090728

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090810

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130828

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees