(57)【要約】【課題】  プリンタサーバの記憶容量を拡張することなくプリンタ装置側の機能や仕様変更にも柔軟に適応したアプリケーションを自在に実行させことである。【解決手段】  クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報をＣＰＵ１が共有制御モジュールにより解析して機種依存のアプリケーションプログラムであると判断した場合、プリンタコントローラ１６００が管理する固有制御モジュールから要求されている機種依存のアプリケーションプログラムを取得して、共有制御モジュールに組み入れて拡張されるアプリケーションプログラムを実行させる構成を特徴とする。【選択図】  図１
2005149087.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、
接続可能な複数の印刷装置を制御するために共有する共有制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、
前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を前記共有制御モジュールにより解析して機種依存のアプリケーションプログラムであるか否かを判断する判断手段と、
前記判断手段により機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する固有制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得手段と、
前記アプリケーション取得手段が取得する機種依存のアプリケーションプログラムを前記共有制御モジュールに組み入れて拡張されるアプリケーションプログラムを実行させる実行制御手段と、
を備えることを特徴とするプリンタサーバ。
【請求項２】
印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、
各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、
前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を解析して機種依存のアプリケーションプログラムであるか否かを判断する判断手段と、
前記判断手段により機種依存のアプリケーションプログラムであると判断した場合、前記各印刷装置が管理する制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得手段と、
を備えることを特徴とするプリンタサーバ。
【請求項３】
印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、
各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、
所定のデータ処理を行うメモリと、
アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行手段と、
前記アプリケーション実行手段により実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令の機種依存種別を判断する機種依存判定手段と、
前記機種依存判定手段による判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換する命令変換手段と、
前記命令変換手段により変換された命令を前記制御モジュールに転送する命令転送手段と、
前記命令転送手段によって転送された命令の処理結果を前記制御モジュールから取得して、前記メモリに記憶させる命令結果取得手段と、
を備えることを特徴とするプリンタサーバ。
【請求項４】
印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、
各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、
所定のデータ処理を行うメモリと、
アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行手段と、
前記アプリケーション実行手段により実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令種別からリソースデータ取得命令を識別するリソース取得命令識別手段と、
前記リソース取得命令識別手段により前記処理命令がリソース取得命令であると識別された場合に、該リソース取得命令が要求するリソースデータの機種依存性を判定する機種依存判定手段と、
前記機種依存判定手段の判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換して前記制御モジュールに転送する命令転送手段と、
前記命令転送手段によって転送された命令の処理結果を前記制御モジュールからリソースデータとして取得するリソースデータ取得手段と、
を備えることを特徴とするプリンタサーバ。
【請求項５】
前記リソースデータは、ビットマップ画像データおよび印刷装置の状態を示すテキストメッセージデータを含むことを特徴とする請求項４記載のプリンタサーバ。
【請求項６】
前記印刷装置のＣＰＵとは独立したＣＰＵを備えることを特徴とする請求項１〜５のいずれかに記載のプリンタサーバ。
【請求項７】
複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、
前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を前記共有制御モジュールにより解析して機種依存のアプリケーションプログラムであるか否かを判断する判断ステップと、
前記判断ステップにより機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する固有制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得ステップと、
前記アプリケーション取得ステップが取得する機種依存のアプリケーションプログラムを前記共有制御モジュールに組み入れて拡張されるアプリケーションプログラムを実行させる実行制御ステップと、
を備えることを特徴とするプリンタサーバのプログラム実行方法。
【請求項８】
複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、
前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を解析して機種依存のアプリケーションプログラムであるか否かを判断する判断ステップと、
前記判断ステップにより機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得ステップと、
を備えることを特徴とするプログラム実行方法。
【請求項９】
複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、
アプリケーションプログラムをメモリ上で実行するアプリケーション実行ステップと、
前記アプリケーション実行ステップにより実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令の機種依存種別を判断する機種依存判定ステップと、
前記機種依存判定ステップによる判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換する命令変換ステップと、
前記命令変換ステップにより変換された命令を前記制御モジュールに転送する命令転送ステップと、
前記命令転送ステップによって転送された命令の処理結果を前記制御モジュールから取得して、前記メモリに記憶させる命令結果取得ステップと、
を備えることを特徴とするプログラム実行方法。
【請求項１０】
複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、
アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行ステップと、
前記アプリケーション実行ステップにより実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令種別からリソースデータ取得命令を識別するリソース取得命令識別ステップと、
前記リソース取得命令識別ステップにより前記処理命令がリソース取得命令であると識別された場合に、該リソース取得命令が要求するリソースデータの機種依存性を判定する機種依存判定ステップと、
前記機種依存判定ステップの判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換して前記制御モジュールに転送する命令転送ステップと、
前記命令転送ステップによって転送された命令の処理結果を前記制御モジュールからリソースデータとして取得するリソースデータ取得ステップと、
を備えることを特徴とするプログラム実行方法。
【請求項１１】
前記リソースデータは、ビットマップ画像データおよび印刷装置の状態を示すテキストメッセージデータを含むことを特徴とする請求項１０記載のプログラム実行方法。
【請求項１２】
請求項７〜１１のいずれかに記載のプログラム実行方法を実行させるためのプログラムを記録したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１３】
請求項７〜１１のいずれかに記載のプログラム実行方法を実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバおよびプログラム実行方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムに関するものである。
【背景技術】
【０００２】
近年、インターネットの普及により、印刷装置もネットワークで使われる形態が一般化してきた。通常、高速機やカラー機などの高価格機ではネットワークインタフェースは内蔵される傾向にあるが、低価格なモノクロ機の場合には、ネットワークインタフェースは本体には同梱されず、ネットワークカード装置として別に供給される形態が一般的である。
【０００３】
この場合、印刷装置本体とネットワークカード装置は個々にＣＰＵを持ったインテリジェントな形態であり、通常ネットワークカード装置側にネットワーク経由での各種プリントサービスの統括制御を行うプリントサーバ機能を備えており、印刷装置とネットワークカード装置は接続インタフェースを介して通信を行い所望のサービスを実装している。
【０００４】
このことは逆に負荷の重いネットワークサービスをネットワークカード装置に追い出すことが可能となり、相対的に印刷装置本体のＣＰＵや周辺パフォーマンスを下げることが可能となり、印刷装置本体のコスト削減をもたらしている。
【０００５】
従来のネットワークインタフェースは、例えばＬＰＲ（ＲＦＣ１１７９）に代表されるような印刷データの送信だけできればよかったが、昨今印刷装置に対する情報管理というニーズが高くなり、付加技術として各種の手段が提供されている。
【０００６】
最も単純な例が、印刷データを送信するポートに情報管理データ（ジョブ制御言語＝Ｊｏｂ  Ｌａｎｇｕａｇｅ）を付加する形態である。ジョブ制御言語は印刷データを送るポートを共有する形であるため、サービスポートを増加せずに済み、比較的実装が簡単であるが、印刷データ受信中にデータが大量に送信されるとポートを占有するため、情報管理データのやりとりが止まってしまうという問題があり、またネットワークにおけるＬＰＲプロトコルのような片方向型コネクションの場合、そもそも情報取得ができないという欠点がある。
【０００７】
次の手法としては、ＳＮＭＰ／ＭＩＢ（ＲＦＣ１１５７）を使った方式がある。
【０００８】
これはデータ送受信用の専用ポートを使用し、標準規格であるＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）を使う方法である。
【０００９】
しかし、この方式はＳＮＭＰを受信してＵＩを提供する専用クライアントプログラムの独自開発が必要であり、なおかつこの方式では、そもそも単純な情報のやり取りを行うプロトコルであるため、数字、文字列などの単純なデータベースしか提供できない。
【００１０】
その結果、機器の構成を示すビットマップ画像などＵＩを構成する情報は、前記クライアントプログラムが所有せねばならず、それに伴いクライアントプログラムを機種対応しなくてはいけないという問題点がある。
【００１１】
さらに、最近ではＨＴＴＰプロトコル（ＲＦＣ１９４５，ＲＦＣ２６１６）を用いた方式が主流となりつつある。この方式によれば、ネットワークカード装置の中にＨＴＴＰサービスを提供して、機器情報に関するＨＴＭＬデータやビットマップ画像といったＷＥＢコンテンツを提供し、クライアントは一般的なＷＥＢブラウザを使用して前記ＷＥＢコンテンツをＧＵＩ上に表示し、操作を可能とすれば、クライアントプログラムを提供しなくても同様の効果を得ることが可能である。
【００１２】
従来の方式ではクライアントプログラムが多種多様な機器に固有な情報（メッセージ文字列、ビットマップ画像）を管理する必要があったため、機器が自分の機種情報だけ持てばよい上記方式は短期間で製品を提供するためにはもっとも適する方法である。
【００１３】
しかしながら上述したいずれの手段もネットワークカード装置に予め組み込まれた静的な機能の提供手段であって、後から機能そのものを追加したり、あるいは、組み込まれた機能による制御方法を変更したりするといった動的なサービスを容易に追加することができなかった。
【００１４】
そこで、最近になってＪａｖａ（米国Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の商標）言語を用いて作成されたアプリケーションプログラムモジュールを組み込み機器上に実装されたＪａｖａ（登録商標）仮想マシン上で動作可能とするプラットフォーム技術が提案されている。
【００１５】
この技術を用いることで従来印刷装置等の組み込み機器に、後から新たな機能を機器に追加することが可能となってきている。
【００１６】
上記述べたＪａｖａ（登録商標）仮想マシンにはネットワーク通信機能を始め、組み込み機器を制御するために必要な各種機能を提供するためにアプリケーションプログラムインタフェース（ＡＰＩ）が備わっており、上記Ｊａｖａ（登録商標）言語で作成されたアプリケーションプログラムモジュールはこれらのＡＰＩを呼び出して組み込み機器に対する制御やネットワークで接続されたホストコンピュータからの要求を処理する。
【００１７】
上述のRFCのドキュメントについては、非特許文献１に公開されている（Internet  Engineering  Task  Forceの下記ページから入手可能である）。
【非特許文献１】http://www.ietf.org/rfc.html
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上記Ｊａｖａ（登録商標）仮想マシン上で提供されるＡＰＩは、ネットワーク通信に必要な機能を含んでおり、ネットワーク通信プロトコルの処理を行う基本モジュールを共有するため、通常ネットワークカード装置上に実装される機能である。
【００１９】
しかしながら、印刷装置本体と別個にＣＰＵを備えるインテリジェント型ネットワークカード装置の場合、共通化による開発コスト低減と量産効果による生産コスト削減のために、通常複数のモデルの印刷装置に接続可能な設計が求められる。
【００２０】
そのためネットワークカード装置には、複数のモデルの機種に接続可能にするために個々に機種に応じたメッセージやグラフィカルユーザインタフェースに必要な印刷装置のビットマップ画像等のリソースデータおよび各モデル固有な情報等を全て保持しなければならず、これらの情報を記憶するための必要なＲＯＭ容量の分コスト増加が発生する。
【００２１】
さらに、Ｊａｖａ（登録商標）仮想マシン上で動作するアプリケーションプログラムモジュールの種類によっては、特定の機種でしか機能しないもしくは必要のない場合もあるため、これらの機種依存なアプリケーションプログラム自身をネットワークカード装置内に保持することは上記ＲＯＭ容量増加と併せて記憶領域の効率的利用の点で問題である。
【００２２】
本発明は、上記の課題を解決するためになされたもので、本発明の第１の目的は、プリンタサーバの記憶容量を拡張することなく、クライアント装置とプリンタ装置との制御に係る汎用性の高いアプリケーションを記憶するだけで、プリンタ装置側の機能や仕様変更にも柔軟に適応したアプリケーションを自在に実行させることができるとともに、接続されるプリンタ装置の仕様変更や新規に開発される印刷装置を支障なく制御するアプリケーションを自在に実行させることができる環境を構築できるプリンタサーバおよびプログラム実行方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラを提供することである。
【００２３】
また、第２の目的は、プリンタ固有のリソースについては、プリンタ装置側からリソースデータを取得して処理できるため、複数のプリンタ装置で共有するアプリケーションを記憶するメモリ容量を備えるだけで、最新のプリンタ装置から拡張されたプリンタ装置に係るアプリケーションプログラムを安価なコストで実行できる利便性と汎用性に優れたプリンタサーバ機能を提供できるプリンタサーバおよびプログラム実行方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラを提供することである。
【課題を解決するための手段】
【００２４】
本発明に係る第１の発明は、印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、接続可能な複数の印刷装置を制御するために共有する共有制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を前記共有制御モジュールにより解析して機種依存のアプリケーションプログラムであるか否かを判断する判断手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記判断手段により機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する固有制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記アプリケーション取得手段が取得する機種依存のアプリケーションプログラムを前記共有制御モジュールに組み入れて拡張されるアプリケーションプログラムを実行させる実行制御手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）とを備えることを特徴とする。
【００２５】
本発明に係る第２の発明は、印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を解析して機種依存のアプリケーションプログラムであるか否かを判断する判断手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記判断手段により機種依存のアプリケーションプログラムであると判断した場合、前記各印刷装置が管理する制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）とを備えることを特徴とする。
【００２６】
本発明に係る第３の発明は、印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段と、所定のデータ処理を行うメモリと、アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記アプリケーション実行手段により実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令の機種依存種別を判断する機種依存判定手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記機種依存判定手段による判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換する命令変換手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記命令変換手段により変換された命令を前記制御モジュールに転送する命令転送手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記命令転送手段によって転送された命令の処理結果を前記制御モジュールから取得して、前記メモリに記憶させる命令結果取得手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）とを備えることを特徴とする。
【００２７】
本発明に係る第４の発明は、印刷装置に通信可能に接続された状態でネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能なプリンタサーバであって、各印刷装置を制御するための制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段（図１に示す記憶部９）と、所定のデータ処理を行うメモリと、アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記アプリケーション実行手段により実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令種別からリソースデータ取得命令を識別するリソース取得命令識別手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記リソース取得命令識別手段により前記処理命令がリソース取得命令であると識別された場合に、該リソース取得命令が要求するリソースデータの機種依存性を判定する機種依存判定手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記機種依存判定手段の判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換して前記制御モジュールに転送する命令転送手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）と、前記命令転送手段によって転送された命令の処理結果を前記制御モジュールからリソースデータとして取得するリソースデータ取得手段（図１に示すＦｌａｓｈＲＯＭ３に記憶される制御プログラム）とを備えることを特徴とする。
【００２８】
本発明に係る第５の発明は、前記リソースデータは、ビットマップ画像データおよび印刷装置の状態を示すテキストメッセージデータを含むことを特徴とする。
【００２９】
本発明に係る第６の発明は、前記印刷装置のＣＰＵとは独立したＣＰＵを備えることを特徴とする。
【００３０】
本発明に係る第７の発明は、複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を前記共有制御モジュールにより解析して機種依存のアプリケーションプログラムであるか否かを判断する判断ステップ（図４のステップＳ４０４）と、前記判断ステップにより機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する固有制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得ステップ（図４のステップＳ４０５〜Ｓ４０７）と、前記アプリケーション取得ステップが取得する機種依存のアプリケーションプログラムを前記共有制御モジュールに組み入れて拡張されるアプリケーションプログラムを実行させる実行制御ステップ（図４のステップＳ４０１０）とを備えることを特徴とする。
【００３１】
本発明に係る第８の発明は、複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、前記クライアント装置からの要求に従って、該要求されたアプリケーション名を含む起動要求情報を解析して機種依存のアプリケーションプログラムであるか否かを判断する判断ステップ（図４のステップＳ４０４）と、前記判断ステップにより機種依存のアプリケーションプログラムであると判断した場合、前記印刷装置が管理する制御モジュールから要求されている機種依存のアプリケーションプログラムを取得するアプリケーション取得ステップ（図４のステップＳ４０７）とを備えることを特徴とする。
【００３２】
本発明に係る第９の発明は、複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、アプリケーションプログラムをメモリ上で実行するアプリケーション実行ステップと、前記アプリケーション実行ステップにより実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令の機種依存種別を判断する機種依存判定ステップ（図６のステップＳ６０２）と、前記機種依存判定ステップによる判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換する命令変換ステップ（図６のステップＳ６０３）と、前記命令変換ステップにより変換された命令を前記制御モジュールに転送する命令転送ステップ（図６のステップＳ６０６）と、前記命令転送ステップによって転送された命令の処理結果を前記制御モジュールから取得して、前記メモリに記憶させる命令結果取得ステップ（図６のステップＳ６０７，Ｓ６０９）とを備えることを特徴とする。
【００３３】
本発明に係る第１０の発明は、複数の印刷装置とネットワーク上のクライアント装置と通信可能なネットワークインタフェースカード装置に実装可能で、かつ複数の印刷装置を制御するために制御モジュールおよび前記クライアント装置と通信制御を行うアプリケーションプログラムを記憶するプログラム記憶手段を備えるプリンタサーバにおけるプログラム実行方法であって、アプリケーションプログラムを前記メモリ上で実行するアプリケーション実行ステップと、前記アプリケーション実行ステップにより実行されるアプリケーションプログラムに従って、要求された処理命令を解析し、命令種別からリソースデータ取得命令を識別するリソース取得命令識別ステップ（図９に示すステップＳ９０２）と、前記リソース取得命令識別ステップにより前記処理命令がリソース取得命令であると識別された場合に、該リソース取得命令が要求するリソースデータの機種依存性を判定する機種依存判定ステップ（図９に示すステップＳ９０３）と、前記機種依存判定ステップの判定結果に従い、要求された処理命令を前記制御モジュールの命令書式に変換して前記制御モジュールに転送する命令転送ステップ（図９に示すステップＳ９０４，Ｓ９０５）と、前記命令転送ステップによって転送された命令の処理結果を前記制御モジュールからリソースデータとして取得するリソースデータ取得ステップ（図９に示すステップＳ９０７）とを備えることを特徴とする。
【００３４】
本発明に係る第１１の発明は、前記リソースデータは、ビットマップ画像データおよび印刷装置の状態を示すテキストメッセージデータを含むことを特徴とする。
【００３５】
本発明に係る第１２の発明は、第７〜第１１の発明のいずれかのプログラム実行方法を実行させるためのプログラムをコンピュータが読み取り可能な記憶媒体に記録したことを特徴とする。
【００３６】
発明に係る第１３の発明は、第７〜第１１の発明のいずれかのプログラム実行方法を実行させるためのプログラムであることを特徴とする。
【発明の効果】
【００３７】
本発明によれば、プリンタサーバの記憶容量を拡張することなく、クライアント装置とプリンタ装置との制御に係る汎用性の高いアプリケーションを記憶するだけで、プリンタ装置側の機能や仕様変更にも柔軟に適応したアプリケーションを自在に実行させることができるとともに、接続されるプリンタ装置の仕様変更や新規に開発される印刷装置を支障なく制御するアプリケーションを自在に実行させることができる環境を構築できる。
【００３８】
また、プリンタ固有のリソースについては、プリンタ装置側からリソースデータを取得して処理できるため、複数のプリンタ装置で共有するアプリケーションを記憶するメモリ容量を備えるだけで、最新のプリンタ装置から拡張されたプリンタ装置に係るアプリケーションプログラムを安価なコストで実行できる利便性と汎用性に優れたプリンタサーバ機能を提供できる等の効果を奏する。
【発明を実施するための最良の形態】
【００３９】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００４０】
〔第１実施形態〕
図１は、本発明の第１実施形態を示すプリンタサーバを適用可能な印刷システムのハードウェア構成を説明するブロック図である。
【００４１】
図１において、１０００はプリンタで、ネットワークプリンタサーバ１５００とプリンタコントローラ１６００からなる異なる制御系を司る機器で構成されている。
【００４２】
ネットワークプリントサーバ１５００において、１はネットワークプリントサーバ用ＣＰＵ（ＣＰＵ）で、書き換え可能なＦｌａｓｈＲＯＭ３に記憶された制御プログラムに基づいてシステムバス４に接続されるネットワークコントローラ（ＬＡＮＣ）５を介してローカルエリアネットワーク（ＬＡＮ）２０００に接続されたホストコンピュータ等の複数の外部装置（不図示）と所定のネットワーク通信プロトコルを用いて、前記外部装置から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御し、拡張インタフェースコントローラ（ＥＸＰＣ）７を介して接続されるプリンタコントローラ１６００に対して適切なデータ転送制御を行う。
【００４３】
また、ＦｌａｓｈＲＯＭ３には、図４，図５，図６のフローチャートで示されるようなＣＰＵ１の制御プログラムも記憶されている。
【００４４】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等の一時記憶領域をして用いられる。ＬＥＤ６はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ（ＬＡＮＣ）５とローカルエリアネットワーク（ＬＡＮ）２０００の電気的な接続状態（ＬＩＮＫ）やネットワーク通信モード（１０Ｂａｓｅや１００Ｂａｓｅ、全二重、半二重）等の各種動作状態をＬＥＤの点滅パターンや色で示すことが可能となっている。
【００４５】
さらに、ネットワークプリントサーバ１５００とプリンタコントローラ１６００を繋ぐ拡張インタフェース１７は、図示しないコネクタで構成されておりネットワークプリントサーバ１５００のみが着脱し、同じ構成を持つ別のプリンタ１０００にネットワークプリントサーバ１５００を装着することも可能な構成となっている。
【００４６】
プリンタコントローラ１６００において、８はプリンタコントローラ用ＣＰＵ（ＣＰＵ）で、ＲＯＭ９に記憶された制御プログラム等あるいはディスクコントローラ（ＤＫＣ）１５を介して接続された外部メモリ１０に記憶された制御プログラムや後述する図１１に示すプリンタイメージ情報を含むリソースデータ（資源情報）等に基づいてシステムバス１１に接続される各種デバイスとのアクセスを統括的に制御し、拡張インタフェースコントローラ（ＥＸＰＣ）１３を介して接続されるネットワークプリントサーバ１５００から受信される印刷データを基にラスタコントローラ１２によって出力画像情報を生成し、プリントエンジン１６に対して画像信号を出力する。
【００４７】
１４は前記ＣＰＵ８の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
【００４８】
１８は操作パネル（操作部）で、プリンタ１０００の動作モード等の設定や印刷データの取り消し等の操作を行うためのボタンおよびプリンタ１０００の動作状態を示す液晶パネルやＬＥＤ等の表示部が配されている。
【００４９】
なお、本図で示したプリントエンジン１６は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華（熱転写）方式等が挙げられる。
【００５０】
図２は、本発明の実施形態に好適な印刷システムにおけるプリンタ１０００内の制御機器であるネットワークプリントサーバ１５００およびプリンタコントローラ１６００の各記憶デバイスに記憶された制御プログラム内のソフトウエア構成を説明するブロック図である。
【００５１】
なお、上記各制御プログラムは各制御機器のＣＰＵによってプログラムが解析され処理される。
【００５２】
１５０１はオペレーティングシステムで、ネットワークプリントサーバ１５００の基本的なデータの入出力制御を統括する。さらに、前記オペレーティングシステム１５０１内にはプログラム／データ記憶部となるＲＯＭ９との入出力制御を行うファイルシステム１５０５、プリンタコントローラ１６００と拡張インタフェース１７を介して通信制御を行う拡張インタフェースドライバ１５０６、ローカルエリアネットワーク（ＬＡＮ）２０００の通信媒体を介して不図示のホストコンピュータ等の外部装置と通信を行うネットワークインタフェースドライバ１５０７を内包している。
【００５３】
１５０２はプログラムアプリケーションプログラムインタフェース（ＡＰＩ）であり、ネットワークプリントサーバ１５００で動作するユーザアプリケーション１５０３やプリンタ１０００やユーザアプリケーションの登録・管理を行う管理アプリケーション１５０４等のアプリケーションプログラムに対して前記オペレーティングシステム１５０１が備える各種機能を提供する。
【００５４】
また、前記アプリケーションプログラムインタフェース１５０２で提供される機能は、印刷データの送受信機能を提供するデータ転送ＡＰＩ１５０２−１、ビットマップ画像（後述する図１１に示すプリンタの給紙仕様を画像として表示するためのビットマップ画像を含む）や表示メッセージ等のリソースデータの入出力制御を行うリソース制御ＡＰＩ１５０２−２、プリンタ１０００の再起動や設定値の初期化や設定等の制御を行うプリンタ制御ＡＰＩ１５０２−３、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御ＡＰＩ１５０２−４、ネットワークプリントサーバ１５００の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行うプリントサーバ制御ＡＰＩ１５０２−５を備える。
【００５５】
プリンタコントローラ１６００において、１６０１はオペレーティングシステムで、プリンタコントローラ１６００の各種処理制御を統括する。オペレーティングシステム１６０１は、内部にプリントエンジンとの通信制御を行うプリントエンジン制御部１６０３およびネットワークプリントサーバ１５００から参照されるビットマップ画像やエラーメッセージ等の機種依存リソースおよびネットワークプリントサーバ上で動作する機種依存アプリケーションプログラム等を記憶する機種依存リソース／プログラム記憶部１０との入出力制御を行うファイルシステム１６０４を内包している。
【００５６】
１６０２は拡張インタフェース制御部であり、拡張インタフェース１７を介してネットワークプリントサーバ１５００との通信制御を行う。さらに、前記拡張インタフェース制御部は、制御種別毎に印刷データの入出力を制御するデータ転送論理インタフェース１６０２−１、機種依存リソース／プログラム記憶部としての外部メモリ１０に記憶された各種データの入出力を制御するリソース制御論理インタフェース１６０２−２、プリンタ１０００の再起動や設定値の初期化や設定等の制御を行うプリンタ制御論理インタフェース１６０２−３、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェース１６０２−４を備えており、各論理インタフェースを介してネットワークプリントサーバ１５００から要求された命令をオペレーティングシステム１５０１に対して転送し、その処理結果をネットワークプリントサーバ１５００に対して返信する。
【００５７】
図３は、図２に示したネットワークプリントサーバ１５００で動作するアプリケーションプログラムの記述例を示す図であり、本発明の好適な一例としてＪａｖａ（登録商標）言語による記述例を示している。
【００５８】
図３において、３０１に示される行は、図２で説明したデータ転送ＡＰＩを呼び出す例であり、"ｐｒｉｎｔｅｒ．ｏｕｔｄａｔａ（"Ｔｅｓｔ"）"がデータ転送ＡＰＩでここでは"Ｔｅｓｔ"というテキストデータを印字データとしてプリンタコントローラを介してプリントエンジンから印刷せよという命令であり、処理結果が"ｒｅｓｕｌｔ"に数値型として格納される。
【００５９】
３０２に示される行は、前記３０１の行で指示された処理結果を標準出力先例えば、プリンタ１０００の操作パネル１７のＬＣＤ表示部やアプリケーションを呼び出し元であるホストコンピュータのブラウザ表示部にテキストメッセージ変換して表示する命令の記述例である。
【００６０】
図４は、本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートであり、ネットワークプリントサーバ１５００上で動作するアプリケーションプログラムの起動処理手順に対応する。なお、Ｓ４０１〜Ｓ４０１１は各処理ステップを示し、ローカルエリアネットワークＬＡＮ２０００に接続されたホストコンピュータ等の外部装置（クライアント装置）から本プリンタ１０００に対してアプリケーションの起動要求を受信した場合の処理の流れに対応する。
【００６１】
また、各ステップに対応する制御手順はネットワークプリントサーバ１５００のＦｌａｓｈＲＯＭ３に記憶されている。
【００６２】
ステップＳ４０１において、ＬＡＮ２０００を介して不図示のホストコンピュータ等の外部装置からアプリケーション起動要求命令を受信すると、ステップＳ４０２で受信したアプリケーション起動要求命令からアプリケーションの格納先情報を含むＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を取得する。
【００６３】
そして、ステップＳ４０３で、前記ＵＲＬから本プリンタ１０００内の格納先情報を抽出する。例えば指定されたアプリケーションのＵＲＬが、「ｈｔｔｐ：／／１９２．１６８．０．２１５／ａｂｃ／ｘｙｚ．ｊａｖａ（登録商標）」の場合は、「ｈｔｔｐ：／／」はスキームであり、「１９２．１６８．０．２１５」は本プリンタ装置自身のネットワークアドレスを示すものであるため、格納先情報として抽出される情報は、"／ａｂｃ／ｘｙｘ．ｊａｖａ（登録商標）"となる。
【００６４】
次に、ステップＳ４０４で、格納先情報の文字列が"／ｄｅｖ／"で始まっているかの判定を行う。"／ｄｅｖ／"で始まっていると判定した場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ１６００であると判断し、ステップＳ４０５へ進み、プリンタコントローラ１６００に対して、図２で説明したようなプログラムアプリケーションインタフェース１５０２（ＡＰＩ）を用いてアプリケーションプログラムの取得要求を発行する。
【００６５】
そして、ステップＳ４０６でプリンタコントローラ１６００からの応答結果を判断し、要求したアプリケーションプログラムが取得できたと判断した場合には、ステップＳ４０７へ進みアプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした後、ステップＳ４０１０へ進んで、アプリケーションプログラムを起動して、本処理を終了する。
【００６６】
一方、ステップＳ４０６で、プリンタコントローラ１６００から要求したアプリケーションプログラムが取得できなかったと判断した場合には、ステップＳ４０１１へ進み、アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知した後、本処理を終了する。
【００６７】
一方、ステップＳ４０４で、格納先情報の文字列が"／ｄｅｖ／"で始まっていないと判断した場合には、ステップＳ４０８へ進み、ネットワークプリントサーバ１５００内の記憶部内に該当するアプリケーションプログラムが存在するか判定して、該当するアプリケーションプログラムが存在すると判断した場合には、ステップＳ４０９へ進み、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした後、ステップＳ４０１０へ進んで、アプリケーションプログラムを起動して、本処理を終了する。
【００６８】
一方、ステップＳ４０８で、要求されたアプリケーションが存在しないと判定した場合には、ステップＳ４０１１へ進み、アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知した後、本処理を終了する。
【００６９】
〔第２実施形態〕
図５は、本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートであり、ネットワークプリントサーバ１５００上で動作するアプリケーションプログラムの起動処理手順に対応する。なお、Ｓ５０１〜Ｓ５０９は各処理ステップを示し、プリンタ１０００の起動時にネットワークプリントサーバ１５００の所定の記憶領域に予め自動起動アプリケーションとして指定されたアプリケーションを起動する場合の処理の流れに対応する。
【００７０】
また、各ステップに対応する制御手順はネットワークプリントサーバ１５００のＦｌａｓｈＲＯＭ３に記憶されている。
【００７１】
プリンタ１０００が電源ＯＮおよびリセットによる再起動されると、ステップＳ５０１で、ネットワークプリントサーバ１５００の所定の記録領域に自動起動するアプリケーションの格納情報が存在するか判定して、自動起動するアプリケーションの格納情報が存在すると判定した場合、ステップＳ５０２へ進み、アプリケーション格納先情報を取得し、さらにステップＳ５０３において、前記アプリケーション格納先情報の文字列が"／ｄｅｖ／"で始まっているかの判定を行う。
【００７２】
ここで、"／ｄｅｖ／"で始まっていると判定した場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ１６００であると判断し、ステップＳ５０４へ進み、プリンタコントローラ１６００に対して図２で説明したようなＡＰＩを用いてアプリケーションプログラムの取得要求を発行する。
【００７３】
次に、ステップＳ５０５で、プリンタコントローラ１６００からの応答結果を判断し、要求したアプリケーションプログラムが取得できたと判断した場合には、ステップＳ５０６へ進み、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした後、ステップＳ５０９へ進んで、アプリケーションプログラムを起動して、本処理を終了する。
【００７４】
一方、ステップＳ５０５で、プリンタコントローラ１６００から要求したアプリケーションプログラムが取得できなかったと判断した場合には、直ちに処理を終了する。
【００７５】
一方、ステップＳ５０３で、格納先情報の文字列が"／ｄｅｖ／"で始まっていないと判断した場合には、ステップＳ５０７へ進み、ネットワークプリントサーバ１５００内の記憶部に該当するアプリケーションプログラムが存在するか判定して、該当するアプリケーションプログラムが存在すると判定した場合には、ステップＳ５０８へ進みアプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした後、ステップＳ５０９へ進んでアプリケーションプログラムを起動して、本処理を終了する。
【００７６】
一方、ステップＳ５０７で要求されたアプリケーションが存在しないと判定した場合には、直ちに処理を終了する。
【００７７】
一方、ステップＳ５０１で、自動起動するアプリケーションの格納情報が存在しないと判断した場合にも同様に直ちに本処理を終了する。
【００７８】
〔第３実施形態〕
図６は、本発明に係る印刷装置における第３のデータ処理手順の一例を示すフローチャートであり、ネットワークプリントサーバ１５００上で動作するアプリケーションプログラム内に記述された命令の処理手順に対応する。なお、Ｓ６０１〜Ｓ６１０は各処理ステップを示し、プリンタ１０００の起動時にネットワークプリントサーバ１５００の所定の記憶領域に予め自動起動アプリケーションとして指定されたアプリケーションを起動する場合の処理の流れに対応する。また、各ステップに対応する制御手順はネットワークプリントサーバ１５００のＦｌａｓｈＲＯＭ３に記憶されている。
【００７９】
図７は、図２に示したプリンタコントローラ１６００により変換される命令コードの命令書式例を示す図であり、図８は、図２に示したプリンタコントローラ１６００から返信される処理結果の応答書式例を示す図である。
【００８０】
図４もしくは図５に従ってアプリケーションプログラムが起動すると、ステップＳ６０１において、前記アプリケーションプログラム内に含まれる一命令を取り出し、解析処理を行う。そして、ステップＳ６０２において、命令種別がプリンタコントローラ１６００に依存する命令であるかどうかを判断して、依存すると判断した場合には、ステップＳ６０３へ進み、例えば図７で示すようなプリンタコントローラ１６００の命令書式に従って命令コードを変換し、ステップＳ６０４で、前記変換した命令コードを拡張インタフェース１７を介してプリンタコントローラ１６００へ送信する。
【００８１】
そして、ステップＳ６０５で、ネットワークプリントサーバ１５００から送信された命令コードに対してプリンタコントローラ１６００からの応答の有無を判断し、応答があったと判断した場合は、ステップＳ６０６へ進み、プリンタコントローラ１６００から返信された処理結果を受信する。そして、プリンタコントローラ１６００から返信された前記処理結果は、例えば図８に示されるような書式で返信されるため、さらに、ステップＳ６０７で、元のプログラム命令の処理結果の書式に変換し、ステップＳ６０９へ進み、プログラム命令の処理結果をネットワークプリントサーバ１５００の所定のメモリ空間（例えばＲＡＭ２上に確保される）に格納する。
【００８２】
次に、ステップＳ６１０で、後続のプログラム命令の有無を確認し、次の命令が存在する場合には再度、ステップＳ６０１へ戻り以降処理を繰り返し、次の命令が存在しないと判断した場合には、本処理を終了する。
【００８３】
一方、ステップＳ６０５で、プリンタコントローラ１６００から送信した命令コードの応答が一定期間内に受信できなかった場合には、直ちにプログラム処理を終了する。
【００８４】
〔第４実施形態〕
図９は、本発明に係る印刷装置における第４のデータ処理手順の一例を示すフローチャートであり、ネットワークプリントサーバ１５００上で動作するアプリケーションプログラム内に記述された命令の処理手順に対応する。なお、Ｓ９０１〜Ｓ９１０は各ステップを示し、アプリケーションプログラムの命令を解析し、ビットマップ画像等のリソースデータを取得する命令を処理する場合の処理の流れに対応する。
【００８５】
また、各ステップに対応する制御手順はネットワークプリントサーバ１５００のＦｌａｓｈＲＯＭ３に記憶されている。
【００８６】
図４もしくは図５に従ってアプリケーションプログラムが起動すると、ステップＳ９０１において、前記アプリケーションプログラム内に含まれる一命令を取り出し、解析処理を行う。
【００８７】
図１０は、図１に示したプリンタコントローラ１６００から返信されるリソースデータの他の一例を示す図であり、印刷装置の状態を示すテキストメッセージデータ例である。
【００８８】
図１０において、例えばプリンタの状態を示すステータスコード（一般的には各プリンタ状態に対応した一意の値が予め定義されており、所定の通知設定手段（図示省略）よって予めプリンタコントローラ１６００に設定しておくことで、状態変化が発生した場合や、ネットワークプリントサーバ１５００からの状態問い合わせ命令（図示省略）の返信結果として状態を示す値が返される。
【００８９】
この図では、例えば、プリンタコントローラ１６００にて発行されたステータスコード４０５００に対応するテキストメッセージを本リソースデータ取得要求関数を用いて取得した場合の例である。ファイル名として、ステータスコードとファイル名の拡張子に取得したい言語を示す文字列となる。
【００９０】
本実施形態ではステータスコード４０５００と日本語を示すjpとをドットでつなげて示すファイル名として「40500.jp」となる。このファイル40500.jpが、ステータス発生に応じて生成又は予めＲＡＭ２又はFlashＲＯＭ３に格納される。
【００９１】
同様に英語の場合は40500.engと命名規則になっている。これらのファイル名を指示することで所望の言語でステータスコードに対応したプリンタの状態を示すテキストメッセージをプリンタコントローラ１６００が返信する。
【００９２】
そして、ステップＳ９０２で、リソースデータ取得命令であるかどうかを判断して、リソースデータ取得命令であると判断した場合には、さらにステップＳ９０３で、前記リソースデータ取得命令によって要求されるリソースデータの種別が機種依存データか否かを判定し、機種依存リソースデータであると判断した場合は、ステップＳ９０４へ進む。
【００９３】
そして、ステップＳ９０４で、プリンタコントローラ１６００へ対して、図１０で示すようなプリンタコントローラ１６００に対する命令書式に従い、前記機種依存リソースデータを取得する命令コードに変換する。
【００９４】
図１１は、図２に示したプリンタコントローラ１６００に対する機種依存リソースデータを取得するための命令コードの一例を示す図である。
【００９５】
図１１に示す第１の領域「呼び出し関数番号」は、プリンタコントローラ１６００が提供する各種制御機能毎に予め一意の番号が定義されており、本領域にリソースデータ取得要求関数に該当する番号を設定することでプリンタコントローラ１６００において所望のリソースデータの取得処理が行なわれる。
【００９６】
第２の領域「引数データサイズ」は前記呼び出し関数に対する引数を付与する際に、後述の引数データのデータサイズを示す領域である。第３の領域「引数データ」に呼び出し関数への引数データを設定する。なお、前記リソースデータ取得要求関数の場合、本領域にリソースデータのファイル名を示す文字列データを設定する。
【００９７】
そして、ステップＳ９０５で、ステップＳ９０４で変換したリソースデータ取得要求命令をプリンタコントローラ１６００へ送信し、ステップＳ９０６において、命令の処理結果を判定し、プリンタコントローラ１６００にて前記リソースデータ取得命令が正常に処理されたと判断した場合（応答有りと判断した場合）には、ステップＳ９０７において、プリンタコントローラ１６００から応答データとして返信されるリソースデータを受信し、ステップＳ９０９へ進む。
【００９８】
図１２は、図２に示したプリンタコントローラ１６００から返信されるリソースデータの一例を示す図であり、リソースデータが、例えば印刷装置の概観を示すビットマップ画像データの例である。
【００９９】
図１２では、例えばファイル名が"Ｄｅｖｉｃｅ１．ｇｉｆ"の場合、給紙カセットが一段のみのビットマップ画像データがプリンタコントローラ１６００から返信される。
【０１００】
一方、ステップＳ９０２でリソースデータ取得命令でないと判断した場合、あるいはステップＳ９０３で機種依存リソースデータの取得命令でないと判断した場合には、ステップＳ９０８へ進み、ネットワークプリントサーバ１５００において前記命令処理を行い、ステップＳ９０９へ進む。
【０１０１】
そして、ステップＳ９０９で処理されたプログラム命令の処理結果を、ネットワークプリントサーバ１５００の記憶領域に格納し、ステップＳ９１０で後続のプログラム命令が存在するかを判定して、後続のプログラム命令が存在すると判定した場合には、再度ステップＳ９０１へ戻り以降上述した処理の流れを繰り返し、後続のプログラム命令が存在しないと判断した場合には、直ちに処理を終了する。
【０１０２】
〔他の実施形態〕
第１、第２実施形態において、アプリケーションプログラムの格納先の判定手段として、ＵＲＬから抽出した文字列に"／ｄｅｖ／"が存在するか否かによって格納先を特定する場合について説明したが、本例では、ＵＲＬ自身が格納先情報を文字列として記す結果となるため、格納先を内部情報として隠蔽化したい場合には適当ではない。
【０１０３】
そこで、この対処手段として、予めアプリケーションプログラムの名称毎に格納先を識別できるテーブルをネットワークプリントサーバ１５００内に保持して、このテーブル情報に基づいて格納先を特定するという手法が挙げられる。この手法によればＵＲＬに格納先を示す文字列を含む必要がなくなり、格納先情報を隠蔽化することが可能である。
【０１０４】
上記実施形態によれば、アプリケーションプログラムの機種依存性の有無によって、アプリケーションプログラムの保存先をネットワークプリントサーバ１５００側とプリンタコントローラ１６００側とで分散化して保持管理することが可能となるため、共通モジュールであるネットワークカード側に不必要なデータ（この例でいえば、機種に依存するデータ）を保持する必要がなくなり、ネットワークカード装置側の記憶容量を削減できる。
【０１０５】
また、別の観点からみた場合、機種依存のあるアプリケーションをネットワークカード装置側に保持しないことで、ユーザが誤って他の機種でしか動作しないアプリケーションプログラムを起動させてしまうといったミスを防止できるという効果も期待できる。
【０１０６】
さらに、前記アプリケーションプログラムを実行する際にも、プログラム内の命令種別に応じて、命令処理をネットワークカード装置側、印刷装置本体側にそれぞれ処理を分散化できるため命令処理の効率化が図れると共に、命令処理に関わる印刷装置本体の機種依存を含む固有情報をネットワークカード装置で保持する必要がなくなるため、ネットワークカード装置自身のプログラム容量を削減することが可能となり、将来新たな印刷装置本体が追加されてもネットワークカード装置側に改変を加える必要がなくなり、流用性の向上にも寄与できる。
【０１０７】
以下、図１３に示すメモリマップを参照して本発明に係る印刷装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１０８】
図１３は、本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１０９】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１１０】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１１１】
本実施形態における図４〜図６および図９に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１１２】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１３】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１４】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１５】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１１６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１１８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０１２２】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【０１２３】
なお、本発明は、上記した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【０１２４】
【図１】本発明の第１実施形態を示す印刷システムのハードウェア構成を説明するブロック図である。
【図２】本発明の実施形態に好適な印刷システムにおけるプリンタ内の制御機器であるネットワークプリントサーバおよびプリンタコントローラの各記憶デバイスに記憶された制御プログラム内のソフトウエア構成を説明するブロック図である。
【図３】図２に示したネットワークプリントサーバで動作するアプリケーションプログラムの記述例を示す図である。
【図４】本発明に係る印刷装置における第１のデータ処理手順の一例を示すフローチャートである。
【図５】本発明に係る印刷装置における第２のデータ処理手順の一例を示すフローチャートである。
【図６】本発明に係る印刷装置における第３のデータ処理手順の一例を示すフローチャートである。
【図７】図２に示したプリンタコントローラにより変換される命令コードの命書式例を示す図である。
【図８】図２に示したプリンタコントローラから返信される処理結果の応答書式例を示す図である。
【図９】本発明に係る印刷装置における第４のデータ処理手順の一例を示すフローチャートである。
【図１０】図１に示したプリンタコントローラから返信されるリソースデータの他の一例を示す図である。
【図１１】図２に示したプリンタコントローラに対する機種依存リソースデータを取得するための命令コードの一例を示す図である。
【図１２】図２に示したプリンタコントローラから返信されるリソースデータの一例を示す印刷装置の概観を示すビットマップ画像例を示す図である。
【図１３】本発明に係る印刷装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１２５】
１，８  ＣＰＵ
２，１４  ＲＡＭ
３  ＦｌａｓｈＲＯＭ
５  ＬＡＮＣ
９  ＲＯＭ
１５００  ネットワークプリントサーバ
１６００  プリンタコントローラ
【図１】
2005149087.tif 000003
【図２】
2005149087.tif 000004
【図３】
2005149087.tif 000005
【図４】
2005149087.tif 000006
【図５】
2005149087.tif 000007
【図６】
2005149087.tif 000008
【図７】
2005149087.tif 000009
【図８】
2005149087.tif 000010
【図９】
2005149087.tif 000011
【図１０】
2005149087.tif 000012
【図１１】
2005149087.tif 000013
【図１２】
2005149087.tif 000014
【図１３】
2005149087.tif 000015