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