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