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