以下に添付図面を参照して、この発明にかかる通信機器の一実施の形態である通信機能を有する画像形成装置の詳細を説明する。
はじめに、本発明の一実施の形態にかかる画像形成装置を含む、システム全体の構成例を、図1を用いて説明する。図1は、本発明の一実施の形態にかかる画像形成装置と、ネットワークを介してこの画像形成装置に接続される複数の情報処理装置とにより構成されるシステムの一例を示す図である。
図1に示すように、画像形成装置1と、情報処理装置としてのPC−A 2,PC−B 3およびPC−C4とが、ネットワーク5を介して接続されている。なお、画像形成装置1としては、プリンタ、MFP等が挙げられる。また、同図に示す構成例は一例であって、任意数のPCや画像形成装置が存在してよい。
続いて、図2を用いて、本実施形態の画像形成装置1のハードウェアの概略構成について説明する。図2は、本実施形態の画像形成装置1のハードウェア構成の一例を示すブロック図である。
画像形成装置1は、CPU11と、システムメモリ12と、ノースブリッジ(NB)13と、サウスブリッジ(SB)14と、ASIC15と、記憶部16と、I/F部17と、オペレーションパネル18と、エンジン部19と、その他図示しないオプション機器等を備える。
この画像形成装置1において、CPU11は、画像形成装置1全体の制御を行う。システムメモリ12は、ROMおよびRAMからなり、CPU11により実行されるプログラムを記憶しており、また描画処理を行う際などのワークエリアとしても使用される。
NB13は、CPU11、システムメモリ12、SB14、ASIC15、I/F部17を接続するためのブリッジであり、メモリコントローラや、PCIマスタ等を有する。SB14は、NB13と周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されている。
ASIC15は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)である。さらに、ASIC15は、情報の表示やユーザの操作入力を受け付けるオペレーションパネル18や、画像形成を行うエンジン部19等と接続され、これらとの間でデータを送受信する。
記憶部16は、HDD(Hard Disk Drive)16a,Flash ROM16b,NVRAM(Non Volatile RAM)16c,SDRAM(Synchronous DRAM)16dなどを含み、画像データ等の格納用領域や画像処理を行う際の作業用領域、などとして使用される。
I/F部17は、Ethernet(登録商標) I/FなどのネットワークI/F17aや、USB I/F17b,IEEE1394 I/F17c,無線I/F17dなどの外部機器接続用のインターフェースや、外部記憶媒体を着脱可能とする、外部記憶媒体の規格に準じたインターフェースである外部デバイスI/F17eや、公衆電話網に接続するためのGSTN(General Switched Telephone Network) I/F17fなどを含む。これらのI/Fにより、インターネットやイントラネット、公衆電話網などのネットワークへの接続や外部の各種装置やデバイスへの接続がなされる。なお、上記外部記憶媒体としては、SDカード、コンパクトフラッシュ(登録商標)メモリカードなど任意のメモリカードを使用することができる。
次に、図3を用いて、本実施形態の画像形成装置1のソフトウェアの概略構成について説明する。図3は、同画像形成装置1のソフトウェア構成例を示すブロック図である。
図3にソフトウェア構成例として示す部分は、大きく分けると、アプリケーション部301とプラットフォーム部302に分けられ、さらに、SOAP/XML処理部303が、アプリケーション部301からもプラットフォーム部302からも使用できるような形で存在している。なお、これらに含まれる下記のアプリケーションプログラム(以下、アプリケーションまたはアプリと略称する)、制御部及び処理部の各機能は、図2に示したCPU11により実行される。
アプリケーション部301は、プリント、コピーなどの画像形成処理に関連するユーザーサービスに固有の処理を行う複数のアプリケーションからなっている。アプリケーションの例としては、図3に示すように、コピー用のアプリケーションであるコピーアプリ311、ファクシミリ用アプリケーションであるファクスアプリ312、スキャナ用アプリケーションであるスキャナアプリ313、ネットワークファイル用アプリケーションであるネットファイルアプリ314、プリンタ用アプリケーションであるプリンタアプリ315などが挙げられる。
プラットフォーム部302は、OS/Kernel320とともに、アプリケーション部301からの処理要求を解釈してハードウェアなどの各種資源の獲得要求を発生する各種制御部から構成される。プラットフォーム部302は、後述の、システム制御部321、メモリ制御部322、エンジン制御部323、セキュリティ制御部324、配信制御部325、オペレーション制御部326、電源管理部327、ネットワーク制御部328、ファクス制御部329、ユーザー管理制御部330などから構成される。OS/Kernel320には、ソケット以下のネットワーク処理を行う処理部も存在している。
プラットフォーム部302は、予め定義されている関数によりアプリケーション部301からの処理要求を受信可能とするアプリケーションプログラムインターフェース(以下、APIと称す)を有するように構成されている。
なお、システム制御部321は、アプリケーションの管理や、周辺デバイスとの入出力制御およびオプション機器の検出等も含む、各種ハードウェア資源の管理などの処理を行う。メモリ制御部322は、メモリ資源の取得/解放や、画像データ等のデータの圧縮/伸張などの処理を行う。
エンジン制御部323は、画像形成のために、図2に示すエンジン部19を制御する。セキュリティ制御部324は、アプリケーション部301や各制御部に対してセキュリティサービスを提供する。例えば、データの暗号化や復号化の処理を行う。配信制御部325は、他の機器との間で送受信されるデータの管理やその加工などを行う。オペレーション制御部326は、オペレータと画像形成装置1との間の情報伝達手段となる図2に示したオペレーションパネル18の制御を行う。
電源管理部327は、CPU11および他のハードウェア資源の電気的状態を監視し、また他の制御部やアプリケーション部301での省エネ状態の管理や監視を行う。この電源管理部327は、OS/Kernel320とも密接に関連して動作する。
ネットワーク制御部328は、Ethernet(登録商標)I/FなどのネットワークI/F17aと接続され、ネットワークI/O処理を必要とするアプリケーションに対して共通に利用できるサービスを提供する。そして、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分け、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
ファクス制御部329は、GSTN I/F17fを介して、公衆電話網を利用したファクシミリの送受信や、バックアップ用メモリで管理される各種ファクシミリデータの登録や引用、ファクシミリ受信印刷などを行うためのAPIを提供する。ユーザー管理制御部330は、画像形成装置1を利用するユーザーおよびグループのIDと、このIDをもつユーザーおよびグループ毎に、利用できる機能(使用機能)などを管理している。
前述のようにSOAP/XML処理部303が、アプリケーション部301からもプラットフォーム部302からも使用できるような形で存在している。このSOAP/XML処理部303は、SOAP/XMLメッセージのエンコード/デコードを行うものである。このSOAP/XML処理部303は、通常、ライブラリの形式で提供されるが、プロセスの形式としてもよい。
なお、画像形成装置1は、上述したアプリケーション部301のいくつかのアプリケーションや、プラットフォーム部302のいくつかの制御部や、また、I/F部17のいくつかのインターフェース類を省いた構成とすることもできる。
次に、本実施の形態にかかる画像形成装置1における特徴的な処理を実現する、ネットワーク制御部328、プリンタアプリ315などの関連コンポーネントの構成について図4を用いて説明する。図4では、ネットワーク制御部328、プリンタアプリ315などの関連コンポーネントの構成例を、アプリ、サービスなどの他コンポーネントや、SOAP/XML処理部303、ユーザー管理制御部330、記憶デバイス430とともに図示している。なお、記憶デバイス430は、記憶部16のHDD16a、Flash ROM16b、NVRAM16cや、外部デイバスI/F 17eを介して接続される外部記録媒体のSDカードなどを総称したものである。また、同図において、他図面にも記載される共通の構成要素には、同一の符号を付している。
なお、図4に示さないが、記憶部16に含まれる各記憶デバイスやSDカード等の外部記録媒体へのアクセスには、システム制御部321、メモリ制御部322、セキュリティ制御部324等も関与する。以下では、プリンタ機能を実現するプロトコルとして、WSD(Web Service on Devices)が準拠するWS−Printプロトコルを例に説明する。
ネットワーク制御部328は、このネットワーク制御部328全体を統括する全体制御部421と、他のアプリケーションや他の制御部やネットワークI/F17aとのメッセージやデータのやり取りを行う通信部422と、HTTPプロトコルを処理するHTTP制御部423と、WS−Printプロトコルを処理するWS−Print処理部424と、機器情報を外部コンポーネントや外部装置から取得する情報取得部425と、HTTP以外の各種プロトコル(FTP,Port9100,LPR,etc)を処理する複数のプロトコル制御部426を含んで構成される。
プリンタアプリ315は、プリンタアプリ315全体を統括する全体制御部411と、他のアプリケーションや他の制御部とのメッセージやデータのやり取りを行う通信部412と、WS−Printプロトコルを処理するWS−Print処理部413と、機器情報を外部コンポーネントから取得する情報取得部414を含んで構成される。
ユーザー管理制御部330は、記憶デバイス430に保存されたユーザーID(個人ユーザーのID)やグループID(個人ユーザーが所属するグループのID)およびユーザー/グループそれぞれの使用機能などを統括的に管理しており、本実施形態では各ID毎に定められた機能を示す情報を、ネットワーク制御部328の情報取得部425など、情報を要求した他のコンポーネントに返す。
なお、WS−Print処理部413,424は、ネットワーク制御部328かプリンタアプリ315のいずれかに存在するものであり、図4では、波線で囲って示している。後述するシーケンス例などでは、前者のネットワーク制御部328にWS−Print処理部424が存在するものとして説明を行っている。
(PCからの機器情報取得要求に対する動作シーケンス例)
図5に、オンデマンドドライバ作成プログラム(後述)がインストールされたPCから画像形成装置1へ、機器情報の取得要求がなされた場合の動作シーケンスの第1の例を示す。この例は特に、ネットワーク制御部328が図3に示したソフトウェア群の中の他のコンポーネント(アプリ、サービスなど)や、インターフェースを介して外部記憶媒体や内部の記憶デバイス(HDD16a、Flash ROM16bなど)に対して情報の取得を行う場合の例である。以下、本例のシーケンスについて説明する。
画像形成装置1がPCから機器情報取得要求を受信すると(t501)、画像形成装置1のネットワーク制御部328において、HTTP制御部423が、受信した機器情報取得要求をWS−Print処理部424へ渡す(t502)。WS−Print処理部424は、HTTP制御部423から渡された機器情報取得要求をさらにSOAP/XML処理部303に渡し(t503)その内容をデコードさせる。SOAP/XML処理部303は受け取った機器情報取得要求をデコードし、その結果をWS−Print処理部424に対して返信する(t504)。
次に、WS−Print処理部424は、受け取ったデコード結果を、情報取得部425に渡す(t505)。次いで、情報取得部425は、受け取ったデコード結果に応じて、通信部422を介して他のコンポーネントから機器情報として必要な情報を取得する(t506,t507)。このとき、オンデマンドドライバ作成プログラムからの機器情報の取得要求には、付加情報(後述)が含まれており、情報取得部425は、この付加情報に従って必要な情報を取得する。そして、取得した機器情報をWS−Print処理部424に渡す(t508)。
WS−Print処理部424は、情報取得部425から渡された機器情報をSOAP/XML処理部303に渡し(t509)その内容をエンコードさせる。SOAP/XML処理部303は受け取った機器情報をエンコードし、その結果をWS−Print処理部424に対して返信する(t510)。WS−Print処理部424は、SOAP/XML処理部303から渡されたエンコード済みの機器情報(具体例は後述)をさらにHTTP制御部423に渡し(t511)、HTTP制御部423は、受け取った情報を機器情報取得要求に対する応答としてPC宛返信する(t512)。
なお、上記シーケンス例では、ネットワーク制御部328の情報取得部425が、通信部422を介して画像形成装置1内の他のコンポーネントから機器情報を直接取得しているが、ネットワーク制御部328の情報取得部425が、ネットワーク制御部328の通信部422およびプリンタアプリ315の通信部412を介して、プリンタアプリ315の情報取得部414に機器情報を取得させるようにしてもよい。これはネットワーク制御部328が本来プリンタドライバの構成からは依存を受けるべきではない制御部であることから、このように、プリンタドライバと関連の強いプリンタアプリ315内でその制御を行うことで、各制御部の独立性を保つことができる。
なお、情報取得部414,425が取得する機器情報は、画像形成装置1に備わる記憶手段である記憶デバイス430のいずれかのメモリやHDD16aなどに分散して、あるいはまとめて、所定のフォーマットで記憶される。なお、PCへ返信される機器情報のフォーマットとしては、後に例示するように、ネットワーク通信に適したXML形式等を用いる。
(PCからの機器情報取得要求に対する処理フロー)
ここで、ネットワーク制御部328に注目して、上述したPCからの機器情報取得シーケンス例で示したネットワーク制御部328の動作を、図6のフローチャートを用いて説明する。図6は、ネットワーク制御部328での機器情報取得要求に対する動作フローを示すフローチャートである。
ネットワーク制御部328は、PCから機器情報取得要求を受信すると(ステップS601)、この機器情報取得要求に含まれる付加情報を確認する(ステップS602)。この付加情報には、後述の言語指定や、ユーザーID、グループIDや、バージョン、エミュレーション、ドライバ機能レベルなどを指示する情報が含まれている。この付加情報に従って、ネットワーク制御部328の情報取得部425が、必要な機器情報を取得する(ステップS603)。
ステップS603での機器情報の取得は、上述の機器情報取得シーケンス例で説明したように、ネットワーク制御部328の情報取得部425自体が、図3に示したソフトウェア群の中の他のコンポーネントや、HDD16a、Flash ROM16b、または、外部デバイスI/F17eを介してSDカードなどの外部記憶媒体から取得するが、前述のように、プリンタアプリ315の情報取得部414に取得させたものを得ることもできる。
最後に、ネットワーク制御部328の情報取得部425が取得した機器情報を、PCからの機器情報取得要求の応答としてPCへ返信する(ステップS604)。
ここで、機器情報取得要求の一例を示しその説明をする。図7は、オンデマンドドライバ作成プログラムからの機器情報取得要求の一例を示す図である。なお、下記の例は、ネットワークを介してPCから画像形成装置1に機器情報取得要求を送信するためXML形式としたものである。また、図中“#”以降の記載は、説明のためのコメントである。
図7において、“Header”部に続く“Body”部分の<rpd:PrinterElementsRequest>タグと</rpd:PrinterElementsRequest>タグの間に示される部分が、機器情報取得要求の実体であり、その中の<rpd:DeviceCapability>タグと</rpd:DeviceCapability>タグの間に示される部分が、機器情報取得要求に含まれる付加情報である。図7の例は、言語を指定する付加情報であり、<rpd:Language>タグと</rpd:Language>タグ間のコード“ja”により、言語として日本語を指定している。画像形成装置1は、この付加情報を含む機器情報取得要求を受けると、言語として日本語に対応した機器情報をその応答として返すことになる。なお、図7に例示した記述は一例であって、これに限らず他の記述の仕方によっても言語指定等の付加情報の付加を行うことができる。
付加情報としては、例えば、以下の表に示すものが挙げられる。
このように、言語の指定や、ユーザーID、ユーザーパスワード、グループID、グループパスワード、プリンタドライバ作成プログラムのバージョン、エミュレーションの種別(PS、PCL、RPCSなど)やドライバ機能レベル(最大、最小など)などを指定するコードが、対応するタグとともに、付加情報として機器情報取得要求に記述される。なお、各パスワードは、対応するIDとともに認証のため使用される。
ここで、言語指定で日本語が指定された場合と英語が指定された場合のオンデマンドドライバのUIに表示される表示画面(UI中の一部分)の例を、それぞれ図8および図9に示す。図8および図9に示すように、言語指定に応じて、各項目の項目名が、日本語指定の図8では日本語で、英語指定の図9では英語で表示される。画像形成装置1は、オンデマンドドライバ作成プログラムがインストールされたPCが、どの言語環境で利用されているのかなど、PC側の情報をもたない。したがって、このような情報を付加情報として機器情報取得要求に含めることで、画像形成装置1は、PC上のオンデマンドドライバ作成プログラムに、必要とされる画像形成装置1の機器情報を選択的に提供することができる。その結果、この機器情報を用いて、オンデマンドドライバ作成プログラムは、使用環境に応じてカスタマイザしたオンデマンドドライバを作成することができる。
また、画像形成装置1側が、指定された付加情報の内容に対応していない場合もありうる。例えば、ユーザーIDやグループIDが画像形成装置1側に登録されておらず、ユーザーIDやグループIDに対応した機器情報を返すことができない場合、機能情報の全部または最小構成を返すことも考えられるが、セキュリティのため、機能情報を送らずオンデマンドドライバ作成プログラムにオンデマンドドライバを作らせないようにすることもできる。また、画像形成装置1側が指定された言語に対応していない場合は、画像形成装置1の設置されたロケーションに合った言語に対応した機器情報を、画像形成装置1がオンデマンドドライバ作成プログラムに返すといった合理的な構成も考えられる。
続いて、上記表1において、言語指定に加えて例示した付加情報に関して、各付加情報で指定された内容により画像形成装置1から応答される機器情報が変わる例を以下に示す。なお、画像形成装置1が応答する機器情報の具体的な諸実施例は後述する。
この例は、画像形成装置1から応答される機器情報が、ジョン(John)のユーザーIDの場合は、デフォルトチケット:両面印刷オンとなり、ビル(Bill)のユーザーIDの場合は、デフォルトチケット:両面印刷オフとなる例である。このような機器情報が応答されることにより、オンデマンドドライバ作成プログラムにより作成されるオンデマンドドライバにおいては、ユーザー毎に、利用できる機能やその初期設定が変わることになる。すなわち、作成されるオンデマンドドライバは、ユーザー毎にカスタマイズされたものとなる。
この例は、画像形成装置1から応答される機器情報が、“Design”のグループIDの場合は、ステープル(staple)なしとなり、“Sales”のグループIDの場合は、ステープル(staple)ありとなる例である。このような機器情報が応答されることにより、オンデマンドドライバ作成プログラムにより作成されるオンデマンドドライバにおいては、グループ毎に、利用できる機能やその初期設定が変わることになる。すなわち、作成されるオンデマンドドライバは、グループ毎にカスタマイズされたものとなる。
この例は、付加情報としてバージョン(Version)1.01が指定された場合は、機器情報としてパラメータA,B,Cが画像形成装置1から返され、付加情報としてバージョン(Version)1.02が指定された場合は、機器情報としてパラメータA,B,C,D,Eが返される例である。このように、オンデマンドドライバ作成プログラムのバージョンが付加情報として指定されることにより、オンデマンドドライバ作成プログラムに、そのバージョンに適合した画像形成装置1の機器情報を提供することができる。
この例は、付加情報としてエミュレーションの種別:PS(PostScript)が指定された場合は、機器情報としてレベルが画像形成装置1から返され、本出願人によるプリンタ記述言語RPCSが指定された場合は、機器情報として選択可能カラーが返される例である。このように、エミュレーションの種別が付加情報として指定されることにより、オンデマンドドライバ作成プログラムに、使用されるエミュレーションに応じた機器情報を提供することができる。
この例は、付加情報としてドライバ機能レベルとして最小能力が指定された場合は、機器情報として、画像形成装置1の機能に係るパラメータP,Qに関する情報が画像形成装置1から返され、一方、付加情報として最大能力が指定された場合は、機器情報として、パラメータP,Q,R,S,Tに関する情報が返される例である。このように、オンデマンドドライバ作成プログラムのドライバ機能レベル(最小、最大など)が付加情報として指定されることにより、オンデマンドドライバ作成プログラムに、そのドライバ機能レベルに応じた機器情報を提供することができる。
以上のような、機器情報取得要求に含められる付加情報と、この付加情報に対応する画像形成装置1における機器情報は、対応付けられて前述の記憶デバイス430に記録されている。
ここで、上記付加情報に対して画像形成装置1が応答する機器情報の諸例を示しその説明をする。図10は、日本語の言語指定を付加情報として含む機器情報取得要求に対して画像形成装置1が応答する機器情報の一例である。なお、以下に示す諸例は、画像形成装置1内で取得された機器情報をネットワークを介して応答するためXML形式としたものである。また、図中“#”以降の記載は、説明のためのコメントである。
図10において、“Header”部に続く“Body”部分の<rpd:PrinterElementsResponse>タグと</rpd:PrinterElementsResponse>タグの間に示される部分は、画像形成装置1が応答する情報の実体であり、<rpd:DeviceCapability>タグと</rpd:DeviceCapability>タグの間に示される部分に機器情報の内容が記述されている。これらの記述は、後述の諸例においても共通である。
同図の<rpd:orientation>タグと</rpd:orientation>タグの間に示される部分は、原稿方向に関する機器情報である。また、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“原稿方向”、“縦”、“横”のように表示することを記述している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用してデフォルト値を“portrait”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“縦”と“横”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“portrait”と“landscape”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、一例として示す図8の上段の“原稿方向”についての表示がなされることとなる。
続いて、図11に、英語の言語指定を付加情報として含む機器情報取得要求に対して画像形成装置1が応答する機器情報の一例を示す。図11に示す例は、図10に示した機器情報の例(日本語の言語指定)に対して、英語の言語指定がなされた場合の例であり、その記述は類似するが、<rpd:DispName xml:lang”en_US”>タグと</rpd:DispName>タグとで、項目名の表記を、英語で、“Orientation”、“Portrait”、“Landscape”のように表示することを示している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用して、デフォルト値を“portrait”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“Portrait”と“Landscape”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“portrait”と“landscape”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、一例として示す図9の上段の“Orientation”についての表示がなされることとなる。
続いて、図12に、表2に示した個人ユーザーJohnのユーザーIDを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:defaultticket>タグと</rpd:defaultticket>タグの間に示される部分は、両面印刷についてのデフォルトチケット(デフォルト設定)に関する機器情報である。また、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“両面印刷”、“オン”、“オフ”のように表示することを記述している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用してデフォルト値を“on”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“オン”と“オフ”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“on”と“off”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、両面印刷をオンとするかオフとするかの(例えば、ラジオボタンによる)選択肢が、“オン”を既定値とした状態で表示される(図示せず)。
続いて、図13に、表2に示した個人ユーザーBillのユーザーIDを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
図13に示す例が、図12に示した例と異なる部分は、デフォルト値の指定部分であり、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用して、デフォルト値として“off”が設定されている。この機器情報に基づいて作成されたオンデマンドドライバのUIには、両面印刷をオンとするかオフとするかの(例えば、ラジオボタンによる)選択肢が、“オフ”を既定値とした状態で表示される(図示せず)。
続いて、図14に、表3に示した“Design”のグループIDを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:papersize>タグと</rpd:papersize>タグの間に示される部分は、用紙サイズに関する機器情報である。また、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“紙サイズ”、“A4”、“A3”のように表示することを記述している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用してデフォルト値を“a4”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“A4”と“A3”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“a4”と“a3”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、用紙サイズをA4とするかA3とするかの(例えば、ラジオボタンによる)選択肢が、“A4”を既定値とした状態で表示される(図示せず)。
続いて、図15に、表3に示した“Sales”のグループIDを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:papersize>タグと</rpd:papersize>タグの間に示される部分は、用紙サイズに関する機器情報であり、図14に示した例と同様である。図15の例では、用紙サイズについての機器情報に加え、<rpd:staple>タグと</rpd:staple>タグの間に示される部分に、ステープルについての機器情報を記述している。そこでは、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“ステープル”、“オフ”、“左上”、“右上”のように表示することを記述している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用してデフォルト値を“off”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“オフ”と“左上”と“右上”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“off”と“left_top”と“right_top”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、用紙サイズをA4とするかA3とするかの(例えば、ラジオボタンによる)選択肢が、“A4”を既定値とした状態で表示されるとともに、ステープルをオフとするか左上とするか右上とするかの(例えば、ラジオボタンによる)選択肢が、“オフ”を既定値とした状態で表示される。
続いて、図16に、表4に示したオンデマンドドライバ作成プログラムのバージョン(Version)1.01を付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:parameter_A>タグと</rpd:parameter_A>タグの間に示される部分に、パラメータAに関する記述がなされ、同様に、<rpd:parameter_B>タグと</rpd:parameter_B>タグの間に示される部分と<rpd:parameter_C>タグと</rpd:parameter_C>タグの間に示される部分にそれぞれパラメータBおよびCに関する記述がなされる。この機器情報に基づいて作成されたオンデマンドドライバのUIには、パラメータA,BおよびCについての(例えば、ラジオボタンによる)選択肢が表示される(図示せず)。
続いて、図17に、表4に示したオンデマンドドライバ作成プログラムのバージョン(Version)1.02を付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:parameter_A>タグと</rpd:parameter_A>タグの間に示される部分に、パラメータAに関する記述がなされ、同様に、<rpd:parameter_B>タグと</rpd:parameter_B>タグの間に示される部分、<rpd:parameter_C>タグと</rpd:parameter_C>タグの間に示される部分、<rpd:parameter_D>タグと</rpd:parameter_D>タグの間に示される部分、<rpd:parameter_E>タグと</rpd:parameter_E>タグの間に示される部分にそれぞれパラメータB、C、DおよびEに関する記述がなされる。この機器情報に基づいて作成されたオンデマンドドライバのUIには、パラメータA,B,C,DおよびEについての(例えば、ラジオボタンによる)選択肢が表示される(図示せず)。
続いて、図18に、表5に示したエミュレーションの種別“PS”を付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:level>タグと</rpd:level>タグの間に示される部分は、Postscriptにおけるレベルに関する機器情報である。また、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“レベル”、“3”、“2”のように表示することを記述している。また、<rpd:DefaultVal>タグと</rpd:DefaultVal>タグを使用してデフォルト値を“3”とし、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“3”と“2”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“3”と“2”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、レベルを3とするか2とするかの(例えば、ラジオボタンによる)選択肢が、“3”を既定値とした状態で表示される(図示せず)。
続いて、図19に、表5に示したエミュレーションの種別“RPCS”を付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:color>タグと</rpd:color>タグの間に示される部分は、RPCSにおける選択可能カラーに関する機器情報である。また、<rpd:DispName xml:lang”ja”>タグと</rpd:DispName>タグを使用して、項目名の表記を、日本語で、“選択可能カラー”、“ブラック”、“シアン、マゼンタ、イエロー、ブラック”、“シアン、マゼンタ、イエロー”のように表示することを記述している。また、<rpd:AllowedValue>タグと</rpd:AllowedValue>タグ間において、選択可能な選択肢として“ブラック”と“シアン、マゼンタ、イエロー、ブラック”と“シアン、マゼンタ、イエロー”(いずれも表記名)を、また、これらの値として<rpd:Value>タグと</rpd:Value>タグを使用して、それぞれ“k”と“cmyk”と“cmy”を記述している。この機器情報に基づいて作成されたオンデマンドドライバのUIには、色をブラックとするか、シアン、マゼンタ、イエロー、ブラックとするか、シアン、マゼンタ、イエローとするかの(例えば、ラジオボタンによる)選択肢が表示される(図示せず)。
続いて、図20に、表6に示したドライバ機能レベルとして最小能力が選択され、それを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:parameter_P>タグと</rpd:parameter_P>タグの間に示される部分に、パラメータPに関する記述がなされ、同様に、<rpd:parameter_Q>タグと</rpd:parameter_Q>タグの間に示される部分にパラメータQに関する記述がなされる。この機器情報に基づいて作成されたオンデマンドドライバのUIには、パラメータPおよびQについての(例えば、ラジオボタンによる)選択肢が表示される(図示せず)。
続いて、図21に、表6に示したドライバ機能レベルとして最大能力が選択され、それを付加情報として含む機器情報取得要求に対して、画像形成装置1が応答する機器情報の一例を示す。
同図において、<rpd:parameter_P>タグと</rpd:parameter_P>タグの間に示される部分に、パラメータAに関する記述がなされ、同様に、<rpd:parameter_Q>タグと</rpd:parameter_Q>タグの間に示される部分、<rpd:parameter_R>タグと</rpd:parameter_R>タグの間に示される部分、<rpd:parameter_S>タグと</rpd:parameter_S>タグの間に示される部分、<rpd:parameter_T>タグと</rpd:parameter_T>タグの間に示される部分にそれぞれパラメータQ,R,SおよびTに関する記述がなされる。この機器情報に基づいて作成されたオンデマンドドライバのUIには、パラメータP,Q,R,SおよびTについての(例えば、ラジオボタンによる)選択肢が表示される(図示せず)。
上記機器情報の諸例は、簡単のため、付加情報の内容毎に具体例を示したものである。現実的には、表1に例示したような付加情報のいくつかをまとめた1つの付加情報が機器情報取得要求に含められ、画像形成装置1はそれに応答することになるので、画像形成装置1から応答される機器情報は、上記例示したような機器情報の複数のものが合成された形態となる。また、画像形成装置1から応答される機器情報の中には、付加情報に依存しない機器情報も含められる。
PC上のオンデマンドドライバ作成プログラムは、オンデマンドドライバ作成時に上記例示した機器情報を使ってドライバを構成する。つまり、オンデマンドドライバ作成プログラムは、画像形成装置1の能力を示す情報等を選択的に問い合わせ取得し、これらを使用することによって、画像形成装置1の構成が変わったとしても、また、PC側の使用環境が変わったとしても、ドライバ本体(コア)を作り直すことなく、UI上の選択画面のみ新構成に対応させたオンデマンドドライバを作成し、PCにインストールする(詳細は、後述)。インストール後、PCは、この作成されたオンデマンドライバによる画像形成装置1の制御が可能となる。
(オンデマンドドライバ作成プログラム)
ここで、画像形成装置1の機器情報を基に画像形成装置1用のオンデマンドドライバを作成する、PC上のオンデマンドドライバ作成プログラムについて、その概要を図22を用いて説明する。図22は、PC上のオンデマンドドライバ作成プログラムの構成例を示す図である。
オンデマンドドライバ作成プログラム2201は、画像形成装置1から機器情報を取得しオンデマンドドライバを作成するドライバ作成モジュール2202、オンデマンドドライバが使用するポート(LPD,LPT,COM,WSDポートなど)を作成するポート作成モジュール2203、WS−Printプロトコルを処理するWS−Print制御モジュール2204、外部ネットワークとの間で送受信するパケットを制御するネットワーク制御モジュール2205、そして更新されたUIを有するオンデマンドドライバをPCにインストールするインストール制御モジュール2206から構成される。
ドライバ作成モジュール2202は、オンデマンドドライバを作成する際、WS−Print制御モジュール2204およびネットワーク制御モジュール2205を介して、ネットワーク上の画像形成装置1から機器情報を取得する(このとき、WSDポートを用いる)。また、ドライバ作成モジュール2202により作成されたオンデマンドドライバ、および、ポート作成モジュール2203により作成されたポートのデータは、それぞれPC内のHDDなどにあるドライバデータ格納部2207とポートデータ格納部2208に保存される。
上記ドライバ作成モジュール2202は、前述した機器情報を用いて、この機器情報に基づくUIを有するオンデマンドドライバを作成するプログラムである。一般に、画像形成装置用のドライバは、アプリケーションから渡された印刷対象となる情報を処理し、印刷命令へ変換する機能と、アプリケーションに対して画像形成装置に対してどのような印刷設定を行うかを利用者に設定させるための印刷設定画面を表示するGUI(Graphical User Interface)機能を備えている。このプログラムは、取得した機器情報の内容を反映するようにそのGUI要素を変更(追加・削除を含む)し、UIのみを、新たに取得した機器情報に対応させることによって、新たなオンデマンドドライバを作成する。つまり、オンデマンドドライバのUIのみ、新たに取得した機器情報に基づき再構築している。従って、例えば、画像形成装置1のバージョンアップが行われて、機器情報が更新された場合や、オンデマンドドライバのカスタマイズのため前述の付加情報を含む機器情報取得要求により機器情報を取得した場合でも、一旦オンデマンドドライバのアンインストールを行い、再度同じオンデマンドドライバ作成プログラムでインストールしなおせばよい。同様に1つのオンデマンドドライバ作成プログラムから複数機種のオンデマンドドライバのインストールを行うことができる。
上記のように作成されるオンデマンドドライバは、アプリケーションから発せられたリクエストに従って、取得した機器情報に基づく選択可能な項目をそのUIに表示し、このUI上でユーザーにより選択・設定された印刷条件(用紙のサイズやオプションの設定など)からなるジョブチケットをPJL(Printer Job Language)ファイルまたはPS(PostScript)ファイルなどに含めて画像形成装置1に送ることで、画像形成装置1の印刷制御をする。従って、オンデマンドドライバ作成プログラムと1つのオンデマンドドライバがPC側にあれば、PC側は、このオンデマンドドライバにより駆動されるいかなる機種の画像形成装置にも、オプション構成や設定が変わった画像形成装置にも異なる使用環境にも対応することができ、ユーザーは、新たなドライバの取得などをする必要がない。また、ユーザーは、現時点での画像形成装置の機能を確認し、その機能を利用することができる。
また、上記のように、プリンタドライバが作成するPDL(Page Description Language)の画像部分に関しては直接影響を及ぼさない設定(両面印刷やステープル等)については、プリンタドライバが、UIの表示形式や選択不可能な組み合わせを把握しておくだけで動作できる。しかし、プリンタドライバ側でも処理することができる画像部分に関する設定(縮小や集約)については、固定部分とする他に必要に応じてドライバ側で共通的なUIを持つこともできる。
(オンデマンドドライバのインストール)
図23に、PC上のオンデマンドドライバ作成プログラムによる、オンデマンドドライバのPCへのインストールの際の処理フローの一例を示す。以下では、この図23を用いて、オンデマンドドライバ作成プログラムによるドライバのインストール処理について説明する。
はじめに、ユーザー操作により、ドライバのインストール指示がなされると(このとき、ユーザーによる指定または自動で、表1に示したような付加情報の内容の指定(言語指定など)も行われる)(ステップS2301)、インストール制御モジュール2206は、ドライバ作成モジュール2202に、WS−Print制御モジュール2204およびネットワーク制御モジュール2205を介して画像形成装置1へ前述の付加情報を含む機器情報取得要求を送信し、この要求に対する応答として画像形成装置1から返される機器情報を取得する(ステップS2302)。
画像形成装置1の機器情報を取得したドライバ作成モジュール2202は、取得した機器情報に基づき上述のオンデマンドドライバを作成する(ステップS2303)。すなわち、ドライバ作成モジュール2202は、取得した機器情報を反映させるようにUIを再構築し、再構築されカスタマイズされたUIを有するオンデマンドドライバを作成する。図24および図25にそれぞれ、UIの再構築前と再構築後の印刷設定画面例を示す。図24に示す印刷設定画面例に対し、再構築後は(ここでは、一例として画像形成装置1において機能Bが追加されたものとする)、図25に示すように、追加された機能Bについて選択・設定をすることができるようになる。
次に、インストール制御モジュール2206は、ドライバ作成モジュール2202に、ステップS2303で作成したオンデマンドドライバをドライバデータ格納部2207に保存させる(ステップS2304)。
次いで、インストール制御モジュール2206は、ポート作成モジュール2203に、ステップS2303で作成されたオンデマンドドライバ用のポートを作成させる(ステップS2305)。
さらに、インストール制御モジュール2206は、ポート作成モジュール2203に、ステップS2305で作成したポートのデータをポートデータ格納部2208に保存させる(ステップS2306)。
このようにして、インストール時にカスタマイズされたオンデマンドドライバと、ポートデータがPCにインストールされる。インストールされたオンデマンドドライバは、PCの起動時にローダ(図示せず)によりPCのメインメモリであるシステムメモリ12にロードされ、ポートデータはオンデマンドドライバと関連して使用される。
上述した図23の例では、ユーザー操作によるインストール指示を起点として、一連のインストール処理を行っているが、例えば、先に取得した機器情報を保存しておき、PCの起動時に再度、画像形成装置1から機器情報を取得して、取得した機器情報と保存している機器情報とからその更新が検出された場合に、ステップS2303以降の処理を行うようにしてもよい。そして、インストール後、PCを再起動させ、更新されたオンデマンドドライバとポートデータを再ロードすることで、ドライバ更新のためのユーザー操作を一切必要とせずに、更新されたオンデマンドドライバを使用することができるようになる。
なお、上述した各シーケンス、データ、フローは一例にすぎない。例えば、前述のネットワーク制御部328内やプリンタアプリ315内の各コンポーネントは、異なるコンポーネントに属することがあったり、情報取得先は機器の内外を問わず多岐に渡ることもある。また、前述の諸シーケンスにおいて、SSLやTLSにより情報の暗号化がなされたり、データ自体が別途暗号化されたりすることもある。
また、本発明の一実施の形態である画像形成装置1を、コピー機能、ファクシミリ機能、スキャナ機能、プリンタ機能等を有する画像形成装置(複合機など)に適用した例を説明したが、本発明は、通信機能を有する単機能の複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置やコンピュータ周辺装置にももちろん適用可能である。また、こうした画像形成装置やコンピュータ周辺装置に限らず、外部装置にインストールされたドライバにより駆動される通信機器であれば、同様に本発明を適用することができる。
以上、本実施形態の画像形成装置1について、その詳細を説明した。上述した画像形成装置1によれば、以下の効果を得ることができる。すなわち、オンデマンドドライバ作成プログラムから送られる機器情報取得要求に付加情報を追加し、この要求を受けた画像形成装置1が、その付加情報に従って応答する機器情報を決定することにより、オンデマンドドライバ作成プログラムが必要とする機器情報を選択的に提供することができる。その結果、オンデマンドドライバ作成プログラムは、使用環境に応じてカスタマイズされたオンデマンドドライバを作成することができる。さらに具体的には、下記の効果が得られる。
機器情報取得要求の付加情報として言語指定に含め、それに応じて画像形成装置1がオンデマンドドライバのUIに表示する表記を含めた応答を返すことにより、オンデマンドドライバの言語(表記)の選択が可能となる。
また、ユーザーIDやグループIDを機器情報取得要求の付加情報として含めることにより、ユーザーやグループ単位で、セキュリティに関しても、画像形成装置1の機能の制御を行うことができる。
また、オンデマンド作成プログラムのバージョン(Version)が機器情報取得要求の付加情報として指定されることにより、画像形成装置1側はオンデマンド作成プログラムのバージョンに適合する適切な機器情報を返すことができる。この場合、不要な情報を含めないようにすることで、例えば、オンデマンド作成プログラムのバージョンに応じた特定のGUI要素用のデータは送るが全ては送らないようにするなどして、応答するデータ量を削減することができる。
また、オンデマンドドライバで使用するエミュレーションの種別が指定されることにより、画像形成装置1は、指定された種類のエミュレーションに合った適切な情報を機器情報として返すことができる。この場合、不要な情報を返す必要がなくなるので、応答するデータ量を削減できる。
また、ドライバの機能レベル(最小能力、最大能力)が指定されることにより、ユーザーが必要な機能に関してだけ、機能情報を画像形成装置1が返すようにすることができる。その結果、PC側では、ドライバの機能レベルとして最小能力が指定された場合、作成されるオンデマンドドライバのUI画面はシンプルに、さらにサイズは小さくなり、ドライバ処理の向上が見込まれる。また、画像形成装置1から返される機能情報のデータ量も削減される。一方、最大能力が指定された場合、画像形成装置1の能力をすべてオンデマンドドライバにて使用することができる。
なお、本実施形態の画像形成装置1で実行される各プログラム(ソフトウェア)は、ROM、HDD等に予め組み込まれて提供される。また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、SDカード等のメモリカードなどのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、本実施形態の画像形成装置1で実行される各プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供または配布するように構成しても良い。
本実施の形態の画像形成装置1で実行されるプログラムは、上述した各部(アプリケーション部301、プラットフォーム部302、SOAP/XML処理部303)を含むモジュール構成となっており、CPU(プロセッサ)11が上記ROMやHDD 16a等から各プログラムを読み出して実行することにより上記各部がシステムメモリ上にロードされ、アプリケーション部301、プラットフォーム部302、SOAP/XML処理部303がシステムメモリ上に生成されるようになっている。