(57)【要約】【課題】  アプリケーションプログラム毎に、利用可能なアプリケーションプログラムインタフェースを制限することができるようにする。【解決手段】  アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能なアプリケーションプログラムインタフェース（ＡＰＩ）を判断し、その判断結果に応じてＡＰＩの動作を制御するようにして、アプリケーションプログラム毎に、利用可能なＡＰＩを任意に設定し制限することができるようにする。【選択図】  図１０
2005258924.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置であって、
上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースと、
上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、
上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする情報処理装置。
【請求項２】
上記アプリケーションプログラムのライセンス情報から利用可能な上記アプリケーションプログラムインタフェースを示す情報を抽出する情報抽出手段をさらに備え、
上記判断手段は、上記情報抽出手段で抽出した情報に基づいて、利用可能な上記アプリケーションプログラムインタフェースを判断することを特徴とする請求項１記載の情報処理装置。
【請求項３】
上記動作制御手段は、具備している上記アプリケーションプログラムインタフェースのうち、上記情報抽出手段で抽出した情報にて指定されていない上記アプリケーションプログラムインタフェースの動作を停止させることを特徴とする請求項２記載の情報処理装置。
【請求項４】
上記動作制御手段は、具備している上記アプリケーションプログラムインタフェースのうち、上記情報抽出手段で抽出した情報にて指定されている上記アプリケーションプログラムインタフェースの動作を許可することを特徴とする請求項２記載の情報処理装置。
【請求項５】
上記アプリケーションプログラムのライセンス情報を格納する第１の記憶手段と、
上記第１の記憶手段に格納されたライセンス情報と、上記画像形成装置が有する第２の記憶手段に格納された当該アプリケーションプログラムのライセンス情報とを比較し、上記２つのライセンス情報が一致している場合には、当該アプリケーションプログラムを起動させる起動制御手段とをさらに備えることを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
アプリケーションプログラムをネットワークを介して受信するアプリケーション受信手段と、
前記アプリケーション受信手段により受信されるアプリケーションプログラムのライセンス情報を受信するライセンス情報受信手段とを備えることを特徴とする請求項１〜５の何れか１項に記載の情報処理装置。
【請求項７】
画像形成装置と、当該画像形成装置に装着可能であるとともに所定のアプリケーションプログラムを実行可能な情報処理装置とを有する画像形成システムであって、
入力データに基づいて画像情報を生成し出力する画像形成手段と、
上記アプリケーションプログラムに対して上記画像形成手段に係る制御機能を提供するアプリケーションプログラムインタフェースと、
上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、
上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする画像形成システム。
【請求項８】
画像形成装置と、当該画像形成装置に装着可能であるとともに当該画像形成装置と別個のＣＰＵを有する情報処理装置とを有する画像形成システムであって、
上記画像形成装置との入出力制御機能を提供するアプリケーションプログラムインタフェースと、
外部から供給される上記アプリケーションプログラムを上記画像形成装置又は上記情報処理装置に格納するとともに、当該アプリケーションプログラムのライセンス情報を上記画像形成装置及び上記情報処理装置の双方に格納する格納手段と、
上記アプリケーションプログラムを上記情報処理装置にて実行する際に、当該アプリケーションプログラムのライセンス情報から利用可能な上記アプリケーションプログラムインタフェースを示す記述を抽出して、利用可能なアプリケーションプログラムインタフェースを判断する判断手段と、
上記判断手段での判断結果に従って、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする画像形成システム。
【請求項９】
画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置の制御方法であって、
情報処理装置は、上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースを備え、
上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断ステップと、
上記判断ステップでの判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御ステップとを有することを特徴とする制御方法。
【請求項１０】
画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置のコンピュータに実行させるプログラムであって、
上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースを備え、
上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、
上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段として上記コンピュータを機能させるためのプログラム。
【請求項１１】
請求項１０記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、及び画像形成システムに関し、特に、画像形成装置に装着可能なネットワークインタフェース、それを用いた画像形成システムに用いて好適なものである。
【背景技術】
【０００２】
近年、インターネット等のネットワークの普及にともない、プリンタ等の印刷装置もネットワークを介して使われる形態が一般化してきた。通常、高速機やカラー機などの高価格な印刷装置では、ネットワークインタフェースは内蔵される傾向にあるが、モノクロ機などの低価格な印刷装置では、ネットワークインタフェースは本体には同梱されず、ネットワークカードモジュールとして別に供給される形態が一般的である。
【０００３】
この場合、印刷装置本体とネットワークカードモジュールはそれぞれが個々にＣＰＵを持ったインテリジェントな形態である。また、通常、ネットワークカードモジュール側にネットワーク経由での各種プリントサービスの統括制御を行うプリントサーバ機能を有しており、印刷装置とネットワークカードモジュールは接続インタフェースを介して通信を行い所望のサービスを実装している。これは逆に処理負荷の重いネットワークサービスをネットワークカードモジュールに実装させることが可能となり、相対的に印刷装置本体のＣＰＵやその周辺装置（デバイス）等のパフォーマンスを下げることができ、印刷装置本体のコスト削減をもたらしている。
【０００４】
ここで、印刷装置に係る従来のネットワークインタフェースは、例えばＬＰＲ（Line PRinter daemon protocol、仕様はRFC1179で規定）に代表されるような印刷データの送信だけできればよかったが、昨今印刷装置に対する情報管理というニーズが高くなり、付加技術として各種の手段が提供されている。
【０００５】
最も単純な例が、印刷データを送信するポートに情報管理データ（ジョブ制御言語＝Job Language）を付加する形態である。ジョブ制御言語は印刷データを送信するポートを共有する形態であるため、サービスポートを増加する必要がなく比較的実装が簡単ではある。しかし、印刷データ受信中にデータが大量に送信されるとポートを占有することとなり、情報管理データのやりとりが止まってしまうという問題があった。また、ネットワークにおけるＬＰＲプロトコルのような片方向型コネクションの場合には、そもそも情報取得ができないという欠点があった。
【０００６】
他の手法としては、ＳＮＭＰ（Simple Network Management Protocol）／ＭＩＢ（Management Information Base）（RFC1157）を使った方式がある。これはデータ送受信用の専用ポートを使用し、標準規格であるＳＮＭＰを使用する方法である。しかし、この方式は、ＳＮＭＰを受信してユーザインタフェース（UI）を提供する専用クライアントプログラムの独自開発が必要であるとともに、そもそも単純な情報のやり取りを行うプロトコルであるため、数字、文字列などの単純なデータベースしか提供できない。その結果、機器の構成を示すビットマップ画像などユーザインタフェースを構成する情報は、クライアントプログラムが所有せねばならず、それに伴いクライアントプログラムを機種対応にしなくてはいけないという問題点がある。
【０００７】
さらに、最近ではＨＴＴＰ（hypertext transfer protocol：RFC1945，RFC2616）を用いた方式が主流となりつつある。この方式によれば、ネットワークカードモジュールの中にＨＴＴＰサービスを提供して、機器情報に関するＨＴＭＬ（hypertext markup language）データやビットマップ画像といったウェブ（ＷＥＢ）コンテンツを提供する。そして、クライアントは、上記ＷＥＢコンテンツを一般的なＷＥＢブラウザを使用してグラフィカルユーザインタフェース（GUI）として表示させ、その操作を可能にすることで、クライアントプログラムを提供しなくても同様の効果を得ることが可能である。従来の方式ではクライアントプログラムが多種多様な機器に固有な情報（メッセージ文字列、ビットマップ画像）を管理する必要があったのに対して、上記方式は機器が自分の機種情報だけ持てばよいので短期間で製品を提供可能にするにはもっとも適する方法である。
【０００８】
しかしながら、上述したいずれの手法もネットワークカードモジュールに予め組み込まれた静的な機能のみを提供するものである。したがって、上述したいずれの手法においても、後から機能そのものを追加する、あるいは組み込まれた機能による制御方法を変更するといった動的なサービスの追加ができなかった。
【０００９】
そこで、最近になってＪａｖａ（Ｒ）（米国Sun Microsystems, Inc.の商標）言語を用いて作成されたアプリケーションプログラム（以下、「Ｊａｖａ（Ｒ）アプリケーションプログラム」と称す。）を、組み込み機器上に実装されたＪａｖａ（Ｒ）仮想マシン上で動作可能とするプラットフォーム技術が提案されている。この技術を用いることで印刷装置等の組み込み機器に後から新たな機能を追加することが可能となってきている。
【００１０】
例えば、Ｊａｖａ（Ｒ）アプリケーションプログラムを実行可能にするとともに、このアプリケーションプログラムを外部からダウンロード可能なように構成したマルチファンクション装置があった。詳細には、機能追加等を行うために操作者個人がカスタマイズした当該マルチファンクション装置上で動作可能なアプリケーションプログラムを、当該操作者を識別するためのＩＤ番号とともにファイルサーバに格納する。そして、マルチファンクション装置が作動されると、操作者のＩＤ番号を認識して、この操作者に対応するアプリケーションプログラムをファイルサーバからマルチファンクション装置にダウンロードし実行させることにより、機能追加等を行うことを可能にしている（例えば、特許文献１参照。）
【００１１】
Ｊａｖａ（Ｒ）アプリケーションプログラムを実行させるためのＪａｖａ（Ｒ）仮想マシンは、ネットワーク通信機能を始め、組み込み機器の制御に必要な各種機能を提供するためにアプリケーションプログラムインタフェース（API）を備えている。Ｊａｖａ（Ｒ）アプリケーションプログラムは、これらのＡＰＩを呼び出して組み込み機器に対する制御やネットワークを介して接続されたホストコンピュータからの要求等の処理を実行する。
【００１２】
【特許文献１】特開２０００−２９８５６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ここで、Ｊａｖａ（Ｒ）仮想マシン上で提供されるＡＰＩは、ネットワーク通信に必要な機能を含んでおり、ネットワーク通信プロトコルの処理を行う基本モジュールを共有する。そのため、Ｊａｖａ（Ｒ）仮想マシン上で提供されるＡＰＩは、通常、ネットワークカードモジュール上に実装される。
【００１４】
しかしながら、Ｊａｖａ（Ｒ）アプリケーションプログラムが使用するＡＰＩは、何ら使用を制限するものがなく、ネットワークモジュール上に実装されるすべてのＡＰＩは、どのようなアプリケーションプログラムからも利用可能であった。このため、Ｊａｖａ（Ｒ）アプリケーションプログラムが利用可能なＡＰＩを、アプリケーションプログラム毎に制限しようとすることが必要である。
【００１５】
本発明は、このような事情に鑑みてなされたものであり、アプリケーションプログラム毎に、利用可能なアプリケーションプログラムインタフェースを制限することができるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
本発明の情報処理装置は、画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置であって、上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースと、上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする。
【００１７】
本発明の画像形成システムは、画像形成装置と、当該画像形成装置に装着可能であるとともに所定のアプリケーションプログラムを実行可能な情報処理装置とを有する画像形成システムであって、入力データに基づいて画像情報を生成し出力する画像形成手段と、上記アプリケーションプログラムに対して上記画像形成手段に係る制御機能を提供するアプリケーションプログラムインタフェースと、上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする。
【００１８】
また、本発明の画像形成システムは、画像形成装置と、当該画像形成装置に装着可能であるとともに当該画像形成装置と別個のＣＰＵを有する情報処理装置とを有する画像形成システムであって、上記画像形成装置との入出力制御機能を提供するアプリケーションプログラムインタフェースと、外部から供給される上記アプリケーションプログラムを上記画像形成装置又は上記情報処理装置に格納するとともに、当該アプリケーションプログラムのライセンス情報を上記画像形成装置及び上記情報処理装置の双方に格納する格納手段と、上記アプリケーションプログラムを上記情報処理装置にて実行する際に、当該アプリケーションプログラムのライセンス情報から利用可能な上記アプリケーションプログラムインタフェースを示す記述を抽出して、利用可能なアプリケーションプログラムインタフェースを判断する判断手段と、上記判断手段での判断結果に従って、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段とを備えることを特徴とする。
【００１９】
本発明の情報処理装置の制御方法は、画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置の制御方法であって、情報処理装置は、上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースを備え、上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断ステップと、上記判断ステップでの判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御ステップとを有することを特徴とする。
【００２０】
本発明のプログラムは、画像形成装置に装着可能であるとともに、所定のアプリケーションプログラムを実行可能な情報処理装置のコンピュータに実行させるプログラムであって、上記アプリケーションプログラムに対して所定の制御機能を提供するアプリケーションプログラムインタフェースを備え、上記アプリケーションプログラムのライセンス情報に基づいて、当該アプリケーションプログラムが利用可能な上記アプリケーションプログラムインタフェースを判断する判断手段と、上記判断手段による判断結果に応じて、上記アプリケーションプログラムインタフェースの動作を制御する動作制御手段として上記コンピュータを機能させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、利用可能なアプリケーションプログラムインタフェースをアプリケーションプログラムのライセンス情報に基づいて判断し、判断結果に応じてアプリケーションプログラムインタフェースの動作を制御する。これにより、アプリケーションプログラム毎に、利用可能なアプリケーションプログラムインタフェースを任意に設定し、アプリケーションプログラムインタフェースの使用制限を制御することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明の一実施形態による情報処理装置及びそれを用いた画像形成システムを適用したプリンタ１０００のハードウェア構成例を示すブロック図である。
プリンタ１０００は、ネットワークカードモジュールとしてのネットワークプリントサーバ１５００とプリンタコントローラ１６００とを有し構成される。また、プリンタ１０００は、外部メモリ１０、プリントエンジン１６、及び操作パネル（操作部）１８を有する。
【００２３】
ネットワークプリントサーバ１５００は、ネットワークプリントサーバ用ＣＰＵ１、ＲＡＭ２、フラッシュメモリ（ＦｌａｓｈＲＯＭ）３、ネットワークコントローラ（ＬＡＮＣ）５、ＬＥＤ６、拡張インタフェースコントローラ（ＥＸＰＣ）７が、システムバス４を介して互いに通信可能に接続され構成されている。
【００２４】
ＣＰＵ１は、ＦｌａｓｈＲＯＭ３に記憶された制御プログラムを実行することで、システムバス４に接続された各構成部を統括的に制御し、例えばプリンタ１０００（プリンタコントローラ１６００）の制御やＬＡＮ２０００に接続された図示しない複数の外部装置（例えば、ホストコンピュータ等）との通信制御を行う。
例えば、ＣＰＵ１は、制御プログラムに基づいて、ＬＡＮＣ５を介して複数の外部装置から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御し、ＥＸＰＣ７を介して接続されるプリンタコントローラ１６００に対して適切なデータ転送制御を行う。なお、ＬＡＮ２０００に接続された外部装置との通信は、所定のネットワーク通信プロトコルを用いて行われる。
【００２５】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等の一時記憶領域として機能する。
ＦｌａｓｈＲＯＭ３は、制御プログラム等を記憶するための書き換え可能なメモリであり、例えば後述する図４、図５及び図６に示すようなフローチャートに従った処理を実行するためのＣＰＵ１の制御プログラムが記憶されている。
ＬＡＮＣ５は、ＬＡＮ２０００に接続された外部装置と双方向にデータをやりとりし、ＥＸＰＣ７は、プリンタコントローラ１６００と双方向にデータをやりとりする。
【００２６】
ＬＥＤ６は、ネットワークプリントサーバ１５００の動作状態を示す表示部として用いられる。ＬＥＤ６は、その点滅パターンや色により、例えばＬＡＮ２０００に対するＬＡＮＣ５の電気的な接続状態（ＬＩＮＫ）や、ネットワーク通信モード（１０ＢａＳｅＴや１００ＢａＳｅＴＸ、全二重や半二重）等の各種動作状態を示すことが可能なように構成されている。
【００２７】
プリンタコントローラ１６００は、プリンタコントローラ用ＣＰＵ８、ＲＡＭ１４、ＲＯＭ９、ラスタコントローラ１２、拡張インタフェースコントローラ（ＥＸＰＣ）１３、及びディスクコントローラ（ＤＫＣ）１５が、システムバス１１を介して互いに通信可能に接続され構成されている。
【００２８】
ＣＰＵ８は、ＲＯＭ９に記憶された制御プログラム等、あるいはＤＫＣ１５を介して接続された外部メモリ１０に記憶された制御プログラムやリソースデータ（資源情報）等に基づいて、システムバス１１に接続された各構成部（各種デバイス）を統括的に制御する。
例えば、ＣＰＵ８は、制御プログラム等に基づいて、ＥＸＰＣ１３を介して接続されるネットワークプリントサーバ１５００から印刷データを受信し、それに基づいてラスタコントローラ１２により出力画像情報を生成して画像信号をプリントエンジン１６に出力する。
【００２９】
ＲＯＭ９は、ＣＰＵ８の制御プログラム等を記憶する。
ＲＡＭ１４は、ＣＰＵ８の主メモリ、ワークエリア等として機能するＲＡＭである。ＲＡＭ１４は、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張可能なように構成されている。
ラスタコントローラ１２は、ネットワークプリントサーバ１５００からの印刷データが入力され、それに基づいて出力画像情報を生成し画像信号を出力する。ＥＸＰＣ１３は、ネットワークプリントサーバ１５００と双方向にデータをやりとりする。
【００３０】
ここで、ネットワークプリントサーバ１５００とプリンタコントローラ１６００とは拡張インタフェース１７により接続されている。拡張インタフェース１７は、図示しないコネクタを有し構成されており、ネットワークプリントサーバ１５００のみを着脱し、そのネットワークプリントサーバ１５００を同じ構成を持つ別の（例えば、機種の異なる）プリンタ１０００に装着可能なように構成されている。
【００３１】
プリントエンジン１６は、例えば電子写真方式（レーザービーム方式）やインクジェット方式や昇華（熱転写）方式等の公知の印刷技術を利用して、ラスタコントローラ１２より出力される画像信号に係る画像を出力する。
操作パネル１８は、プリンタ１０００の動作モード等の設定や印刷データの取り消し等の操作を行うためのボタン、及びプリンタ１０００の動作状態を示す液晶パネルやＬＥＤ等の表示部が配されている。
【００３２】
図２は、本発明の実施形態におけるプリンタ１０００内の制御機器であるネットワークプリントサーバ１５００及びプリンタコントローラ１６００が有する各記憶デバイスに記憶された制御プログラムにおけるソフトウェア構成例を示すブロック図である。なお、各制御プログラムは、各制御機器のＣＰＵ１、８によってプログラムが解析され処理される。
【００３３】
図２において、１５０１は、ネットワークプリントサーバ１５００の基本的なデータの入出力制御を統括するオペレーティングシステムである。オペレーティングシステム１５０１は、ファイルシステム１５０５、拡張インタフェースドライバ１５０６、及びネットワークインタフェースドライバ１５０７を有する。
【００３４】
ファイルシステム１５０５は、プログラム／データ記憶部１５０９やライセンス記憶部１５１１との間でデータの入出力制御を行う。ここで、プログラム／データ記憶部１５０９は、装着されるプリンタ１０００の機種に依存しない共通情報としてのアプリケーションプログラムやリソースデータを格納するものであり、ライセンス記憶部１５１１は、アプリケーションプログラムのライセンスコード（ライセンス情報）を格納するものである。
拡張インタフェースドライバ１５０６は、拡張インタフェース１７を介したプリンタコントローラ１６００とのデータ通信に係る通信制御を行う。ネットワークインタフェースドライバ１５０７は、ＬＡＮ２０００の通信媒体を介した外部装置とのデータ通信に係る通信制御を行う。
【００３５】
１５０２は、アプリケーションプログラムインタフェース（ＡＰＩ）であり、ネットワークプリントサーバ１５００で動作するユーザアプリケーション１５０３やユーザアプリケーションの登録・管理を行う管理アプリケーション１５０４等のアプリケーションプログラムにオペレーティングシステム１５０１が備える各種制御機能を提供する。
【００３６】
アプリケーションプログラムインタフェース１５０２は、データ転送ＡＰＩ、リソース制御ＡＰＩ、プリンタ制御ＡＰＩ、ジョブ制御ＡＰＩ、プリントサーバ制御ＡＰＩ、ハードディスク（ＨＤＤ）制御ＡＰＩ、及びパネルＡＰＩなどを備える。
【００３７】
データ転送ＡＰＩは印刷データの送受信機能を提供する。リソース制御ＡＰＩはビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行い、プリンタ制御ＡＰＩはプリンタ１０００の再起動及び設定値の初期化や設定等の制御を行う。ジョブ制御ＡＰＩは印刷ジョブの取り消しや再印刷指示などを制御する。プリントサーバ制御ＡＰＩは、ネットワークプリントサーバ１５００の再起動及び設定値の初期化や設定、並びにアプリケーションプログラムの起動、登録、削除を行う。ハードディスク制御ＡＰＩはハードディスクドライブへの書き込み・読み出しなどを制御し、パネル制御ＡＰＩは操作パネル１８における表示の切り替えなどを制御する。
【００３８】
１６０１は、プリンタコントローラ１６００の各種処理制御を統括するオペレーティングシステムである。オペレーティングシステム１６０１は、プリントエンジン制御部１６０３及びファイルシステム１６０４を有する。
【００３９】
プリントエンジン制御部１６０３は、プリントエンジン１６との通信制御を行う。また、ファイルシステム１６０４は、機種依存リソース／プログラム記憶部１６１０やライセンス記憶部１６１２との間でのデータの入出力制御を行う。なお、機種依存リソース／プログラム記憶部１６１０は、プリンタ１０００の機種に依存する機種依存情報としてのアプリケーションプログラムやリソースデータ、例えばネットワークプリントサーバ１５００から参照されるビットマップ画像やエラーメッセージ等の機種依存リソース、及びネットワークプリントサーバ１５００上で動作する機種依存アプリケーションプログラム等を記憶する。また、ライセンス記憶部１６１２は、アプリケーションプログラムのライセンスコード（ライセンス情報）を記憶する。
【００４０】
１６０２は、拡張インタフェース制御部であり、拡張インタフェース１７を介してネットワークプリントサーバ１５００との通信制御を行う。さらに、拡張インタフェース制御部１６０２は、データ転送論理インタフェース、リソース制御論理インタフェース、プリンタ制御論理インタフェース、ジョブ制御論理インタフェース、ハードディスク（ＨＤＤ）制御論理インタフェース、及びパネル制御論理インタフェース等を備えており、各論理インタフェースを介してネットワークプリントサーバ１５００から要求された命令をオペレーティングシステム１６０１に転送し、その処理結果をネットワークプリントサーバ１５００に返信する。
【００４１】
データ転送論理インタフェースは制御種別毎に印刷データの入出力を制御し、リソース制御論理インタフェースは機種依存リソース／プログラム記憶部１６１０に記憶された各種データの入出力を制御する。プリンタ制御論理インタフェースはプリンタ１０００の再起動及び設定値の初期化や設定等の制御を行い、ジョブ制御論理インタフェースは印刷ジョブの取り消しや再印刷指示などの制御を行う。ハードディスク制御論理インタフェースはハードディスクドライブを制御し、パネル制御論理インタフェースは操作パネル１８を制御する。
【００４２】
図３は、ネットワークプリントサーバ１５００で動作するアプリケーションプログラムの記述例を示す図であり、一例としてＪａｖａ（Ｒ）言語による記述例を示している。
【００４３】
図３において、「result = printer.outdata("Test");」（図３における行３０１）は、上記図２を参照して説明したデータ転送ＡＰＩを呼び出す例である。「printer.outdata("Test")」が、データ転送ＡＰＩで“Test”というテキストデータを印字データとしてプリンタコントローラ１６００を介してプリントエンジン１６から印刷せよという命令を示しており、その処理結果が「result」に数値型（整数型）データとして格納される。
【００４４】
また、「System.out.println("Result="+result);」（図３における行３０２）は、行３０１で指示された処理結果を標準出力先、例えば、プリンタ１０００の操作パネル１８の表示部（液晶パネル）やアプリケーションの呼び出し元であるホストコンピュータ等のブラウザ表示部に、テキストメッセージ変換して表示する命令の記述例である。
【００４５】
図４は、本実施形態におけるネットワークプリントサーバ１５００上で動作するアプリケーションプログラムのインストーラの処理方法を示すフローチャートである。
【００４６】
ステップＳ１００１にて、ホストコンピュータ等のクライアント（外部装置）上でＷＷＷアプリケーション（例えば、Ｗｅｂブラウザ）を起動し、ネットワークプリントサーバ１５００上で動作するアプリケーションインストーラのＵＲＬを入力する。これによりネットワークプリントサーバ１５００にアクセスをする。
【００４７】
ステップＳ１００２にて、ネットワークプリントサーバ１５００は、クライアントからのアクセスを受け、アプリケーションインストーラを起動する。さらに、ネットワークプリントサーバ１５００は、図５に示すような、アプリケーションプログラムのファイル名入力欄１１０１、当該アプリケーションプログラムのライセンスコード入力欄１１０２、及びＯＫボタン１１０３等を備えるアプリケーションインストーラ画面を示すデータをクライアントに送信して、当該アプリケーションインストーラ画面をＷＷＷアプリケーション上（クライアントが備える表示部）に表示させる。
【００４８】
ステップＳ１００３にて、アプリケーションインストーラ画面を介して、インストールするアプリケーションプログラムに係るファイル名とライセンスコードを入力欄１１０１、１１０２に入力する。アプリケーションのファイル名及びライセンスコードが入力され、さらにＯＫボタン１１０３が押下されると、ステップＳ１００４にて、クライアントはネットワークプリントサーバ１５００にアプリケーションプログラム及びライセンスコードを送信する。
【００４９】
ネットワークプリントサーバ１５００は、ステップＳ１００５にて、受信したアプリケーションプログラムをプログラム／データ記憶部１５０９又はプリンタコントローラ１６００の機種依存リソース／プログラム記憶部１６１０に格納する。
【００５０】
さらに、ネットワークプリントサーバ１５００は、ステップＳ１００６にて、受信したライセンスコードを図６に示したような書式でラインセンス記憶部１５１１に格納し、ステップＳ１００７にて、拡張インタフェース制御部１６０２を介し、ライセンス記憶部１５１１に格納した書式と同様なライセンスコードをプリンタコントローラ１６００のライセンス記憶部１６１２に格納する。
【００５１】
図７は、上記図４に示したようにして行われるアプリケーションプログラムのインストール手順を示す図である。なお、図７に示す例では、クライアントはホストコンピュータとしている。
【００５２】
クライアント上でＷｅｂブラウザ等のＷＷＷアプリケーションを起動し、ネットワークプリントサーバ１５００上で動作するアプリケーションインストーラのＵＲＬを入力する（Ｐ１）ことで、ＨＴＭＬリクエストＤ１を発行しネットワークプリントサーバ１５００にアクセスする。ネットワークプリントサーバ１５００は、クライアントからのＨＴＭＬリクエストＤ１を受け取ると、アプリケーションインストーラを起動する（Ｐ２）とともに、ＨＴＭＬリクエストＤ１に対する応答としてＨＴＭＬレスポンスＤ２をクライアントに返す。このＨＴＭＬレスポンスＤ２により、クライアント側ではアプリケーションインストーラ画面が表示される（Ｐ３）。
【００５３】
クライアント側でアプリケーションインストーラ画面を介してインストールするアプリケーション名とライセンスコードを入力してＯＫボタンを押下すると（Ｐ４）、クライアントはアプリケーションプログラム及びそのライセンスコードＤ３をネットワークプリントサーバ１５００に送信する。
【００５４】
アプリケーションプログラムとライセンスコードを受信したネットワークプリントサーバ１５００は、受信したアプリケーションプログラムをプリンタコントローラ１６００の機種依存リソース／プログラム記憶部１６１０又はネットワークプリントサーバ１５００のプログラム／データ記憶部１５０９に格納する（Ｐ５）。
【００５５】
また、ネットワークプリントサーバ１５００は、受信したライセンスコードをネットワークプリントサーバ１５００のラインセンス記憶部１５１１に格納する（Ｐ６）。さらに、ネットワークプリントサーバ１５００は、拡張インタフェース制御部１６０２を介して同様なライセンスコードをプリンタコントローラ１６００のライセンス記憶部１６１２に格納する（Ｐ７）。
【００５６】
上述のようにして各データの格納が完了すると、ネットワークプリントサーバ１５００はインストール完了の通知Ｄ４をクライアントに対して行い、クライアント上のＷＷＷアプリケーションによりインストール完了の表示が行われる（Ｐ８）。
【００５７】
図８は、本実施形態におけるネットワークプリントサーバ１５００上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。なお、図８においては、ＬＡＮ２０００に接続されたホストコンピュータ等の外部装置からプリンタ１０００に対するアプリケーションプログラムの起動要求を受信した場合を示している。また、図８に示す制御手順を実行させるための制御プログラムは、上述したようにネットワークプリントサーバ１５００内のＦｌａｓｈＲＯＭ３に記憶されている。
【００５８】
ネットワークプリントサーバ１５００は、外部装置からＬＡＮ２０００を介してアプリケーション起動要求命令を受信する（ステップＳ４０１）と、受信したアプリケーション起動要求命令からアプリケーションプログラムの格納先情報を含むＵＲＬ（Uniform Resource Locator）を取得する（ステップＳ４０２）。
【００５９】
続いて、ネットワークプリントサーバ１５００は、ステップＳ４０２において取得したＵＲＬからアプリケーションプログラムの格納先情報を抽出する（ステップＳ４０３）。例えば、取得したＵＲＬが、“http://192.168.0.215/abc/xyz.java”の場合には、“http://”がスキーム、“192.168.0.215”がプリンタ１０００自身のネットワークアドレスを示すため、格納先情報として抽出される情報は"/abc/xyx.java"となる。
【００６０】
次に、ネットワークプリントサーバ１５００は、格納先情報の文字列が“/dev/”で始まっているか否かを判定する（ステップＳ４０４）。
上記判定の結果、格納先情報が“/dev/”の文字列で始まっている場合には、ネットワークプリントサーバ１５００は、起動要求されたアプリケーションプログラムの格納先がプリンタコントローラ１６００であると判断し、図２にて説明したようなＡＰＩを用いてプリンタコントローラ１６００にアプリケーションプログラムの取得要求を発行する（ステップＳ４０５）。
【００６１】
次に、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００からの応答結果を判断する（ステップＳ４０６）。この結果、要求したアプリケーションプログラムが取得できた場合には、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００のライセンス記憶部１６１２に格納されている該当するアプリケーションのライセンスコードを読み出し、自らのライセンス記憶部１５１１に格納されているライセンスコードと比較して一致しているか否かを判断する（ステップＳ４１３）。
【００６２】
ネットワークプリントサーバ１５００は、ライセンスコードが一致していなければ適正なアプリケーションプログラムではないと判断し、アプリケーション起動要求命令の送信元である外部装置にエラーを通知した（ステップＳ４１１）後、処理を終了する。一方、ライセンスコードが一致していた場合には、適正なアプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードする（ステップＳ４０７）。そして、アプリケーションプログラムを起動して（ステップＳ４１０）、処理を終了する。
【００６３】
一方、ステップＳ４０６においてプリンタコントローラ１６００から要求したアプリケーションプログラムが取得できなかった場合には、ネットワークプリントサーバ１５００は、アプリケーション起動要求命令の送信元である外部装置にエラーを通知した（ステップＳ４１１）後、処理を終了する。
【００６４】
また、ステップＳ４０４での判定の結果、格納先情報が“/dev/”の文字列で始まっていないと判定した場合には、ネットワークプリントサーバ１５００は、該当するアプリケーションプログラムがプログラム／データ記憶部１５０９に存在するか否かを判定する（ステップＳ４０８）。その結果、該当するアプリケーションプログラムが存在する場合には、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００のライセンス記憶部１６１２に格納されている該当するアプリケーションのライセンスコードを読み出し、自らのライセンス記憶部１５１１に格納されているライセンスコードと比較して一致しているか否かを判断する（ステップＳ４１２）。
【００６５】
ライセンスコードが一致していなければ適正なアプリケーションプログラムではないと判断し、アプリケーション起動要求命令の送信元である外部装置にエラーを通知した（ステップＳ４１１）後、処理を終了する。ライセンスコードが一致していた場合には、適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした（ステップＳ４０９）後、アプリケーションプログラムを起動して（ステップＳ４１０）、処理を終了する。
【００６６】
上記ステップＳ４０８での判定の結果、ネットワークプリントサーバ１５００は、要求されたアプリケーションプログラムが存在しないと判定した場合には、アプリケーション起動要求命令の送信元である外部装置にエラーを通知した（ステップＳ４１１）後、処理を終了する。
【００６７】
図９は、ライセンスコードの一例を示す図である。
図９において、「Available-Api:HddApi,PanelApi」（図１３における行１３０１）は、このライセンスコードに対応したアプリケーションプログラムが利用可能なＡＰＩを示している。「HddApi」はハードディスク制御ＡＰＩを表し、「PanelApi」はパネル制御ＡＰＩを表す。つまり、図９に示したライセンスコードでは、ネットワークプリントサーバ１５００におけるハードディスク制御ＡＰＩ及びパネル制御ＡＰＩのみが利用可能なことを示している。
【００６８】
図１０は、アプリケーションプログラムの起動時に、当該アプリケーションプログラムのライセンスコードから利用可能なＡＰＩを示す情報を抽出して判定する処理動作を示すフローチャートである。
【００６９】
まず、ステップＳ１４０１にて、ネットワークプリントサーバ１５００は、ライセンス記憶部１５１１に格納されているライセンスコードを取得する。次に、ステップＳ１４０２にて、ネットワークプリントサーバ１５００は、ステップＳ１４０１において取得したライセンスコードから利用可能なＡＰＩの記述（図１３に一例を示した“Available-Api”の部分）を抽出する。
【００７０】
ステップＳ１４０３にて、ネットワークプリントサーバ１５００は、ステップＳ１４０２において抽出された利用可能なＡＰＩ（Available-Api）の記述がすべてのＡＰＩの動作を許可する「＊」か否かを判断する。上記判断の結果、利用可能なＡＰＩの記述が「＊」である場合には、ステップＳ１４０４に進み、対応するアプリケーションプログラムに対してすべてのＡＰＩの動作を許可して処理を終了する。一方、利用可能なＡＰＩの記述として「＊」とは異なる記述がある場合には、ステップＳ１４０５に進み、記述されていないＡＰＩの動作を不可（すなわち、記述されているＡＰＩのみ動作を許可）として、処理を終了する。
【００７１】
図１１は、本実施形態におけるネットワークプリントサーバ１５００上で動作するアプリケーションプログラムの起動処理方法の他の例を示すフローチャートである。なお、図１１においては、プリンタ１０００の起動時にネットワークプリントサーバ１５００の所定の記憶領域に自動起動アプリケーションとして予め指定されたアプリケーションプログラムを起動する場合について示している。また、図１１に示す制御手順を実行させるための制御プログラムは、上述したようにネットワークプリントサーバ１５００内のＦｌａｓｈＲＯＭ３に記憶されている。
【００７２】
プリンタ１０００が電源ＯＮ（電源投入）あるいはリセットにより再起動されると、ネットワークプリントサーバ１５００は、所定の記録領域に自動起動するアプリケーションプログラムの格納先情報が存在するか否かを判定する（ステップＳ５０１）。その結果、自動起動するアプリケーションプログラムの格納先情報が存在する場合には、ネットワークプリントサーバ１５００は、格納先情報を取得し（ステップＳ５０２）、取得した格納先情報の文字列が“/dev/”で始まっているか否かを判定する（ステップＳ５０３）。
【００７３】
上記判定の結果、格納先情報が“/dev/”の文字列で始まっている場合には、ネットワークプリントサーバ１５００は、起動要求されたアプリケーションプログラムの格納先がプリンタコントローラ１６００であると判断し、図２にて説明したようなＡＰＩを用いてプリンタコントローラ１６００にアプリケーションプログラムの取得要求を発行する（ステップＳ５０４）。
【００７４】
次に、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００からの応答結果を判断する（ステップＳ５０５）。この結果、要求したアプリケーションプログラムが取得できた場合には、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００のライセンス記憶部１６１２に格納されている該当するアプリケーションのライセンスコードを読み出し、自らのライセンス記憶部１５１１に格納されているライセンスコードと比較して一致しているか否かを判断する（ステップＳ５１２）。
【００７５】
ネットワークプリントサーバ１５００は、ライセンスコードが一致していなければ適正なアプリケーションプログラムではないと判断し、ただちに処理を終了する。一方、ライセンスコードが一致していた場合には、適正なアプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードし（ステップＳ５０６）、アプリケーションプログラムを起動して（ステップＳ５０９）処理を終了する。
【００７６】
一方、ステップＳ５０５においてプリンタコントローラ１６００から要求したアプリケーションプログラムが取得できなかった場合には、ただちに処理を終了する。
【００７７】
また、ステップＳ５０３での判定の結果、格納先情報が“/dev/”の文字列で始まっていないと判定した場合には、ネットワークプリントサーバ１５００は、内部のプログラム／データ記憶部１５０９に該当するアプリケーションプログラムが存在するか否かを判定する（ステップＳ５０７）。その結果、該当するアプリケーションプログラムが存在する場合には、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００のライセンス記憶部１６１２に格納されている該当するアプリケーションのライセンスコードを読み出し、自らのライセンス記憶部１５１１に格納されているライセンスコードと比較して一致しているか否かを判断する（ステップＳ５１１）。
【００７８】
ライセンスコードが一致していなければ適正なアプリケーションプログラムではないと判断し、ただちに処理を終了する。ライセンスコードが一致していた場合には、適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ１５００のＲＡＭ２にロードした（ステップＳ５０８）後、アプリケーションプログラムを起動して（ステップＳ５０９）処理を終了する。
【００７９】
上記ステップＳ５０７での判定の結果、ネットワークプリントサーバ１５００は、要求されたアプリケーションプログラムが存在しないと判定した場合には、ただちに処理を終了する。
また、ステップＳ５０１において、ネットワークプリントサーバ１５００は、自動起動するアプリケーションの格納先情報が存在しないと判定した場合にも、同様にただちに処理を終了する。
【００８０】
なお、この図１１におけるステップＳ５０９にてアプリケーションプログラムを起動する際にも、上記図１０に示したアプリケーションプログラムのライセンスコードに基づいて、利用可能なＡＰＩを判定してＡＰＩの動作を制御する処理が行われる。
【００８１】
図１２は、本実施形態におけるネットワークプリントサーバ１５００上で動作するアプリケーションプログラム内に記述された命令の処理方法を示すフローチャートである。なお、図１２に示す制御手順を実行させるための制御プログラムは、上述したようにネットワークプリントサーバ１５００内のＦｌａｓｈＲＯＭ３に記憶されている。
【００８２】
上記図８又は図１１に示したフローチャートに従ってアプリケーションプログラムが起動すると、ネットワークプリントサーバ１５００は、当該アプリケーションプログラムに含まれる一命令を取り出し、解析処理を行う（ステップＳ６０１）。続いて、ネットワークプリントサーバ１５００は、取り出した命令がプリンタコントローラ１６００に依存する命令であるか否かを当該命令の命令種別に基づいて判断する（ステップＳ６０２）。
【００８３】
ステップＳ６０２において命令がプリンタコントローラ１６００に依存する命令であると判断した場合には、ネットワークプリントサーバ１５００は、図１３に示すようなプリンタコントローラ１６００の命令書式に従って命令コードを変換する（ステップＳ６０３）。さらに、ネットワークプリントサーバ１５００は、拡張インタフェース１７を介して、変換した命令コードをプリンタコントローラ１６００に送信する（ステップＳ６０４）。
【００８４】
図１３は、プリンタコントローラ１６００に対する命令書式の一例を示す図である。
図１３において、第１の領域７０１は、命令種別を示す領域（フィールド）であり、書き込み命令の場合には“０”が設定され、読み出し命令の場合には“１”が設定される。第２の領域７０２は、プリンタコントローラ１６００が提供する各種制御機能毎に予め定義されている一意の番号（呼び出し関数番号）を示す領域である。
【００８５】
第３の領域７０３は、後述の引数データのデータ種別を示す領域であり、引数データが数値型であれば“０”を設定し、文字列型であれば“１”を設定する。第４の領域７０４は、上記呼び出し関数に対する引数を付与する際に、引数データのデータサイズ（引数データサイズ）を示す領域である。第５の領域７０５は、呼び出し関数への引数データを設定する領域である。
【００８６】
図１２に戻り、ネットワークプリントサーバ１５００は、プリンタコントローラ１６００からの命令コード送信に対する応答があるか否かを判断し（ステップＳ６０５）、応答があった場合には、プリンタコントローラ１６００から返信された処理結果を受信する（ステップＳ６０６）。このステップＳ６０６で受信する、プリンタコントローラ１６００から返信される処理結果は、図１４に示すような書式で返信される。
【００８７】
図１４は、プリンタコントローラ１６００から返信される処理結果の書式の一例を示す図である。
図１４において、第１の領域８０１は、処理結果に係る戻り値を示す領域である。この第１の領域には、命令処理が正常終了した場合には“０”が設定され、命令における呼び出し関数番号が未登録の関数番号であった場合には“１”が設定される。同様に、命令処理がエラーとなった場合には“２”が設定され、命令における引数データが不正な値であった場合には“３”が設定される。
【００８８】
第２の領域８０２は、応答データのデータ種別を示す領域であり、応答データが数値型であれば“０”を設定し、文字列型であれば“１”を設定する。第３の領域８０３は、応答データのデータサイズ（応答データサイズ）を示す領域である。第４の領域８０４は、応答データを設定する領域である。
【００８９】
図１２に戻り、ネットワークプリントサーバ１５００は、ステップＳ６０６において受信した処理結果を、元のプログラム命令の処理結果の書式に変換して（ステップＳ６０７）、プログラム命令の処理結果を所定のメモリ空間に格納する（ステップＳ６０９）。続いて、ネットワークプリントサーバ１５００は、後続のプログラム命令の有無を確認し（ステップＳ６１０）、次の命令が存在する場合には再度Ｓ６０１に戻ってステップＳ６０２以降の処理を繰り返し、一方、次の命令が存在しない場合には処理を終了する。
【００９０】
なお、ステップＳ６０５において、プリンタコントローラ１６００からの命令コード送信に対する応答が一定期間内に受信できなかった場合には、ただちに処理を終了する。
また、ステップＳ６０２での判断の結果、命令種別がプリンタコントローラ１６００に依存する命令でないと判断した場合には、ネットワークプリントサーバ１５００は、当該命令に応じた処理を行って（ステップＳ６０８）、その処理結果を所定のメモリ空間に格納し（ステップＳ６０９）、ステップＳ６１０に進む。
【００９１】
以上、説明したように本実施形態によれば、アプリケーションプログラムのライセンスコード（ライセンス情報）から当該アプリケーションプログラムが利用可能なＡＰＩを示す情報を抽出して、利用可能なＡＰＩを判断し、その判断結果に応じてＡＰＩの動作を制御する。これにより、アプリケーションプログラム毎に、利用可能なＡＰＩを任意に設定することができ、ＡＰＩの使用制限を制御することができる。
【００９２】
また、プリンタ１０００の機種に依存するアプリケーションプログラムをネットワークプリントサーバ１５００のプログラム／データ記憶部１５０９でなく、プリンタコントローラ１６００の機能依存リソース／プログラム記憶部１６１０に保持することで、ユーザが他の機種でのみ動作するアプリケーションプログラムを誤って起動させてしまうことを防止することができる。
【００９３】
また、ネットワークプリントサーバ１５００及びプリンタコントローラ１６００のそれぞれのライセンス記憶部１５１１、１６１２に記憶されているアプリケーションプログラムのライセンスコードが一致した場合のみ、当該アプリケーションプログラムを起動させることで、適切なアプリケーションプログラムのみを確実に起動することができる。
【００９４】
また、アプリケーションプログラム及びリースデータの種類等によって機種依存部と機種非依存部（共通部）とに分けて分散搭載、すなわち、ネットワークプリントサーバ１５００内のプログラム／データ記憶部１５０９にプリンタ１０００の機種に依存しないアプリケーションプログラム及びリースデータを記憶するとともに、プリンタコントローラ１６００内の機種依存リース／プログラム記憶部１６１０にプリンタ１０００の機種に依存するアプリケーションプログラム及びリースデータを記憶することで、ネットワークプリントサーバ１５００に要求される記憶容量を削減することができるとともに、ネットワークプリントサーバ１５００及びプリンタコントローラ１６００がそれぞれ備える記憶領域を効率的に利用することができる。
【００９５】
また、アプリケーションプログラムを実行する際には、プログラム内の一命令毎にその命令種別に応じて、ネットワークプリントサーバ１５００及びプリンタコントローラ１６００に実際の命令処理を分散することで、命令処理の効率化を図ることができる。
【００９６】
なお、上述した本実施形態においては、図８及び図１１に示したようにアプリケーションプログラムの格納先をネットワークプリントサーバ１５００が判定するとき、得られた格納先情報の文字列に“/dev/”が存在するか否かに応じてアプリケーションプログラムの格納先を特定している。しかしながら、このようにするとＵＲＬ自身が格納先情報を文字列として記す結果となるため、アプリケーションプログラムの格納先を内部情報として隠蔽化したい場合には適当ではない。
そこで、この対処手段として、予めアプリケーションプログラムの名称毎に格納先を識別できるテーブルを保持し、このテーブル情報に基づいて格納先を特定するという手法が挙げられる。この手法によれば格納先を示す文字列を含む必要がなくなり、格納先情報を隠蔽化することが可能である。
【００９７】
また、上述した実施形態では、アプリケーションプログラムのライセンスコードに利用可能なＡＰＩを示す情報として動作させるＡＰＩを示すようにしているが、停止させるＡＰＩを示すようにしても良い。また、上述した本実施形態では、プリンタ１０００を一例として説明したが、本発明はこれに限定されず、例えばマルチファンクション装置等を含む任意の画像形成装置に適用することが可能である。
【００９８】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００９９】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態におけるプリンタのハードウェア構成例を示すブロック図である。
【図２】本発明の実施形態におけるプリンタのソフトウェア構成例を示すブロック図である。
【図３】ネットワークプリントサーバで動作するアプリケーションプログラムの記述例を示す図である。
【図４】本実施形態におけるネットワークプリントサーバ上で動作するアプリケーションプログラムのインストーラの処理方法を示すフローチャートである。
【図５】アプリケーションインストーラ画面の一例を示す図である。
【図６】ライセンスコードファイルの一例を示す図である。
【図７】本実施形態におけるアプリケーションプログラムのインストール手順を示す図である。
【図８】本実施形態におけるネットワークプリントサーバ上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図９】ライセンスコードの一例を示す図である。
【図１０】アプリケーションプログラムのライセンスコードから利用可能なＡＰＩを示す情報を抽出して判定する処理動作を示すフローチャートである。
【図１１】本実施形態におけるネットワークプリントサーバ上で動作するアプリケーションプログラムの起動処理方法の他の例を示すフローチャートである。
【図１２】本実施形態におけるネットワークプリントサーバ上で動作するアプリケーションプログラムの命令の処理方法を示すフローチャートである。
【図１３】プリンタコントローラに対する命令書式の一例を示す図である。
【図１４】プリンタコントローラから返信される処理結果の書式の一例を示す図である。
【符号の説明】
【０１０１】
１７  拡張インタフェース
１５００  ネットワークプリントサーバ
１５０１  オペレーティングシステム
１５０２  アプリケーションプログラムインタフェース
１５０９  プログラム／データ記憶部
１５１１  ライセンス記憶部
１６００  プリンタコントローラ
１６０１  オペレーティングシステム
１６０２  拡張インタフェース制御部
１６１０  機種依存リソース／プログラム記憶部
１６１２  ライセンス記憶部
【図１】
2005258924.tif 000003
【図２】
2005258924.tif 000004
【図３】
2005258924.tif 000005
【図４】
2005258924.tif 000006
【図５】
2005258924.tif 000007
【図６】
2005258924.tif 000008
【図７】
2005258924.tif 000009
【図８】
2005258924.tif 000010
【図９】
2005258924.tif 000011
【図１０】
2005258924.tif 000012
【図１１】
2005258924.tif 000013
【図１２】
2005258924.tif 000014
【図１３】
2005258924.tif 000015
【図１４】
2005258924.tif 000016