(57)【要約】【課題】  安価、小規模構成のホストベース印刷処理システムにおいて、従来ネットワークエラーが表示されたクライアントからの印刷起動が不可能であったが、想定Ｍａｘ数までのエラー表示を出さないようにすること。【解決手段】  本提案では、ネットワークインタフェースは、一般ＴＣＰ／ＩＰプロトコル用のコネクション領域とは別の領域に、印刷装置への処理目的用途のコネクション領域を予めから想定Ｍａｘ数分の領域の確保を行っておく。割り当て処理実行時にこの領域から切り出しを行い、利用してゆく。これにより、想定同時接続Ｍａｘ個を確保する。  また、印刷処理用途においても印刷占有クライアント用と他に分けて制御を行うことでより効率を求める。【選択図】  図４
2010055181.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークＬＡＮに接続された印刷装置と、
ネットワーク印刷クライアントである情報処理装置から構成され、双方向通信によりネットワーク印刷装置の各種状態情報を元に情報処理装置側で印刷制御処理が行われるネットワークホストベース印刷システムにおいて、
印刷装置への印刷処理目的のＴＣＰ／ＩＰコネクション確立時に必要となる領域について、他の処理目的用のＴＣＰ／ＩＰコネクション用領域とは別に管理を行うメモリ管理手段を持ち、
印刷用処理目的のクライアント用としてＭａｘ個数分のメモリ領域をシステム起動時から静的確保を行い、
印刷処理を目的とするコネクション要求に対しては、この領域から切り出し利用を行う管理手段と
他処理を目的とするコネクション要求に対しては、システム一般メモリ領域から動的にメモリを獲得し利用する管理手段と
印刷処理を目的とするコネクション制御手段において、印刷占有クライアントと印刷制御非占有クライアント、そして消滅待ちクライアントを判別して管理する制御手段とを備えることを特徴とするネットワークホストベース印刷装置。
【請求項２】
前記ネットワークホストベース印刷装置における前記メモリ管理においては、印刷用処理とその他の処理の判別にＴＣＰ／ＩＰポート番号を用いた制御手段を持つことを特徴とする請求項１に記載のネットワークホストベース印刷装置。
【請求項３】
前記ネットワークホストベース印刷装置における、前記印刷用処理とは、
印刷用データ受信に加えて、印刷処理に必要とされる状態情報獲得命令への応答処理、印刷装置の制御を行う各種命令への応答処理、さらにネットワークインタフェースの制御を行う各種命令への応答処理であることを特徴とする請求項１に記載のネットワークホストベース印刷装置。
【請求項４】
前記ネットワークホストベース印刷装置における前記印刷用処理において、印刷用データの受信においては、加えて通信用バッファのサイズを可変とするする制御手段を持つことを特徴とする請求項１に記載のネットワークホストベース印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷用のデータについて、ホストコンピュータ上でビットマップ展開を行い、そのデータを受信して印刷動作を行うホストベース印刷システムにおける、メモリ制御に関するものである。
【０００２】
印刷データは、ホストコンピュータ情報処理装置などの外部装置のアプリケーションソフト（ワープロや表計算など）で作成される。
【０００３】
同様にホストコンピュータ情報処理装置にて、ビットマップ展開（レンダリング、ＲＩＰ処理）が行われる。
【０００４】
印刷システムはネットワークから印刷データを受信する。
【背景技術】
【０００５】
製品コストを総合的に安く抑えることのできる、ホストベース印刷システムが存在する。
【０００６】
印刷クライアントとなるコンピュータ情報処理装置において、画像ビットマップ展開を行うことで、印刷装置側に高機能処理を要求しないために、印刷装置の構成が簡略化、価格を低く抑えることができるのが特徴である。安価ということで比較的小規模装置台数の環境にて利用されるケースが多いといえる。小規模環境にて利用されるケースが多いとはいえ、ネットワーク接続利用環境を提供できなくてはならない。
【０００７】
ホストベース印刷システムでは、他のＰＤＬ方式の印刷システムとは異なり、印刷データ送信開始から送信終了、そして実際の印刷完了まで印刷装置の状態を監視する必要がある。途中のジャム発生時のリカバリとしてジョブの再送などを行う必要があるためである。このようなホストベース印刷システムにおいては、印刷装置の状態を監視するための通信コストが高いといえる。
【０００８】
従来、この印刷装置の状態監視方法としては、ＵＤＰ／ＩＰというコネクションレス型の通信方式で行っていた。到達管理をしなくても再送でカバーすることが可能なこと、速度的に有利であり、またブロードキャストによる通信を利用できること、そして通信にかかるコストをできるだけ低く抑えられるという有利な点が存在したからである。
【０００９】
しかしながら、時代が進むにつれ、セキュリティ性能向上という市場要望が強まっている。ＵＤＰ／ＩＰプロトコルでの通信方法では、情報処理装置上もしくはネットワークルータ上のファイアウォールの壁を通り抜けられず、通信が阻害されてしまうケースが存在していた。
【００１０】
これを避けるために、ＴＣＰ／ＩＰによる到達保証を行う通信方法を採用する。しかしながら、安価なホストベース印刷装置の構成、さらに多数の印刷クライアントの利用環境では、通信に費やされるメモリリソースが印刷装置のネットワークインタフェース内で不足する。これによって、ユーザへの利便性の低下が発生してしまう。
【００１１】
またさらなる多数のクライアント環境下（例えば５０台マルチクライアント環境）における利用要望もますます高くなる傾向であり、これに応える必要がある。
上記の例として、下記特許文献１をあげることが出来る。
【特許文献１】特開２００３−３３０６４５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
安価、小規模回路構成のネットワークホストベース印刷システムにおいても、印刷処理においては、実用的にネットワークインタフェース装置内のリソース不足に陥らず、利用者へのサービスをできるだけ損なわせない（ネットワーク通信エラーの発生を極力発生させない）通信制御を行い、従来ネットワーク通信エラーが表示され、クライアントからの印刷起動が不可能であったような多数の同時印刷クライアント数（例えば５０台）でもユーザの利便性を下げずに動作可能とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明に係るネットワークホストベース印刷装置は、ネットワークＬＡＮ（図１中の８）に接続された印刷装置（７）と、
ネットワーク印刷クライアントである情報処理装置（１，１１）から構成され、双方向通信によりネットワーク印刷装置の各種状態情報を元に情報処理装置側で印刷制御処理が行われるホストベース型印刷システム（図１）において、
印刷装置への印刷処理目的のＴＣＰ／ＩＰコネクション確立時に必要となる領域について、他の処理目的用のＴＣＰ／ＩＰコネクション用領域とは別に管理を行う（Ｓ５０１）メモリ管理手段を持ち、
印刷用処理目的のクライアント用としてＭａｘ個数分のメモリ領域をシステム起動時から静的確保を行い、印刷処理を目的とするコネクション要求に対しては、この領域から切り出し利用を行う（Ｓ５０２）管理手段と
他処理を目的とするコネクション要求に対しては、システム一般メモリ領域から動的にメモリを獲得し利用する（Ｓ５１１）管理手段と
印刷処理を目的とするコネクション制御手段において、印刷占有クライアントと印刷制御非占有クライアント、そして消滅待ちクライアントを判別して管理する（Ｓ４１９）制御手段とを備えることを特徴とするネットワークホストベース印刷装置。
【００１４】
前記ネットワークホストベース印刷装置における前記メモリ管理においては、印刷用処理とその他の処理の判別にＴＣＰ／ＩＰポート番号を用いた制御手段（Ｓ５０１）、を持つことを特徴とする請求項１に記載のネットワークホストベース印刷装置。
【００１５】
前記ネットワークホストベース印刷装置における前記印刷用処理とは、印刷用データ受信（Ｓ４１０、Ｓ４１２）に加えて、印刷処理に必要とされる状態情報獲得命令への応答処理（Ｓ４０７、Ｓ４２１）、印刷装置の制御を行う各種命令への応答処理（Ｓ４０５、Ｓ４０６、Ｓ４０８、Ｓ４０９）、さらにネットワークインタフェースの制御を行う各種命令への応答処理（Ｓ４０４、Ｓ４１５）であることを特徴とする請求項１に記載のネットワークホストベース印刷装置である。
【発明の効果】
【００１６】
本発明によると、ネットワークホストベース印刷装置において、想定した同時接続Ｍａｘ個での印刷用処理を可能とすること実現する。これにより、ユーザの印刷利用のサービス向上を実現する。
【００１７】
またユーザ向けではなく、印刷装置の開発作業および評価作業を行う際にも動作可能台数についての策定がなされ、評価目標値を決定することを可能とする。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例１】
【００１９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００２０】
図１は本実施形態におけるシステムの概略を示すブロック図である。図中、ＰＣ１およびＰＣ１１はコンピュータ（情報処理装置）である。ＣＰＵ、メモリ、ハードディスク、フレキシブルディスクドライブ、キーボード、マウス、モニタ、ネットワークインタフェース等を備える。いわゆる一般的な情報処理装置におけるハードウェア（不図示）である。このコンピュータのことを本実施形態では、以下、印刷クライアントまたは単にクライアントと呼ぶことする。
【００２１】
２および１２はオペレーティングシステムであり、クライアント１または１１が備えるハードウェア、およびアプリケーション３または１３、プリンタドライバ４または１４を管理する。また、ランゲージモニタ５または１５、ネットワークポートドライバ６または１６などのソフトウェアを管理する。アプリケーション３または１３は、例えばワードプロセッサのような文書や図形の作成、編集、写真画像を編集する機能を備える。また、作成、編集したアプリケーションデータに基づく印刷指示を行うこともできる。
【００２２】
４および１４はプリンタドライバであり、アプリケーション３または１３が発行した印刷指令を読み込む（又はオペレーティングシステム２または１２を経て受け取る）。該印刷指令をランゲージモニタ５又は１５又はプリンタ７が解釈可能なプリンタコマンドに変換する。
【００２３】
５および１５はランゲージモニタであり、プリンタドライバ４または１４が出力したプリンタコマンドを受け取る。そしてネットワークポートドライバ６または１６を経由してプリンタ７に送信する。クライアントコンピュータベースの印刷システムでは、この送信はプリンタの詳細な状態を受信しながらプリンタの印刷状況に合わせて行う必要がある。その処理はランゲージモニタで行われる。
【００２４】
６および１６はネットワークポートドライバであり、ランゲージモニタ５または１５が出力したプリンタコマンドをネットワークインタフェースおよびＬＡＮ８を経由させてプリンタ７に送信する。それとともに、プリンタ７からステータスを受信した場合にはランゲージモニタ５または１５に出力する。７はプリンタであり、ネットワークポートドライバ６または１６から受信したプリンタコマンドに従って印刷に関連する各種処理を行う。
【００２５】
図１では２台のＰＣ印刷クライアントの場合を示したが、もっと多くの台数のクライアント状況でも同様である。また、プリンタ７に対しても１台のみを示しているが、複数台の状況でも同様である。
【００２６】
図２は図１のプリンタ７の構成を更に詳細に示したブロック図である。図中、２１はネットワークインタフェースであり、クライアント１または１１からプリンタコマンドなどの各種コマンドを受信する。２６はいわゆるプリンタコントローラと呼ばれる部分であり各種の印刷処理機能を備える。
【００２７】
２２はＦＩＦＯ（ファーストインファーストアウト）メモリであり、ネットワークインタフェース２１から受信した画像データを格納する。復号回路２３はＦＩＦＯメモリ２２に記憶された画像データを復号し、プリンタエンジン２４に出力する。プリンタエンジン２４は、レーザビームプリンタエンジンであり、制御回路２５の指示により、復号回路２３が出力した画像データに従って印刷を行う。２５は制御回路であり、例えば１チップＣＰＵで構成され、ネットワークインタフェース２１との内部的な通信、ＦＩＦＯメモリ２２、復号回路２３およびプリンタエンジン２４の制御を行う。
【００２８】
先に制御回路２５がネットワークインタフェースの制御を行うと説明した。しかしネットワークインタフェースはプリンタコントローラ２６と独立した制御回路によって制御されるようなオプション回路の形態をとっても構わない。
【００２９】
図３は、図２のネットワークインタフェース２１における、ネットワークプロトコルの構成の一例を表す図である。
【００３０】
下方のネットワークから各プロトコルによってネットワークインタフェース内へそしてインタフェース内からネットワークへデータが入出力される。上方はプリンタであり、プロトコルにより、プリンタへ到達するものもあれば、ネットワークインタフェース内だけで処理がなされるプロトコルも存在する。（Ａ）は印刷用のプロトコルであり、ＴＣＰのプロトコルでネットワークインタフェースに到達し、ネットワークインタフェースはそのデータの中身をプリンタインタフェースによってプリンタへ送信する。プリンタからの応答についてもＴＣＰプロトコルでクライアントコンピュータへ返送する。（Ｂ）はリソース制御用のプロトコルであり、これは各種のプリンタに関するログ情報である。この情報は、ネットワークインタフェースとプリンタがプリンタの印刷処理に合わせて通信を非同期に行い、ネットワークインタフェース内にそのリソース情報を持っているものである。よって、ネットワークからのリソース制御用プロトコルに対してはネットワークインタフェースが処理を行い、返信する。（Ｃ）のＳＮＭＰプロトコルに対しては、プリンタまで処理を行わせる部分とネットワークインタフェースが処理を行う部分もあるということを示している。他の（Ｄ）、（Ｅ）、（Ｆ）についても同様の動作を表している。
【００３１】
以下、図１乃至図３で説明した印刷システムにおける印刷動作の一例についてＰＣ１で説明する。
【００３２】
まず、操作者がクライアントコンピュータ１側でアプリケーション３を操作して印刷を指示する。すると、アプリケーション３からオペレーティングシステム２を経由してプリンタドライバ４に印刷指令が渡される。プリンタドライバ４はアプリケーション３から発行された印刷指令に基づき、画像データに変換して圧縮する。次に、圧縮した画像データを、つぎのものとともに出力する。用紙サイズ、ビットマップデータのラインの長さとライン数などを指定するページ開始コマンドや、画像データの終了を示す画像データ終了コマンドである。
【００３３】
プリンタコマンドが出力されると、オペレーティングシステム２はランゲージモニタ５にジョブ開始を通知した後に、出力されたプリンタコマンドを順次ランゲージモニタに引き渡す。ランゲージモニタ５はジョブが開始されると、ネットワークポートドライバ６を介して印刷を行うプリンタ（ここではプリンタ７）の占有要求コマンドをプリンタ７に送信する。
【００３４】
ランゲージモニタ５はプリンタの占有に成功すると、受け取ったプリンタコマンドを順次プリンタ７に送信する。なおランゲージモニタ５は画像データコマンドをプリンタ７に送信する前に、ステータス要求コマンドを送信する。そしてプリンタ７のステータスを取得して、画像データコマンドが送信可能であることを確認する。ランゲージモニタ５は、１ページのプリンタコマンドを送信し終えると、印刷要求コマンドを送信する。これはプリンタエンジンへの回転指示である。制御回路２５は、印刷要求コマンドを受信すると、プリンタエンジン２４に対して印刷開始を指示する。ランゲージモニタ５は、取得したプリンタステータスの中に、１ページの印刷が正常終了したことを示した場合には、該当するページメモリを解放する。一方、取得したプリンタステータスがエラーを示した場合には、印刷が正常終了していないページから再送信を試みる。
【００３５】
そしてジョブの全ページのプリンタコマンドを転送し終えると、ランゲージモニタ５は排紙完了を待たずに占有解除コマンドを送信する。また、ランゲージモニタ５は、占有解除コマンドを送信した後もプリンタ７のステータス取得を続ける。取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放するとともに、エラーを検出した場合には、再度占有要求コマンドを送信し、エラーページの回復を試みる。
【００３６】
次に図４を用いて、図２のネットワークインタフェース２１（プリンタ）の処理を説明する。
【００３７】
まずＳ４０１でコネクション処理を行う。より具体的にはＴＣＰ／ＩＰプロトコルにおけるＳＹＮに対する処理を行う。ＴＣＰ／ＩＰプロトコルがトランスポート層であることは図３で説明した通りである。そしてＳ４０２でコネクションが接続できたか否かを判定する。
【００３８】
Ｓ４０２でＮＯ、つまりコネクションの確立ができなければ、クライアントコンピュータに対してＲＥＳＥＴ応答を行う（Ｓ４２１）。このコネクション確立失敗の理由としては、コネクション管理用メモリリソース不足と考えられる。
【００３９】
一方、Ｓ４０２でＹＥＳと判定されれば、このネットワークインタフェース２１は外部から受信した各種印刷用コマンドに応じた処理を行う。
【００４０】
以下、その説明を詳細に行う。まずＳ４０３で、クライアント１やクライアント１１などの外部装置から送信されてくるコマンドの受信を行う。Ｓ４０３でＹＥＳと判定された場合には、Ｓ４０４以降でコマンドの種類を判定する。一方、Ｓ４０３でＮＯと判定されると処理をＳ４０１に戻しコマンド受信を待機する。このＮＯには印刷処理用ではない場合も含まれるが、その場合には、その処理を行ってからＳ４０１に戻される。（不図示）
Ｓ４０４では、占有要求コマンドを受信したか否かを判定する。具体的にはコマンド番号を識別し占有要求コマンドの識別が行われる。ここで、占有要求コマンドとは印刷データの通信のための通信ポートの確保と解釈することもできる。結果として印刷データ（印刷ジョブ）のためのポートを確保することにより、印刷出力にかかわるプリンタの機能を占有することができる。１台のプリンタ内においては、２つ以上の占有状態を行えない。この占有した状態を以下占有状態と呼ぶ。
【００４１】
以下、クライアントコンピュータから要求されるプリンタの占有要求を受け、その占有の可否がＳ４０４でＹＥＳと判定され、Ｓ４２０に至るまでの処理について説明をする。
【００４２】
Ｓ４０４でＹＥＳと判定されると、Ｓ４１５では、ネットワークインタフェース２１（或いはプリンタ７としても良い）が既に占有状態であるか否かを判定する。Ｓ４１５でＮＯと判定されれば処理をＳ４１６へ、ＹＥＳと判定されれば処理をＳ４１９へ移行する。
【００４３】
Ｓ４１６では、印刷データ用（あるいは印刷ジョブ用）の通信ポートの確保およびＮＩＣ内の必要な処理を行う（図中では、ＮＩＣの占有処理と記載）。ネットワーク上の他印刷クライアントに対して印刷中をサービスするために、ＮＩＣは印刷中か否かの情報を持っているので、その状態情報を更新する。そして印刷占有クライアントに対するコネクション管理情報を「占有クライアント」とする。さらに占有クライアントに対しての印刷データ通信用バッファを確保し、以降の画像データ通信にて利用する。ここでコネクション管理情報とはＴＣＰ／ＩＰシーケンス番号や内部処理の状態情報等のプロトコル処理に必要な情報を含んでいる。
【００４４】
そしてＳ４１７で、プリンタコントローラ２６に占有要求を通知し、Ｓ４１８では、Ｓ４１７の通知に対するプリンタコントローラ２６からの応答を得て、それに応じたクライアントコンピュータに返送すべき値（たとえばＯＫ）を設定する。
【００４５】
Ｓ４２０では、この場合、Ｓ４１８で設定された値に基づく応答を占有要求元のクライアントコンピュータに対して行う。Ｓ４２０の処理の後に、処理をＳ４０１に戻すように示されているが、一旦接続を張った状態において再度Ｓ４０１のコネクション処理や、Ｓ４０２の処理を行う必要はない。Ｓ４０９経由でＳ４０１に処理を戻した場合には、Ｓ４０１、Ｓ４０２の処理は省略され、Ｓ４０３の処理へ移行するものとする。（不図示）
Ｓ４１９では、プリンタの占有要求元のクライアントコンピュータに対して現在占有中の接続と平行して接続を行い、プリンタの占有を許可することはできない。しかし他のクライアントからの占有が行われていることを示すコマンド（Ａｌｒｅａｄｙ  Ｒｅｓｅｒｖｅｄコマンド）を、返送用のコマンドとして設定する。Ｓ４２０では、Ｓ４１９で設定されたコマンドをプリンタから占有要求元のクライアントコンピュータに返送する。
【００４６】
Ｓ４０４でＮＯと判定されると、Ｓ４０５において、受信したコマンドがデータクリア要求コマンドか否かを判定する。ＹＥＳと判定されると、Ｓ４０８、Ｓ４０９を経由し、ネットワークインタフェース２１内のデータバッファクリア処理を行う。そして且つプリンタにコマンドを転送しプリンタ側のデータバッファクリアも行わせる。Ｓ４１８で、プリンタ側のデータバッファクリア処理結果が応答されると、該応答に基づくクライアントコンピュータへの返送をＳ４２０で実行する。なお、Ｓ４２０の処理の後に、処理をＳ４０１に戻すように示されているが、一旦接続を張った状態において再度Ｓ４０１のコネクション処理や、Ｓ４０２の処理を行う必要はない。Ｓ４１８経由でＳ４０１に処理を戻した場合には、Ｓ４０１、Ｓ４０２の処理は省略され、Ｓ４０３の処理へ移行するものとする。（不図示）
一方、Ｓ４０５でＮＯと判定されると、Ｓ４０６でプリンタ制御のコマンドを受信したか否かを判定する。
【００４７】
Ｓ４０６では、プリンタ制御コマンドを受信したか否かの判定を行う。ＹＥＳと判定した場合には、受信したプリンタ制御コマンドをネットワークインタフェース２１からプリンタに通知し、プリンタにプリンタ制御コマンドに従う処理を行わせる。プリンタ制御コマンドの例としては、印刷枚数カウンタの取得や、印刷濃度調整コマンド等が挙げられる。Ｓ４０６でＮＯと判定されれば処理をＳ４０７へ移行させる。
【００４８】
Ｓ４０７では、ステータス要求コマンドを受信したか否かの判定を行う。ＹＥＳと判定した場合には、要求されるステータスをプリンタから取得すべくＳ４０９でコマンドをプリンタ側に転送し、応答として得られたステータスを応答用のステータスとして設定する（Ｓ４１８）。Ｓ４２０ではＳ４１８で設定されたステータスをクライアントコンピュータへ返送する。
【００４９】
Ｓ４０７でＮＯと判定されると処理をＳ４１０へ移行させる。Ｓ４１０では、印刷データを受信したか否かを判定し、ＹＥＳと判定されれば、Ｓ４１２にて受信した印刷データに基づくプリントエンジン上への記録を行わせるべく、プリンタ側に印刷データのコマンド（ビットマップ画像データなどを含む）を転送する。一方、Ｓ４１０でＮＯと判定されると、処理をＳ４１１へ移行させる。
【００５０】
Ｓ４１１では、ＮＩＣへの設定等、ＮＩＣ内で閉じたＮＩＣに対する処理要求コマンドを受信したか否か判定する。Ｓ４１１でＹＥＳと判定されれば、Ｓ４１３にてＮＩＣ内の処理を行い、その処理結果を応答用のデータとして設定し、設定されたデータをＳ４２０でクライアントコンピュータに応答する。
【００５１】
なお図示していないが、Ｓ４０６のプリンタ制御の処理中には、占有解除処理も含まれる。その場合には、ＮＩＣが持っている占有状態情報を更新するとともに、該当コネクションに対するコネクション管理情報を「非占有クライアント」に戻す。そして印刷データ通信用のバッファを解放する。
【００５２】
図５を用いて、本印刷システムにおけるネットワークインタフェース２１におけるコネクション処理を説明する。
【００５３】
まずＳ５０１にてコネクションを確立するもしくは切断するかの判断を行う。
【００５４】
確立の場合にはＳ５０２にて、確立すべきコネクションの種別を入力のＴＣＰ／ＩＰポート番号によって行い、印刷処理用なのか否かを判断する。印刷用の場合にはＳ５０３に進み、予め空確保されている印刷処理専用バッファから切り出しを行い、メモリを割り当てる。Ｓ５０４ではここで割り当てが不可能であったかどうかを判断し、割り当てられなかった場合にはＳ５０３に戻り、再割り当てを行わせるが、割り当てができない場合にはタイムアウト検出（Ｓ５０６）にてエラーとしてこの処理を終える（Ｓ５０７）。割り当てが行えた場合にはＳ５０５にてコネクション管理用情報のセットを行う。ここではまず状態情報として「非占有クライアント」状態とする。
【００５５】
Ｓ５０２にてコネクション種別が印刷用途外の場合には、Ｓ５０８に進み、一般ＴＣＰ／ＩＰ用コネクション領域からメモリ獲得を行う。この領域に対して、この時点での動的な確保を行う（Ｓ５０９）。印刷用途ではないので、印刷処理用コネクションで用いる状態情報管理は行わない。Ｓ５０９にてメモリの動的確保ができなかった場合には、印刷用コネクション用のメモリ割り当てと同様なリトライ（Ｓ５０８へ）とタイムアウトエラー処理（Ｓ５１２）を行う。メモリの動的確保ができた場合には、Ｓ５１０にてコネクション管理情報（通信用情報）を設定してこの処理を終える。
【００５６】
Ｓ５０１にてコネクション切断と判断した場合には、Ｓ５１３に進み、コネクションの切断処理を行い、該当コネクションが利用していたメモリの解放が行われる。なお、実際には、すぐにメモリの解放が行われるわけではなく、ある一定時間の間、コネクション管理情報を保持しなくてはならない規約があるため、ここではコネクション管理情報を「消去待ち」としておく。以降、別タスクのメモリ制御処理にて解放が行われる（Ｓ５１４）。
【００５７】
図６は本ホストベース印刷装置のメモリ割り当ての一例である。左側がメモリの各領域の用途を示し、右側がその簡単な説明である。以下説明を行う。
【００５８】
（Ａ）はホストベース印刷に必要な画像バッファであり、この領域は通常直接のハードウェアによるアクセス（ＤＭＡアクセス）を行い、プリンタエンジンへの画像の受け渡し用に用いるものである。この領域はシステム設計時にメモリ領域のアドレスが確定している。
【００５９】
（Ｂ）はシステムのヒープ領域であり、ＯＳにて管理される各タスクにおける実行時のローカル変数として利用される。この領域もシステム設計時に確定されるものである。
【００６０】
（Ｃ）は印刷装置制御プログラムモジュールの生成（リンク）時にメモリ位置が確定するものであり、プログラムコーディングで静的に宣言された変数や大域変数の用途で用いられる、固定メモリ領域である。
【００６１】
（Ｄ）、（Ｅ）、（Ｆ）は各タスクにて、ＯＳ側から獲得するメモリ領域であり、各タスクの初期化処理実行時にそのメモリ領域の獲得が行われる。各タスクは獲得したメモリについては、各タスクの実行処理時に独自の運用を行う。タスク初期化実行終了後に確定する領域である。
【００６２】
（Ｄ）内の「印刷用コネクション領域」であるが、これが本印刷装置における「予め確保を行っている、想定Ｍａｘ個数分のコネクション用領域」である。
【００６３】
（Ｅ）はネットワークタスク用の領域である。ネットワークタスクはＯＳのメモリ管理機構とは独自にメモリ管理機構を備えている。ＴＣＰ／ＩＰ以外のプロトコルの処理も行わなくてはならず、システム設計が肥大／複雑化されるのを防ぐとともに、ネットワークで閉じた世界内での効率運用を図るためである。
【００６４】
（Ｇ）は実行時にＯＳ側から動的に獲得するメモリ領域である。その中には「印字データバッファ」が利用される。印刷画像データ通信用のバッファについては、印刷占有がなくては必要にならないために、占有処理の中で動的獲得を行っている。印刷処理外の場合には、できるだけシステムのリソースを空けている。また実行時にバッファサイズの変化を行うことも可能となる。印刷占有が終了すれば、印字データバッファ領域は解放される。
【００６５】
図７は、本印刷システムにおけるネットワーククライアントの情報処理装置から印刷要求が発行された場合の各種情報の流れを示す。
【００６６】
図中のＮｅｔｗｏｒｋＣｌｉｅｎｔ−１は図１の１および１１の情報処理装置に対応する。
【００６７】
ＬａｎｇｕａｇｅＭｏｎｉｔｏｒは図１のランゲージモニタ５および１５に、ＮｅｔｗｏｒｋＰｏｒｔＤｒｉｖｅｒは図１におけるネットワークドライバ６および１６に夫々対応する。ＮｅｔｗｏｒｋＩｎｔｅｒｆａｃｅＣａｒｄは図２のネットワークインタフェース２１に、Ｐｒｉｎｔｅｒは図２のプリンタ７（ネットワークインタフェース２１を除く）に夫々対応する。
【００６８】
Ｌａｎｇｕａｇｅ  Ｍｏｎｉｔｏｒ（以降ＬＭ）が印刷データを送信しようとする場合にはまずＯｐｅｎＣｏｎ（）関数でポートのオープンを行う。これをネットワークのポートモニター（ネットワークポートドライバ）が受け取るとＴＣＰプロトコルでＳｙｎをネットワークインタフェースへ送信する。それに対してＡｃｋをネットワークインタフェースが返信した場合にはネットワークインタフェースと通信が可能となる（図４のＳ４０２でのＹｅｓ判定に対応）。ＡｃｋではなくＲｅｓｅｔが返された場合には（図４のＳ４２１に対応）、エラーであり、ＬＭは後にリトライを行なうこととなる。ＯｐｅｎＣｏｎ（）関数はＳｙｎ送信によるコネクションの確立であり、確立がなされればＯＫのＲｅｐｌｙがＬＭに返される。
【００６９】
Ａｃｋの場合はさらに続いて、プリンタの占有を行うためにＷｒｉｔｅＰｏｒｔ（Ｒｅｓｅｒｖｅ）関数で「Ｒｅｓｅｒｖｅコマンド」を送信する。ＷｒｉｔｅＰｏｒｔ（）は、その関数に渡されるデータの中にコマンドが格納されるのでそのコマンドはＷｒｉｔｅＰｏｒｔ（Ｒｅｓｅｒｖｅ）と記述している。このコマンドはプリンタ制御コマンドであり、プロトコルのレベルとしてはアプリケーション層（図３を参照）の上位で構成されるものである。このＲｅｓｅｒｖｅコマンドに対しては、プリンタの占有に合わせてネットワークインタフェース自身の占有処理も並行して行う必要がある。プリンタからのＲｅｓｅｒｖｅコマンドの応答を待ってネットワークインタフェース内の占有処理も行い、その結果をクライアントコンピュータ側へ返信する。もしプリンタがネットワーククライアントからではなく、ＵＳＢクライアントから印刷中の場合には、プリンタからの応答としてＡｌｒｅａｄｙＲｅｓｅｒｖｅｄが返信される。よってネットワークインタフェースは占有を行わずにそのエラーコードをクライアントコンピュータ側へ返信する。
【００７０】
占有が成功すると、クライアントコンピュータはＷｒｉｔｅＰｏｒｔ（ＧｅｔＳｔａｔｕｓ）でプリンタステータスの取得を行う。プリンタのステータスはネットワークインタフェース自身がキャッシュしているものについてはネットワークインタフェースのみの処理で返信する。続いてクライアントコンピュータはステータスの状態を判断し、印刷開始できる場合にはＧｏＯｎｌｉｎｅコマンドを送信、オンラインに移行させる。その後、ステータスをチェックしながら印刷データの送信が行われる。そして最後には終了処理となる。図７は、印刷処理の場合を示した。しかし、本印刷システムにおけるネットワークインタフェースがクライアントコンピュータからプリンタのカウンタ情報の取得やプリンタのステータス情報の取得要求を受ける場合の各種情報の流れにおいても、Ｒｅｓｅｒｖｅ処理を除いて同様である。
【００７１】
カウンタ取得の例で説明を行う。プリンタドライバはネットワークのポートに対してＷｒｉｔｅＰｏｒｔ（ＧｅｔＣｏｕｎｔｅｒ）関数でＧｅｔＣｏｕｎｔｅｒコマンドを要求する。ネットワークポートモニタはＵＤＰでＧｅｔＣｏｕｎｔｅｒコマンドをネットワークインタフェースに送信する。カウンタ情報はプリンタに問い合わせることが必要なコマンドであり、それはプリンタに転送され、その返信を受けて、さらにクライアントコンピュータ側へ返信される。プリンタドライバはＲｅａｄＰｏｒｔ（）関数で返信された値を読み取り、ＧｅｔＣｏｕｎｔｅｒコマンドの結果を受け取る。
【００７２】
ＧｅｔＳｔａｔｕｓコマンドが送信された場合でも同様の方法にてクライアントコンピュータはステータス情報を受信する。
【００７３】
このようにして行われる情報の取得によって、クライアントコンピュータは印刷装置のステータス等の情報を獲得し、表示を行う。
【００７４】
図８は、本印刷システムにおける、複数のネットワーククライアントからの占有要求を受けた時の流れを図示したものであり、各種情報の流れを示す。特に特徴的な部分を抽出し以下説明を行う。
【００７５】
Ｓ８０１では、Ｃｌｉｅｎｔ−１の印刷中にＣｌｉｅｎｔ−２が印刷を行った場合（ＯｐｅｎＣｏｎ（）関数）には、Ｃｌｉｅｎｔ−２のＴＣＰ上のコネクション要求にてネットワークインタフェースはＡｃｋを返信する。クライアントコンピュータはＡｃｋを受けることにより、プリンタ７にＳ４１５などの判定を行わせるための占有要求を発行することができる。
【００７６】
その後Ｓ８０４で、Ｃｌｉｅｎｔ−２はＴＣＰコネクションが成立したのでＲｅｓｅｒｖｅコマンドを送信する（図４のＳ４０３でプリンタが受信するコマンドに対応）。しかし、この場合にはＳ８０５でネットワークインタフェースはこのコマンドに対してＡｌｒｅａｄｙ  Ｒｅｓｅｒｖｅｄで返信する（図４のＳ４１９、Ｓ４２０に対応）。
【００７７】
クライアントコンピュータ側はＲｅｓｅｒｖｅコマンドに対してエラーが返されると、Ｓ８０７でＣｌｏｓｅＣｏｎ（）関数を実行し、まだ印刷データ（印刷ジョブ）の送信が終了していないが、Ｓ８０８で成立したＴＣＰコネクションを閉じる。その後でリトライをかけることとなる。なお、ここで、ＣｌｏｓｅＣｏｎ（）を行わず、ある一定時間の後に、再度そのコネクション内でＲｅｓｅｒｖｅコマンドを送信する制御でも構わない。
【００７８】
本実施形態では、印刷時のコネクションの発行や解除は全てクライアントコンピュータクライアントのプリンタモジュールが主導で行っている。印刷終了をネットワークインタフェースが認識し、それによってネットワークインタフェースからネットワークポートモニタに対してＴＣＰコネクションの発行を要求する。それを受けてクライアントコンピュータが印刷を開始するような制御方法が存在する。しかし、この方法ではネットワークポートモニタがあるＴＣＰのポートに対して、ポーリングを行い、コネクション要求を監視する必要が生じることになる。本印刷システムではその監視の必要はない。
【００７９】
図９は、本印刷システムにおける、プリンタコントローラ２６の動作の流れを図示したものである。
【００８０】
まず、Ｓ９０１で、ＰＣ１、１１の何れかのクライアントコンピュータから占有要求を受信する。この占有要求の受信については、図４のＳ４０１乃至４０４と同様の処理が行われる。
【００８１】
Ｓ９０２ではプリンタが印刷ジョブの処理中か否かを判定する。印刷装置はネットワークインタフェースとは別の入力インタフェース（例えばＵＳＢインタフェース）を持っている場合もあり、その入力インタフェースから印刷中の場合にはネットワークインタフェースへの占有処理に対してはＮＧを通知する必要がある。ここでＹＥＳと判定した場合には、Ｓ９０８で占有却下の通知を行い、この処理を終了する。
【００８２】
Ｓ９０２でＮＯと判定すれば、印刷されていない場合である。Ｓ９０３にて印刷装置の占有処理を行い、Ｓ９０４にて占有完了の通知を行い、次にＳ９０５でジョブデータの受信を行う。そしてＳ９０６でのプリンタエンジン制御（印刷処理）、Ｓ９０７にて正常に印刷が終了した場合にはこの処理を終了する。正常に終了しなかった場合にはＳ９０５へ戻りジョブデータの受信からリトライを行う。なおリトライが終わらない場合にはエラーで終了する場合もある（不図示）。
【００８３】
次に図１０のフローチャートを用いて図９のフローチャートに対応するクライアントコンピュータ側の動作について説明を行う。まず、Ｓ１００１では、印刷開始命令を発行する。印刷開始命令はプリンタドライバのユーザインタフェース等を介したユーザの印刷指示に応じて発行される。
【００８４】
Ｓ１００２では、印刷対象となるデータに基づく印刷データ生成処理を実行する。Ｓ１００２ではビットマップ画像データ生成処理（以下ＲＩＰ）を実行する。なおビットマップ画像データ形式に限定されるものではない。
【００８５】
Ｓ１００３では、ＲＩＰした画像データを含む印刷ジョブを生成し、クライアントコンピュータの印刷データ送信モジュールに引き渡す。
【００８６】
Ｓ１００４では、印刷ジョブのプリンタへの送信に先立って占有要求をプリンタに送信する。占有要求処理については図４のＳ４０１乃至４０３で述べた通りである。
【００８７】
Ｓ１００５では、プリンタから占有を許可する通知、すなわち占有完了通知をプリンタ側から受けたか否かを判定する。受けていないと判定すれば処理をＳ１００４へ、受けた場合は処理をＳ１０１１へ処理を移行する。Ｓ１０１１では生成した印刷ジョブをネットワークインタフェース２１へ送信する。この送信を受けたプリンタ側では図４のＳ４１２で説明した同様の処理が行われる。
【００８８】
上記各実施形態においては、ＰＣ１、１１とプリンタ７とが通信可能に接続された印刷システムについて説明を行ってきた。しかし、本発明はこれに限定されない。更なる応用例を想定することができる。
【００８９】
例えば、上記プリンタを複数のプリンタと通信可能なプリントサーバに見立て、上記各シーケンス、及び、フローチャートを適用させることもできる。
【００９０】
またクライアントコンピュータとプリントサーバとが接続される印刷システム以外にも、更なる次のような応用例が想定される。第１実施形態におけるクライアントコンピュータを、複数のクライアントコンピュータ及び複数のプリンタを仲介するプリントサーバに見立てる形態である。
【００９１】
［他の実施形態］
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように実施したものについても、本発明の範疇に含まれる。
【００９２】
前記各種デバイスと接続された装置あるいはシステム内のコンピュータに対して、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給したものについても、本発明の範疇に含まれる。そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものについても、本発明の範疇に含まれる。
【００９３】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記録する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク等を用いることができる。そして、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９４】
また、コンピュータが供給されたプログラムコードを実行することにより前述の実施形態の機能が実現される。それだけではなく、次の場合も実施例に含まれる。そのコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能を実現する。
【００９５】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納される。その後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部が行われる。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれる。
【図面の簡単な説明】
【００９６】
【図１】印刷システム全体の概略の一例を示す図。
【図２】実施形態における印刷装置のブロック図の一例を示す図。
【図３】図１のネットワークインタフェースの通信機能を示す図。
【図４】本発明に係るネットワークインタフェースの処理シーケンスの一例を示す図。
【図５】本発明に係るネットワークインタフェースの処理シーケンスの一例を示す図。
【図６】本発明に係るネットワークインタフェースのメモリ管理の一例を示す図。
【図７】本発明に係る通信手順の一例を示す図。
【図８】本発明に係る通信手順の一例を示す図。
【図９】本発明に係る印刷装置内の処理シーケンスの一例を示す図。
【図１０】本発明に係るホストコンピュータの処理シーケンスの一例を示す図。
【図１】
2010055181.tif 000003
【図２】
2010055181.tif 000004
【図３】
2010055181.tif 000005
【図４】
2010055181.tif 000006
【図５】
2010055181.tif 000007
【図６】
2010055181.tif 000008
【図７】
2010055181.tif 000009
【図８】
2010055181.tif 000010
【図９】
2010055181.tif 000011
【図１０】
2010055181.tif 000012