JP2005038011A - ネットワーク装置及びその制御方法 - Google Patents
ネットワーク装置及びその制御方法 Download PDFInfo
- Publication number
- JP2005038011A JP2005038011A JP2003197270A JP2003197270A JP2005038011A JP 2005038011 A JP2005038011 A JP 2005038011A JP 2003197270 A JP2003197270 A JP 2003197270A JP 2003197270 A JP2003197270 A JP 2003197270A JP 2005038011 A JP2005038011 A JP 2005038011A
- Authority
- JP
- Japan
- Prior art keywords
- data processing
- network
- application
- processing device
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】機種依存のアプリケーションはデータ処理装置側で保持し、機種非依存のアプリケーションはネットワーク装置側で保持可能とする。
【解決手段】プリンタに対して着脱可能であり、プリンタに装着されることにより当該プリンタとネットワークとを接続するネットワークモジュールはネットワークプリントサーバ1500として機能し、データ処理装置との間の信号授受のための拡張インタフェースドライバ1506と、ネットワークとの間の信号授受のためのネットワークインタフェースドライバ1507を有する。管理アプリケーション1504は、起動すべきアプリケーションの格納場所が当該ネットワークプリントサーバ1500内かプリンタコントローラ1600内かを判定し、プリンタコントローラ1600内であると判定された場合は拡張インタフェースドライバ1506、拡張インタフェース17を介してプリンタコントローラ1600より起動すべきアプリケーションを取得する。
【選択図】 図2
【解決手段】プリンタに対して着脱可能であり、プリンタに装着されることにより当該プリンタとネットワークとを接続するネットワークモジュールはネットワークプリントサーバ1500として機能し、データ処理装置との間の信号授受のための拡張インタフェースドライバ1506と、ネットワークとの間の信号授受のためのネットワークインタフェースドライバ1507を有する。管理アプリケーション1504は、起動すべきアプリケーションの格納場所が当該ネットワークプリントサーバ1500内かプリンタコントローラ1600内かを判定し、プリンタコントローラ1600内であると判定された場合は拡張インタフェースドライバ1506、拡張インタフェース17を介してプリンタコントローラ1600より起動すべきアプリケーションを取得する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、プリンタ等のデータ処理装置に装着可能なネットワーク装置およびその制御方法に関する。
【0002】
【従来の技術】
近年、インターネットの普及により、印刷装置、複写機、ファクシミリ装置等のデータ処理装置をネットワークに接続して使用する形態が一般化してきた。例えば、印刷装置の場合、高速機やカラー機などの高価格機ではネットワークインターフェイスは内蔵される傾向にある。しかしながら、低価格なモノクロ機の場合には、ネットワークインターフェイスは本体には組み込まれず、ネットワークカードモジュールとして別に供給される形態が一般的である。
【0003】
この場合、印刷装置本体とネットワークカードモジュールは個々にCPUを持ったインテリジェントな形態となる。そして、通常は、ネットワークカードモジュール側にネットワーク経由での各種プリントサービスの統括制御を行なうプリントサーバ機能が設けられる。このようなネットワークカードモジュールは接続インターフェイスを介して印刷装置と通信を行ない、所望のサービスを実現する。
【0004】
このことは、印刷装置側からすれば、負荷の重いネットワークサービスをネットワークカードモジュール側に依存することを可能にする。従って、相対的に印刷装置本体のCPUや周辺IC等のパフォーマンスを下げることが可能となり、印刷装置本体のコスト削減をもたらす結果となる。
【0005】
従来のネットワークインターフェイスは、例えばLPR(Line Printer Daemon Protocol:TCP/IPでプリンタ共有を行なうときに使うリモート印刷プロトコル)に代表されるような印刷データの送信ができればよかった。しかしながら、昨今では印刷装置に対する情報管理というニーズが高くなり、付加技術として各種の手段が提供されている。
【0006】
その最も単純な例が、印刷データを送信するポートに情報管理データ(ジョブ制御言語=Job Language)を付加する形態である。ジョブ制御言語は印刷データを送るポートを共有する形であるため、サービスポートを増加せずに済み、比較的実装が簡単である。しかしながら、一方、印刷データ受信中にデータが大量に送信されるとポートが占有されてしまい、情報管理データのやりとりが止まってしまうという問題がある。またネットワークにおけるLPRプロトコルのような片方向型コネクションの場合には、そもそも情報取得ができないという欠点がある。
【0007】
次の手法としては、SNMP/MIBを使った方式がある。これはデータ送受信用の専用ポートを使用し、標準規格であるSNMP(Simple Network Management Protocol)を使うMIB(Management Information Base:管理情報データベース)である。しかしこの方式では、SNMPを受信してユーザインタフェース(UI)を提供する専用クライアントプログラムの独自開発が必要となる。更に、この方式では、そもそも単純な情報のやり取りを行うプロトコルであるため、数字、文字列などの単純なデータベースしか提供できない。その結果、機器の構成を示すビットマップ画像などを用いたグラフィカルユーザインタフェース(GUI)を構成する情報はクライアントプログラム側で所有しておかなければならない。このため、クライアントプログラムを機種毎に対応させなくてはいけないという問題点がある。
【0008】
さらに最近ではHTTPプロトコルを用いた方式が主流となりつつある。この方式によれば、ネットワークカードモジュールはHTTPサービスを用いて、機器情報に関するHTMLデータやビットマップ画像といったWEBコンテンツをクライアントに提供する。クライアントは一般的なWEBブラウザを使用してネットワークカードモジュールから提供されたWEBコンテンツを表示し、GUIを実現する。このようなGUIにて操作を可能とすれば、個別のクライアントプログラムを提供しなくても、専用のクライアントプログラムを用いた場合と同様の効果を得ることが可能である。専用のクライアントプログラムがその機器に固有な多種多様の情報(メッセージ文字列、ビットマップ画像等)を管理する必要があるため、機器が自分の機種情報だけを持てばよい上記方式は短期間で製品を提供するためにはもっとも適する方法である。
【0009】
しかしながら上記述べたいずれの手法もネットワークカードモジュールに予め組み込まれた静的な機能を提供するに止まるものであり、後から機能そのものを追加したり、或いは、組み込まれた機能による制御方法を変更するといった動的なサービスの追加はできなかった。
【0010】
これに対して、データ処理装置上で動作可能なアプリケーションプログラムをネットワーク上の外部装置より取得して実行するシステムが特許文献1によって提案されている。また、最近になってJava(米国Sun Microsystems, Inc.の登録商標)言語を用いて作成されたアプリケーションプログラムモジュールを機器に組み込み、機器上に実装されたJava仮想マシン上で動作可能とするプラットフォーム技術が提案されている。この技術を用いることで印刷装置等の組み込み機器に後から新たな機能を機器に追加することが可能となってきている。
【0011】
上述のJava仮想マシンにはネットワーク通信機能を始め、組み込み機器を制御するために必要な各種機能を提供するためにアプリケーションプログラムインタフェース(API)が備わっている。Java言語で作成されたアプリケーションプログラムモジュールはこれらのAPIを呼び出して、組み込み機器に対する制御やネットワークで接続されたホストコンピュータからの要求を処理する。
【0012】
【特許文献1】
特開2000−298561号公報
【0013】
【発明が解決しようとする課題】
上記Java仮想マシン上で提供されるAPIは、ネットワーク通信に必要な機能を含んでおり、ネットワーク通信プロトコルの処理を行なう基本モジュールを共有する。従って、インテリジェント型のネットワークカードモジュールに、上記Java環境を実装し、ネットワーク通信を実現することも可能であろう。
【0014】
しかしながら、印刷装置本体と別個にCPUを備えるインテリジェント型ネットワークカードモジュールの場合、共通化による開発コスト低減と量産効果による生産コスト削減のために、通常複数のモデルの印刷装置間で共用可能(複数種類の印刷装置に接続可能)な設計が求められる。
【0015】
複数のモデルの機種に接続可能にするためには、ネットワークカードモジュールにおいて、各機種に応じたメッセージや、グラフィカルユーザインタフェースに必要な印刷装置のビットマップ画像等のリソースデータや、各モデル固有な情報等を全て保持しなければならない。この結果、これらの情報を記憶するための必要なROM容量が増大し、ネットワークカードモジュールのコスト増加が発生する。
【0016】
さらに、Java仮想マシン上で動作するアプリケーションプログラムモジュールの種類によっては、特定の機種でしか機能しないものや、特定の機種のみで必要なもの(以下、これらを機種依存アプリケーションプログラムという)もある。このため、これらの機種依存アプリケーションプログラムをネットワークカードモジュール内に保持することは上記ROM容量の増加と併せて記憶領域の効率的利用の点でも課題を生じる。
【0017】
本発明は上記の課題に鑑みてなされたものであり、データ処理装置自体またはデータ処理装置の機種に依存のアプリケーションはデータ処理装置側で保持し、データ処理装置自体またはデータ処理装置の機種に非依存のアプリケーションはネットワーク装置側で保持可能とし、ネットワーク装置のメモリ資源を効率的に利用可能とすることを目的とする。または、本発明は上記の課題に鑑みてなされたものであり、データ処理装置自体またはデータ処理装置の機種に依存するアプリケーションでも、ネットワーク装置で実行可能にすることを目的とする。
【0018】
【課題を解決するための手段】
上記の目的を達成するための本発明の一態様であるネットワーク装置は以下の構成を備える。即ち、
データ処理装置に対して着脱可能であり、データ処理装置に装着されることにより当該データ処理装置とネットワークとを接続するネットワーク装置であって、
装着されたデータ処理装置との間の信号授受のための第1インタフェースと、
前記ネットワークとの間の信号授受のための第2インタフェースと、
起動すべきアプリケーションの格納場所がネットワーク装置内かデータ処理装置内かを判定する判定手段と、
前記格納場所がデータ処理装置内であると判定された場合は前記第1インタフェースを介して、装着されたデータ処理装置より前記起動すべきアプリケーションを取得する取得手段とを備える。
【0019】
また、上記の目的を達成するための本発明の他の態様によるネットワーク装置は以下の構成を備える。即ち、
データ処理装置に対して着脱可能であり、データ処理装置に装着されて当該データ処理装置とネットワークとを接続するネットワーク装置であって、
アプリケーションプログラムを前記ネットワーク装置のメモリ空間上で実行する実行手段と、
前記アプリケーションプログラムによって要求された処理命令が、装着されたデータ処理装置に依存するかを判断する判断手段と、
前記処理命令が前記データ処理装置に依存する場合、該処理命令に対応する前記データ処理装置の命令書式の命令を生成する生成手段と、
前記生成手段により生成された命令を前記データ処理装置に転送する転送手段とを備える。
【0020】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0021】
<第1実施形態>
図1は、第1実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。1000はプリンタであり、大きくはネットワークプリントサーバ1500とプリンタコントローラ1600からなり、それぞれ独立した制御系を有する。
【0022】
ネットワークプリントサーバ1500は、ネットワークボードモジュールの形態で実現されたプリンタ1000に対して着脱可能なネットワーク装置である。ネットワークプリントサーバ1500において、1はネットワークプリントサーバ用CPUであり、書き換え可能なFlashROM3に記憶された制御プログラムに基づいて各種制御を実行する。例えば、システムバス4に接続されるネットワークコントローラ(LANC5)を介してローカルエリアネットワーク(LAN2000)に接続されたホストコンピュータ等の外部装置(不図示)と所定のネットワーク通信プロトコルを用いて通信する。これにより、例えば、外部装置から送られる印刷データやプリンタ制御命令等の各種データの送受信を統括的に制御し、拡張インタフェースコントローラ(EXPC7)を介して接続されるプリンタコントローラ1501に対して適切なデータ転送制御を行なう。またFlashROM3には、図4,5,6のフローチャートで示されるようなCPU1によって実行される制御プログラムも記憶されている。
【0023】
RAM2はCPU1の主メモリ、ワークエリア等の一時記憶領域として用いられる。LED6はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ(LANC5)とローカルエリアネットワーク(LAN2000)の電気的な接続状態(LINK)や、ネットワーク通信モード(10Baseや100Base、全二重、半二重)等の各種動作状態をLEDの点滅パターンや色で示すことが可能となっている。
【0024】
拡張インタフェース17は、ネットワークプリントサーバ1500とプリンタコントローラ1600を接続するためのインタフェースであり、図示しないコネクタを含んで構成されている。ネットワークプリントサーバ1500は、このコネクタによってプリンタ1000(プリンタコントローラ1600)との着脱が可能となっており、同じ構成を持つ別のプリンタに当該ネットワークプリントサーバ1500を装着することも可能である。
【0025】
一方、プリンタコントローラ1600において、8はプリンタコントローラ用CPUであり、システムバス11に接続される各種デバイスとのアクセスを統括的に制御する。また、CPU8の制御の下、ラスタコントローラ12は、ネットワークプリントサーバ1500から拡張インタフェースコントローラ(EXPC13)を介して受信される印刷データに基づいて出力画像信号を生成し、プリントエンジン16に対して画像信号を出力する。以上のような処理は、ROM9に記憶された制御プログラム等、或いはディスクコントローラ(DKC15)を介して接続された外部メモリ10に記憶されている制御プログラムやリソースデータ(資源情報)等に基づいてCPU8が動作することにより実現される。
【0026】
14はCPU8の主メモリ、ワークエリア等として機能するRAMであり、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。18は操作パネルであり、プリンタ1000の動作モード等の設定や印刷データの取り消し等の操作を行なうためのボタンと、プリンタ1000の動作状態を示す液晶パネルやLED等の表示部等が配されている。なお、本図で示したプリンタエンジン16は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。
【0027】
図2は、図1に示したネットワークプリントサーバ1500およびプリンタコントローラ1600の各記憶部(例えば、FlashROM3、ROM9)に記憶された制御プログラムのソフトウェア構成を説明するブロック図である。なお、これらの制御プログラムはCPU1、8によって解析され実行される。
【0028】
ネットワークプリントサーバ1500側において、1501はオペレーティングシステムであり、ネットワークプリントサーバ1500の基本的なデータ入出力制御を統括する。オペレーティングシステム1501は、プログラム/データ記憶部1509との入出力制御を行なうファイルシステム1505と、プリンタコントローラ1600と拡張インタフェース17を介して通信制御を行なう拡張インタフェースドライバ1506と、ローカルエリアネットワーク(LAN2000)の通信媒体を介してホストコンピュータ等の外部装置(不図示)と通信を行なうネットワークインタフェースドライバ1507とを内包している。なお、プログラムデータ記憶部1509は、例えばFlashROM3により構成される。
【0029】
1502はアプリケーションプログラムインタフェース(API)である。API1502は、ネットワークプリントサーバ1500で動作するユーザアプリケーション1503や管理アプリケーション1504等のアプリケーションプログラムに対してオペレーティングシステム1501が備える各種機能を提供する。なお、管理アプリケーション1504は、プリンタ1000やユーザアプリケーションの登録・管理を行うアプリケーションである。またAPI1502は、印刷データの送受信機能を提供するデータ転送API、ビットマップ画像や表示メッセージ及びアプリケーションプログラム等のリソースデータの入出力制御を行なうリソース制御API、プリンタ1000の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御API、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御API、ネットワークプリントサーバ1500の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行なうプリントサーバ制御API等を備える。また、データ転送API、リソース制御API、プリンタ制御API、ジョブ制御APIによって提供される命令はプリンタコントローラ依存命令として図7で示されるような命令書式に変換した後、拡張インタフェース17を介してプリンタコントローラに転送される。
【0030】
プリンタコントローラ1600側において、1601はプリンタコントローラ1600の各種処理制御を統括するオペレーティングシステムであり、プリントエンジン制御部1603及びファイルシステム1604を有する。プリントエンジン制御部1603は、プリントエンジンとの通信制御を行なう。ファイルシステム1604は機種依存リソース/プログラム記憶部1610との入出力制御を行なう。機種依存リソース/プログラム記憶部1610は、ネットワークプリントサーバ1500から参照されるビットマップ画像やエラーメッセージ等の機種依存リソース、及びネットワークプリントサーバ1500上で動作する機種依存アプリケーションプログラム等を記憶する。
【0031】
1602は拡張インタフェース制御部であり、拡張インタフェース17を介してネットワークプリントサーバ1500との通信制御を行なう。拡張インタフェース制御部1602は、制御種別に応じた論理インターフェースを備える。例えば、印刷データの入出力を制御するデータ転送論理インタフェース、機種依存リソース/プログラム記憶部1610に記憶された各種データの入出力を制御するリソース制御論理インタフェース、プリンタ1000の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御論理インタフェース、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェースを備える。各論理インタフェースは、ネットワークプリントサーバ1500から要求された命令をオペレーティングシステム1601に転送し、その処理結果をネットワークプリントサーバ1500に対して返信する。
【0032】
図3は、ネットワークプリントサーバ1500で動作するアプリケーションプログラムの記述例であり、本実施形態の好適な一例としてJava言語による記述例を示している。図3の301に示される行は図2で説明したデータ転送APIを呼び出す例であり、“printer.outdata(“Test”)”がデータ転送APIである。これは“Test”というテキストデータを印字データとしてプリンタコントローラを介してプリントエンジンから印刷せよというプリンタコントローラ依存命令である。プリンタコントローラ1600にて当該命令に従って処理が実行されると、コントローラから受信した処理結果が変数“result”に数値型として変換されて格納される。
【0033】
図3の302に示される行は301の行で指示された処理結果を標準出力先(例えばプリンタ1000の操作パネル18のLCD表示部やアプリケーションの呼び出し元であるホストコンピュータのブラウザ表示部)にテキストメッセージ変換して表示する命令の記述例である。
【0034】
図4は、第1実施形態に係るネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。本処理は管理アプリケーション1504に含まれる。なお、S401〜S411は各処理ステップを示し、ローカルエリアネットワーク(LAN2000)に接続されたホストコンピュータ等の外部装置から本プリンタ1000に対してアプリケーションの起動要求を受信した場合の処理の流れに対応する。なお各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。
【0035】
ステップS401において、LAN2000を介して不図示のホストコンピュータ等の外部装置からアプリケーション起動要求命令を受信する。本実施形態において、アプリケーション起動要求命令は、URL(Uniform Resource Locator)により起動すべきアプリケーションプログラムを特定する。ステップS402ではステップS401で受信したアプリケーション起動要求命令からアプリケーションを特定するURLを取得する。ステップS403では、取得したURLから、起動要求されているアプリケーションの当該プリンタ1000内における格納先情報を抽出する。例えば指定されたアプリケーションのURLが、
HTTP://192.168.0.215/abc/xyz.Java
の場合は、HTTP://はスキームであり、192.168.0.215 は本プリンタ装置自身のネットワークアドレスを示すものであるため、格納先情報として抽出される情報は、“/abc/xyx.Java” となる。
【0036】
本実施形態では、格納先情報の文字列から、当該アプリケーションがプリントサーバ1500内の記憶部(例えばFlashROM3)に格納されているか、プリンタコントローラ1600内の記憶部(例えばROM9)に格納されているかを判定する。本実施形態では、“/dev/”で始まる格納先はプリンタコントローラ側であるとする。
【0037】
よって、ステップS404では、ステップS403で抽出した格納先情報の文字列が“/dev/”で始まっているか否かを判定する。格納先情報の文字列が“/dev/”で始まっていない場合、起動すべきアプリケーションはネットワークプリントサーバ1600内にあると判断され、処理はステップS408へ進む。ステップS408では、ネットワークプリントサーバ1500内の記憶部に該当するアプリケーションプログラムが存在するか判定する。該当するアプリケーションプログラムが存在する場合にはステップS409へ進み、要求されたアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS410へ進み、当該アプリケーションプログラムを起動して本処理を終了する。なお、ステップS408で該当するアプリケーションが存在しない場合は、ステップS411へ進み、要求元にエラーを通知して本処理を終了する。
【0038】
一方、ステップS404で格納先情報の文字列が“/dev/”で始まっている場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ1600であると判断し、ステップS405へ進む。ステップS405では、プリンタコントローラ1600に対して図2で説明したようなAPI(リソース制御API)を用いてアプリケーションプログラムの取得要求を発行する。ステップS406では、プリンタコントローラ1600からの応答に基づいて、要求したアプリケーションプログラムが取得できたかどうかを判断する。要求したアプリケーションプログラムが取得できた場合には、ステップS407へ進み、取得したアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS410へ進み、当該アプリケーションプログラムを起動して本処理を終了する。
【0039】
ステップS406で、要求したアプリケーションプログラムがプリンタコントローラ1600から取得できなかったと判定された場合は、ステップS408へ進み、ネットワークプリントサーバ1500内の記憶部に同名のアプリケーションが存在するか判定する。ここで同名のアプリケーションが存在する場合には、上述のステップS409以降に従い、ネットワークプリントサーバ1500内のアプリケーションを代替アプリケーションとして起動する。ネットワークサーバ1500内でも要求されたアプリケーションが存在しないと判定された場合には、ステップS408からS410へ進み、アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知し、本処理を終了する。
【0040】
以上のように、第1実施形態によれば、Java仮想マシン上に提供される情報(アプリケーション)を印刷装置の機種に依存するものとしないものに分類し、機種依存の情報を各印刷装置本体(プリンタコントローラ)へ、機種非依存の情報をネットワークカードモジュールに分けて格納することが可能となるので、メモリ容量の低減、利用効率の向上を図ることができる。
【0041】
<第2実施形態>
第1実施形態では、ホストコンピュータ等の外部装置からのアプリケーションの起動要求に応じて、その起動要求に含まれているURLからそのアプリケーションの格納先を判断する場合を説明した。第2実施形態では、プリンタ1000の起動時に自動起動アプリケーションとして指定されたアプリケーションを起動する場合を説明する。なお、自動起動アプリケーションを指定するための情報は、ネットワークプリントサーバ1500の所定の記憶領域に予め格納されている。
【0042】
図5は、ネットワークプリントサーバ1500上で動作するアプリケーションプログラムの、第2実施形態による起動処理方法を示すフローチャートである。なお、ステップS501〜S509は各処理ステップを示し、各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。また、本処理も管理アプリケーション1504に含まれる。
【0043】
プリンタ1000が電源ON或いはリセットによって再起動されると、ステップS501でネットワークプリントサーバ1500の所定の記憶領域に自動起動するアプリケーションの格納情報が存在するか判定する。自動起動するアプリケーションの格納情報が存在する場合はステップS502に進み、起動すべきアプリケーションの格納情報を取得する。格納情報はパス(格納先)とアプリケーションファイル名を含む。よって、ステップS503において、アプリケーションの格納先を表す文字列が“/dev/”で始まっているかの判定を行なう。
【0044】
格納先を表す文字列が“/dev/”で始まっていない場合、当該アプリケーションの格納先はネットワークプリントサーバ1600内であると判断し、ステップS507へ進む。ステップS507では、ネットワークプリントサーバ内の記憶部に該当するアプリケーションプログラムが存在するか判定する。該当するアプリケーションプログラムが存在する場合にはステップS508へ進み、該当するアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS509へ進み、当該アプリケーションプログラムを起動して本処理を終了する。なお、ステップS507で要求されたアプリケーションが存在しないと判定した場合には、ただちに本処理を終了する。
【0045】
一方、ステップS503で格納先を表す文字列が“/dev/”で始まっている場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ1600であると判断し、ステップS504へ進む。ステップS504では、プリンタコントローラ1600に対して図2で説明したようなAPI(リソース制御API)を用いてアプリケーションプログラムの取得要求を発行する。ステップS505では、プリンタコントローラ1600からの応答に基づいて、要求したアプリケーションプログラムが取得できたかどうかを判断する。要求したアプリケーションプログラムが取得できたと判断された場合は、ステップS506へ進み、アプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS509へ進み、アプリケーションプログラムを起動して処理を終了する。
【0046】
一方、ステップS505でプリンタコントローラ1600から要求したアプリケーションプログラムが取得できなかったと判断された場合は、ステップS507へ進む。ステップS507では、ネットワークプリントサーバ1500内の記憶部に同名のアプリケーションプログラムが存在するかを調べ、同名のアプリケーションが存在する場合には上述のステップS508以降の処理を実行し、ネットワークプリントサーバ1500内のアプリケーションを代替自動起動アプリケーションとして起動する。一方、ステップS507で要求されたアプリケーションが存在しないと判定した場合には、ただちに本処理を終了する。
【0047】
なお、ステップS501で自動起動するアプリケーションの格納情報が存在しないと判断した場合にも同様にただちに本処理を終了する。
【0048】
以上説明したように、第2実施形態によれば、第1実施形態と同様の効果を維持しながら、アプリケーションの自動起動に対応することができる。
【0049】
<第3実施形態>
以上、第1及び第2実施形態ではアプリケーションの起動処理について説明した。第3実施形態では、アプリケーションの実行中における各種コマンド等の実行処理について説明する。本実施形態では、複数種類のコマンド処理機能をネットワークプリントサーバとプリンタコントローラに分散して保持することを可能とし、メモリの利用効率を向上させる。
【0050】
図6は、第3実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムに記述された命令の処理手順を示すフローチャートである。なお、S601〜S610は各処理ステップを示す。なお各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。
【0051】
上述した図4もしくは図5に従ってアプリケーションプログラムが起動すると、ステップS601において起動中のアプリケーションプログラム内に含まれる命令を1つ取り出し、解析処理を行なう。ステップS602において命令種別が、例えば図3で説明したようなデータ転送APIのようにプリンタコントローラを介して処理が必要なプリンタコントローラ1600に依存する命令であると判断された場合は、ステップS603へ進む。ステップS603では、図7で示すようなプリンタコントローラ1600の命令書式に従った命令コードを生成し、ステップS604でその生成された命令コードを拡張インタフェース17介してプリンタコントローラ1600へ送信する。例えば図3で示した“printer.outdata(”test”)”というデータ転送APIの場合、図7の命令種別に「書き込み」を示す値(0)が、呼び出し番号の領域に印刷を指示する命令番号(例700)が、引数データ種別の領域に印刷するデータ“test”のデータ型が文字列データあることを示す値(1)が、引数データサイズの領域に“test”のデータサイズ(例:4321)が、引数データ領域に“test”の実データが格納された命令コードが設定され、プリンタコントローラ1600に転送される。
【0052】
ステップS605では、プリンタコントローラ1600からの上記命令コード送信に対する応答の有無を判断し、応答があった場合にはステップS606へ進む。ステップS606では、プリンタコントローラ1600から返信された処理結果を受信する。プリンタコントローラ1600から返信された処理結果は図8に示されるような書式を有する。例えば、上記“printer.outdata(“test”)というデータ転送APIの場合、関数戻り値領域にはステップS604で送信された命令コードの処理結果を示す値が、応答データ種別には応答データ領域に含まれるデータの型が数値型であることを示す値(0)が、応答データサイズ領域には応答データ領域のデータサイズのバイト数を示す数値が、応答データ領域にはステップS604で指示された命令番号の応答データが格納されて返信される。さらにステップS607で元のプログラム命令に対応した処理結果の書式に変換する。そしてステップS609へ進む。なお、ステップS605において、送信した命令コードの応答がプリンタコントローラ1600から一定期間内に受信できなかった場合には、ただちにプログラム処理を終了する。
【0053】
また、ステップS602においてプリンタコントローラ1600に依存する命令ではないと判定された場合には、ステップS608へ進み、ネットワークプリントサーバ1500によって当該プログラム命令を処理し、ステップS609へ進む。
【0054】
ステップS609では、プログラム命令の処理結果をネットワークプリントサーバ1500の所定のメモリ空間に格納する。ステップS610で後続のプログラム命令の有無を確認し、次の命令が存在する場合には再度ステップS601へ戻り上記処理を繰り返す。次の命令が存在しない場合には処理を終了する。
【0055】
以上のように第3実施形態によれば、実行中のアプリケーションプログラムが含むプログラム命令がプリンタコントローラに依存する命令であっても、これをプリンタコントローラに提供して実行させることができる。即ち、機種依存型の命令の実行機能をネットワークプリントサーバ1500側で保持している必要が無くなるので、メモリの容量低減、効率的利用が促進される。
【0056】
<第4実施形態>
上記第1実施形態では、プリンタコントローラ1600内でアプリケーションプログラムを探して見つからなかった場合にはネットワークプリントサーバ1500に同名のアプリケーションが存在するか否かをチェックし、存在する場合には、これを代替アプリケーションとして実行させた。第4実施形態では、プリンタコントローラ1600内でアプリケーションプログラムを探して見つからなかった場合に、ネットワークプリントサーバ1500内の記憶部に当該アプリケーションがキャッシュされているかどうかをチェックし、キャッシュされていた場合にはそれを起動する。
【0057】
第4実施形態の印刷システムの構成、プリントサーバ、プリンタコントローラ上のプログラム構成は、図1及び図2により上述したとおりである。但し、FlashROM3には、図6、図9、図10のフローチャートで示されるようなCPU1の制御プログラムの記憶領域の他に、プリンタコントローラ1600に接続される外部メモリ1610等に記憶されたアプリケーションプログラムを読み出した際に当該アプリケーションプログラムをキャッシュとして一時記憶するキャッシュ領域を有する。
【0058】
図9は第4実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。図9において、第1実施形態(図4)と同じ処理には同一のステップ番号を付してある。
【0059】
ステップS401〜S404により、起動が要求されたアプリケーションの格納先がプリンタコントローラであると判定されると(即ち、要求されるアプリケーションの格納先が/dev/で始まっている場合)、ステップS405でプリンタコントローラ1600に対してアプリケーションの取得要求が発行される。要求したアプリケーションがプリンタコントローラ1600から取得された場合は、ステップS406からステップS407へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。一方、ステップS401〜S404で起動が要求されたアプリケーションの格納先がプリントサーバであると判定され(即ち、要求されるアプリケーションの格納先が/dev/で始まっていない場合)、要求したアプリケーションが取得された場合は、ステップS408からステップS409へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。
【0060】
ステップS407或いはステップS409で実行すべきアプリケーションをRAM14にロードすると、ステップS905へ進み、ロードしたアプリケーションプログラムをネットワークプリントサーバ1500のFlashROM3内の所定の記憶領域(キャッシュ領域と称する)にキャッシュとして一時記憶する。なおFlashROM3内のキャッシュ領域には複数のアプリケーションプログラムを領域の空きがある範囲で一時記憶可能である。新たにアプリケーションプログラムを記憶する際、キャッシュ領域に空きが不足する場合には、記憶可能な領域サイズを確保できるまで利用頻度が低くかつ保存時間の長いアプリケーションプログラムから順に削除して記憶領域を確保し、保存する。なお、これからキャッシュ登録しようとするアプリケーションプログラムが既にキャッシュされている場合は、上書きするか或いは登録処理を行なわないようにする。
【0061】
さて、ステップS405でプリンタコントローラ1600に要求したアプリケーションがプリンタコントローラ1600に存在しない場合は、ステップS406からステップS901へ進む。ステップS901では、ネットワークプリントサーバ1500内の上記キャッシュ領域を検索し、当該アプリケーションがキャッシュされているか判定する。当該アプリケーションが存在する(キャッシュされている)場合には、ステップS902へ進み、キャッシュ領域に保存された当該アプリケーションを要求されたアプリケーションの代替としてネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS903において、キャッシュ領域に保存されていた当該アプリケーションをプリンタコントローラ1600の記憶部に保存する。その後、ステップS410へ進んでアプリケーションプログラムを起動し、本処理を終了する。
【0062】
一方、ステップS901において要求されたアプリケーションがキャッシュ領域にも存在しないと判定された場合には、ステップS904へ進み、当該アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知した後、本処理を終了する。
【0063】
なお、ステップS901でキャッシュ領域に要求されたアプリケーションが見つからなかった場合に、第1実施形態のようにステップS408へ処理を進めるように構成してもよい。
【0064】
以上のように、第4実施形態によれば、機種依存のあるアプリケーションプログラムがプリンタコントローラに存在しない場合、ネットワークカードモジュール側に前回起動時にキャッシュとして一時記憶されている該当アプリケーションを代替利用することが可能となる。また、キャッシュに保存されたアプリケーションをプリンタコントローラの記憶部に保存しなおすので、例えばプリンタコントローラの記憶部がハードディスク等の二次記憶装置で構成されており、この二次記憶装置を交換した場合でも、機種依存のアプリケーションをユーザが手動でインストールする手間を省くことが期待できる。
【0065】
<第5実施形態>
第5実施形態では、第4実施形態で説明したキャッシュ領域からのアプリケーションのロードを、第2実施形態で説明したアプリケーション自動起動処理に適用する例を説明する。
【0066】
図10は第5実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。図10において、第2実施形態(図5)と同じ処理には同一のステップ番号を付してある。
【0067】
ステップS501〜S503により、起動が要求されたアプリケーションの格納先がプリンタコントローラであると判定されると(即ち、要求されるアプリケーションの格納先が/dev/で始まっている場合)、ステップS504でプリンタコントローラ1600に対してアプリケーションの取得要求が発行される。そして、プリンタコントローラ1600から要求したアプリケーションが取得された場合は、ステップS505からステップS506へ進み、当該アプリケーションをネットワークプリントサーバ1500のRAM14にロードする。一方、ステップS501〜S503により起動が要求されたアプリケーションの格納先がネットワークプリントサーバ1500であると判定され(即ち、要求されるアプリケーションの格納先が/dev/で始まっていない場合)、要求したアプリケーションが取得され場合は、ステップS507からステップS508へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。ステップS506或いはステップS508でアプリケーションをRAM14にロードした後、ステップS924へ進み、ロードしたアプリケーションプログラムをネットワークプリントサーバ1500のFlashROM3内の所定の記憶領域(キャッシュ領域と称する)にキャッシュとして一時記憶する。なおFlashROM3内のキャッシュ領域には複数のアプリケーションプログラムを領域の空きがある範囲で一時記憶可能である。新たにアプリケーションプログラムを記憶する際、キャッシュ領域に空きが不足する場合には、記憶可能な領域サイズを確保できるまで利用頻度が低くかつ保存時間の長いアプリケーションプログラムから順に削除して記憶領域を確保し、保存する。
【0068】
さて、ステップS504でプリンタコントローラ1600に要求したアプリケーションが無かった場合は、ステップS505からステップS921へ進む。ステップS921では、ネットワークプリントサーバ1500内の記憶部のキャッシュ領域を検索し、当該アプリケーションがキャッシュされているか判定する。当該アプリケーションがキャッシュされている場合には、ステップS922へ進み、キャッシュ領域に保存された当該アプリケーションを要求されたアプリケーションの代替としてネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS923において、キャッシュ領域に保存されていた当該アプリケーションをプリンタコントローラ1600の記憶部に保存する。その後、ステップS509へ進んでアプリケーションプログラムを起動し、本処理を終了する。
【0069】
一方、ステップS921において要求されたアプリケーションがキャッシュ領域にも存在しないと判定された場合には、そのまま本処理を終了する。
【0070】
なお、ステップS921でキャッシュ領域に要求されたアプリケーションが見つからなかった場合に、第2実施形態のようにステップS507へ処理を進めるように構成してもよい。
【0071】
〔その他の実施形態〕
第1、第2、第4、第5実施形態において、アプリケーションプログラムの格納先の判定方法では、URLから抽出した文字列に“/dev/”が存在するか否かによって格納先を特定していた。しかしながら、この方法ではURL自身が格納先を文字列として記す結果となるため、格納先を内部情報として隠蔽化したい場合には適当ではない。そこでこの対処方法として、予めアプリケーションプログラムの名称毎に格納先を識別できるテーブルをネットワークプリントサーバ内の記憶部に保持しておき、このテーブル情報に基づいて格納先を特定するようにしてもよい。この手法によればURLに格納先を示す文字列を含む必要がなくなり、格納先情報を隠蔽化することが可能である。
【0072】
また、上記第4及び第5実施形態において、ネットワークプリントサーバ内のアプリケーションもキャッシュするように構成しているが、プリンタコントローラ内のアプリケーションのみをキャッシュするように構成してもよい。この場合、ステップS407(S506)の処理後にのみステップS905(S924)を実行し、ステップS409(S508)の処理後にはステップS905(S924)を実行しないようにすればよい。
【0073】
以上、本発明のネットワーク装置をネットワークカードモジュール(ネットワークプリントサーバ1500)で実現した例を説明したが、実現の形態としてはカードに限られるものではなく、カートリッジタイプ等、データ処理装置本体への着脱が可能な形態であればどの様な形態であってもよい。
【0074】
また、本発明のネットワーク装置として、プリンタに装着するモジュール(ネットワークプリントサーバ1500)を説明したが、ネットワーク装置の適用はプリンタに限られるものではない。例えば、複写機やファクシミリ等、各種のデータ処理装置に適用できることは明らかであろう。
【0075】
以上説明したように、上記各実施形態によれば、ネットワークカードモジュール上で動作可能なアプリケーションプログラムモジュールの格納先を、当該アプリケーションプログラムの種類によって分ける。すなわち、機種非依存(共通)のプログラムであればネットワークカードモジュールのFlashROM等の記憶デバイスに格納し、機種依存のプログラムであれば、印刷装置本体(プリンタコントローラ)の記憶デバイスに格納することが可能となり、ネットワークカードモジュールおよび印刷装置本体の記憶デバイスをより効率的に利用できる。換言すれば、アプリケーションプログラムの機種依存性の有無によってアプリケーションプログラムの保存先を分散化することが可能となるため、共通モジュールであるネットワークカードに不必要なデータを保持する必要がなくなり、ネットワークカードモジュール側の記憶容量を削減できる。また別の観点からみた場合、機種依存のあるアプリケーションをネットワークカードモジュール側に保持しないことでユーザが誤って他の機種でしか動作しないアプリケーションプログラムを起動させてしまうといったミスを防止できるという効果も期待できる。
【0076】
さらにアプリケーションプログラムを実行する際にも、プログラム内の命令種別に応じて、命令処理をネットワークカードモジュール側、印刷装置本体側にそれぞれ分散化できるため命令処理の効率化が図れる。また、命令処理に関わる印刷装置本体の機種依存を含む固有情報をネットワークカードモジュールで保持する必要がなくなるため、ネットワークカードモジュール自身のプログラム容量を削減することが可能となる。また、将来新たな印刷装置本体が追加されてもネットワークカードモジュール側に改変を加える必要がなく、流用性の向上にも寄与する。
【0077】
また第1実施形態の図4および第2実施形態の図5のフローチャートで説明した処理によれば、起動要求されたアプリケーションプログラムが機種依存であり、それがプリンタコントローラに存在しない場合、ネットワークカードモジュール側に記憶されている同種のアプリケーションを代替利用することが可能となっている。このため、機種依存性の無い機能の範囲内でアプリケーションを利用する限りはプリンタコントローラに別途アプリケーションを記憶する必要がなくなる。言い換えるとプリンタコントローラの持つ機種依存する機能を活用したい場合には、プリンタコントローラ側の記録領域に機種依存な機能を含んだアプリケーションをネットワークプリントサーバ側のアプリケーションと同じ名前で記憶し、アプリケーション起動要求命令のアプリケーションURLに“/dev/”で始まる格納情報を指定することで同名のアプリケーションがプリンタコントローラ、ネットワークプリントサーバの双方に記憶されていても優先的にプリンタコントローラ側のアプリケーションが起動される。このため、ユーザ側で保存先を意識しなくてもその機種により好適なアプリケーションを自動選択することが可能となる。
【0078】
また別の観点からみた場合、機種依存のあるアプリケーションをネットワークカードモジュール(ネットワークプリントサーバ)側に保持しないので、ユーザが誤って他の機種でしか動作しないアプリケーションプログラムを起動させてしまうといったミスを防止できるという効果も期待できる。
【0079】
【発明の効果】
以上説明したように、本発明によれば、データ処理装置自体またはデータ処理装置の機種に依存するアプリケーションはデータ処理装置側で保持し、データ処理装置またはデータ処理装置の機種に非依存のアプリケーションはネットワーク装置側で保持することが可能となるので、ネットワーク装置のメモリ資源を効率的に利用することが実現できる。
【図面の簡単な説明】
【図1】第1実施形態に関わる印刷システムのハードウェア構成を示すブロック図である。
【図2】第1実施形態に関わる印刷システムのソフトウェア構成を示すブロック図である。
【図3】アプリケーションプログラムのソースコード記述例を示す図である。
【図4】第1実施形態によるアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図5】第2実施形態によるアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図6】第3実施形態による、アプリケーションプログラム内に記述された命令の処理方法を示すフローチャートである。
【図7】プリンタコントローラに対する命令コード書式を示す図である。
【図8】プリンタコントローラから返信される命令処理結果の書式を示す図である。
【図9】第4実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図10】第5実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。
【発明の属する技術分野】
本発明は、プリンタ等のデータ処理装置に装着可能なネットワーク装置およびその制御方法に関する。
【0002】
【従来の技術】
近年、インターネットの普及により、印刷装置、複写機、ファクシミリ装置等のデータ処理装置をネットワークに接続して使用する形態が一般化してきた。例えば、印刷装置の場合、高速機やカラー機などの高価格機ではネットワークインターフェイスは内蔵される傾向にある。しかしながら、低価格なモノクロ機の場合には、ネットワークインターフェイスは本体には組み込まれず、ネットワークカードモジュールとして別に供給される形態が一般的である。
【0003】
この場合、印刷装置本体とネットワークカードモジュールは個々にCPUを持ったインテリジェントな形態となる。そして、通常は、ネットワークカードモジュール側にネットワーク経由での各種プリントサービスの統括制御を行なうプリントサーバ機能が設けられる。このようなネットワークカードモジュールは接続インターフェイスを介して印刷装置と通信を行ない、所望のサービスを実現する。
【0004】
このことは、印刷装置側からすれば、負荷の重いネットワークサービスをネットワークカードモジュール側に依存することを可能にする。従って、相対的に印刷装置本体のCPUや周辺IC等のパフォーマンスを下げることが可能となり、印刷装置本体のコスト削減をもたらす結果となる。
【0005】
従来のネットワークインターフェイスは、例えばLPR(Line Printer Daemon Protocol:TCP/IPでプリンタ共有を行なうときに使うリモート印刷プロトコル)に代表されるような印刷データの送信ができればよかった。しかしながら、昨今では印刷装置に対する情報管理というニーズが高くなり、付加技術として各種の手段が提供されている。
【0006】
その最も単純な例が、印刷データを送信するポートに情報管理データ(ジョブ制御言語=Job Language)を付加する形態である。ジョブ制御言語は印刷データを送るポートを共有する形であるため、サービスポートを増加せずに済み、比較的実装が簡単である。しかしながら、一方、印刷データ受信中にデータが大量に送信されるとポートが占有されてしまい、情報管理データのやりとりが止まってしまうという問題がある。またネットワークにおけるLPRプロトコルのような片方向型コネクションの場合には、そもそも情報取得ができないという欠点がある。
【0007】
次の手法としては、SNMP/MIBを使った方式がある。これはデータ送受信用の専用ポートを使用し、標準規格であるSNMP(Simple Network Management Protocol)を使うMIB(Management Information Base:管理情報データベース)である。しかしこの方式では、SNMPを受信してユーザインタフェース(UI)を提供する専用クライアントプログラムの独自開発が必要となる。更に、この方式では、そもそも単純な情報のやり取りを行うプロトコルであるため、数字、文字列などの単純なデータベースしか提供できない。その結果、機器の構成を示すビットマップ画像などを用いたグラフィカルユーザインタフェース(GUI)を構成する情報はクライアントプログラム側で所有しておかなければならない。このため、クライアントプログラムを機種毎に対応させなくてはいけないという問題点がある。
【0008】
さらに最近ではHTTPプロトコルを用いた方式が主流となりつつある。この方式によれば、ネットワークカードモジュールはHTTPサービスを用いて、機器情報に関するHTMLデータやビットマップ画像といったWEBコンテンツをクライアントに提供する。クライアントは一般的なWEBブラウザを使用してネットワークカードモジュールから提供されたWEBコンテンツを表示し、GUIを実現する。このようなGUIにて操作を可能とすれば、個別のクライアントプログラムを提供しなくても、専用のクライアントプログラムを用いた場合と同様の効果を得ることが可能である。専用のクライアントプログラムがその機器に固有な多種多様の情報(メッセージ文字列、ビットマップ画像等)を管理する必要があるため、機器が自分の機種情報だけを持てばよい上記方式は短期間で製品を提供するためにはもっとも適する方法である。
【0009】
しかしながら上記述べたいずれの手法もネットワークカードモジュールに予め組み込まれた静的な機能を提供するに止まるものであり、後から機能そのものを追加したり、或いは、組み込まれた機能による制御方法を変更するといった動的なサービスの追加はできなかった。
【0010】
これに対して、データ処理装置上で動作可能なアプリケーションプログラムをネットワーク上の外部装置より取得して実行するシステムが特許文献1によって提案されている。また、最近になってJava(米国Sun Microsystems, Inc.の登録商標)言語を用いて作成されたアプリケーションプログラムモジュールを機器に組み込み、機器上に実装されたJava仮想マシン上で動作可能とするプラットフォーム技術が提案されている。この技術を用いることで印刷装置等の組み込み機器に後から新たな機能を機器に追加することが可能となってきている。
【0011】
上述のJava仮想マシンにはネットワーク通信機能を始め、組み込み機器を制御するために必要な各種機能を提供するためにアプリケーションプログラムインタフェース(API)が備わっている。Java言語で作成されたアプリケーションプログラムモジュールはこれらのAPIを呼び出して、組み込み機器に対する制御やネットワークで接続されたホストコンピュータからの要求を処理する。
【0012】
【特許文献1】
特開2000−298561号公報
【0013】
【発明が解決しようとする課題】
上記Java仮想マシン上で提供されるAPIは、ネットワーク通信に必要な機能を含んでおり、ネットワーク通信プロトコルの処理を行なう基本モジュールを共有する。従って、インテリジェント型のネットワークカードモジュールに、上記Java環境を実装し、ネットワーク通信を実現することも可能であろう。
【0014】
しかしながら、印刷装置本体と別個にCPUを備えるインテリジェント型ネットワークカードモジュールの場合、共通化による開発コスト低減と量産効果による生産コスト削減のために、通常複数のモデルの印刷装置間で共用可能(複数種類の印刷装置に接続可能)な設計が求められる。
【0015】
複数のモデルの機種に接続可能にするためには、ネットワークカードモジュールにおいて、各機種に応じたメッセージや、グラフィカルユーザインタフェースに必要な印刷装置のビットマップ画像等のリソースデータや、各モデル固有な情報等を全て保持しなければならない。この結果、これらの情報を記憶するための必要なROM容量が増大し、ネットワークカードモジュールのコスト増加が発生する。
【0016】
さらに、Java仮想マシン上で動作するアプリケーションプログラムモジュールの種類によっては、特定の機種でしか機能しないものや、特定の機種のみで必要なもの(以下、これらを機種依存アプリケーションプログラムという)もある。このため、これらの機種依存アプリケーションプログラムをネットワークカードモジュール内に保持することは上記ROM容量の増加と併せて記憶領域の効率的利用の点でも課題を生じる。
【0017】
本発明は上記の課題に鑑みてなされたものであり、データ処理装置自体またはデータ処理装置の機種に依存のアプリケーションはデータ処理装置側で保持し、データ処理装置自体またはデータ処理装置の機種に非依存のアプリケーションはネットワーク装置側で保持可能とし、ネットワーク装置のメモリ資源を効率的に利用可能とすることを目的とする。または、本発明は上記の課題に鑑みてなされたものであり、データ処理装置自体またはデータ処理装置の機種に依存するアプリケーションでも、ネットワーク装置で実行可能にすることを目的とする。
【0018】
【課題を解決するための手段】
上記の目的を達成するための本発明の一態様であるネットワーク装置は以下の構成を備える。即ち、
データ処理装置に対して着脱可能であり、データ処理装置に装着されることにより当該データ処理装置とネットワークとを接続するネットワーク装置であって、
装着されたデータ処理装置との間の信号授受のための第1インタフェースと、
前記ネットワークとの間の信号授受のための第2インタフェースと、
起動すべきアプリケーションの格納場所がネットワーク装置内かデータ処理装置内かを判定する判定手段と、
前記格納場所がデータ処理装置内であると判定された場合は前記第1インタフェースを介して、装着されたデータ処理装置より前記起動すべきアプリケーションを取得する取得手段とを備える。
【0019】
また、上記の目的を達成するための本発明の他の態様によるネットワーク装置は以下の構成を備える。即ち、
データ処理装置に対して着脱可能であり、データ処理装置に装着されて当該データ処理装置とネットワークとを接続するネットワーク装置であって、
アプリケーションプログラムを前記ネットワーク装置のメモリ空間上で実行する実行手段と、
前記アプリケーションプログラムによって要求された処理命令が、装着されたデータ処理装置に依存するかを判断する判断手段と、
前記処理命令が前記データ処理装置に依存する場合、該処理命令に対応する前記データ処理装置の命令書式の命令を生成する生成手段と、
前記生成手段により生成された命令を前記データ処理装置に転送する転送手段とを備える。
【0020】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0021】
<第1実施形態>
図1は、第1実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。1000はプリンタであり、大きくはネットワークプリントサーバ1500とプリンタコントローラ1600からなり、それぞれ独立した制御系を有する。
【0022】
ネットワークプリントサーバ1500は、ネットワークボードモジュールの形態で実現されたプリンタ1000に対して着脱可能なネットワーク装置である。ネットワークプリントサーバ1500において、1はネットワークプリントサーバ用CPUであり、書き換え可能なFlashROM3に記憶された制御プログラムに基づいて各種制御を実行する。例えば、システムバス4に接続されるネットワークコントローラ(LANC5)を介してローカルエリアネットワーク(LAN2000)に接続されたホストコンピュータ等の外部装置(不図示)と所定のネットワーク通信プロトコルを用いて通信する。これにより、例えば、外部装置から送られる印刷データやプリンタ制御命令等の各種データの送受信を統括的に制御し、拡張インタフェースコントローラ(EXPC7)を介して接続されるプリンタコントローラ1501に対して適切なデータ転送制御を行なう。またFlashROM3には、図4,5,6のフローチャートで示されるようなCPU1によって実行される制御プログラムも記憶されている。
【0023】
RAM2はCPU1の主メモリ、ワークエリア等の一時記憶領域として用いられる。LED6はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ(LANC5)とローカルエリアネットワーク(LAN2000)の電気的な接続状態(LINK)や、ネットワーク通信モード(10Baseや100Base、全二重、半二重)等の各種動作状態をLEDの点滅パターンや色で示すことが可能となっている。
【0024】
拡張インタフェース17は、ネットワークプリントサーバ1500とプリンタコントローラ1600を接続するためのインタフェースであり、図示しないコネクタを含んで構成されている。ネットワークプリントサーバ1500は、このコネクタによってプリンタ1000(プリンタコントローラ1600)との着脱が可能となっており、同じ構成を持つ別のプリンタに当該ネットワークプリントサーバ1500を装着することも可能である。
【0025】
一方、プリンタコントローラ1600において、8はプリンタコントローラ用CPUであり、システムバス11に接続される各種デバイスとのアクセスを統括的に制御する。また、CPU8の制御の下、ラスタコントローラ12は、ネットワークプリントサーバ1500から拡張インタフェースコントローラ(EXPC13)を介して受信される印刷データに基づいて出力画像信号を生成し、プリントエンジン16に対して画像信号を出力する。以上のような処理は、ROM9に記憶された制御プログラム等、或いはディスクコントローラ(DKC15)を介して接続された外部メモリ10に記憶されている制御プログラムやリソースデータ(資源情報)等に基づいてCPU8が動作することにより実現される。
【0026】
14はCPU8の主メモリ、ワークエリア等として機能するRAMであり、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。18は操作パネルであり、プリンタ1000の動作モード等の設定や印刷データの取り消し等の操作を行なうためのボタンと、プリンタ1000の動作状態を示す液晶パネルやLED等の表示部等が配されている。なお、本図で示したプリンタエンジン16は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。
【0027】
図2は、図1に示したネットワークプリントサーバ1500およびプリンタコントローラ1600の各記憶部(例えば、FlashROM3、ROM9)に記憶された制御プログラムのソフトウェア構成を説明するブロック図である。なお、これらの制御プログラムはCPU1、8によって解析され実行される。
【0028】
ネットワークプリントサーバ1500側において、1501はオペレーティングシステムであり、ネットワークプリントサーバ1500の基本的なデータ入出力制御を統括する。オペレーティングシステム1501は、プログラム/データ記憶部1509との入出力制御を行なうファイルシステム1505と、プリンタコントローラ1600と拡張インタフェース17を介して通信制御を行なう拡張インタフェースドライバ1506と、ローカルエリアネットワーク(LAN2000)の通信媒体を介してホストコンピュータ等の外部装置(不図示)と通信を行なうネットワークインタフェースドライバ1507とを内包している。なお、プログラムデータ記憶部1509は、例えばFlashROM3により構成される。
【0029】
1502はアプリケーションプログラムインタフェース(API)である。API1502は、ネットワークプリントサーバ1500で動作するユーザアプリケーション1503や管理アプリケーション1504等のアプリケーションプログラムに対してオペレーティングシステム1501が備える各種機能を提供する。なお、管理アプリケーション1504は、プリンタ1000やユーザアプリケーションの登録・管理を行うアプリケーションである。またAPI1502は、印刷データの送受信機能を提供するデータ転送API、ビットマップ画像や表示メッセージ及びアプリケーションプログラム等のリソースデータの入出力制御を行なうリソース制御API、プリンタ1000の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御API、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御API、ネットワークプリントサーバ1500の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行なうプリントサーバ制御API等を備える。また、データ転送API、リソース制御API、プリンタ制御API、ジョブ制御APIによって提供される命令はプリンタコントローラ依存命令として図7で示されるような命令書式に変換した後、拡張インタフェース17を介してプリンタコントローラに転送される。
【0030】
プリンタコントローラ1600側において、1601はプリンタコントローラ1600の各種処理制御を統括するオペレーティングシステムであり、プリントエンジン制御部1603及びファイルシステム1604を有する。プリントエンジン制御部1603は、プリントエンジンとの通信制御を行なう。ファイルシステム1604は機種依存リソース/プログラム記憶部1610との入出力制御を行なう。機種依存リソース/プログラム記憶部1610は、ネットワークプリントサーバ1500から参照されるビットマップ画像やエラーメッセージ等の機種依存リソース、及びネットワークプリントサーバ1500上で動作する機種依存アプリケーションプログラム等を記憶する。
【0031】
1602は拡張インタフェース制御部であり、拡張インタフェース17を介してネットワークプリントサーバ1500との通信制御を行なう。拡張インタフェース制御部1602は、制御種別に応じた論理インターフェースを備える。例えば、印刷データの入出力を制御するデータ転送論理インタフェース、機種依存リソース/プログラム記憶部1610に記憶された各種データの入出力を制御するリソース制御論理インタフェース、プリンタ1000の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御論理インタフェース、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェースを備える。各論理インタフェースは、ネットワークプリントサーバ1500から要求された命令をオペレーティングシステム1601に転送し、その処理結果をネットワークプリントサーバ1500に対して返信する。
【0032】
図3は、ネットワークプリントサーバ1500で動作するアプリケーションプログラムの記述例であり、本実施形態の好適な一例としてJava言語による記述例を示している。図3の301に示される行は図2で説明したデータ転送APIを呼び出す例であり、“printer.outdata(“Test”)”がデータ転送APIである。これは“Test”というテキストデータを印字データとしてプリンタコントローラを介してプリントエンジンから印刷せよというプリンタコントローラ依存命令である。プリンタコントローラ1600にて当該命令に従って処理が実行されると、コントローラから受信した処理結果が変数“result”に数値型として変換されて格納される。
【0033】
図3の302に示される行は301の行で指示された処理結果を標準出力先(例えばプリンタ1000の操作パネル18のLCD表示部やアプリケーションの呼び出し元であるホストコンピュータのブラウザ表示部)にテキストメッセージ変換して表示する命令の記述例である。
【0034】
図4は、第1実施形態に係るネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。本処理は管理アプリケーション1504に含まれる。なお、S401〜S411は各処理ステップを示し、ローカルエリアネットワーク(LAN2000)に接続されたホストコンピュータ等の外部装置から本プリンタ1000に対してアプリケーションの起動要求を受信した場合の処理の流れに対応する。なお各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。
【0035】
ステップS401において、LAN2000を介して不図示のホストコンピュータ等の外部装置からアプリケーション起動要求命令を受信する。本実施形態において、アプリケーション起動要求命令は、URL(Uniform Resource Locator)により起動すべきアプリケーションプログラムを特定する。ステップS402ではステップS401で受信したアプリケーション起動要求命令からアプリケーションを特定するURLを取得する。ステップS403では、取得したURLから、起動要求されているアプリケーションの当該プリンタ1000内における格納先情報を抽出する。例えば指定されたアプリケーションのURLが、
HTTP://192.168.0.215/abc/xyz.Java
の場合は、HTTP://はスキームであり、192.168.0.215 は本プリンタ装置自身のネットワークアドレスを示すものであるため、格納先情報として抽出される情報は、“/abc/xyx.Java” となる。
【0036】
本実施形態では、格納先情報の文字列から、当該アプリケーションがプリントサーバ1500内の記憶部(例えばFlashROM3)に格納されているか、プリンタコントローラ1600内の記憶部(例えばROM9)に格納されているかを判定する。本実施形態では、“/dev/”で始まる格納先はプリンタコントローラ側であるとする。
【0037】
よって、ステップS404では、ステップS403で抽出した格納先情報の文字列が“/dev/”で始まっているか否かを判定する。格納先情報の文字列が“/dev/”で始まっていない場合、起動すべきアプリケーションはネットワークプリントサーバ1600内にあると判断され、処理はステップS408へ進む。ステップS408では、ネットワークプリントサーバ1500内の記憶部に該当するアプリケーションプログラムが存在するか判定する。該当するアプリケーションプログラムが存在する場合にはステップS409へ進み、要求されたアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS410へ進み、当該アプリケーションプログラムを起動して本処理を終了する。なお、ステップS408で該当するアプリケーションが存在しない場合は、ステップS411へ進み、要求元にエラーを通知して本処理を終了する。
【0038】
一方、ステップS404で格納先情報の文字列が“/dev/”で始まっている場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ1600であると判断し、ステップS405へ進む。ステップS405では、プリンタコントローラ1600に対して図2で説明したようなAPI(リソース制御API)を用いてアプリケーションプログラムの取得要求を発行する。ステップS406では、プリンタコントローラ1600からの応答に基づいて、要求したアプリケーションプログラムが取得できたかどうかを判断する。要求したアプリケーションプログラムが取得できた場合には、ステップS407へ進み、取得したアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS410へ進み、当該アプリケーションプログラムを起動して本処理を終了する。
【0039】
ステップS406で、要求したアプリケーションプログラムがプリンタコントローラ1600から取得できなかったと判定された場合は、ステップS408へ進み、ネットワークプリントサーバ1500内の記憶部に同名のアプリケーションが存在するか判定する。ここで同名のアプリケーションが存在する場合には、上述のステップS409以降に従い、ネットワークプリントサーバ1500内のアプリケーションを代替アプリケーションとして起動する。ネットワークサーバ1500内でも要求されたアプリケーションが存在しないと判定された場合には、ステップS408からS410へ進み、アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知し、本処理を終了する。
【0040】
以上のように、第1実施形態によれば、Java仮想マシン上に提供される情報(アプリケーション)を印刷装置の機種に依存するものとしないものに分類し、機種依存の情報を各印刷装置本体(プリンタコントローラ)へ、機種非依存の情報をネットワークカードモジュールに分けて格納することが可能となるので、メモリ容量の低減、利用効率の向上を図ることができる。
【0041】
<第2実施形態>
第1実施形態では、ホストコンピュータ等の外部装置からのアプリケーションの起動要求に応じて、その起動要求に含まれているURLからそのアプリケーションの格納先を判断する場合を説明した。第2実施形態では、プリンタ1000の起動時に自動起動アプリケーションとして指定されたアプリケーションを起動する場合を説明する。なお、自動起動アプリケーションを指定するための情報は、ネットワークプリントサーバ1500の所定の記憶領域に予め格納されている。
【0042】
図5は、ネットワークプリントサーバ1500上で動作するアプリケーションプログラムの、第2実施形態による起動処理方法を示すフローチャートである。なお、ステップS501〜S509は各処理ステップを示し、各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。また、本処理も管理アプリケーション1504に含まれる。
【0043】
プリンタ1000が電源ON或いはリセットによって再起動されると、ステップS501でネットワークプリントサーバ1500の所定の記憶領域に自動起動するアプリケーションの格納情報が存在するか判定する。自動起動するアプリケーションの格納情報が存在する場合はステップS502に進み、起動すべきアプリケーションの格納情報を取得する。格納情報はパス(格納先)とアプリケーションファイル名を含む。よって、ステップS503において、アプリケーションの格納先を表す文字列が“/dev/”で始まっているかの判定を行なう。
【0044】
格納先を表す文字列が“/dev/”で始まっていない場合、当該アプリケーションの格納先はネットワークプリントサーバ1600内であると判断し、ステップS507へ進む。ステップS507では、ネットワークプリントサーバ内の記憶部に該当するアプリケーションプログラムが存在するか判定する。該当するアプリケーションプログラムが存在する場合にはステップS508へ進み、該当するアプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS509へ進み、当該アプリケーションプログラムを起動して本処理を終了する。なお、ステップS507で要求されたアプリケーションが存在しないと判定した場合には、ただちに本処理を終了する。
【0045】
一方、ステップS503で格納先を表す文字列が“/dev/”で始まっている場合には、起動要求されたアプリケーションの格納先がプリンタコントローラ1600であると判断し、ステップS504へ進む。ステップS504では、プリンタコントローラ1600に対して図2で説明したようなAPI(リソース制御API)を用いてアプリケーションプログラムの取得要求を発行する。ステップS505では、プリンタコントローラ1600からの応答に基づいて、要求したアプリケーションプログラムが取得できたかどうかを判断する。要求したアプリケーションプログラムが取得できたと判断された場合は、ステップS506へ進み、アプリケーションプログラムをネットワークプリントサーバ1500のRAM14にロードする。そしてステップS509へ進み、アプリケーションプログラムを起動して処理を終了する。
【0046】
一方、ステップS505でプリンタコントローラ1600から要求したアプリケーションプログラムが取得できなかったと判断された場合は、ステップS507へ進む。ステップS507では、ネットワークプリントサーバ1500内の記憶部に同名のアプリケーションプログラムが存在するかを調べ、同名のアプリケーションが存在する場合には上述のステップS508以降の処理を実行し、ネットワークプリントサーバ1500内のアプリケーションを代替自動起動アプリケーションとして起動する。一方、ステップS507で要求されたアプリケーションが存在しないと判定した場合には、ただちに本処理を終了する。
【0047】
なお、ステップS501で自動起動するアプリケーションの格納情報が存在しないと判断した場合にも同様にただちに本処理を終了する。
【0048】
以上説明したように、第2実施形態によれば、第1実施形態と同様の効果を維持しながら、アプリケーションの自動起動に対応することができる。
【0049】
<第3実施形態>
以上、第1及び第2実施形態ではアプリケーションの起動処理について説明した。第3実施形態では、アプリケーションの実行中における各種コマンド等の実行処理について説明する。本実施形態では、複数種類のコマンド処理機能をネットワークプリントサーバとプリンタコントローラに分散して保持することを可能とし、メモリの利用効率を向上させる。
【0050】
図6は、第3実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムに記述された命令の処理手順を示すフローチャートである。なお、S601〜S610は各処理ステップを示す。なお各ステップに対応する制御手順はネットワークプリントサーバ1500のFlashROM3に記憶されている。
【0051】
上述した図4もしくは図5に従ってアプリケーションプログラムが起動すると、ステップS601において起動中のアプリケーションプログラム内に含まれる命令を1つ取り出し、解析処理を行なう。ステップS602において命令種別が、例えば図3で説明したようなデータ転送APIのようにプリンタコントローラを介して処理が必要なプリンタコントローラ1600に依存する命令であると判断された場合は、ステップS603へ進む。ステップS603では、図7で示すようなプリンタコントローラ1600の命令書式に従った命令コードを生成し、ステップS604でその生成された命令コードを拡張インタフェース17介してプリンタコントローラ1600へ送信する。例えば図3で示した“printer.outdata(”test”)”というデータ転送APIの場合、図7の命令種別に「書き込み」を示す値(0)が、呼び出し番号の領域に印刷を指示する命令番号(例700)が、引数データ種別の領域に印刷するデータ“test”のデータ型が文字列データあることを示す値(1)が、引数データサイズの領域に“test”のデータサイズ(例:4321)が、引数データ領域に“test”の実データが格納された命令コードが設定され、プリンタコントローラ1600に転送される。
【0052】
ステップS605では、プリンタコントローラ1600からの上記命令コード送信に対する応答の有無を判断し、応答があった場合にはステップS606へ進む。ステップS606では、プリンタコントローラ1600から返信された処理結果を受信する。プリンタコントローラ1600から返信された処理結果は図8に示されるような書式を有する。例えば、上記“printer.outdata(“test”)というデータ転送APIの場合、関数戻り値領域にはステップS604で送信された命令コードの処理結果を示す値が、応答データ種別には応答データ領域に含まれるデータの型が数値型であることを示す値(0)が、応答データサイズ領域には応答データ領域のデータサイズのバイト数を示す数値が、応答データ領域にはステップS604で指示された命令番号の応答データが格納されて返信される。さらにステップS607で元のプログラム命令に対応した処理結果の書式に変換する。そしてステップS609へ進む。なお、ステップS605において、送信した命令コードの応答がプリンタコントローラ1600から一定期間内に受信できなかった場合には、ただちにプログラム処理を終了する。
【0053】
また、ステップS602においてプリンタコントローラ1600に依存する命令ではないと判定された場合には、ステップS608へ進み、ネットワークプリントサーバ1500によって当該プログラム命令を処理し、ステップS609へ進む。
【0054】
ステップS609では、プログラム命令の処理結果をネットワークプリントサーバ1500の所定のメモリ空間に格納する。ステップS610で後続のプログラム命令の有無を確認し、次の命令が存在する場合には再度ステップS601へ戻り上記処理を繰り返す。次の命令が存在しない場合には処理を終了する。
【0055】
以上のように第3実施形態によれば、実行中のアプリケーションプログラムが含むプログラム命令がプリンタコントローラに依存する命令であっても、これをプリンタコントローラに提供して実行させることができる。即ち、機種依存型の命令の実行機能をネットワークプリントサーバ1500側で保持している必要が無くなるので、メモリの容量低減、効率的利用が促進される。
【0056】
<第4実施形態>
上記第1実施形態では、プリンタコントローラ1600内でアプリケーションプログラムを探して見つからなかった場合にはネットワークプリントサーバ1500に同名のアプリケーションが存在するか否かをチェックし、存在する場合には、これを代替アプリケーションとして実行させた。第4実施形態では、プリンタコントローラ1600内でアプリケーションプログラムを探して見つからなかった場合に、ネットワークプリントサーバ1500内の記憶部に当該アプリケーションがキャッシュされているかどうかをチェックし、キャッシュされていた場合にはそれを起動する。
【0057】
第4実施形態の印刷システムの構成、プリントサーバ、プリンタコントローラ上のプログラム構成は、図1及び図2により上述したとおりである。但し、FlashROM3には、図6、図9、図10のフローチャートで示されるようなCPU1の制御プログラムの記憶領域の他に、プリンタコントローラ1600に接続される外部メモリ1610等に記憶されたアプリケーションプログラムを読み出した際に当該アプリケーションプログラムをキャッシュとして一時記憶するキャッシュ領域を有する。
【0058】
図9は第4実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。図9において、第1実施形態(図4)と同じ処理には同一のステップ番号を付してある。
【0059】
ステップS401〜S404により、起動が要求されたアプリケーションの格納先がプリンタコントローラであると判定されると(即ち、要求されるアプリケーションの格納先が/dev/で始まっている場合)、ステップS405でプリンタコントローラ1600に対してアプリケーションの取得要求が発行される。要求したアプリケーションがプリンタコントローラ1600から取得された場合は、ステップS406からステップS407へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。一方、ステップS401〜S404で起動が要求されたアプリケーションの格納先がプリントサーバであると判定され(即ち、要求されるアプリケーションの格納先が/dev/で始まっていない場合)、要求したアプリケーションが取得された場合は、ステップS408からステップS409へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。
【0060】
ステップS407或いはステップS409で実行すべきアプリケーションをRAM14にロードすると、ステップS905へ進み、ロードしたアプリケーションプログラムをネットワークプリントサーバ1500のFlashROM3内の所定の記憶領域(キャッシュ領域と称する)にキャッシュとして一時記憶する。なおFlashROM3内のキャッシュ領域には複数のアプリケーションプログラムを領域の空きがある範囲で一時記憶可能である。新たにアプリケーションプログラムを記憶する際、キャッシュ領域に空きが不足する場合には、記憶可能な領域サイズを確保できるまで利用頻度が低くかつ保存時間の長いアプリケーションプログラムから順に削除して記憶領域を確保し、保存する。なお、これからキャッシュ登録しようとするアプリケーションプログラムが既にキャッシュされている場合は、上書きするか或いは登録処理を行なわないようにする。
【0061】
さて、ステップS405でプリンタコントローラ1600に要求したアプリケーションがプリンタコントローラ1600に存在しない場合は、ステップS406からステップS901へ進む。ステップS901では、ネットワークプリントサーバ1500内の上記キャッシュ領域を検索し、当該アプリケーションがキャッシュされているか判定する。当該アプリケーションが存在する(キャッシュされている)場合には、ステップS902へ進み、キャッシュ領域に保存された当該アプリケーションを要求されたアプリケーションの代替としてネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS903において、キャッシュ領域に保存されていた当該アプリケーションをプリンタコントローラ1600の記憶部に保存する。その後、ステップS410へ進んでアプリケーションプログラムを起動し、本処理を終了する。
【0062】
一方、ステップS901において要求されたアプリケーションがキャッシュ領域にも存在しないと判定された場合には、ステップS904へ進み、当該アプリケーション起動要求命令の送信元であるホストコンピュータに対してエラーを通知した後、本処理を終了する。
【0063】
なお、ステップS901でキャッシュ領域に要求されたアプリケーションが見つからなかった場合に、第1実施形態のようにステップS408へ処理を進めるように構成してもよい。
【0064】
以上のように、第4実施形態によれば、機種依存のあるアプリケーションプログラムがプリンタコントローラに存在しない場合、ネットワークカードモジュール側に前回起動時にキャッシュとして一時記憶されている該当アプリケーションを代替利用することが可能となる。また、キャッシュに保存されたアプリケーションをプリンタコントローラの記憶部に保存しなおすので、例えばプリンタコントローラの記憶部がハードディスク等の二次記憶装置で構成されており、この二次記憶装置を交換した場合でも、機種依存のアプリケーションをユーザが手動でインストールする手間を省くことが期待できる。
【0065】
<第5実施形態>
第5実施形態では、第4実施形態で説明したキャッシュ領域からのアプリケーションのロードを、第2実施形態で説明したアプリケーション自動起動処理に適用する例を説明する。
【0066】
図10は第5実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。図10において、第2実施形態(図5)と同じ処理には同一のステップ番号を付してある。
【0067】
ステップS501〜S503により、起動が要求されたアプリケーションの格納先がプリンタコントローラであると判定されると(即ち、要求されるアプリケーションの格納先が/dev/で始まっている場合)、ステップS504でプリンタコントローラ1600に対してアプリケーションの取得要求が発行される。そして、プリンタコントローラ1600から要求したアプリケーションが取得された場合は、ステップS505からステップS506へ進み、当該アプリケーションをネットワークプリントサーバ1500のRAM14にロードする。一方、ステップS501〜S503により起動が要求されたアプリケーションの格納先がネットワークプリントサーバ1500であると判定され(即ち、要求されるアプリケーションの格納先が/dev/で始まっていない場合)、要求したアプリケーションが取得され場合は、ステップS507からステップS508へ進み、当該アプリケーションをネットワーク1500のRAM14にロードする。ステップS506或いはステップS508でアプリケーションをRAM14にロードした後、ステップS924へ進み、ロードしたアプリケーションプログラムをネットワークプリントサーバ1500のFlashROM3内の所定の記憶領域(キャッシュ領域と称する)にキャッシュとして一時記憶する。なおFlashROM3内のキャッシュ領域には複数のアプリケーションプログラムを領域の空きがある範囲で一時記憶可能である。新たにアプリケーションプログラムを記憶する際、キャッシュ領域に空きが不足する場合には、記憶可能な領域サイズを確保できるまで利用頻度が低くかつ保存時間の長いアプリケーションプログラムから順に削除して記憶領域を確保し、保存する。
【0068】
さて、ステップS504でプリンタコントローラ1600に要求したアプリケーションが無かった場合は、ステップS505からステップS921へ進む。ステップS921では、ネットワークプリントサーバ1500内の記憶部のキャッシュ領域を検索し、当該アプリケーションがキャッシュされているか判定する。当該アプリケーションがキャッシュされている場合には、ステップS922へ進み、キャッシュ領域に保存された当該アプリケーションを要求されたアプリケーションの代替としてネットワークプリントサーバ1500のRAM14にロードする。そして、ステップS923において、キャッシュ領域に保存されていた当該アプリケーションをプリンタコントローラ1600の記憶部に保存する。その後、ステップS509へ進んでアプリケーションプログラムを起動し、本処理を終了する。
【0069】
一方、ステップS921において要求されたアプリケーションがキャッシュ領域にも存在しないと判定された場合には、そのまま本処理を終了する。
【0070】
なお、ステップS921でキャッシュ領域に要求されたアプリケーションが見つからなかった場合に、第2実施形態のようにステップS507へ処理を進めるように構成してもよい。
【0071】
〔その他の実施形態〕
第1、第2、第4、第5実施形態において、アプリケーションプログラムの格納先の判定方法では、URLから抽出した文字列に“/dev/”が存在するか否かによって格納先を特定していた。しかしながら、この方法ではURL自身が格納先を文字列として記す結果となるため、格納先を内部情報として隠蔽化したい場合には適当ではない。そこでこの対処方法として、予めアプリケーションプログラムの名称毎に格納先を識別できるテーブルをネットワークプリントサーバ内の記憶部に保持しておき、このテーブル情報に基づいて格納先を特定するようにしてもよい。この手法によればURLに格納先を示す文字列を含む必要がなくなり、格納先情報を隠蔽化することが可能である。
【0072】
また、上記第4及び第5実施形態において、ネットワークプリントサーバ内のアプリケーションもキャッシュするように構成しているが、プリンタコントローラ内のアプリケーションのみをキャッシュするように構成してもよい。この場合、ステップS407(S506)の処理後にのみステップS905(S924)を実行し、ステップS409(S508)の処理後にはステップS905(S924)を実行しないようにすればよい。
【0073】
以上、本発明のネットワーク装置をネットワークカードモジュール(ネットワークプリントサーバ1500)で実現した例を説明したが、実現の形態としてはカードに限られるものではなく、カートリッジタイプ等、データ処理装置本体への着脱が可能な形態であればどの様な形態であってもよい。
【0074】
また、本発明のネットワーク装置として、プリンタに装着するモジュール(ネットワークプリントサーバ1500)を説明したが、ネットワーク装置の適用はプリンタに限られるものではない。例えば、複写機やファクシミリ等、各種のデータ処理装置に適用できることは明らかであろう。
【0075】
以上説明したように、上記各実施形態によれば、ネットワークカードモジュール上で動作可能なアプリケーションプログラムモジュールの格納先を、当該アプリケーションプログラムの種類によって分ける。すなわち、機種非依存(共通)のプログラムであればネットワークカードモジュールのFlashROM等の記憶デバイスに格納し、機種依存のプログラムであれば、印刷装置本体(プリンタコントローラ)の記憶デバイスに格納することが可能となり、ネットワークカードモジュールおよび印刷装置本体の記憶デバイスをより効率的に利用できる。換言すれば、アプリケーションプログラムの機種依存性の有無によってアプリケーションプログラムの保存先を分散化することが可能となるため、共通モジュールであるネットワークカードに不必要なデータを保持する必要がなくなり、ネットワークカードモジュール側の記憶容量を削減できる。また別の観点からみた場合、機種依存のあるアプリケーションをネットワークカードモジュール側に保持しないことでユーザが誤って他の機種でしか動作しないアプリケーションプログラムを起動させてしまうといったミスを防止できるという効果も期待できる。
【0076】
さらにアプリケーションプログラムを実行する際にも、プログラム内の命令種別に応じて、命令処理をネットワークカードモジュール側、印刷装置本体側にそれぞれ分散化できるため命令処理の効率化が図れる。また、命令処理に関わる印刷装置本体の機種依存を含む固有情報をネットワークカードモジュールで保持する必要がなくなるため、ネットワークカードモジュール自身のプログラム容量を削減することが可能となる。また、将来新たな印刷装置本体が追加されてもネットワークカードモジュール側に改変を加える必要がなく、流用性の向上にも寄与する。
【0077】
また第1実施形態の図4および第2実施形態の図5のフローチャートで説明した処理によれば、起動要求されたアプリケーションプログラムが機種依存であり、それがプリンタコントローラに存在しない場合、ネットワークカードモジュール側に記憶されている同種のアプリケーションを代替利用することが可能となっている。このため、機種依存性の無い機能の範囲内でアプリケーションを利用する限りはプリンタコントローラに別途アプリケーションを記憶する必要がなくなる。言い換えるとプリンタコントローラの持つ機種依存する機能を活用したい場合には、プリンタコントローラ側の記録領域に機種依存な機能を含んだアプリケーションをネットワークプリントサーバ側のアプリケーションと同じ名前で記憶し、アプリケーション起動要求命令のアプリケーションURLに“/dev/”で始まる格納情報を指定することで同名のアプリケーションがプリンタコントローラ、ネットワークプリントサーバの双方に記憶されていても優先的にプリンタコントローラ側のアプリケーションが起動される。このため、ユーザ側で保存先を意識しなくてもその機種により好適なアプリケーションを自動選択することが可能となる。
【0078】
また別の観点からみた場合、機種依存のあるアプリケーションをネットワークカードモジュール(ネットワークプリントサーバ)側に保持しないので、ユーザが誤って他の機種でしか動作しないアプリケーションプログラムを起動させてしまうといったミスを防止できるという効果も期待できる。
【0079】
【発明の効果】
以上説明したように、本発明によれば、データ処理装置自体またはデータ処理装置の機種に依存するアプリケーションはデータ処理装置側で保持し、データ処理装置またはデータ処理装置の機種に非依存のアプリケーションはネットワーク装置側で保持することが可能となるので、ネットワーク装置のメモリ資源を効率的に利用することが実現できる。
【図面の簡単な説明】
【図1】第1実施形態に関わる印刷システムのハードウェア構成を示すブロック図である。
【図2】第1実施形態に関わる印刷システムのソフトウェア構成を示すブロック図である。
【図3】アプリケーションプログラムのソースコード記述例を示す図である。
【図4】第1実施形態によるアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図5】第2実施形態によるアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図6】第3実施形態による、アプリケーションプログラム内に記述された命令の処理方法を示すフローチャートである。
【図7】プリンタコントローラに対する命令コード書式を示す図である。
【図8】プリンタコントローラから返信される命令処理結果の書式を示す図である。
【図9】第4実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。
【図10】第5実施形態によるネットワークプリントサーバ1500上で動作するアプリケーションプログラムの起動処理方法を示すフローチャートである。
Claims (14)
- データ処理装置に対して着脱可能であり、データ処理装置に装着されることにより当該データ処理装置とネットワークとを接続するネットワーク装置であって、
装着されたデータ処理装置との間の信号授受のための第1インタフェースと、
前記ネットワークとの間の信号授受のための第2インタフェースと、
起動すべきアプリケーションの格納場所がネットワーク装置内かデータ処理装置内かを判定する判定手段と、
前記格納場所がデータ処理装置内であると判定された場合は前記第1インタフェースを介して、装着されたデータ処理装置より前記起動すべきアプリケーションを取得する取得手段とを備えることを特徴とするネットワーク装置。 - 前記起動すべきアプリケーションが、前記第2インタフェースを介して前記ネットワークより受信した起動要求によって指定されることを特徴とする請求項1に記載のネットワーク装置。
- 自動起動させるアプリケーションを指定する指定情報を保持した保持手段を更に備え、前記起動すべきアプリケーションが前記指定情報によって指定されることを特徴とする請求項1に記載のネットワーク装置。
- 前記判定手段は、前記起動すべきアプリケーションの格納場所を示すパス情報に基づいて判定することを特徴とする請求項1に記載のネットワーク装置。
- アプリケーションを特定する情報と該アプリケーションの格納場所を示す情報とを対応して保持するテーブルを更に備え、
前記判定手段は、前記テーブルを参照して判定することを特徴とする請求項1に記載のネットワーク装置。 - 前記アプリケーションは前記データ処理装置の制御及び/又は該データ処理装置と外部装置とのネットワークを介した通信を実行するものであることを特徴とする請求項1に記載のネットワーク装置。
- 前記取得手段は、アプリケーションの取得を要求するコマンドを前記データ処理装置に送り、その返答として前記起動すべきアプリケーションを取得することを特徴とする請求項1に記載のネットワーク装置。
- 前記取得手段により取得されたアプリケーションのプログラム命令が前記データ処理装置に依存するものである場合、当該プログラム命令に対応する前記データ処理装置の命令を前記データ処理装置に送信する命令送信手段を有することを特徴とする請求項1に記載のネットワーク装置。
- 前記取得手段で取得したアプリケーションをキャッシュするキャッシュ領域を更に備え、
前記取得手段は、前記データ処理装置内に前記起動すべきアプリケーションが存在しない場合、前記キャッシュ領域より該アプリケーションを取得すべく試みることを特徴とする請求項1に記載のネットワーク装置。 - 前記キャッシュ領域より起動すべきアプリケーションが取得された場合には、該アプリケーションを前記データ処理装置内に保持させるべく該アプリケーションを前記データ処理装置に送信する手段を更に備えることを特徴とする請求項9に記載のネットワーク装置。
- データ処理装置に対して着脱可能であり、データ処理装置に装着されて当該データ処理装置とネットワークとを接続するネットワーク装置であって、
アプリケーションプログラムを前記ネットワーク装置のメモリ空間上で実行する実行手段と、
前記アプリケーションプログラムによって要求された処理命令が、装着されたデータ処理装置に依存するかを判断する判断手段と、
前記処理命令が前記データ処理装置に依存する場合、該処理命令に対応する前記データ処理装置の命令書式の命令を生成する生成手段と、
前記生成手段により生成された命令を前記データ処理装置に転送する転送手段とを備えることを特徴とするネットワーク装置。 - 前記転送手段によって転送された命令の処理結果を前記データ処理装置から取得する取得手段と、
前記取得した処理結果を前記ネットワーク装置上の記憶領域に記憶する記憶手段とを更に備えることを特徴とする請求項11に記載のネットワーク装置。 - データ処理装置との間の信号授受のための第1インタフェースと、ネットワークとの間の信号授受のための第2インタフェースとを有し、データ処理装置に対して着脱可能であり、データ処理装置に装着されることにより当該データ処理装置とネットワークとを接続するネットワーク装置の制御方法であって、
起動すべきアプリケーションの格納場所がネットワーク装置内かデータ処理装置内かを判定する判定工程と、
前記格納場所がデータ処理装置内であると判定された場合は前記第1インタフェースを介して、装着されたデータ処理装置より前記起動すべきアプリケーションを取得する取得工程とを備えることを特徴とするネットワーク装置の制御方法。 - データ処理装置に対して着脱可能であり、データ処理装置に装着されて当該データ処理装置とネットワークとを接続するネットワーク装置の制御方法であって、
アプリケーションプログラムを前記ネットワーク装置のメモリ空間上で実行する実行工程と、
前記アプリケーションプログラムによって要求された処理命令が、装着されたデータ処理装置に依存するかを判断する判断工程と、
前記処理命令が前記データ処理装置に依存する場合、該処理命令に対応する前記データ処理装置の命令書式の命令を生成する生成工程と、
前記生成工程で生成された命令を前記データ処理装置に転送する転送工程とを備えることを特徴とするネットワーク装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003197270A JP2005038011A (ja) | 2003-07-15 | 2003-07-15 | ネットワーク装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003197270A JP2005038011A (ja) | 2003-07-15 | 2003-07-15 | ネットワーク装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005038011A true JP2005038011A (ja) | 2005-02-10 |
Family
ID=34207479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003197270A Withdrawn JP2005038011A (ja) | 2003-07-15 | 2003-07-15 | ネットワーク装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005038011A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007026249A (ja) * | 2005-07-20 | 2007-02-01 | Seiko Epson Corp | インターフェースモジュール、印刷装置、プログラム、印刷装置の保守方法 |
JP2007052692A (ja) * | 2005-08-19 | 2007-03-01 | Sony Corp | 情報処理装置および情報処理方法、記録媒体、並びに、プログラム |
JP2008186208A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | Cpu負荷低減方法および監視/制御サーバ |
JP2010108397A (ja) * | 2008-10-31 | 2010-05-13 | Brother Ind Ltd | 情報処理装置 |
JP2011101422A (ja) * | 2005-03-31 | 2011-05-19 | Ricoh Co Ltd | 画像形成装置、情報処理方法、プログラム、及び記録媒体 |
US8270017B2 (en) | 2007-12-20 | 2012-09-18 | Canon Kabushiki Kaisha | Network card device for determining permissibility for processing data from a data source and method of controlling the same |
US8854651B2 (en) | 2005-03-31 | 2014-10-07 | Ricoh Company, Ltd. | Image forming apparatus, information processing method, and recording medium indicating a version of a function supported by the image forming apparatus |
-
2003
- 2003-07-15 JP JP2003197270A patent/JP2005038011A/ja not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8854651B2 (en) | 2005-03-31 | 2014-10-07 | Ricoh Company, Ltd. | Image forming apparatus, information processing method, and recording medium indicating a version of a function supported by the image forming apparatus |
US10296401B2 (en) | 2005-03-31 | 2019-05-21 | Ricoh Company, Ltd. | Apparatus and method that determine whether the apparatus can execute an application program |
JP2011101422A (ja) * | 2005-03-31 | 2011-05-19 | Ricoh Co Ltd | 画像形成装置、情報処理方法、プログラム、及び記録媒体 |
JP2007026249A (ja) * | 2005-07-20 | 2007-02-01 | Seiko Epson Corp | インターフェースモジュール、印刷装置、プログラム、印刷装置の保守方法 |
JP2007052692A (ja) * | 2005-08-19 | 2007-03-01 | Sony Corp | 情報処理装置および情報処理方法、記録媒体、並びに、プログラム |
JP4591279B2 (ja) * | 2005-08-19 | 2010-12-01 | ソニー株式会社 | 情報処理装置および情報処理方法、記録媒体、並びに、プログラム |
US7853334B2 (en) | 2005-08-19 | 2010-12-14 | Sony Corporation | Information processing apparatus, information processing method, recording medium and program |
US8160724B2 (en) | 2005-08-19 | 2012-04-17 | Sony Corporation | Information processing apparatus, information processing method, recording medium and program |
JP2008186208A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | Cpu負荷低減方法および監視/制御サーバ |
US8270017B2 (en) | 2007-12-20 | 2012-09-18 | Canon Kabushiki Kaisha | Network card device for determining permissibility for processing data from a data source and method of controlling the same |
JP2010108397A (ja) * | 2008-10-31 | 2010-05-13 | Brother Ind Ltd | 情報処理装置 |
US8375401B2 (en) | 2008-10-31 | 2013-02-12 | Brother Kogyo Kabushiki Kaisha | Information processing device with device driver for displaying a user guide |
JP4661939B2 (ja) * | 2008-10-31 | 2011-03-30 | ブラザー工業株式会社 | 情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5857611B2 (ja) | 情報処理装置、システム、プログラム | |
US8121954B2 (en) | Information processor, method for controlling the same, and image forming system | |
US8006287B2 (en) | Network apparatus and control method therefor | |
US8115943B2 (en) | Image forming apparatus and print process method | |
JP2003029941A (ja) | 情報処理装置および印刷装置とその制御方法 | |
JP2005038011A (ja) | ネットワーク装置及びその制御方法 | |
JP2002373064A (ja) | 印刷装置および情報処理装置 | |
JP5919925B2 (ja) | プログラム、情報処理装置、記憶媒体 | |
JP2006338268A (ja) | データ処理装置、ネットワークインターフェース基板及びアプリケーションプログラム登録方法 | |
JP2006260089A (ja) | 印刷制御装置、印刷制御プログラムおよび記憶媒体 | |
JP2004094311A (ja) | 通知方法、情報処理装置及び制御プログラム | |
JPH10198532A (ja) | 印刷装置、印刷システムおよびそれらの制御方法 | |
JP4387710B2 (ja) | ネットワーク装置及びその制御方法 | |
JP4262007B2 (ja) | ネットワーク装置及びデータ処理システムの制御方法 | |
JP4498460B2 (ja) | ネットワーク装置及びその制御方法 | |
JP2002287931A (ja) | 情報処理装置および印刷制御装置およびプルプリント印刷システムおよび情報処理方法およびデータ処理方法および記憶媒体並びにプログラム | |
JP4560313B2 (ja) | 情報処理装置、画像形成システム、及び情報処理装置の制御方法 | |
JP2003256157A (ja) | ターミナルサービスにおけるプリンタステータスモニタ方法及びプリンタステータスモニタプログラム | |
JP2004303205A (ja) | 外部装置によって蓄積文書情報を編集可能とする画像形成装置、文書サービス提供方法 | |
JP2006168063A (ja) | 画像形成装置 | |
JP2009140068A (ja) | 情報処理装置、情報処理装置の情報処理方法 | |
JP2008130016A (ja) | ネットワークカード | |
JP2005149087A (ja) | プリンタサーバおよびプログラム実行方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム | |
JP2008134933A (ja) | ネットワークカード | |
JP2006285903A (ja) | 通信ポート重複の回避方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20061003 |