(57)【要約】【課題】  従来は、システムにおいてソフトウエアモジュールを入れ替えたときに、そのシステムで何ができるのかを検出できる手段を提供するというものに留まっている。【解決手段】  オペレーティングシステムとアプリケーションとに介在するミドルウェアを管理するためのミドルウェア管理部４０２と、ネットワークに存在する機器の時系列的に変化する情報を収集する機器連携制御部４０９と、この機器連携制御部４０９によって収集された情報に基づいてミドルウェア管理部４０２により管理しているミドルウェアを再構成するミドルウェア最適化部４０８とを有する。【選択図】  図６
2007047941.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを通じた制御が可能な電子機器であって、
ネットワークとの間で通信を行う通信手段と、
オペレーティングシステムとアプリケーションとに介在するミドルウェアを管理するためのミドルウェア管理手段と、
前記通信手段により、前記ネットワークに存在する機器の時系列的に変化する情報を収集する収集手段と、
前記収集手段によって収集された前記情報に基づいて前記ミドルウェア管理手段により管理しているミドルウェアを再構成する再構成手段と、
を有することを特徴とする電子機器。
【請求項２】
ネットワークを通じた制御が可能な電子機器において、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理手段と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化手段と、
前記最適化手段によって最適化された前記群ケーパビリティ情報を基に、当該電子機器に格納されているミドルウエアを再構成する再構成手段と、
を有することを特徴とする電子機器。
【請求項３】
前記機器ケーパビリティ情報は、前記ミドルウエアとの機能的な依存性を階層的に表現した情報であり、時間の経過と共に変化する情報は時系列で表現されていることを特徴とする請求項２に記載の電子機器。
【請求項４】
前記再構成手段は、
前記機器のアプリケーションが実施不可能な機能を提供するミドルウエアを無効化し、及び／又は前記アプリケーションからの要求が発行されるミドルウエアを有効化することを特徴とする請求項１又は２に記載の電子機器。
【請求項５】
前記群ケーパビリティ管理手段は、前記機器群を構成する機器間の連携動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項２に記載の電子機器。
【請求項６】
前記群ケーパビリティ管理手段は、前記機器群を構成する機器間の並列動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項２に記載の電子機器。
【請求項７】
ネットワークを介して複数の機器を接続したネットワークシステムであって、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理手段と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化手段と、
前記最適化手段によって最適化された前記群ケーパビリティ情報を基に、前記機器群を構成する各機器のミドルウエアを再構成する再構成手段と、
を有することを特徴とするネットワークシステム。
【請求項８】
前記機器ケーパビリティ情報は、前記ミドルウエアとの機能的な依存性を階層的に表現した情報であり、時間の経過と共に変化する情報は時系列で表現されていることを特徴とする請求項７に記載のネットワークシステム。
【請求項９】
前記再構成手段は、
前記各機器のアプリケーションが実施不可能な機能を提供するミドルウエアを無効化し、及び／又は前記アプリケーションからの要求が発行されるミドルウエアを有効化することを特徴とする請求項７に記載のネットワークシステム。
【請求項１０】
前記群ケーパビリティ管理手段は、前記機器群を構成する機器間の連携動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項７に記載のネットワークシステム。
【請求項１１】
前記群ケーパビリティ管理手段は、前記機器群を構成する機器間の並列動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項７に記載のネットワークシステム。
【請求項１２】
ネットワークを通じた制御が可能な電子機器の制御方法であって、
ネットワークとの間で通信を行う通信工程と、
オペレーティングシステムとアプリケーションとに介在するミドルウェアを管理するためのミドルウェア管理工程と、
前記通信工程により、前記ネットワークに存在する機器の時系列的に変化する情報を収集する収集工程と、
前記収集工程によって収集された前記情報に基づいて前記ミドルウェア管理工程により管理しているミドルウェアを再構成する再構成工程と、
を有することを特徴とする電子機器の制御方法。
【請求項１３】
ネットワークを通じた制御が可能な電子機器の制御方法において、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理工程と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化工程と、
前記最適化工程で最適化された前記群ケーパビリティ情報を基に、当該電子機器に格納されているミドルウエアを再構成する再構成工程と、
を有することを特徴とする電子機器の制御方法。
【請求項１４】
前記機器ケーパビリティ情報は、前記ミドルウエアとの機能的な依存性を階層的に表現した情報であり、時間の経過と共に変化する情報は時系列で表現されていることを特徴とする請求項１３に記載の電子機器の制御方法。
【請求項１５】
前記再構成工程は、前記機器のアプリケーションが実施不可能な機能を提供するミドルウエアを無効化し、及び／又は前記アプリケーションからの要求が発行されるミドルウエアを有効化することを特徴とする請求項１２又は１３に記載の電子機器の制御方法。
【請求項１６】
前記群ケーパビリティ管理工程は、前記機器群を構成する機器間の連携動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項１３に記載の電子機器の制御方法。
【請求項１７】
前記群ケーパビリティ管理工程は、前記機器群を構成する機器間の並列動作によって実現される機能を前記群ケーパビリティ情報として算出することを特徴とする請求項１３に記載の電子機器の制御方法。
【請求項１８】
ネットワークを介して複数の機器を接続したネットワークシステムの制御方法であって、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理工程と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化工程と、
前記最適化工程で最適化された前記群ケーパビリティ情報を基に、前記機器群を構成する各機器のミドルウエアを再構成する再構成工程と、
を有することを特徴とするネットワークシステムの制御方法。
【請求項１９】
請求項１２乃至１８のいずれか１項に記載の制御方法を実行することを特徴とするプログラム。
【請求項２０】
請求項１９に記載のプログラムを記憶していることを特徴とする、コンピュータにより読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを通して情報の交換が可能な電子機器及びネットワークシステムとその制御方法に関するものである。
【背景技術】
【０００２】
単独で使用され、回線を介して相互に接続することが意図されていなかったオフィス機器や家庭用機器においても、ネットワークを介して他の機器と連携して処理を行う機能が搭載されるようになった。こうした連携処理を実現するために、各機器は、各機器の状況や状態等を示すステータス情報や、各機器の機能や能力、仕様等を示すプロファイル情報を所有し、これら情報を共通した表現形式で、共通の通信手段を用いて互いに交換する必要がある。こうした高機能なネットワーク処理を実現するために、機器組み込みソフトウェアを、アプリケーション、ミドルウェア、そしてファームウェアといった複数の構成に分離して管理する手法が一般的になりつつある。アプリケーションは、その機器の主たる機能を実現するための単数或は複数のアプリケーションソフトウェアで構成される。ミドルウエアは、アプリケーションソフトウェアからの要求に対応し、ネットワーク制御を代表とする機器内部における共通した機能を一括して提供する。またファームウエアは、ハードウェア機能への制御を実現している。
【０００３】
ネットワーク制御等の機器内部における共通した機能を一括して提供するミドルウェアの例として、ＵＰｎＰ（Universal Plug and Play）がある。また同様の目的や機能を有する別のプロトコルとして、JiniやJxta等のプロトコルも存在する。
【０００４】
ＵＰｎＰは、ＨＴＴＰ技術やＸＭＬ技術といった比較的高機能な処理を必要とする通信ソフトウェアで、これを各機器に対して常に個別に開発し搭載するのは容易ではない。更に、例えばプリンタやビデオデッキといった特定の用途の機器を開発する場合は、その機器に固有の機能である印刷機能、録画、再生機能といった機器の主要機能の開発が主体となる。そのため、こうしたＵＰｎＰ等の共通した通信部分のソフトウェアは、前述したミドルウェアという形で分離可能にするのが一般的となっている。このように機器の高機能化の要求に応じて、機器に搭載されるミドルウェアも高機能化、複雑化してきており、それに伴ってミドルウェアが必要とする計算機資源や計算機能力も増加している。
【０００５】
また通信機能を搭載した機器が高機能化することにより、こうしたミドルウェアを更に複数個同時に搭載したいという要求も出てきている。例えばＵＰｎＰとＪｉｎｉに動的に対応できる通信機能を有する機器を実現するために、対応するミドルウェアを合計２種類搭載する場合が考えられる。このように各種プロトコルに対応したい場合は、各プロトコルに対応したミドルウェアを機器に複数搭載することになる。
【０００６】
またＵＰｎＰに代表されるような、ネットワークを通じて機器を相互に接続する機器制御用プロトコルでは、最新のスナップショットだけを表現するプロファイル情報の構造を採用しているケースが多い。しかし、このような最新のスナップショットだけでは詳細なプロファイル情報が得られない。そこでスナップショットだけでなく、ユーザによるコンテンツの閲覧履歴や操作履歴等のリストを管理できるデータをプロファイル情報として収集する操作履歴収集システム等が提案されている。
【特許文献１】特開平０５−１１９９５号公報
【特許文献２】特開２００１−２０９６０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
まず第１の課題として、高機能化・複雑化して肥大化していくミドルウエアを複数搭載することは、計算機能力に制約のある機器の組み込み環境では大きな制約となる。
【０００８】
特許文献１には、ソフトウエアモジュールの能力を表現するためのインタフェースオブジェクトをサーバに送信し、サーバでそれを更新して返信することが記載されている。具体的には、モジュールＡが欲しい機能をサーバに登録しておき、モジュールＢのインタフェースオブジェクトとがそれに合致するかどうかをサーバを経由して調査することにより、モジュールＡからみてモジュールＢの要否を判断するものである。この従来技術では、各ソフトウエアモジュールの機能を登録するために、常時使用可能なサーバの存在が前提となる。このため、例えば家庭内や屋外で一時的に構成されるネットワークで使用される機器を想定した場合には適用できない。また、モジュールＢが予め希望した条件に適合しているかどうかしか判定できないため、複数の機器の様々な条件を複合的に判断してモジュールの要否を判定することはできない。即ち、この従来技術は、あるシステムにおいてソフトウエアモジュールを入れ替えたときに、そのシステムで何ができるのかを検出できる手段を提供するというものに留まっている。
【０００９】
このように従来技術では、単一の機器内部での最適化には供することができるが、複数の機器との関連で最適化を実施するために、通信機能を有する機器に搭載されたミドルウエアの最適化には採用できない。
【００１０】
次に第２の課題としては、機器に属するプロファイル等の情報を用いて機器間の処理を自動化することにより第１の課題を解決しようとする試みがある。しかし、この試みでは、機器に属する情報を、その情報の示す内容の推移や遷移を示す時系列で連続して扱うことを考慮していない。このため、情報の内容の推移や、過去の履歴に基づいて機器の連携処理を実施することができず、あくまでも現状の機器や機器群の状況を示す情報を用いた現時点での対処方法しか提供できない。例えば、ＵＰｎＰのような機器制御用プロトコルでは、プロファイル情報の項目やステータス情報は、現時点(最新状態)でのスナップショットを表現するプロファイル情報の構造を採用している場合が多い。このようなプロファイル情報では、時系列に変化する情報を時系列に従って表現したり蓄積できない。このため、変更予測等を必要とする機器同士の連携判断のための情報としては採用できない。
【００１１】
また特許文献２には、機器に対する操作履歴や閲覧履歴を収集するシステムが記載されているが、この場合の操作履歴や閲覧履歴は、プロファイル情報を取得した時点で過去に閲覧したリストと操作した結果のリストである。即ち、プロファイル情報を取得した時点でのスナップショットの集合であり、このようなデータの集合では、操作履歴や閲覧履歴が時間と共にどのように変化したのかを表現できない。
【００１２】
そして第３の課題として、仮に第２の課題を解決し、その結果を受けて第１の課題を解決できたとしても、各機器に固有のミドルウエアを最適化した結果が、必ずしも機器システム全体の最適化としてユーザの意図や利益に沿ったものになるとは限らない。即ち、各機器が単独で使用される場合は、各機器が単独でその内部状態を最適化すれば済む。しかしネットワークによって有機的に結合され複数の機能からなる機器ネットワークでは、ある機器がその機器の都合で、ある機能を最適化してしまうと、機器群全体としての処理に問題が発生する。また或は、処理が可能であっても、著しく非効率的な処理が発生するといった問題が発生する可能性がある。例えば、ＴＶとＤＶＤレコーダとＶＴＲレコーダを含むＡＶ機器ネットワークにおいて、録画機能を殆ど使用していないという理由で、ＶＴＲレコーダに最適化を実施してユーザからの操作のみを待ち受ける待機モードに遷移してしまった場合を考える。このとき、もしこの機器ネットワークがシステムに組み込まれていて、例えばそのシステムのメディア（ＤＶＤ）の残容量不足が発生した場合に、同等の録画機能を有するＶＴＲレコーダに自動的に録画要求を発行することが考えられる。しかし、ＶＴＲレコーダが待機状態になっていると、録画要求に正常に応答できなくなる。このようにシステム全体からみて、例えば、録画処理を実行中にＶＴＲもＤＶＤも使用可能状態に維持しなければならないといった判断がなされないとシステム全体の機能を損なうことになる。
【００１３】
本発明は上記従来例の問題点を解決することを目的とする。
【００１４】
本願発明の特徴は、単一の機器内部での最適化に留まらず、ネットワークに接続された機器群の各機器に搭載されたミドルウエアの最適化を実現する技術を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために本発明の一態様に係る電子機器は以下のような構成を備える。即ち、
ネットワークを通じた制御が可能な電子機器であって、
ネットワークとの間で通信を行う通信手段と、
オペレーティングシステムとアプリケーションとに介在するミドルウェアを管理するためのミドルウェア管理手段と、
前記通信手段により、前記ネットワークに存在する機器の時系列的に変化する情報を収集する収集手段と、
前記収集手段によって収集された前記情報に基づいて前記ミドルウェア管理手段により管理しているミドルウェアを再構成する再構成手段とを有することを特徴とする。
【００１６】
上記目的を達成するために本発明の一態様に係る電子機器は以下のような構成を備える。即ち、
ネットワークを通じた制御が可能な電子機器において、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理手段と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化手段と、
前記最適化手段によって最適化された前記群ケーパビリティ情報を基に、当該電子機器に格納されているミドルウエアを再構成する再構成手段とを有することを特徴とする。
【００１７】
上記目的を達成するために本発明の一態様に係るネットワークシステムは以下のような構成を備える。即ち、
ネットワークを介して複数の機器を接続したネットワークシステムであって、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理手段と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化手段と、
前記最適化手段によって最適化された前記群ケーパビリティ情報を基に、前記機器群を構成する各機器のミドルウエアを再構成する再構成手段と、
を有することを特徴とする。
【００１８】
上記目的を達成するために本発明の一態様に係る電子機器の制御方法は以下のような工程を備える。即ち、
ネットワークを通じた制御が可能な電子機器の制御方法であって、
ネットワークとの間で通信を行う通信工程と、
オペレーティングシステムとアプリケーションとに介在するミドルウェアを管理するためのミドルウェア管理工程と、
前記通信工程により、前記ネットワークに存在する機器の時系列的に変化する情報を収集する収集工程と、
前記収集工程によって収集された前記情報に基づいて前記ミドルウェア管理工程により管理しているミドルウェアを再構成する再構成工程とを有することを特徴とする。
【００１９】
上記目的を達成するために本発明の一態様に係るネットワークシステムの制御方法は以下のような工程を備える。即ち、
ネットワークを介して複数の機器を接続したネットワークシステムの制御方法であって、
前記ネットワークを介して各機器から提供される時間情報を含む機器ケーパビリティ情報を収集し、前記ネットワーク上に存在する複数の機器から構成される機器群に対する群ケーパビリティ情報を算出する群ケーパビリティ管理工程と、
前記機器ケーパビリティ情報の時間経過に伴う変化に応じて前記群ケーパビリティ情報の時間経過に伴う推移を最適化する最適化工程と、
前記最適化工程で最適化された前記群ケーパビリティ情報を基に、前記機器群を構成する各機器のミドルウエアを再構成する再構成工程とを有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、単一の機器内部での最適化に留まらず、ネットワークに接続された機器群の各機器に搭載されたミドルウエアの最適化を実現できる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００２２】
図１は、本実施の形態に係る処理を実行する装置の一例である画像形成装置（カラープリンタ）の構成を示すブロック図である。尚、以下の説明では、このカラープリンタの場合を例にして説明するが本発明はこれに限定されず、例えばパーソナルコンピュータ（ＰＣ）や複写機、ファクシミリ装置等の事務用機器に加えて、ＤＶＤ録画再生機器などの家庭電気製品にも適用できる。
【００２３】
図において、制御部１０１は、このカラープリンタ１００全体の動作を制御している。プリンタエンジン１０２は、例えばインクジェット法や電子写真法などにより記録シートなどの記録媒体に画像を形成するプリンタエンジンである。ネットワーク１０５は、このプリンタ１００に加えて、家庭用電気製品や事務機器などの各種機器１０３，１０４を複数接続している。ここでは２つの機器１０３，１０４のみを示しているが、これら機器の数はこれに限定されないことはもちろんである。
【００２４】
ＣＰＵ１１０は、ＲＯＭ１１４に記憶されているプログラムに従って、このプリンタ１００の動作を制御している。ＲＡＭ１１１は、このＣＰＵ１１０による処理時に各種データを一時的に保存する、ワークエリアとして使用される。入出力（Ｉ／Ｏ）ポート１１３は、プリンタエンジン１０２などの各部とＣＰＵ１１０との間で各種信号を入出力する。ネットワークインターフェース１１２は、ネットワーク１０５との間での通信を制御しており、このインターフェース１１２により、ネットワーク１０５に接続されている各種機器とのデータの交換を行うことができる。
【００２５】
図２は、本発明の実施の形態に係るカラープリンタ１００に組み込まれているソフトウェアの構成を説明する図である。このプログラムは、制御部１０１のＲＯＭ１１４に記憶されている。
【００２６】
このカラープリンタ１００は、本実施の形態に係る機能を搭載した機器であり、ここではネットワーク１０５に接続可能な高機能のカラープリンタとする。このカラープリンタ１００は通常のプリンタと同様に、ＰＣなどのクライアントからの文書データや印刷データを受信してフルカラーで印刷する機能の他に、印刷データの管理や再印刷、履歴管理などの付加機能が付与されているものとする。このカラープリンタ１００のソフトウェア構成としては、まず基本的な処理を提供するオペレーティングシステム及びファームウェア３０２が搭載されている。更に、その上層には、各共通機能を提供するミドルウェア３０３〜３１０が搭載されている。更に最上層部には、アプリケーション３１１が搭載されている。このアプリケーション３１１は、このプリンタ１００の付加機能を提供するために用いられるものであり、例えば前述の履歴管理などの処理を行う。図では説明の便宜上、アプリケーション３１１は１つのみを示しているが、複数存在してもかまわない。
【００２７】
次にミドルウェア３０３〜３１０を詳細に説明する。
【００２８】
３０３〜３０６は、このプリンタ１００に到達した印刷データを含む文書データを管理するミドルウェアである。この文書データを管理するミドルウェアは、ＰＤＦフォーマット対応ミドルウェア３０３，ＳＶＧフォーマット対応ミドルウェア３０４、独自印刷フォーマット対応ミドルウェア３０５のように、それぞれのデータ形式（フォーマット）に対応したミドルウェアと、更にこれらを統合してアプリケーション３１１から扱うためのインタフェースを提供する文書管理ミドルウェア３０６で構成されている。これらミドルウェア３０３〜３０５と３０６は階層構造になっており、アプリケーション３１１からみると文書管理ミドルウェア３０６を通じてミドルウェア３０３〜３０５を取り扱う構造になっている。
【００２９】
一方、３０７〜３１０はネットワーク１０５を介する通信処理を実現するためのミドルウェアである。これら通信処理用のミドルウェアは、文書管理ミドルウェア３０６と同様に、ＵＰｎＰ対応ミドルウェア３０７、ＳＬＰ対応ミドルウェア３０８、ＵＤＤＩ対応ミドルウェア３０９といった各通信プロトコルに対応したミドルウェアと、更にこれらを統合してアプリケーション３１１から扱うためのインタフェースを提供する通信管理ミドルウェア３１０で構成されている。これらミドルウェア３０７〜３０９と３１０は階層構造になっており、アプリケーション３１１からみると通信管理ミドルウェア３１０を通じてミドルウェア３０７〜３０９を取り扱う構造になっている。
【００３０】
図３は、このカラープリンタ１００に電源が投入され、カラープリンタ１００が稼動を開始したときに起こる処理を概念的に示した図である。
【００３１】
まずカラープリンタ１００に内蔵されるオペレーティングシステム・ファームウェア３０２、アプリケーション３１１、各ソフトウェアにおけるケーパビリティ（Capability：機能）情報が収集され、このプリンタ１００のケーパビリティ情報である機器ケーパビリティ３２０が生成される。他の機器１０３，１０４でも同様にして、その機器の機器ケーパビリティ３２０が生成される。そして、これらをネットワーク１０５を通じて各機器が伝達して集計することにより、そのネットワーク１０５の群ケーパビリティ３２１が形成される。この時、各機器の機器ケーパビリティ３２０から構成される群ケーパビリティ３２１は、このネットワーク１０５にどのような機能、能力の機器が接続されているかによって、その内容が変化する。例えば、カラープリンタ１００は、フルカラーで画像を印刷できるプリンタであるが、このネットワーク１０５にデジタルカメラが接続されている場合、そのデジタルカメラにより撮影した画像情報の印刷時における色再現性を高めるためのカラーマネージメント機能が必須と判断される。この場合は、群ケーパビリティ３２１として、このカラーマネージメント機能を含むケーパビリティ情報が生成される。逆に、このネットワーク１０５にデジタルカメラが存在せず、代わりにモノクロスキャナが接続されている場合、高速スキャン処理に追随するためのドラフトモードでのモノクロ印刷機能を含むケーパビリティ情報が生成される。また共通して使用できる通信プロトコルや対応できるデータフォーマットといった機能情報も群ケーパビリティ３２１として生成される。
【００３２】
図４は、カラープリンタ１００において群ケーパビリティ３２１と機器ケーパビリティ３２０とを用いた最適化処理によって、カラープリンタ１００が内蔵している幾つかのミドルウェアが使用を停止した状態を示している。以下に、カラープリンタ１００がこの状態に至るまでの処理の一例を説明する。
【００３３】
まずネットワーク１０５に接続されているいずれの機器も通信手段（お互いの機器を検索する通信手段）としてＵＤＤＩを用いないことが、各機器の機器ケーパビリティから算出された群ケーパビリティ３２１に基づいて導き出される。この結果、各機器におけるＵＤＤＩ対応ミドルウェア３０９は使用停止となる（図４では「×」で示す）。更に、ネットワーク１０５に接続されているいずれの入力機器も、ＰＤＦフォーマット形式でのデータの送信をサポートしていないことが群ケーパビリティ３２１から導き出される。この場合、出力機器であるカラープリンタ１００におけるＰＤＦフォーマット対応ミドルウェア３０３も使用される可能性がないと判断され、その使用が停止される（図４では「×」で示す）。
【００３４】
この時、アプリケーション３１１を含むカラープリンタ１００が、この状況においてユーザに提供できる機能が変化していない点に注意が必要である。即ち、ＵＤＤＩ対応ミドルウェア３０９もＰＤＦフォーマット対応ミドルウェア３０３も、現在のネットワーク１０５の機器では使用できないものであるため、これらミドルウェアの稼動を停止してもカラープリンタ１００を含む機器ネットワーク１０５がユーザに提供できる機能は全く変化していない。
【００３５】
またアプリケーション３１１は、引き続き、通信処理では通信管理ミドルウェア３１０を通じて、また文書管理においては文書管理ミドルウェア３０６を通じて処理する。よって、ＵＤＤＩ対応ミドルウェア３０９とＰＤＦフォーマット対応ミドルウェア３０３の稼動停止の影響を受けない。
【００３６】
図５は、更にこうして変更された機器ケーパビリティ情報３２０から再び群ケーパビリティ情報３２１を生成することにより再帰的な最適化を実施する場合を示す図である。
【００３７】
これは通常、時間或は回数といった収束条件を伴って再帰的に処理されていく。ここでは、更にＳＬＰ対応ミドルウェア３０８とＳＶＧフォーマット対応ミドルウェア３０４も稼動を停止して構わないことが判明した場合を示している。
【００３８】
このようにして本実施の形態に係るカラープリンタ１００は、その内部に保持する複数のミドルウェアの全てを稼動可能な状態にしておく必要はなく、ネットワーク１０５の機器の状態や能力から、本当に必要なミドルウェアだけを残して、後は、その稼動を停止することができる。
【００３９】
尚、本実施の形態では、予め各ミドルウェアは群ケーパビリティ３２１による最適化前には起動し、最適化後に停止するという操作で説明したが、予め停止しておいて必要に応じて起動するといった場合にでも本発明に適用できる。また、この起動と停止の制御を個別に組み合わせて最適化する場合も適用できる。
【００４０】
図６は、本発明の実施の形態に係るカラープリンタ１００のソフトウェア構造の機能ブロックを説明する図である。
【００４１】
アプリケーション管理部４０１は、ネットワーク１０５を通じた制御が可能なネットワーク対応機器において、当該機器の主たる機能を実現するための単数又は複数のアプリケーションソフトウェアを管理、格納する。ここにはアプリケーション３１１が格納される。ミドルウェア管理部４０２は、アプリケーションソフトウェア３１１からの要求に対応し、ネットワーク制御を代表とする、このプリンタ１００の共通した機能を一括して提供するための単数又は複数のミドルウェア３０３〜３１０を複数同時に管理、格納する。
【００４２】
ソフトウェアケーパビリティ管理部４０３は、このプリンタ１００のハードウェア機能への制御を実現するファームウェアや、前述のミドルウェア、及びアプリケーションソフトウェア３１１を含む各種ソフトウェアの各々に対して、その機器の状況や状態等を示すステータス情報と、機能、能力、仕様等を示すプロファイル情報とを合わせたケーパビリティ情報４０４を付与し、これを管理している。そしてミドルウェア管理部４０２は、ソフトウェアケーパビリティ管理部４０３によって付与されるケーパビリティ情報４０４を用いて、その管理対象となるミドルウェアを管理する。この時、ケーパビリティ情報４０４には、各ミドルウェアの相互における機能的な依存性を階層的に表現した情報が格納される。
【００４３】
機器ケーパビリティ管理部４０５は、ソフトウェアケーパビリティ管理部４０３によって提供される複数の機器搭載ソフトウェアにおけるケーパビリティ情報４０４を基に、当該機器を単位としたケーパビリティ情報である機器ケーパビリティ情報を生成する。また群ケーパビリティ管理部４０６は、機器ケーパビリティ管理部４０５から提供される各機器ケーパビリティ情報３２０をネットワーク１０５を経由して収集する。そしてネットワーク１０５上の複数の機器から構成される機器群に対する群ケーパビリティ情報３２１を算出する。また、ミドルウェア再構成部４０７は、このプリンタ１００の稼動時に、搭載されている各ミドルウェアを動的に再構成する。またミドルウェア最適化部４０８は、群ケーパビリティ管理部４０６によって生成された群ケーパビリティ情報３２１を基に、各々の機器に格納されているミドルウェアを、ミドルウェア再構成部４０７を通じて最適化する。
【００４４】
ケーパビリティ情報変更予測部４１０は、群ケーパビリティ管理部４０６によって生成された群ケーパビリティ情報の時間経過による変化を解析して、今後のケーパビリティ情報の変更を予測する。また群ケーパビリティ管理部４０６が機器ケーパビリティ情報３２０から群ケーパビリティ情報３２１を算出するとき、機器連携制御部４０９は、ケーパビリティ情報変更予測部４１０による変更予測を使用する。これにより機器連携制御部４０９は、単に機器ケーパビリティ３２０における時間による推移だけでなく、集合である群ケーパビリティとしての時間による推移と、その変更内容とから、過去の状況を用いて今後の群ケーパビリティ全体における情報を予測する。また別の機器上で稼動する群ケーパビリティ管理部４０６において予測した情報を相互に交換して、機器群全体としての連携動作を実施する。
【００４５】
図７は、本実施の形態に係るソフトウエアケーパビリティ管理部４０３で処理されるケーパビリティ情報４０４の一例を示す図である。ここでは図示のように、ケーパビリティ情報４０４を構成する各要素は階層化された多段構造になっており、階層を辿りながら必要な情報だけを取得可能な構造になっている。
【００４６】
図７において、プロファイルは固定である静的情報（Static Information）と、時間の経過により変化する可能性のあるサービス（Service）及びステータス情報（Status）とに分類されている。ここで静的情報（Static Information）には、変更されないＩＰアドレス（IPAddress）、型名（DeviceType）が含まれている。サービス（Service）には、サービスＡ，Ｂが含まれ、サービスＡ（ServiceA）には、名称、バージョン（Version）が含まれている。更にステータス（Status）には、電力（Power）とステータス(Status)が含まれている。ここでバージョン及びステータスは、時間情報と共に管理されている。
【００４７】
図８は、図７の構造をＸＭＬ表記で記述した一例を示す図である。図７と図８のように、例えば、ＡＰＩバージョン、電力（Power）、ステータス（Status）といったステータス情報は時系列で変化するため、時間軸を導入し、時系列での変化に対応できるようになっている。
【００４８】
図８において、８００は図７のプロファイル全体を記述している。８０１は、ＡＰＩバージョンの履歴を示している。また８０２は電源のオン／オフの履歴を示し、８０３はステータスの履歴を示している。例えば、電力履歴８０２によると、２００４年１月１日の０時０分０秒に電源がオンされ、２００４年２月１日の１２時０分０秒に電源がオフされ、その後、２００４年３月１日の１５時３０分０秒に電源がオンされたことが分かる。ステータスの履歴８０３においても同様に、アイドル状態（idle）、ダウン状態（down）、起動状態（up）といった状態の遷移が、日時情報と共に記録されている。
【００４９】
また図９は、図７と図８のケーパビリティ構造から、最新のケーパビリティ情報のスナップショットを作成した場合の例を示す図である。
【００５０】
９００は、最新のケーパビリティ情報を記述したＸＭＬ記述を示し、９０１は、最新のＡＰＩバージョン情報（バージョン「２．０」）、９０２は、最新の電源情報（電源オン(ON)）、そして９０３は最新のステータス情報（「up」起動中）を示している。
【００５１】
また図１０は、図７と図８のケーパビリティ構造から、２００４年２月１日１３時の時点でのケーパビリティ情報のスナップショットを作成した場合の例を示す図である。
【００５２】
この場合には、バージョン履歴８０１、電源オン／オフ履歴８０２、ステータス履歴８０３における、２００４年２月１日１３時の直前の２００４年２月１日１２時の情報に基づいて、ＡＰＩバージョン情報１００１がバージョン「１．１」）、電源情報１００２は電源オフ(OFF)）、そしてステータス情報１００３は、ダウン（down）で記述されている。
【００５３】
このようにして時間軸を遡って過去のケーパビリティ情報のスナップショットを作成することも可能である。なお、図７乃至図１０に示すケーパビリティ構造における各項目はあくまでも一例を示したもので、本発明はこれら項目に限定されるものではない。
【００５４】
図１１は、本発明の一実施の形態に係るミドルウエア制御構成処理の概要を説明するフローチャートである。以降、前述の構成と合わせて処理の各ステップを説明する。
【００５５】
まずステップＳ１０１で、機器に搭載されている各々のソフトウエアに対するソフトウエアケーパビリティ情報を生成する。この処理は図６におけるソフトウエアケーパビリティ管理部４０３から、アプリケーション管理部４０１及びミドルウエア管理部４０２を通じて、アプリケーションソフトウエア、ミドルウエア、ファームウエアといった機器に搭載されている各種のソフトウエアの情報をケーパビリティ情報４０４にまとめることで行われる。この時まとめられるケーパビリティ情報４０４は図７に示された構造を有する。よって、現時点での情報のみならず過去の情報の遷移も含めて保持される。
【００５６】
次にステップＳ１０２で、ステップＳ１０１で収集したソフトウエアケーパビリティ情報から、この機器の単位でのケーパビリティ情報である機器ケーパビリティ情報３２０を生成し、これをネットワーク１０５を通じて他の機器に通知する。これは図６における機器ケーパビリティ管理部４０５において実施される。この時、生成して他の機器に通知される機器ケーパビリティ情報３２０は、ステップＳ１０１で生成されるソフトウエアケーパビリティ情報の集合である。よってステップＳ１０１と同様に、図７に示された構造を有するケーパビリティ情報４０４が使用され、現時点での情報のみならず過去の情報の遷移も含めて生成・保持される。
【００５７】
次にステップＳ１０３で、ネットワーク１０５上にある他の機器の機器ケーパビリティ情報を取得し、これを処理することにより、このネットワーク１０５を構成する複数の機器からなる機器群に対する群ケーパビリティ情報３２１を生成する。これは図６における群ケーパビリティ管理部４０６が実施する。この時生成される群ケーパビリティ情報３２１は、ステップＳ１０２で各機器で生成される、機器ケーパビリティ情報の集合である。このため、ステップＳ１０１と同様に、図７に示す構造を有するケーパビリティ情報４０４が使用され、現時点での情報のみならず過去の情報の遷移も含めて生成され保持される。
【００５８】
次にステップＳ１０４で、ステップＳ１０３で生成した群ケーパビリティ情報３２１から、将来の群ケーパビリティ情報の変化を予測した群ケーパビリティ予測情報を生成する。この処理は群ケーパビリティ管理部４０６が生成した群ケーパビリティ情報３２１を基に、機器連携制御部４０９がケーパビリティ情報予測部４１０に対して未来のケーパビリティ情報の取得を要求することで行われる。
【００５９】
例えば、ＵＰｎＰのみをサポートする機器１と、ＵＰｎＰとＳＬＰ（Service Location Protocol, RFC2165）をサポートする機器２と機器３がネットワーク１０５に存在していて、時刻Ｔ１で、これら機器が全てが稼動していたとする。またＳＬＰの方がＵＰｎＰと比較して軽量で機器の計算機資源を圧迫しないという特徴も有していたとする。この時、各機器に存在する機器連携制御部４０９は、これら３台で構成される群ケーパビリティ情報３２１から全ての機器でＵＰｎＰを用いるのが適切であると識別する。これにより各機器はそれぞれ、ＵＰｎＰ以外のプロトコルをサポートするミドルウエアを使用しない状態で最適化（図５参照）される。次に時刻Ｔ２で、ＵＰｎＰとＳＬＰの双方をサポートする機器４がネットワーク１０５に追加され、かつ機器１が休止状態に入ったとする。この時点での群ケーパビリティ情報３２１から、最適なプロトコルはＵＰｎＰとＳＬＰの双方となり、より軽量なＳＬＰを選択することが考えられる。
【００６０】
しかし本実施の形態では、ケーパビリティ情報変更予測部４１０は、過去（時刻Ｔ１の時点）の群ケーパビリティ情報３２１から、機器１が休止状態から復活してきた場合にはＵＰｎＰを用いなければならないと判断する。即ち、機器連携制御部４０９がケーパビリティ情報予測部４１０に対して未来（Ｔ３）のケーパビリティ情報の取得を要求すると、現時点（時刻Ｔ２）では休止中の機器１が稼動に切り替わった場合を予測した群ケーパビリティ情報が生成されることになる。従って、これに引き続く群最適化状態を算出するステップＳ１０５を始めとする処理において、この例の場合では依然としてＵＰｎＰが最適なものとして選択されることとなる。
【００６１】
次にステップＳ１０５で、ステップＳ１０４で生成した群ケーパビリティの予測情報から、この機器群全体としてはどのような最適化処理が必要かを示す群最適化状態を算出する。この処理は機器連携制御部４０９がケーパビリティ情報予測部４１０が生成した群ケーパビリティ予測情報を用いることで実施する。こうして予測した群ケーパビリティ情報から、その予測した群ケーパビリティ情報を構成する各機器及び各機器に内蔵されているミドルウエアの現在の状態と今後の状態とを予測する。そして、特定の機器ケーパビリティ３２０を有する機器間のネットワークが構築された場合の最適な状態を示した情報と照らし合わせ、その差分を埋めていく。こうして機器群全体として最適な状態を算出する。この時、最適化のための参照対象となる特定の機器ケーパビリティ情報３２０を有する機器間のネットワークが構築された場合の最適な状態を示した情報は、予め各機器に組み合わせ情報と共に必要な初期値が与えられている場合もあれば、機器群の処理が進むにつれて学習的に獲得した情報であっても良い。
【００６２】
次にステップＳ１０６で、最適化が終了したかを判定する。ここでは最適化処理の収束条件を判定し、もし収束するべきなら最適化処理を終了する。この収束条件は、例えば処理経過時間、処理の回数等によって与えられるが、特にこの条件に制約を設けない。この処理は機器連携制御部４０９において実施される。
【００６３】
こうしてステップＳ１０６で、最適化処理を継続すると判定した場合はステップＳ１０７に進み、ステップＳ１０５で算出した群最適化状態と、ステップＳ１０２で算出した自機器における機器ケーパビリティ情報３２０とを比較演算し、ミドルウエアの再構成情報を生成する。これは図６におけるミドルウエア制御部４０８において行われる。
【００６４】
次にステップＳ１０８で、ミドルウエア制御部４０８で生成された再構成情報を用いて、ミドルウエアの停止や開始を含む動的な再構成を実施する。これは図６におけるミドルウエア再構成部４０７で実施される。そして再びステップＳ１０１に戻って、この最適化処理を繰り返すことになる。
【００６５】
図１２は、本発明の実施の形態に係るケーパビリティ情報変更予測部４１０において、機器連携制御部４０９が機器連携の判断に必要な群ケーパビリティ情報３２１を要求するときに実施する処理（Ｓ１０４）の概要を説明するフローチャートである。
【００６６】
まずステップＳ２００で、機器連携制御部４０９がケーパビリティ情報変更予測部４１０に対して、ケーパビリティ情報の取得要求を送信する。次にステップＳ２０１で、このケーパビリティ情報の取得要求を受信したケーパビリティ情報変更予測部４１０は、その要求されたケーパビリティ情報が属する時間が、現在なのか過去なのか未来なのかを判定する。次にステップＳ２０１で、過去と判定した場合はステップＳ２０２に進み、群ケーパビリティ管理部４０６が保持しているケーパビリティ情報から、その指定された日時のスナップショットを作成してステップＳ２０７に進む。
【００６７】
一方、ステップＳ２０１で、現在と判定した場合はステップＳ２０３に進み、保持しているケーパビリティ情報から最新のスナップショットを作成してステップＳ２０７に進む。
【００６８】
またステップＳ２０１で、未来と判定した場合はステップＳ２０４に進み、群ケーパビリティ管理部４０６で保持している履歴情報を分析する。次にステップＳ２０５で、その取り得る値を予測する。これは、保持されている履歴情報から、その当該情報の変更頻度や他の情報との関連性を算出し、当該情報の次の状態として最も蓋然性の高いと判断される状態を決定するといった方法で実施される。そしてステップＳ２０６で、返却すべきケーパビリティ情報のスナップショットを作成してステップＳ２０７に進む。
【００６９】
こうしてステップＳ２０２、Ｓ２０３，Ｓ２０６のいずれかを実行した後ステップＳ２０７に進み、機器連携制御部４０９に対して、その要求に基づいて作成したケーパビリティ情報を返却する。
なお、本発明は複数の機器（例えばホストコンピュータ、インタフェース機器等）から構成される装置に適用しても、一つの機器からなる装置に適用してもよい。
【００７０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した媒体を、装置あるいは装置に供給し、その装置あるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読みだし実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することとなる。
【００７１】
プログラムコードを供給するための記憶媒体としては、例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭM等を用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって実施形態の機能が実現される場合も含まれる。
【００７２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、そのプログラムコードの支持に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００７３】
本発明を上記記憶媒体に適用する場合には、その記憶媒体には先に説明したフローチャートに対応する処理を実行するプログラムコードを格納することになる。
【００７４】
以上説明したように本実施の形態によれば、単一の機器内部での最適化に留まらず、ネットワークに含まれる各機器に搭載されたミドルウエアの機器ネットワークレベルでの最適化を実現できる。
【００７５】
即ち、複数の通信ミドルウエアが搭載されている機器がネットワークに接続されて機器群を構成するとき、その機器群の各機器で、動的にそのネットワーク全体における特性を生かした最適なミドルウエアの組み合わせを構築する。この時、各機器におけるアプリケーションは、ミドルウエアの再構成を意識する必要がなく、また提供される機能も低下しない。これにより高機能なミドルウエアを複数搭載しながら、実行時に不要な機能を使用しないように設定して、各機器の計算機資源を有効活用できる。
【００７６】
またこの最適化処理において、ステータス等の時系列で変化する情報を蓄積して表現できるデータ構造を用いる。これにより、その時間経過による変化を解析して今後の情報の変更を予測する情報変更予測を可能とする。これにより機器ネットワークを構成する機器群の現在の情報だけではなく、過去の状況や推移情報からも最適化を行うことができるという効果がある。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態に係る処理を実行する装置の一例であるカラープリンタの構成を示すブロック図である。
【図２】本発明の実施の形態に係るカラープリンタに組み込まれているソフトウェアの構成を説明する図である。
【図３】本実施の形態に係るカラープリンタに電源が投入され、カラープリンタが稼動を開始したときに起こる処理を概念的に示した図である。
【図４】本実施の形態に係るカラープリンタにおいて群ケーパビリティと機器ケーパビリティとを用いた最適化処理によって、カラープリンタが内蔵している幾つかのミドルウェアが使用を停止した状態を示す図である。
【図５】本実施の形態に係るカラープリンタにおいて、変更された機器ケーパビリティ情報から再び群ケーパビリティ情報を生成することにより再帰的な最適化を実施する場合を示す図である。
【図６】本発明の実施の形態に係るカラープリンタのソフトウェア構造の機能ブロックを説明する図である。
【図７】本実施の形態に係るソフトウエアケーパビリティ管理部で処理されるケーパビリティ情報の一例を示す図である。
【図８】図７の構造をＸＭＬ表記で記述した一例を示す図である。
【図９】図７と図８のケーパビリティ構造から、最新のケーパビリティ情報のスナップショットを作成した場合の例を示す図である。
【図１０】図７と図８のケーパビリティ構造から、２００４年２月１日１３時の時点でのケーパビリティ情報のスナップショットを作成した場合の例を示す図である。
【図１１】本発明の一実施の形態に係るミドルウエア制御構成処理の概要を説明するフローチャートである。
【図１２】本発明の実施の形態に係るケーパビリティ情報変更予測部において、機器連携制御部が機器連携の判断に必要な群ケーパビリティ情報を要求するときに実施する処理の概要を説明するフローチャートである。
【図１】
2007047941.tif 000003
【図２】
2007047941.tif 000004
【図３】
2007047941.tif 000005
【図４】
2007047941.tif 000006
【図５】
2007047941.tif 000007
【図６】
2007047941.tif 000008
【図７】
2007047941.tif 000009
【図８】
2007047941.tif 000010
【図９】
2007047941.tif 000011
【図１０】
2007047941.tif 000012
【図１１】
2007047941.tif 000013
【図１２】
2007047941.tif 000014