(57)【要約】【課題】通信機器を駆動するオンデマンドドライバを作成する装置側からの取得要求に対して通信機器が応答する機器情報を、機器外部から任意にあるいは機器内部で自動的に更新可能とする。【解決手段】通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器であって、該通信機器の機器情報を記憶する記憶手段と、前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答手段と、前記記憶手段に記憶された機器情報を当該通信機器の外部から更新するための更新手段とを備える。【選択図】        図４
2010198367.tif 000002
【特許請求の範囲】
【請求項１】
通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器であって、
該通信機器の機器情報を記憶する記憶手段と、
前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答手段と、
前記記憶手段に記憶された機器情報を当該通信機器の外部から更新するための更新手段と、
を備えることを特徴とする通信機器。
【請求項２】
前記機器情報の一部または全部は、当該通信機器から着脱可能な記憶手段に格納され、該着脱可能な記憶手段を当該通信機器に取り付けることにより前記機器情報を更新可能としたことを特徴とする通信機器。
【請求項３】
前記機器情報の一部または全部は、当該通信機器に固定された記憶手段に格納されたことを特徴とする請求項１に記載の通信機器。
【請求項４】
前記更新手段は、ネットワーク接続可能であり、ネットワークを介して前記機器情報を機器外部から更新することを特徴とする請求項１乃至３のいずれか１項に記載の通信機器。
【請求項５】
前記応答手段は、前記オンデマンドドライバ作成プログラムからの取得要求に対して当該通信機器が応答する機器情報を、当該通信機器の外部の装置から取得することを特徴とする請求項１に記載の通信機器。
【請求項６】
前記機器情報は、書き換え可能な部分と固定な部分とから構成されることを特徴とする請求項１乃至５のいずれか１項に記載の通信機器。
【請求項７】
前記機器情報は、当該通信機器に接続可能な最大オプション構成を表わす情報を含むことを特徴とする請求項１乃至６のいずれか１項に記載の通信機器。
【請求項８】
当該通信機器に接続されているオプション構成を検出する検出手段をさらに備え、前記機器情報は、前記検出手段により検出された当該通信機器に接続されているオプション構成を基に動的に作成されることを特徴とする請求項１乃至６のいずれか１項に記載の通信機器。
【請求項９】
前記機器情報は、前記通信機器用オンデマンドドライバのＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）にて選択する、前記機器情報に基づく項目において、選択不可能である機器情報の組み合わせを示す情報を含むことを特徴とする請求項１乃至８のいずれか１項に記載の通信機器。
【請求項１０】
前記通信機器は、通信機能を有する画像形成装置であることを特徴とする請求項１乃至９のいずれか１項に記載の通信機器。
【請求項１１】
通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器上で実行される方法であって、
前記通信機器の機器情報を記憶手段に記憶する記憶ステップと、
前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答ステップと、
前記記憶手段に記憶された機器情報を、前記通信機器の外部から更新するための更新手段を介して更新する更新ステップと、
を含むことを特徴とする通信機器の制御方法。
【請求項１２】
前記機器情報は、書き換え可能な部分と固定な部分とから構成されることを特徴とする請求項１１に記載の通信機器の制御方法。
【請求項１３】
前記通信機器に接続されているオプション構成を検出する検出ステップと、
前記検出手段により検出された前記通信機器に接続されているオプション構成を基に、前記機器情報を動的に作成するステップとをさらに含むことを特徴とする請求項１１または１２に記載の通信機器の制御方法。
【請求項１４】
通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器上で実行されるプログラムであって、
前記通信機器の機器情報を記憶手段に記憶する記憶ステップと、
前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答ステップと、
前記記憶手段に記憶された機器情報を、前記通信機器の外部から更新するための更新手段を介して更新する更新ステップと、
を含むことを特徴とするプログラム。
【請求項１５】
通信機器と該通信機器に接続する情報処理装置とからなるシステムにおいて、
前記情報処理装置は、
前記通信機器の機器情報を取得し、取得した機器情報に基づき前記通信機器を駆動するオンデマンドドライバを作成するオンデマンドドライバ作成プログラムと、
前記オンデマンドドライバと
を備え、
前記通信機器は、
前記通信機器の機器情報を記憶する記憶手段と、
前記オンデマンドドライバ作成プログラムによる前記通信機器の機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答手段と、
前記記憶手段に記憶された機器情報を前記通信機器の外部から更新するための入出力手段と、
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信機能を有するコンピュータ周辺装置等の通信機器、該通信機器の制御方法およびそのプログラムならびにシステムに関するものである。
【背景技術】
【０００２】
コンピュータ周辺装置の一例であるプリンタを駆動するためのプリンタドライバは通常プリンタの機種毎、ＯＳのバーション毎に用意されるものであり、多数の機種用・ＯＳ用のドライバ開発には多大な労力が必要とされる。また、ＯＳにバンドルされるプリンタドライバの数も増大しているために、バンドルに必要な容量の増加のほか、プリンタドライバ作成者側がＯＳ作成者側に依頼する管理の手間等も増加している。使用するユーザーにとっても、使用するプリンタが異なるたびにそのプリンタ用ドライバのインストールやアンインストールの作業が必要となり、プリンタを利用する際の利便性を悪くしている。
【０００３】
例えば、特許文献１の技術では、ＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）のブラウザ機能によるＣＧＩプログラムが、プリンタドライバのバージョンを判断し、デバイスドライバの更新が必要な場合に、デバイスドライバを更新するためのドライバ更新情報を付加した応答情報をＰＣに送っている。そして、クライアントＰＣ上でリモートＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に、最新のプリンタドライバを取得する必要があること、並びに、その取得先情報を表示することにより、最新のプリンタドライバの取得先情報を、クライアントＰＣのユーザーに通知することができるようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、プリンタドライバの更新に関して使用者の利便性をいくらか改善するものであるが、従来のようにユーザーが、必要なドライバを取得し、それをインストールするという作業が必要であるという問題が残っている。また、従来のように、プリンタドライバ等の、コンピュータ周辺装置を駆動させるためのドライバは、機種毎・ＯＳ毎に多数用意されることになる。
【０００５】
上記に鑑み、本出願人は、ＯＳへのドライバのバンドル数を減らし、従来のユーザーによる新たなドライバの取得を伴わずにドライバの更新を可能とすることを目的として、プリンタ等のコンピュータ周辺装置の機器情報（装置がもつ機能に関する情報）を、コンピュータ周辺装置からこのコンピュータ周辺装置を駆動するドライバを有する外部装置（例えば、ＰＣ）が取得し、この機器情報を基に外部装置上でドライバを自動的に作成することにより、ドライバを更新する技術を発明した（このように作成されるドライバを、本明細書では、オンデマンドドライバと称す。その概要は後述する）。従来は、このような機器情報（例えば、ＧＰＤ（Ｇｅｎｅｒｉｃ  Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ）ファイル）をドライバ自身が持っていたため、使用するコンピュータ周辺装置が変わると、それに合わせてその装置用のドライバを取得しインストールしなければならなかった。
【０００６】
本出願人による上記発明においては、オプションとしてコンピュータ周辺装置に付加された新機能による構成の違いや、それぞれの使用環境での設定の違いが生じた場合などに、機器情報の書き換え（更新）が必要になる場合がある。また、現時点で存在していない機能についての情報などは、予め機器情報としてもつことができないので、将来的に、機器情報の更新が必要になる場合がある。
【０００７】
本発明は、上記のように従来の技術に存在した課題を解決する本出願人による発明において生じるさらなる必要性に鑑みてなされたものであって、コンピュータ周辺装置などの通信機能を有する通信機器を駆動するオンデマンドドライバを作成する装置側からの取得要求に対して通信機器が応答する機器情報を、機器外部から任意にあるいは機器内部で自動的に更新可能とすることを目的としている。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかる通信機器は、通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器であって、該通信機器の機器情報を記憶する記憶手段と、前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答手段と、前記記憶手段に記憶された機器情報を当該通信機器の外部から更新するための更新手段と、を備えることを特徴とする。
【０００９】
また、本発明の通信機器の制御方法は、通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器上で実行される方法であって、前記通信機器の機器情報を記憶手段に記憶する記憶ステップと、前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答ステップと、前記記憶手段に記憶された機器情報を、前記通信機器の外部から更新するための更新手段を介して更新する更新ステップと、を含むことを特徴とする。
【００１０】
また、本発明のプログラムは、通信機器の機器情報に基づいて該通信機器用オンデマンドドライバを作成するオンデマンドドライバ作成プログラムを有する装置にインストールされたオンデマンドドライバにより、駆動される通信機器上で実行されるプログラムであって、前記通信機器の機器情報を記憶手段に記憶する記憶ステップと、前記オンデマンドドライバ作成プログラムによる前記機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答ステップと、前記記憶手段に記憶された機器情報を、前記通信機器の外部から更新するための更新手段を介して更新する更新ステップと、を含むことを特徴とする。
【００１１】
また、本発明のシステムは、通信機器と該通信機器に接続する情報処理装置とからなるシステムにおいて、前記情報処理装置は、前記通信機器の機器情報を取得し、取得した機器情報に基づき前記通信機器を駆動するオンデマンドドライバを作成するオンデマンドドライバ作成プログラムと、前記オンデマンドドライバとを備え、前記通信機器は、前記通信機器の機器情報を記憶する記憶手段と、前記オンデマンドドライバ作成プログラムによる前記通信機器の機器情報の取得要求に応答して、前記記憶手段に記憶された機器情報を前記装置に送信する応答手段と、前記記憶手段に記憶された機器情報を前記通信機器の外部から更新するための更新手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、オンデマンドドライバにより駆動される通信機器に、このオンデマンドドライバの作成の際用いられる機器情報を、機種毎におよび／または使用環境毎に容易に提供でき、この情報を更新することができる。また、使用環境に応じて機器情報を書き換えることもできることから、機種単位ではなく機種を設置した環境単位でドライバの機能を制御可能になる。また、ユーザーにとって、更新されたドライバの取得などをする必要もなくなり、通信機器を利用する際の利便性が向上する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施の形態にかかる画像形成装置と、ネットワークを介してこの画像形成装置に接続される複数の情報処理装置とにより構成されるシステムの一例を示す図である。
【図２】図２は、同実施形態の画像形成装置のハードウェア構成の一例を示すブロック図である。
【図３】図３は、同実施形態の画像形成装置のソフトウェア構成例を示すブロック図である。
【図４】図４は、同実施形態の画像形成装置における特徴的な処理を実現する、ネットワーク制御部、プリンタアプリなどの関連コンポーネントの構成を示す図である。
【図５】図５は、同実施形態におけるオンデマンドドライバ作成プログラムがインストールされたＰＣから画像形成装置へ、機器情報の取得要求がなされた場合の動作シーケンスの第１の例を示す図である。
【図６】図６は、同実施形態におけるオンデマンドドライバ作成プログラムがインストールされたＰＣから画像形成装置へ、機器情報の取得要求がなされた場合の動作シーケンスの第２の例を示す図である。
【図７】図７は、同実施形態におけるオンデマンドドライバ作成プログラムがインストールされたＰＣから画像形成装置へ、機器情報の取得要求がなされた場合の動作シーケンスの第３の例を示す図である。
【図８】図８は、同実施形態の画像形成装置のネットワーク制御部での機器情報取得要求に対する動作フローを示すフローチャートである。
【図９】図９は、同実施形態において、機器情報を記録する外部記録媒体の交換の際の、外部の情報処理装置および画像形成装置における処理の流れの一例を示す図である。
【図１０】図１０は、同実施形態の画像形成装置の外部のＰＣから機器情報を書き込む際の動作シーケンス図である。
【図１１】図１１は、同実施形態の画像形成装置の外部のＰＣから機器情報を書き込む際の動作フローを示すフローチャートである。
【図１２】図１２は、機器情報（固定データ）の一例を示す図である。
【図１３】図１３は、機器情報（可変データかつ最大オプション構成）の一例を示す図である。
【図１４】図１４は、機器情報（選択不可能な組み合わせデータ）の一例を示す図である。
【図１５】図１５は、ＰＣ上のオンデマンドドライバ作成プログラムの構成例を示す図である。
【図１６】図１６は、ＰＣ上のオンデマンドドライバ作成プログラムによる、オンデマンドドライバのＰＣへのインストールの際の処理フローの一例であるフローチャートである。
【図１７】図１７は、オンデマンドドライバのＵＩである印刷設定画面例（再構築前）を示す図である。
【図１８】図１８は、オンデマンドドライバのＵＩである印刷設定画面例（再構築後）を示す図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかる通信機器の一実施の形態である通信機能を有する画像形成装置の詳細を説明する。
【００１５】
はじめに、本発明の一実施の形態にかかる画像形成装置を含む、システム全体の構成例を、図１を用いて説明する。図１は、本発明の一実施の形態にかかる画像形成装置と、ネットワークを介してこの画像形成装置に接続される複数の情報処理装置とにより構成されるシステムの一例を示す図である。
【００１６】
図１に示すように、画像形成装置１と、情報処理装置としてのＰＣ−Ａ  ２，ＰＣ−Ｂ  ３およびデータサーバー４とが、ネットワーク５を介して接続されている。データサーバー４は、画像形成装置１の機器情報（後述）を格納している。なお、画像形成装置１としては、プリンタ、ＭＦＰ等が挙げられる。また、同図に示す構成例は一例であって、任意数のＰＣや画像形成装置が存在してよい。
【００１７】
続いて、図２を用いて、本実施形態の画像形成装置１のハードウェアの概略構成について説明する。図２は、本実施形態の画像形成装置１のハードウェア構成の一例を示すブロック図である。
【００１８】
画像形成装置１は、ＣＰＵ１１と、システムメモリ１２と、ノースブリッジ（ＮＢ）１３と、サウスブリッジ（ＳＢ）１４と、ＡＳＩＣ１５と、記憶部１６と、Ｉ／Ｆ部１７と、オペレーションパネル１８と、エンジン部１９と、その他図示しないオプション機器等を備える。
【００１９】
この画像形成装置１において、ＣＰＵ１１は、画像形成装置１全体の制御を行う。システムメモリ１２は、ＲＯＭおよびＲＡＭからなり、ＣＰＵ１１により実行されるプログラムを記憶しており、また描画処理を行う際などのワークエリアとしても使用される。
【００２０】
ＮＢ１３は、ＣＰＵ１１、システムメモリ１２、ＳＢ１４、ＡＳＩＣ１５、Ｉ／Ｆ部１７を接続するためのブリッジであり、メモリコントローラや、ＰＣＩマスタ等を有する。ＳＢ１４は、ＮＢ１３と周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されている。
【００２１】
ＡＳＩＣ１５は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。さらに、ＡＳＩＣ１５は、情報の表示やユーザの操作入力を受け付けるオペレーションパネル１８や、画像形成を行うエンジン部１９等と接続され、これらとの間でデータを送受信する。
【００２２】
記憶部１６は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１６ａ，Ｆｌａｓｈ  ＲＯＭ１６ｂ，ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）１６ｃ，ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）１６ｄなどを含み、画像データ等の格納用領域や画像処理を行う際の作業用領域、などとして使用される。
【００２３】
Ｉ／Ｆ部１７は、Ｅｔｈｅｒｎｅｔ（登録商標）  Ｉ／ＦなどのネットワークＩ／Ｆ１７ａや、ＵＳＢ  Ｉ／Ｆ１７ｂ，ＩＥＥＥ１３９４  Ｉ／Ｆ１７ｃ，無線Ｉ／Ｆ１７ｄなどの外部機器接続用のインターフェースや、外部記憶媒体を着脱可能とする、外部記憶媒体の規格に準じたインターフェースである外部デバイスＩ／Ｆ１７ｅや、公衆電話網に接続するためのＧＳＴＮ（Ｇｅｎｅｒａｌ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ）  Ｉ／Ｆ１７ｆなどを含む。これらのＩ／Ｆにより、インターネットやイントラネット、公衆電話網などのネットワークへの接続や外部の各種装置やデバイスへの接続がなされる。なお、上記外部記憶媒体としては、ＳＤカード、コンパクトフラッシュ（登録商標）メモリカードなど任意のメモリカードを使用することができる。
【００２４】
次に、図３を用いて、本実施形態の画像形成装置１のソフトウェアの概略構成について説明する。図３は、同画像形成装置１のソフトウェア構成例を示すブロック図である。
【００２５】
図３にソフトウェア構成例として示す部分は、大きく分けると、アプリケーション部３０１とプラットフォーム部３０２に分けられ、さらに、ＳＯＡＰ／ＸＭＬ処理部３０３が、アプリケーション部３０１からもプラットフォーム部３０２からも使用できるような形で存在している。なお、これらに含まれる下記のアプリケーションプログラム（以下、アプリケーションまたはアプリと略称する）、制御部及び処理部の各機能は、図２に示したＣＰＵ１１により実行される。
【００２６】
アプリケーション部３０１は、プリント、コピーなどの画像形成処理に関連するユーザーサービスに固有の処理を行う複数のアプリケーションからなっている。アプリケーションの例としては、図３に示すように、コピー用のアプリケーションであるコピーアプリ３１１、ファクシミリ用アプリケーションであるファクスアプリ３１２、スキャナ用アプリケーションであるスキャナアプリ３１３、ネットワークファイル用アプリケーションであるネットファイルアプリ３１４、プリンタ用アプリケーションであるプリンタアプリ３１５などが挙げられる。
【００２７】
プラットフォーム部３０２は、ＯＳ／Ｋｅｒｎｅｌ３２０とともに、アプリケーション部３０１からの処理要求を解釈してハードウェアなどの各種資源の獲得要求を発生する各種制御部から構成される。プラットフォーム部３０２は、後述の、システム制御部３２１、メモリ制御部３２２、エンジン制御部３２３、セキュリティ制御部３２４、配信制御部３２５、オペレーション制御部３２６、電源管理部３２７、ネットワーク制御部３２８、ファクス制御部３２９などから構成される。ＯＳ／Ｋｅｒｎｅｌ３２０には、ソケット以下のネットワーク処理を行う処理部も存在している。
【００２８】
プラットフォーム部３０２は、予め定義されている関数によりアプリケーション部３０１からの処理要求を受信可能とするアプリケーションプログラムインターフェース（以下、ＡＰＩと称す）を有するように構成されている。
【００２９】
なお、システム制御部３２１は、アプリケーションの管理や、周辺デバイスとの入出力制御およびオプション機器の検出等も含む、各種ハードウェア資源の管理などの処理を行う。メモリ制御部３２２は、メモリ資源の取得／解放や、画像データ等のデータの圧縮／伸張などの処理を行う。
【００３０】
エンジン制御部３２３は、画像形成のために、図２に示すエンジン部１９を制御する。セキュリティ制御部３２４は、アプリケーション部３０１や各制御部に対してセキュリティサービスを提供する。例えば、データの暗号化や復号化の処理を行う。配信制御部３２５は、他の機器との間で送受信されるデータの管理やその加工などを行う。オペレーション制御部３２６は、オペレータと画像形成装置１との間の情報伝達手段となる図２に示したオペレーションパネル１８の制御を行う。
【００３１】
電源管理部３２７は、ＣＰＵ１１および他のハードウェア資源の電気的状態を監視し、また他の制御部やアプリケーション部３０１での省エネ状態の管理や監視を行う。この電源管理部３２７は、ＯＳ／Ｋｅｒｎｅｌ３２０とも密接に関連して動作する。
【００３２】
ネットワーク制御部３２８は、Ｅｔｈｅｒｎｅｔ（登録商標）Ｉ／ＦなどのネットワークＩ／Ｆ１７ａと接続され、ネットワークＩ／Ｏ処理を必要とするアプリケーションに対して共通に利用できるサービスを提供する。そして、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分け、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００３３】
ファクス制御部３２９は、ＧＳＴＮ  Ｉ／Ｆ１７ｆを介して、公衆電話網を利用したファクシミリの送受信や、バックアップ用メモリで管理される各種ファクシミリデータの登録や引用、ファクシミリ受信印刷などを行うためのＡＰＩを提供する。
【００３４】
前述のようにＳＯＡＰ／ＸＭＬ処理部３０３が、アプリケーション部３０１からもプラットフォーム部３０２からも使用できるような形で存在している。このＳＯＡＰ／ＸＭＬ処理部３０３は、ＳＯＡＰ／ＸＭＬメッセージのエンコード／デコードを行うものである。このＳＯＡＰ／ＸＭＬ処理部３０３は、通常、ライブラリの形式で提供されるが、プロセスの形式としてもよい。
【００３５】
なお、画像形成装置１は、上述したアプリケーション部３０１のいくつかのアプリケーションや、プラットフォーム部３０２のいくつかの制御部や、また、Ｉ／Ｆ部１７のいくつかのインターフェース類を省いた構成とすることもできる。
【００３６】
次に、本実施の形態にかかる画像形成装置１における特徴的な処理を実現する、ネットワーク制御部３２８、プリンタアプリ３１５などの関連コンポーネントの構成について図４を用いて説明する。図４では、ネットワーク制御部３２８、プリンタアプリ３１５などの関連コンポーネントの構成例を、アプリ、サービスなどの他コンポーネントや、ＳＯＡＰ／ＸＭＬ処理部３０３、外部デバイスＩ／Ｆ１７ｅ、記憶部１６のＦｌａｓｈ  ＲＯＭ１６ｂ及びＨＤＤ１６ａとともに図示している。また、同図において、他図面にも記載される共通の構成要素には、同一の符号を付している。
【００３７】
なお、本実施形態では、Ｆｌａｓｈ  ＲＯＭ１６ｂおよびＨＤＤ１６ａを取り外し不可能な固定の構成要素としている。また、図４に示さないが、Ｆｌａｓｈ  ＲＯＭ１６ｂ及びＨＤＤ１６ａやＳＤカード等の外部記録媒体へのアクセスには、システム制御部３２１、メモリ制御部３２２、セキュリティ制御部３２４等も関与する。以下では、プリンタ機能を実現するプロトコルとして、ＷＳＤ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  ｏｎ  Ｄｅｖｉｃｅｓ）が準拠するＷＳ−Ｐｒｉｎｔプロトコルを例に説明する。
【００３８】
ネットワーク制御部３２８は、このネットワーク制御部３２８全体を統括する全体制御部４２１と、他のアプリケーションや他の制御部やネットワークＩ／Ｆ１７ａとのメッセージやデータのやり取りを行う通信部４２２と、ＨＴＴＰプロトコルを処理するＨＴＴＰ制御部４２３と、ＷＳ−Ｐｒｉｎｔプロトコルを処理するＷＳ−Ｐｒｉｎｔ処理部４２４と、機器情報を外部コンポーネントや外部装置から取得する情報取得部４２５と、ＨＴＴＰ以外の各種プロトコル（ＦＴＰ，Ｐｏｒｔ９１００，ＬＰＲ，ｅｔｃ）を処理する複数のプロトコル制御部４２６を含んで構成される。
【００３９】
プリンタアプリ３１５は、プリンタアプリ３１５全体を統括する全体制御部４１１と、他のアプリケーションや他の制御部とのメッセージやデータのやり取りを行う通信部４１２と、ＷＳ−Ｐｒｉｎｔプロトコルを処理するＷＳ−Ｐｒｉｎｔ処理部４１３と、機器情報を外部コンポーネントから取得する情報取得部４１４を含んで構成される。
【００４０】
なお、ＷＳ−Ｐｒｉｎｔ処理部４１３，４２４は、ネットワーク制御部３２８かプリンタアプリ３１５のいずれかに存在するものであり、図４では、波線で囲って示している。後述するシーケンス例などでは、前者のネットワーク制御部３２８にＷＳ−Ｐｒｉｎｔ処理部４２４が存在するものとして説明を行っている。また、図４では、外部デイバスＩ／Ｆ  １７ｅにはＳＤカード４３０が接続されているが、ＳＤカードに限らず類似の外部記録媒体を用いることができる。
【００４１】
（ＰＣからの機器情報取得要求に対する動作シーケンス例１）
図５に、オンデマンドドライバ作成プログラム（後述）がインストールされたＰＣから画像形成装置１へ、機器情報の取得要求がなされた場合の動作シーケンスの第１の例を示す。この例は特に、ネットワーク制御部３２８が図３に示したソフトウェア群の中の他のコンポーネント（アプリ、サービスなど）や、インターフェースを介して外部記憶媒体や内部の記憶デバイス（Ｆｌａｓｈ  ＲＯＭ１６ｂ、ＨＤＤ１６ａなど）に対して情報の取得を行う場合の例である。以下、本例のシーケンスについて説明する。
【００４２】
画像形成装置１がＰＣから機器情報取得要求を受信すると（ｔ５０１）、画像形成装置１のネットワーク制御部３２８において、ＨＴＴＰ制御部４２３が、受信した機器情報取得要求をＷＳ−Ｐｒｉｎｔ処理部４２４へ渡す（ｔ５０２）。ＷＳ−Ｐｒｉｎｔ処理部４２４は、ＨＴＴＰ制御部４２３から渡された機器情報取得要求をさらにＳＯＡＰ／ＸＭＬ処理部３０３に渡し（ｔ５０３）その内容をデコードさせる。ＳＯＡＰ／ＸＭＬ処理部３０３は受け取った機器情報取得要求をデコードし、その結果をＷＳ−Ｐｒｉｎｔ処理部４２４に対して返信する（ｔ５０４）。
【００４３】
次に、ＷＳ−Ｐｒｉｎｔ処理部４２４は、受け取ったデコード結果を、情報取得部４２５に渡す（ｔ５０５）。次いで、情報取得部４２５は、受け取ったデコード結果に応じて、通信部４２２を介して他のコンポーネントから機器情報として必要な情報を取得し（ｔ５０６，ｔ５０７）、取得した機器情報をＷＳ−Ｐｒｉｎｔ処理部４２４に渡す（ｔ５０８）。
【００４４】
ＷＳ−Ｐｒｉｎｔ処理部４２４は、情報取得部４２５から渡された機器情報をＳＯＡＰ／ＸＭＬ処理部３０３に渡し（ｔ５０９）その内容をエンコードさせる。ＳＯＡＰ／ＸＭＬ処理部３０３は受け取った機器情報をエンコードし、その結果をＷＳ−Ｐｒｉｎｔ処理部４２４に対して返信する（ｔ５１０）。ＷＳ−Ｐｒｉｎｔ処理部４２４は、ＳＯＡＰ／ＸＭＬ処理部３０３から渡されたエンコード済みの機器情報（具体例は後述）をさらにＨＴＴＰ制御部４２３に渡し（ｔ５１１）、ＨＴＴＰ制御部４２３は、受け取った情報を機器情報取得要求に対する応答としてＰＣ宛返信する（ｔ５１２）。
【００４５】
（ＰＣからの機器情報取得要求に対する動作シーケンス例２）
図６に、オンデマンドドライバ作成プログラムが存在するＰＣから画像形成装置１へ機器情報の取得要求がなされた場合の動作シーケンスの第２の例を示す。この例は特に、プリンタアプリ３１５が、外部デバイスＩ／Ｆ１７ｅに接続されている外部記録媒体、ＨＤＤ１６ａ、またはＦｌａｓｈ  ＲＯＭ１６ｂに対して、それらに記憶されている機器情報の取得を行う場合の例である。
【００４６】
本シーケンス例２と前述したシーケンス例１との違いは、シーケンス例１では、ネットワーク制御部３２８の情報取得部４２５が、通信部４２２を介して画像形成装置１内の他のコンポーネントから機器情報を直接取得しているのに対し、本例では、ネットワーク制御部３２８の情報取得部４２５が、ネットワーク制御部３２８の通信部４２２およびプリンタアプリ３１５の通信部４１２を介して、プリンタアプリ３１５の情報取得部４１４に機器情報を取得させている点にある（ｔ６０１〜ｔ６０４）。これはネットワーク制御部３２８が本来プリンタドライバの構成からは依存を受けるべきではない制御部であることによる。そこでプリンタドライバと関連の強いプリンタアプリ３１５内でその制御を行うことで、各制御部の独立性を保つことができる。
【００４７】
本シーケンスにおいて、プリンタアプリ３１５の情報取得部４１４は、外部デバイスＩ／Ｆ１７ｅに接続されている外部記録媒体、あるいは記憶部１６のＨＤＤ１６ａまたはＦｌａｓｈ  ＲＯＭ１６ｂから機器情報を取得する。プリンタアプリ３１５の情報取得部４１４によって取得された機器情報は、プリンタアプリ３１５の通信部４１２およびネットワーク制御部３２８の通信部４２２を介して、ネットワーク制御部３２８の情報取得部４２５に渡される。その他の工程（ｔ５０１〜ｔ５０５、ｔ５０８〜ｔ５１２）は前述のシーケンス例１と同様であり（詳細は前述のとおり）、一連の工程を経て、ネットワーク制御部３２８の情報取得部４２５からＰＣ側に機器情報が返信される。
【００４８】
また、上記例は、ＷＳ−Ｐｒｉｎｔ処理部４２４がネットワーク制御部３２８側にある場合の例であるが、ＷＳ−Ｐｒｉｎｔ処理部４１３がプリンタアプリ３１５中に存在し、プリンタアプリ３１５からＳＯＡＰ／ＸＭＬ処理部３０３を呼び出す構成とすることもできる。その場合は、ネットワーク制御部３２８のＨＴＴＰ制御部４２３から、ネットワーク制御部３２８の通信部４２２とプリンタアプリ３１５の通信部４１２を介して、プリンタアプリ３１５のＷＳ−Ｐｒｉｎｔ処理部４１３にＰＣからの情報取得要求が渡され、さらにこの情報取得要求がＳＯＡＰ／ＸＭＬ処理部３０３に渡されてデコードされる。そして、デコード結果に応じて、プリンタアプリ３１５の情報取得部４１４が機器情報の取得を行うことになる。
【００４９】
（ＰＣからの機器情報取得要求に対する動作シーケンス例３）
図７に、オンデマンドドライバ作成プログラムがインストールされたＰＣから画像形成装置１へ機器情報の取得要求がなされた場合のシーケンスの第３の例を示す。この例は特に、ネットワーク制御部３２８が、機器情報を外部のサーバーなどに対して、そこに記憶されている機器情報の取得を行う場合の例である。
【００５０】
本シーケンス例３と前述したシーケンス例１との違いは、シーケンス例１では、ネットワーク制御部３２８の情報取得部４２５が、ネットワーク制御部３２８の通信部４２２を介して画像形成装置１内の他のコンポーネントから機器情報を直接取得しているのに対し、本例では、ネットワーク制御部３２８の情報取得部４２２が、プロトコル制御部４２６を介して、図１に示したデータサーバー４等の外部サーバーから機器情報を取得している点にある（ｔ７０１〜ｔ７０４）。これにより画像形成装置１のバージョンアップに対応した機器情報の提供が、従来から行われている更新されたプリンタドライバのリリース作業と同様の工程で行うことができる。例えばオンデマンドドライバと通常のドライバの両方を提供している場合などで管理が容易となる。
【００５１】
本シーケンスにおいて、ネットワーク制御部３２８の情報取得部４２５は、ＷＳ−Ｐｒｉｎｔ処理部４２４から渡された機器情報取得要求のデコード結果に応じて、外部サーバーから機器情報を取得するための情報取得要求をプロトコル制御部４２６に与える（ｔ７０１）。プロトコル制御部４２６は、情報取得部４２５から渡された情報取得要求に対し、ネットワークで使用される通信プロトコル（例えば、Ｅｔｈｅｒｎｅｔ（登録商標））に準じたプロトコル処理を施し、この要求をネットワークＩ／Ｆ１７ａを介して外部サーバーに送信する（ｔ７０２）。
【００５２】
この要求に対する応答として外部サーバーから機器情報が返信される（ｔ７０３）。返信された機器情報は、プロトコル制御部４２６にて、ネットワークで使用された通信プロトコルに準じたプロトコル処理が施されネットワーク制御部３２８の情報取得部４２５に渡される（ｔ７０４）。その他の工程（ｔ５０１〜ｔ５０５、ｔ５０８〜ｔ５１２）は前述のシーケンス例１と同様であり（詳細は前述のとおり）、一連の工程を経て、ネットワーク制御部３２８の情報取得部４２５からＰＣ側に機器情報が返信される。
【００５３】
上記では、ＰＣからの機器情報取得要求に応じて、ネットワーク制御部３２８が画像形成装置１内の他のコンポーネントから機器情報を直接取得する場合と、プリンタアプリ３１５が外部デバイスＩ／Ｆ１７ｅやＨＤＤ１６ａ等から機器情報を取得する場合と、ネットワーク制御部３２８が外部サーバーから機器情報を取得する場合のシーケンス例を示したが、これらを任意に組み合わせて、機器情報の取得を行うようにしてもよい。情報取得部４１４，４２５が取得する機器情報は、画像形成装置１に備わる記憶手段であるいずれかのメモリやＨＤＤ１６ａや外部サーバーの記憶手段に分散して、あるいはまとめて、所定のフォーマットで記憶される。なお、ＰＣへ返信される機器情報のフォーマットとしては、後に例示するように、ネットワーク通信に適したＸＭＬ形式等を用いる。
【００５４】
（ＰＣからの機器情報取得要求に対する処理フロー）
ここで、ネットワーク制御部３２８に注目して、上述したＰＣからの機器情報取得シーケンス例１〜３で示したネットワーク制御部３２８の動作を、図８のフローチャートを用いて説明する。図８は、ネットワーク制御部３２８での機器情報取得要求に対する動作フローを示すフローチャートである。
【００５５】
ネットワーク制御部３２８は、ＰＣから機器情報取得要求を受信すると（ステップＳ８０１）、この機器情報取得要求の受信に応答して、ネットワーク制御部３２８の情報取得部４２５により機器情報を取得する（ステップＳ８０２）。
【００５６】
ステップＳ８０２での機器情報の取得は、上述の機器情報取得シーケンス例１で説明したように、ネットワーク制御部３２８の情報取得部４２５自体が、図３に示したソフトウェア群の中の他のコンポーネントや、Ｆｌａｓｈ  ＲＯＭ１６ｂ、ＨＤＤ１６ａ、または、外部デバイスＩ／Ｆ１７ｅを介してＳＤカード４３０などの外部記憶媒体から取得したり、機器情報取得シーケンス例２のように、プリンタアプリ３１５の情報取得部４１４に取得させたものを得たり、機器情報取得シーケンス例３のように、外部サーバーから取得したりすることができる。
【００５７】
最後に、ネットワーク制御部３２８の情報取得部４２５が取得した機器情報を、ＰＣからの機器情報取得要求の応答としてＰＣへ返信する（ステップＳ８０３）。
【００５８】
（機器情報を記録する外部記録媒体の交換の際の処理の流れ；機器情報更新例１）
次に、図９に、機器情報を記録する外部記録媒体の交換の際の、外部の情報処理装置および画像形成装置１における処理の流れの一例を示し、以下にて、かかる処理の流れについて説明する。
【００５９】
図９に示すように、ＰＣなど外部の情報処理装置にて機器情報データを作成する（ステップＳ９０１）。そして、作成した機器情報データを、上記情報処理装置を用いてＳＤカードなどの外部記録媒体に書き込む（ステップＳ９０２）。
【００６０】
次いで、画像形成装置１に装着されている外部記録媒体を、新たに作成された機器情報データを記憶する外部記録媒体と交換する（ステップＳ９０３）。そして、画像形成装置１の再起動を行う（ステップＳ９０４）。再起動後、画像形成装置１における機器情報が更新される。
【００６１】
その後は、ＰＣからの機器情報の取得要求に対して、交換された外部記録媒体に記録されている新しく更新された機器情報で、機器情報取得シーケンス例１に示したように応答する（ステップＳ９０５）。このように、機器情報のデータ更新の手法として、機器情報を記録する外部記録媒体を利用し、外部の情報処理装置を用いて新たな機器情報を外部記録媒体に記録した後、新旧の外部記録媒体を交換するという手法を用いることができる。
【００６２】
（ＰＣからの機器情報書き込み要求に対する動作；機器情報更新例２）
次に、ＰＣからの機器情報書き込み要求に対するネットワーク制御部３２８の動作を、図１０及び図１１を用いて説明する。図１０は、画像形成装置１の外部のＰＣから機器情報を書き込む際の動作シーケンス図であり、図１１は、画像形成装置１の外部のＰＣから機器情報を書き込む際の動作フローを示すフローチャートである。
【００６３】
画像形成装置１が、外部のＰＣからの機器情報書き込み要求を受信すると（ｔ１００１，ステップＳ１１０１）、この要求を受けたネットワーク制御部３２８の、あるプロトコル制御部４２６（あるいはＨＴＴＰ制御部４２３でもよい）は、この要求に対し、ネットワークで使用される通信プロトコルに準じたプロトコル処理を施し、ネットワーク制御部３２８の通信部４２２を介して、外部デバイスＩ／Ｆ１７ｅに接続されている外部記録媒体、あるいは記憶部１６のＨＤＤ１６ａまたはＦｌａｓｈ  ＲＯＭ１６ｂに機器情報を書き込む（ｔ１００２〜ｔ１００３，ステップＳ１１０２）。その後、機器情報書き込み要求に対する所定の応答を外部装置に送信する（ｔ１００４，ステップＳ１１０３）。
【００６４】
このように、機器情報のデータ更新の手法として、ＰＣ等の外部の情報処理装置から、画像形成装置１に備わる、着脱可能な外部記録媒体または画像形成装置１に固定されているＨＤＤ１６ａまたはＦｌａｓｈ  ＲＯＭ１６ｂに機器情報を書き込むことで、機器情報を更新するという手法も用いることができる。
【００６５】
ここで、機器情報の諸例を示しその説明をする。図１２は、外部からの機器情報取得要求に対して画像形成装置１が応答する機器情報（固定データ）の一例である。なお、以下に示す諸例は、画像形成装置１内で取得された機器情報をネットワークを介して応答するためＸＭＬ形式としたものである。また、図中“＃”以降の記載は、説明のためのコメントである。
【００６６】
図１２において、“Ｈｅａｄｅｒ”部に続く“Ｂｏｄｙ”部分の＜ｒｐｄ：Ｅｘｉｓｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ＞タグと＜／ｒｐｄ：Ｅｘｉｓｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ＞タグの間に示される部分は、固定データであり外部から書き換えることができない。ここでは解像度（Ｒｅｓｏｌｕｔｉｏｎ）、トレイ（ＰａｐｅｒＦｅｅｄＵｎｉｔ）、フィニッシャー（ＦｉｎｉｓｈｅｒＵｎｉｔ）についての記載がある。解像度として３００ｄｐｉまたは６００ｄｐｉが選択可能であり、トレイ（ＰａｐｅｒＦｅｅｄＵｎｉｔ）の種類としてＡタイプが装着可能であること、フィニッシャー（ＦｉｎｉｓｈｅｒＵｎｉｔ）の種類としてＢタイプが装着可能であることを表わしている。これらは、当該画像形成装置１の能力・構成についての固定の情報であり、この固定データをもとに更新されたＰＣ上のオンデマンドドライバは、そのＵＩ上でこの固定データに関する選択を可能とする選択画面の表示を行う。
【００６７】
続いて、図１３に、外部からの機器情報取得要求に対して画像形成装置１が応答する機器情報（可変データかつ最大オプション構成）の一例を示す。図１３中の“Ｈｅａｄｅｒ”部に続く“Ｂｏｄｙ”部分の＜ｒｐｄ：ＩｎｓｔａｌｌａｂｌｅＯｐｔｉｏｎ＞タグと＜／ｒｐｄ：ＩｎｓｔａｌｌａｂｌｅＯｐｔｉｏｎ＞タグの間に示される部分は、外部から書き換え可能な可変データである。また、“ＡｌｌｏｗｅｄＶａｌｕｅ”により、画像形成装置１のオプション構成を表示している。ここで表示されているものが最大のオプション構成となる。“ＩｎｓｔａｌｌａｂｌｅＯｐｔｉｏｎＦｅａｔｕｒｅ”として示す図中最初の例は、トレイ（ＰａｐｅｒＦｅｅｄＵｎｉｔ）について記載しており、その種類としてＡからＣまでのタイプが装着可能であることを表わしている。その次の例は、フィニッシャー（ＦｉｎｉｓｈｅｒＵｎｉｔ）について記載しており、その種類としてＡからＣまでのタイプが装着可能であることを表わしている。
【００６８】
ＰＣ上のオンデマンドドライバ作成プログラムは、オンデマンドドライバ作成時に上記固定データと可変データ（最大オプション構成）を使ってドライバを構成する。つまり、オンデマンドドライバ作成プログラムは、画像形成装置１の能力を示す固定データおよび、最大オプション構成を示す可変データの情報を問い合わせ、これらを使用することによって、画像形成装置１の構成が変わったとしても、ドライバ本体（コア）を作り直すことなく、ＵＩ上の選択画面のみ新構成に対応させたオンデマンドドライバを作成し、ＰＣにインストールする（詳細は、後述）。インストール後、ＰＣは、この作成されたオンデマンドライバによる画像形成装置１の制御が可能となる。
【００６９】
図１４は、画像形成装置１が応答する機器情報（選択不可能な組み合わせデータ）の一例である。図１４中の“Ｈｅａｄｅｒ”部に続く“Ｂｏｄｙ”部分の＜ｒｐｄ：ＦｅａｔｕｒｅＣｏｎｓｔｒａｉｎｔ＞タグと＜／ｒｐｄ：ＦｅａｔｕｒｅＣｏｎｓｔｒａｉｎｔ＞タグの間で”ＣｏｎｓｔｒａｉｎｔＦｅａｔｕｒｅ”として示される部分は、選択不可能な（排他的な）機器情報の組み合わせを示すデータである。このデータは、外部から書き換え可能である場合もある。図に示した例は、“ＨｏｌｅＰｕｎｃｈＵｎｉｔ”で“２ａｎｄ３ｈｏｌｅｓ”が選択されている場合には、“ＨｏｌｅＰｕｎｃｈ”で“Ｌｅｆｔ４”，“Ｔｏｐ４”，“Ｒｉｇｈｔ４”は選択できないということを意味しており、この情報がＰＣ上のオンデマンドドライバのＵＩにおける選択画面に反映される。
【００７０】
図１２〜１４に示した例では、”Ｅｘｉｓｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ”、“ＩｎｓｔａｌｌａｂｌｅＯｐｔｉｏｎ”、および“ＦｅａｔｕｒｅＣｏｎｓｔｒａｉｎｔ”が、別々のデータ（ＸＭＬ形式）として表わしているが、これらを一つにまとめたデータ（ＸＭＬ形式）としてもよい。
【００７１】
また、画像形成装置１のオプション装着状況などにより変わる書き換え可能なデータは、前述のように外部から書き換えることもできるが、動的に変更することもできる。動的に変更する場合は、電源ＯＮ時に、画像形成装置１のオプション装着状況を検出し、検出結果に基づいて動的に上記書換え可能なデータを生成し、ＳＤＲＡＭ１６ｄやＨＤＤ１６ａなどに保存しておく。なお、固定データは、Ｆｌａｓｈ  ＲＯＭ１６ｂ、ＨＤＤ１６ａ、ＳＤカード４３０などに保存されている。
【００７２】
（オンデマンドドライバ作成プログラム）
ここで、画像形成装置１の機器情報を基に画像形成装置１用のオンデマンドドライバを作成する、ＰＣ上のオンデマンドドライバ作成プログラムについて、その概要を図１５を用いて説明する。図１５は、ＰＣ上のオンデマンドドライバ作成プログラムの構成例を示す図である。
【００７３】
オンデマンドドライバ作成プログラム１５０１は、画像形成装置１から機器情報を取得しオンデマンドドライバを作成するドライバ作成モジュール１５０２、オンデマンドドライバが使用するポート（ＬＰＤ，ＬＰＴ，ＣＯＭ，ＷＳＤポートなど）を作成するポート作成モジュール１５０３、ＷＳ−Ｐｒｉｎｔプロトコルを処理するＷＳ−Ｐｒｉｎｔ制御モジュール１５０４、外部ネットワークとの間で送受信するパケットを制御するネットワーク制御モジュール１５０５、そして更新されたＵＩを有するオンデマンドドライバをＰＣにインストールするインストール制御モジュール１５０６から構成される。
【００７４】
ドライバ作成モジュール１５０２は、オンデマンドドライバを作成する際、ＷＳ−Ｐｒｉｎｔ制御モジュール１５０４およびネットワーク制御モジュール１５０５を介して、ネットワーク上の画像形成装置１から機器情報を取得する（このとき、ＷＳＤポートを用いる）。また、ドライバ作成モジュール１５０２により作成されたオンデマンドドライバ、および、ポート作成モジュール１５０３により作成されたポートのデータは、それぞれＰＣ内のＨＤＤなどにあるドライバデータ格納部１５０７とポートデータ格納部１５０８に保存される。
【００７５】
上記ドライバ作成モジュール１５０２は、前述した機器情報を用いて、この機器情報に基づくＵＩを有するオンデマンドドライバを作成するプログラムである。一般に、画像形成装置用のドライバは、アプリケーションから渡された印刷対象となる情報を処理し、印刷命令へ変換する機能と、アプリケーションに対して画像形成装置に対してどのような印刷設定を行うかを利用者に設定させるための印刷設定画面を表示するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）機能を備えている。このプログラムは、取得した機器情報の内容を反映するようにそのＧＵＩ要素を変更（追加・削除を含む）し、ＵＩのみを更新された機器情報に対応させることによって、新たなオンデマンドドライバを作成する。つまり、オンデマンドドライバのＵＩのみ、更新された機器情報に基づき再構築している。従って、画像形成装置１のバージョンアップが行われて、機器情報が更新された場合でも、一旦オンデマンドドライバのアンインストールを行い、再度同じオンデマンドドライバ作成プログラムでインストールしなおせばよい。同様に１つのオンデマンドドライバ作成プログラムから複数機種のオンデマンドドライバのインストールを行うことができる。
【００７６】
上記のように作成されるオンデマンドドライバは、アプリケーションから発せられたリクエストに従って、取得した機器情報に基づく選択可能な項目をそのＵＩに表示し、このＵＩ上でユーザーにより選択・設定された印刷条件（用紙のサイズやオプションの設定など）からなるジョブチケットをＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）ファイルまたはＰＳ（ＰｏｓｔＳｃｒｉｐｔ）ファイルなどに含めて画像形成装置１に送ることで、画像形成装置１の印刷制御をする。従って、オンデマンドドライバ作成プログラムと１つのオンデマンドドライバがＰＣ側にあれば、ＰＣ側は、このオンデマンドドライバにより駆動されるいかなる機種の画像形成装置にも、オプション構成や設定が変わった画像形成装置にも対応することができ、ユーザーは、新たなドライバの取得などをする必要がない。また、ユーザーは、現時点での画像形成装置の機能を確認し、その機能を利用することができる。
【００７７】
また、上記のように、プリンタドライバが作成するＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）の画像部分に関しては直接影響を及ぼさない設定（両面印刷やステープル等）については、プリンタドライバが、ＵＩの表示形式や選択不可能な組み合わせを把握しておくだけで動作できる。しかし、プリンタドライバ側でも処理することができる画像部分に関する設定（縮小や集約）については、固定部分とする他に必要に応じてドライバ側で共通的なＵＩを持つこともできる。
【００７８】
（オンデマンドドライバのインストール）
図１６に、ＰＣ上のオンデマンドドライバ作成プログラムによる、オンデマンドドライバのＰＣへのインストールの際の処理フローの一例を示す。以下では、この図１６を用いて、オンデマンドドライバ作成プログラムによるドライバのインストール処理について説明する。
【００７９】
はじめに、ユーザ操作により、ドライバのインストール指示がなされると（ステップＳ１６０１）、インストール制御モジュール１５０６は、ドライバ作成モジュール１５０２に、ＷＳ−Ｐｒｉｎｔ制御モジュール１５０４およびネットワーク制御モジュール１５０５を介して画像形成装置１へ機器情報取得要求を送信し、この要求に対する応答として画像形成装置１から返される機器情報を取得する（ステップＳ１６０２）。
【００８０】
画像形成装置１の機器情報を取得したドライバ作成モジュール１５０２は、取得した機器情報に基づき上述のオンデマンドドライバを作成する（ステップＳ１６０３）。すなわち、ドライバ作成モジュール１５０２は、取得した機器情報を反映させるようにＵＩを再構築し、再構築されカスタマイズされたＵＩを有するオンデマンドドライバを作成する。図１７および図１８にそれぞれ、ＵＩの再構築前と再構築後の印刷設定画面例を示す。図１７に示す印刷設定画面例に対し、再構築後は（ここでは、一例として画像形成装置１において機能Ｂが追加されたものとする）、図１８に示すように、追加された機能Ｂについて選択・設定をすることができるようになる。
【００８１】
次いで、インストール制御モジュール１５０６は、ポート作成モジュール１５０３に、ステップＳ１６０３で作成されたオンデマンドドライバ用のポートを作成させる（ステップＳ１６０４）。
【００８２】
次に、インストール制御モジュール１５０６は、ドライバ作成モジュール１５０２に、ステップＳ１６０３で作成したオンデマンドドライバをドライバデータ格納部１５０７に保存させる（ステップＳ１６０５）。
【００８３】
さらに、インストール制御モジュール１５０６は、ポート作成モジュール１５０３に、ステップＳ１６０４で作成したポートのデータをポートデータ格納部１５０８に保存させる（ステップＳ１６０６）。
【００８４】
このようにして、インストール時にカスタマイズされたオンデマンドドライバと、ポートデータがＰＣにインストールされる。インストールされたオンデマンドドライバは、ＰＣの起動時にローダ（図示せず）によりＰＣのメインメモリであるシステムメモリ１２にロードされ、ポートデータはオンデマンドドライバと関連して使用される。
【００８５】
上述した図１６の例では、ユーザー操作によるインストール指示を起点として、一連のインストール処理を行っているが、例えば、先に取得した機器情報を保存しておき、ＰＣの起動時に再度、画像形成装置１から機器情報を取得して、取得した機器情報と保存している機器情報とからその更新が検出された場合に、ステップＳ１６０３以降の処理を行うようにしてもよい。そして、インストール後、ＰＣを再起動させ、更新されたオンデマンドドライバとポートデータを再ロードすることで、ドライバ更新のためのユーザー操作を一切必要とせずに、更新されたオンデマンドドライバを使用することができるようになる。
【００８６】
なお、上述した各シーケンス、データ、フローは一例にすぎない。例えば、前述のネットワーク制御部３２８内やプリンタアプリ３１５内の各コンポーネントは、異なるコンポーネントに属することがあったり、情報取得先は機器の内外を問わず多岐に渡ることもある。また、前述の諸シーケンスにおいて、ＳＳＬやＴＬＳにより情報の暗号化がなされたり、データ自体が別途暗号化されたりすることもある。
【００８７】
また、本発明の一実施の形態である画像形成装置１を、コピー機能、ファクシミリ機能、スキャナ機能、プリンタ機能等を有する画像形成装置（複合機など）に適用した例を説明したが、本発明は、通信機能を有する単機能の複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置やコンピュータ周辺装置にももちろん適用可能である。また、こうした画像形成装置やコンピュータ周辺装置に限らず、外部装置にインストールされたドライバにより駆動される通信機器であれば、同様に本発明を適用することができる。
【００８８】
以上、本実施形態の画像形成装置１について、その詳細を説明した。上述した画像形成装置１によれば、以下の効果を得ることができる。すなわち、オンデマンドドライバ作成プログラムからの機器情報取得要求に対して通信機器としての画像形成装置１が応答する機器情報を画像形成装置１の外部から書き込み可能または更新可能とすることにより、機器単位ではなく使用者（管理者）単位で、オンデマンドドライバが使用する機器情報を制御・管理することができる。すなわち、機種ごとに必要な機器情報を提供しやすくなるとともに、機種単位ではなく機種を設置した環境単位でドライバの機能を制御することが可能になり、例えば、オプションの機能の制限や、この機器（または、この機器を使用する部署）にはカラーを使用不可とするなどの管理を行うことができる。これにより、全般的な管理コストの低減が行える。
【００８９】
また、機器情報が画像形成装置１から物理的に取り外し可能な部分に格納され、その部分を画像形成装置１に取り付ける構成により、ＳＤカードなどの外部記録媒体による情報提供が可能となり、ネットワークアクセスに制約がある環境やネットワーク未対応の環境などにおいても、機器情報の制御・管理を容易に行うことができる。
【００９０】
また、機器情報が機器から物理的に取り外し不可能な部分（固定されたＦｌａｓｈ  ＲＯＭまたはＨＤＤなど）に格納されることにより、管理者以外の者などが勝手に機器情報を変更させないようにすることができる。
【００９１】
また、機器情報を、画像形成装置１が接続するネットワークを介して書き換えることにより、画像形成装置１があるその場にいなくても機器情報の更新が可能となる。
【００９２】
また、ＰＣ上のドライバ作成プログラムからの機器情報取得要求に対して画像形成装置１が応答する機器情報を画像形成装置１の外部の装置に持つことにより、データサーバーなどの外部装置での複数機器の機器情報の管理を容易に行うことができる。
【００９３】
また、機器情報を、書き換え可能な部分と固定な部分とで構成することにより、機器情報の更新量を減らすことができる。
【００９４】
また、機器情報が画像形成装置１に接続可能な最大オプション構成の情報をもつことにより、後に画像形成装置１に接続できるオプションが変更されても、オンデマンドドライバを変更する必要がなくなる。
【００９５】
機器情報を、画像形成装置１に接続されているオプション構成を検出して動的に作成する構成により、機器情報の更新を自動的に行うことができる。
【００９６】
機器情報に、選択不可能である機器情報の組み合わせを示す情報を含めることにより、この機器情報が反映したドライバでは、ユーザーに正しい機能選択を行わせることができる。
【００９７】
なお、本実施形態の画像形成装置１で実行される各プログラム（ソフトウェア）は、ＲＯＭ、ＨＤＤ等に予め組み込まれて提供される。また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＳＤカード等のメモリカードなどのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００９８】
さらに、本実施形態の画像形成装置１で実行される各プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供または配布するように構成しても良い。
【００９９】
本実施の形態の画像形成装置１で実行されるプログラムは、上述した各部（アプリケーション部３０１、プラットフォーム部３０２、ＳＯＡＰ／ＸＭＬ処理部３０３）を含むモジュール構成となっており、ＣＰＵ（プロセッサ）１１が上記ＲＯＭやＨＤＤ  １６ａ等から各プログラムを読み出して実行することにより上記各部がシステムメモリ上にロードされ、アプリケーション部３０１、プラットフォーム部３０２、ＳＯＡＰ／ＸＭＬ処理部３０３がシステムメモリ上に生成されるようになっている。
【符号の説明】
【０１００】
１  画像形成装置
２，３  ＰＣ−Ａ，ＰＣ−Ｂ
４  データサーバー
５  ネットワーク（Ｎｅｔｗｏｒｋ）
１１  ＣＰＵ
１２  システムメモリ
１３  ノースブリッジ（ＮＢ）
１４  サウスブリッジ（ＳＢ）
１５  ＡＳＩＣ
１６  記憶部（記憶手段）
１７  Ｉ／Ｆ部
１８  オペレーションパネル
１９  エンジン部
３０１  アプリケーション部
３０２  プラットフォーム部
３０３  ＳＯＡＰ／ＸＭＬ処理部
３１１  コピーアプリ
３１２  ファクスアプリ
３１３  スキャナアプリ
３１４  ネットファイルアプリ
３１５  プリンタアプリ
３２０  ＯＳ／Ｋｅｒｎｅｌ
３２１  システム制御部
３２２  メモリ制御部
３２３  エンジン制御部
３２４  セキュリティ制御部
３２５  配信制御部
３２６  オペレーション制御部
３２７  電源管理部
３２８  ネットワーク制御部（応答手段、機器情報更新例２−更新手段）
３２９  ファクス制御部
４１１，４２１  全体制御部
４１２，４２２  通信部
４１３，４２４  ＷＳ−Ｐｒｉｎｔ処理部
４１４，４２５  情報取得部
４２３  ＨＴＴＰ制御部
４２６  プロトコル制御部
４３０  ＳＤカード（記憶手段、機器情報更新例１−更新手段）
１５０１  オンデマンドドライバ作成プログラム
１５０２  ドライバ作成モジュール
１５０３  ポート作成モジュール
１５０４  ＷＳ−Ｐｒｉｎｔ制御モジュール
１５０５  ネットワーク制御モジュール
１５０６  インストール制御モジュール
１５０７  ドライバデータ格納部
１５０８  ポートデータ格納部
【先行技術文献】
【特許文献】
【０１０１】
【特許文献１】特開２００８−１６５６５４号公報
【図１】
2010198367.tif 000003
【図２】
2010198367.tif 000004
【図３】
2010198367.tif 000005
【図４】
2010198367.tif 000006
【図５】
2010198367.tif 000007
【図６】
2010198367.tif 000008
【図７】
2010198367.tif 000009
【図８】
2010198367.tif 000010
【図９】
2010198367.tif 000011
【図１０】
2010198367.tif 000012
【図１１】
2010198367.tif 000013
【図１２】
2010198367.tif 000014
【図１３】
2010198367.tif 000015
【図１４】
2010198367.tif 000016
【図１５】
2010198367.tif 000017
【図１６】
2010198367.tif 000018
【図１７】
2010198367.tif 000019
【図１８】
2010198367.tif 000020