サーバ装置及びその制御方法、プログラム
【課題】 ネットワーク上の機器の状態通知を実現するとともに、ネットワークに係る負荷を低減することができるサーバ装置を提供する。
【解決手段】 プリンタから順次受信した状態情報をメッセージ管理部に累積管理する。また、状態情報を受信する毎に、そのメッセージの種類に基づいて、更新保持する。ネットワークのトラフィック状態を検知する。保持部で保持しているメッセージと同種類の第1メッセージを送信しようとする際に、検知したトラフィック状態が所定値より高い場合、その第1メッセージを破棄する。その場合、前記保持手段で保持される内容をコピーして記憶部に記憶する。保持部で保持しているメッセージと同種類の第2メッセージをメッセージ管理部から新たに取得して送信しようとする際に、第2メッセージの内容が、記憶部に記憶されている内容と同一であるか否かを判定し、第2メッセージのクライアント装置への送信を制御する。
【解決手段】 プリンタから順次受信した状態情報をメッセージ管理部に累積管理する。また、状態情報を受信する毎に、そのメッセージの種類に基づいて、更新保持する。ネットワークのトラフィック状態を検知する。保持部で保持しているメッセージと同種類の第1メッセージを送信しようとする際に、検知したトラフィック状態が所定値より高い場合、その第1メッセージを破棄する。その場合、前記保持手段で保持される内容をコピーして記憶部に記憶する。保持部で保持しているメッセージと同種類の第2メッセージをメッセージ管理部から新たに取得して送信しようとする際に、第2メッセージの内容が、記憶部に記憶されている内容と同一であるか否かを判定し、第2メッセージのクライアント装置への送信を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置及びその制御方法、プログラムに関するものである。
【背景技術】
【0002】
プリントサーバにおいては、印刷処理を行うのみではなく、ジョブの管理および出力するプリンタのステータスを管理することが必要な場合がある。そこで、プリントサーバでこれらの情報を取得し、クライアント上に表示することが必要となる。但し、これらの情報は、プリンタの台数やネットワークの回線の状態により通信負荷が高くなり、すべての情報が送れないもしくは時差が発生し、現在の状態と表示が著しく異なる状況が発生しえる。この状況を回避するために、クライアントとの通信処理になにかしら仕組みが必要となる。
【0003】
その1つとして、例えば、特許文献1には、クライアントに最新状態を表示するシステムが開示されている。特に、ネットワーク負荷の軽減とクライアントの更新を頻繁に繰り返さないように動作するものである。このシステムにおいては、段落番号<0014>から<0016>に記載されているように、フラグを2つ用いてタイマーにより待たせ処理という機能を用いて通知の削減をおこなっている。
【0004】
また、その他の技術として、通信障害が発生したときには不必要なメッセージを削除する構成がある。
【特許文献1】特開平7−175617号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のシステムにおいては、通信データ量の削減が可能であるが、タイマーの設定間隔によってはネットワークの負荷がない場合にも情報が間引きされるため不自然に感じられることもある。
【0006】
また、ネットワーク障害が回復するまで不必要なメッセージを削除する場合では、メッセージが送れるような状態になって、キューにある必要なメッセージを送信して、クライアントの表示画面にプリンタや印刷状状態を更新しても、実際には印刷やプリンタの状態は刻々と変化しているためだいぶ前の情報が表示されてしまうことになり、実際の状況と大きく違いユーザにとってわかりにくいものとなっていた。
【0007】
本発明は上記の課題を解決するためになされたものであり、ネットワーク上の機器の状態通知をサーバクライアントシステム間で実現する環境において、有効なメッセージ通知を実現するとともに、ネットワークに係る負荷を低減することができるサーバ装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するための本発明によるサーバ装置は以下の構成を備える。即ち、
また、好ましくは、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信手段と、
前記受信手段で順次受信した状態情報を示すメッセージを累積管理するメッセージ管理手段と、
前記受信手段で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を更新保持する保持手段と、
前記ネットワークのトラフィック状態を検知する検知手段と、
第1メッセージを前記メッセージ管理手段から取得して送信しようとする際に、前記検知手段で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持手段で保持される内容をコピーして記憶する記憶手段と、
第2メッセージを前記メッセージ管理手段から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御手段と
を備えることを特徴とするサーバ装置。
【0009】
また、好ましくは、前記記憶手段で内容をコピーする場合に、前記第1メッセージを破棄する破棄手段を更に備える。
【0010】
また、好ましくは、前記メッセージの種類毎に、前記メッセージの優先度を管理する管理手段を更に備える。
【0011】
また、好ましくは、前記制御手段は、前記管理手段を参照して処理対象のメッセージの優先度を判定し、その優先度に基づいて、そのメッセージの送信を制御する。
【0012】
また、好ましくは、前記制御手段は、前記第2メッセージの内容が前記記憶手段に記憶されている内容に存在しない場合、前記第2メッセージを破棄する。
【0013】
また、好ましくは、前記ネットワーク負荷値が所定値以上であるか否かを判定する負荷判定手段を更に備え、
前記負荷判定手段の判定の結果、前記ネットワーク負荷値が所定値より高い場合、前記判定手段は、前記第1メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する。
【0014】
また、好ましくは、前記ネットワーク負荷値が所定値より高い場合で、かつ前記判定手段の判定の結果、前記第1メッセージの内容が、前記記憶手段に記憶されているメッセージの内容に存在する場合、前記制御手段は、該第1メッセージの送信が成功するまで、送信を再試行する。
【0015】
また、好ましくは、当該サーバ装置におけるデータ解析の状態情報を順次取得する取得手段を更に備え、
前記メッセージ管理手段は、前記受信手段で順次受信した状態情報を示すメッセージ及び前記取得手段で順次取得した状態情報を示すメッセージを累積管理する。
【0016】
上記の目的を達成するための本発明によるサーバ装置の制御方法は以下の構成を備える。即ち、
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御方法であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程と、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程と、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程と、
前記ネットワークのトラフィック状態を検知する検知工程と、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程と、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程と
を備える。
【0017】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
また、好ましくは、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御を実現するプログラムであって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程のプログラムコードと、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程のプログラムコードと、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程のプログラムコードと、
前記ネットワークのトラフィック状態を検知する検知工程のプログラムコードと、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程のプログラムコードと、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程のプログラムコードと、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程のプログラムコードと
を備える。
【発明の効果】
【0018】
本発明によれば、ネットワーク上の機器の状態通知をサーバクライアントシステム間で実現する環境において、有効なメッセージ通知を実現するとともに、ネットワークに係る負荷を低減することができるサーバ装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【0020】
本発明は、特に、プリントサーバシステムに関するものである。但し、これに限定されず、ネットワーク上の複数の機器間でデータ送受信が実行される環境、例えば、ネットワークスキャナやネットワーク機能を有する複合機(ファックス機能、印刷機能、スキャン機能等を有する機器)と、それを利用する端末間においても、本発明を適用することが可能である。
【0021】
<実施形態1>
図1は本発明の実施形態1のプリントサーバシステムの構成を示す図である。
【0022】
尚、図1のネットワーク105上に接続される各種端末の構成は、一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【0023】
ホストコンピュータ101は、プリンタ103に対する印刷データを生成し、出力する。プリントサーバ102は、プリントサーバ機能を有し、ホストコンピュータ101で生成された印刷データの印刷の管理や、プリンタ103の状態(ステータス)情報の管理等を行う。また、状態情報を示すメッセージを、後述する処理に基づいて、クライアントPC104に送信する。
【0024】
プリンタ103は、ネットワーク105を介して受信する印刷データに基づいて、記録媒体に印刷を実行する。また、このプリンタ103は、プリントサーバ102によって自身の状態(印刷状況や機器状況)の監視対象となる。この状態を示す状態情報は、プリンタ103自身が、必要に応じてプリンタサーバ102に通知することもあれば、プリンタサーバ102の要求に応じて通知する場合もある。
【0025】
尚、図1では、プリンタ103は一つだけ記載されているが、複数あるものとする。また、プリンタ103の印刷方式としては、例えば、インクジェット方式、レーザビーム方式、熱転写方式等の各種印刷方式のプリンタが想定される。
【0026】
クライアントPC(パーソナルコンピュータ)104は、プリントサーバ102とネットワーク105を介してプリントサーバ102からプリンタ103の状態情報を受信して表示する、プリンタ103のステータス確認用端末として主に機能するが、ホストコンピュータ101と同様に、プリンタ103に対する印刷データを生成して、出力することも可能である。
【0027】
ネットワーク105は、典型的にはインターネットやLANやWANや電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
【0028】
次に、ホストコンピュータ101、プリントサーバ102、クライアントPC104の各種端末のハードウエア構成について、図2を用いて説明する。
【0029】
図2は本発明の実施形態1の各種端末のハードウエア構成を示す図である。
【0030】
図2において、CPU21、RAM22、ROM23、LANアダプタ24、ビデオアダプタ25、キーボード26、マウス27、ハードディスク28、CD−ROMドライブ29はそれぞれシステムバス20を介して互いに接続されている。システムバス20は、例えば、PCIバス、AGPバス、メモリバス等を意味する。また、図2では、各バス間の接続用チップやキーボードインタフェースやいわゆるSCSIやATAPIのような入出力用インタフェースは省略されている。
【0031】
CPU21は、オペレーションシステムのプログラムやアプリケーションプログラムに基づいて四則演算や比較演算等の各種の演算や、ハードウェアの制御を行う。RAM22には、ハードディスク28やCD−ROMドライブ29に装着されたCD−ROMやCD−R等の記憶媒体から読み出されたオペレーションシステムのプログラムやアプリケーションプログラム等が記憶され、これらはCPU21の制御の元に実行される。RAM22の内容については、後にメモリマップの内容として詳述する。
【0032】
ROM23は、オペレーションシステムと協働してハードディスク等への入出力を司るいわゆるBIOS等のデータを記憶している。LANアダプタ24は、CPUによって制御されるオペレーションシステムの通信プログラムと協働して、ネットワークを介した外部との通信を行う。ビデオアダプタ25は、ディスプレイ装置に出力する画像信号を生成する。入力部として機能する、キーボード26やマウス27は、当該端末への各種指示を入力するために用いられる。
【0033】
ハードディスク28は、オペレーションシステムやアプリケーションプログラムや、以下で説明するフローチャートを実現可能なプログラムを記憶している。
【0034】
CD−ROMドライブ29は、CD−ROMやCD−RやCD−R/W等の記憶媒体を装着してアプリケーションプログラムをハードディスク28にインストールするのに用いる。尚、CD−ROMドライブの代わりにCD−RドライブやCD−R/WドライブやMOドライブ、DVDドライブ等を用いても良いのは言うまでもない。
【0035】
次に、プリントサーバシステムの機能構成について、図3を用いて説明する。
【0036】
図3は本発明の実施形態1のプリントサーバシステムの機能構成を示す図である。
【0037】
尚、図3では、特に、プリントサーバ102の機能構成を中心に説明する。
【0038】
プリンタ103では、印刷ジョブの追加や、印刷済ページ数等の印刷ジョブの状態の変更及び機器の状態の変更があった場合に、プリントサーバ102の状態受信部302に、その内容を状態情報として都度通知を行う。
【0039】
状態受信部302は、メッセージキュー304(状態情報を示すメッセージを累積管理するメッセージ管理機能)へ通知された内容を追加する。
【0040】
印刷データ管理部303は、プリントサーバ102で、印刷データの解析処理を行っていて、その状態の変化があった場合、変更内容に応じた状態情報を示すメッセージをメッセージキュー304へ追加する。印刷データの解析処理とは、例えば、ホストコンピュータ101から受信した印刷データを、印刷可能形式(例えば、PDL、ビットマップ等)への変換処理等の処理が挙げられる。
【0041】
通信管理部306は、メッセージキュー304からメッセージを順次読み出し、その読み出したメッセージの種類やメッセージの内容に基づいて、クライアントPC104へそのメッセージの通知を制御する。
【0042】
例えば、プリンタ103の現在の印刷ページ数をメッセージとして送信する場合を考えると、そのメッセージは、その後の状態に影響を与えず、またすぐにカウントアップされたページ数を送信することとなる。そのため、今回送信するはずであったメッセージを破棄してもその後のメッセージにより表示の更新が見込めることとなる。
【0043】
但し、印刷データの最終ページの場合は、その後、カウントアップされたページ数はこないが、印刷完了などのメッセージによりページ数の表示をクリアすることで状態表示の矛盾を回避する。
【0044】
また、プリンタ103の現在の状態は、場合によっては頻繁に変化することもあるが、長い期間変化しないような場合は、その後に同様のメッセージがあれば今回のメッセージは破棄し、なければ必ず送信するように処理を行う。
【0045】
例えば、長い期間変化しないような場合は、プリンタで障害が発生し紙詰まりするといった時に発生する。また、紙詰まりを示すメッセージと同様のメッセージとは、紙詰まりを取り除き正常に戻るものがあげられる。
【0046】
以上のような種類のメッセージは、状態変更通知元となる状態受信部302や印刷データ管理部303から、メッセージキュー304に追加すると同時に、状態保持部305に対して、その状態情報を示すメッセージを更新保持する。これにより、状態保持部305では、最新情報のメッセージの内容が保持されることになる。そして、通信管理部306は、メッセージキュー306から、このような種類のメッセージを取得後、クライアントPC104に対して通知する。
【0047】
ここで、通知が失敗した場合は、状態保持部305から最新の情報(メッセージの内容)をコピーして、状態記憶部307に記憶する。その後、状態記憶部307に記憶された通知内容(メッセージの内容)がメッセージキュー304から取り出されるまでは、同種のメッセージは、送信を試みる前に破棄する(つまり、そのメッセージの送信を禁止して、破棄する)。また、状態記憶部307に記憶されたメッセージと同一内容のメッセージがメッセージキュー304から取り出された場合は、状態記憶部307に記憶されている該当内容のメッセージの内容をクリア(消去)する。
【0048】
一方、上述の種類のメッセージとは逆に、印刷データの削除メッセージの場合、そのメッセージを破棄してしまうとプリントサーバ102では、印刷データが存在していないものがクライアントPC104に情報として残ってしまい、その後の動作に矛盾が生じてしまう。そのため、このような種類のメッセージは、送信ができるようになるまで待ち状態を維持する。
【0049】
このように、メッセージの種類に応じて、クライアントPC104へ送信するメッセージを取捨選択するとともに、その送信を制御する。特に、ネットワーク負荷が高い場合は、負荷を減らすように優先度の低いメッセージを破棄することで、処理状態の変更を可能な限り早く通知を行うことが可能となる。
【0050】
次に、状態受信部302及び印刷データ管理部303におけるメッセージ生成処理について、図4を用いて説明する。
【0051】
図4は本発明の実施形態1のメッセージ生成処理を示すフローチャートである。
【0052】
まず、ステップS401では、クライアントPC104への通知対象のイベントが発生したか否かを判定する。イベントが発生していない場合(ステップS401でNO)、一旦処理を終了し、再度イベントの発生の有無を判定する。一方、イベントが発生した場合(ステップS401でYES)、ステップS402に進む。
【0053】
ステップS402で、発生したイベントを受信し、その内容判別を実行して、そのイベントに対するメッセージを生成するイベント受信処理を実行する。
【0054】
ここで、メッセージの生成とは、メッセージキュー304に追加するメッセージを生成することであり、例えば、状態受信部302で受信した状態情報を、内部的に定義した構造を持った形式のメッセージに変換する。
【0055】
ステップS403で、生成したメッセージをメッセージキュー304へ追加する。ステップS404で、生成したメッセージがキャッシュ対象であるか否かを判定する。
【0056】
尚、ステップS404において、メッセージがキャッシュ対象であるか否かの判定は、メッセージの種類毎に対応づけられた、予めキャッシュ対象の有無(H(Hi)/L(Low))を示すキャッシュ対象フラグを管理するキャッシュ対象フラグ管理テーブル(図6)を参照して判定する。
【0057】
ここで、キャッシュ対象フラグ管理テーブルについて、図6を用いて説明する。
【0058】
図6は本発明の実施形態のキャッシュ対象フラグ管理テーブルの一例を示す図である。
【0059】
図6に示すように、キャッシュ対象フラグ管理テーブルでは、メッセージ種別毎に、キャッシュ対象の有無(H(Hi)/L(Low))を示すキャッシュ対象フラグが対応づけて管理される。
【0060】
また、キャッシュ対象のメッセージとは、基本的には、送信対象のメッセージをリアルタイムでクライアントPC104に通知しなくても、その後の動作に矛盾が生じないメッセージのことである。換言すれば、キャッシュ対象のメッセージは、送信の優先度の低いメッセージであり、一方、非キャッシュ対象のメッセージは、送信の優先度の高いメッセージであると言える。つまり、図6は、メッセージの送信優先度を定義した管理テーブルとも言える。
【0061】
但し、キャッシュ対象フラグは、各メッセージの種類に対して、管理者によって任意に設定することが可能であるので、キャッシュ対象のメッセージが、必ずしもリアルタイムでクライアントに通知しなくても、その後の動作に矛盾が生じないメッセージであるとは限らない。そのため、キャッシュ対象のメッセージであるか否かは、最終的には、管理者の用途や目的に応じて設定されたキャッシュ対象フラグの値に委ねられることになる。
【0062】
尚、このキャッシュ対象フラグ管理テーブルを用いずに、メッセージ種類毎に優先度をプログラム上に定義しておき、その定義に基づいて、キャッシュ対象の有無を判定するようにしても良い。
【0063】
また、メッセージの一例について、図7を用いて説明する。
【0064】
図7は本発明の実施形態1のメッセージ構造の一例を示す図である。
【0065】
図7では、メッセージの一例として、プリンタの印刷済ページ数を示すプリンタ ページカウントメッセージ及びプリンタに対する印刷ジョブの追加を示すプリンタ ジョブ追加メッセージを示している。
【0066】
プリンタ ページカウントメッセージは、そのメッセージを固有に識別するメッセージ種別ID、メッセージの発行元のプリンタを固有に識別するプリンタID、印刷済ページ数を示す情報で構成される。また、プリンタ ジョブ追加メッセージは、メッセージ種別ID、プリンタID、ジョブ名称、そのジョブを固有に識別するジョブIDを示す情報で構成される。
【0067】
同様に、他の種別のメッセージについても、そのメッセージの内容に応じて、メッセージ種別ID、プリンタID等の必要な情報で構成される。
【0068】
図4の説明に戻る。
【0069】
ステップS404において、メッセージがキャッシュ対象でない場合(ステップS404でNO)、つまり、キャッシュ対象フラグがLである場合、処理を終了する。一方、メッセージがキャッシュ対象である場合(ステップS404でYES)、つまり、キャッシュ対象フラグがHの場合、ステップS405に進む。
【0070】
ステップS405で、キャッシュ対象のメッセージを、その内容に基づき、状態保持部305へ出力する。
【0071】
次に、通信管理部306におけるメッセージ送信処理について、図5を用いて説明する。
【0072】
図5は本発明の実施形態1のメッセージ送信処理を示すフローチャートである。
【0073】
まず、ステップS501で、メッセージキュー304からメッセージを読み出す。尚、このメッセージの読出は、FIFO(ファーストインファーストアウト)形式で読み出す。
【0074】
ステップS502で、読み出したメッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象である場合(ステップS502でYES)、ステップS503に進む。一方、キャッシュ対象でない場合(ステップS502でNO)、ステップS507に進む。
【0075】
尚、ステップS501の判定は、図4のステップS404の判定と同様である。
【0076】
ステップS503で、状態記憶部307に状態保持部305より取得した情報が存在しているか否かを判定する。情報が存在していない場合(ステップS503でNO)、ステップS507に進む。この場合、キャッシュ対象でないメッセージと同様の処理を、以降の処理で行うことになる。一方、情報が存在している場合(ステップS503でYES)、ステップS504へ進む。
【0077】
ステップS504で、読み出したメッセージの内容が、状態記憶部307に保持されている内容と同一内容の情報があるか否かを判定する。同一内容がない場合(ステップS504でNO)、つまり、読み出したメッセージが、状態記憶部307に記憶されている情報より古いメッセージであるため、読み出したメッセージは破棄して、処理を終了する。一方、同一内容がある場合(ステップS504でYES)、ステップS505に進み、状態記憶部307の内容をすべてクリアする。
【0078】
尚、ステップS504の判定は、読み出したメッセージが最新状態のメッセージであるか否かを判定するためのものである。また、具体的な判定は、メッセージと記憶された情報の単純な比較でも良いし、メッセージに付加されるシーケンス番号と記憶された情報のシーケンス番号の比較でも良いし、メッセージの種類を特定する一意の識別子の比較でも良い。
【0079】
ステップS507で、ネットワークのトラフィック状態を確認し、メッセージを送信可能とするか否かを判定する。送信可能とする場合(ステップS507でNO)、ステップS508に進む。一方、送信可能とする場合(ステップS507でYES)、ステップS511に進む。
【0080】
尚、ステップS507の判定は、汎用的なネットワークのトラフィック状態を判定する判定機能、例えば、サーバOSで用意されているAPI等を用いて行う。そして、そのトラフィック状態が示すネットワーク負荷値が所定値未満の場合に送信可能と判定し、所定値以上の場合に送信不可と判定する。ここで、ネットワーク負荷値とは、例えば、ネットワーク使用率や、単位時間当たりの転送パケット数が挙げられる。ネットワーク使用率で判定を行う場合は、例えば、ネットワーク使用率が70%以上である場合には、送信不可能であると判定する。
【0081】
ステップS508で、メッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象でない場合(ステップS508でNO)、ステップS507に戻り、メッセージの再送を試行する。一方、キャッシュ対象である場合(ステップS508でYES)、ステップS509へ進む。
【0082】
ステップS509で、状態保持部305の内容を状態記憶部307へコピーする。ステップS510で、メッセージはキャッシュ対象でない、つまり、送信不要のメッセージであるため、そのメッセージを破棄して、処理を終了する。
【0083】
一方、ステップS511で、メッセージをクライアントPC104へ送信する。ステップS512で、メッセージの送信が成功したか否かを判定する。成功していない場合(ステップS512でNO)、ステップS507に戻る。一方、成功した場合(ステップS512でYES)、処理を終了する。
【0084】
尚、ステップS509では、状態保持部305の内容の内、キャッシュ対象のメッセージの内容のみを、状態記憶部307にコピーするようにしても良い。この場合、状態記憶部307として確保するメモリ容量を節約することができる。この場合、ステップS508の判定を行わずに、処理対象のメッセージの内容と、状態記憶部307の内容を比較して、その比較結果に基づいて、処理対象のメッセージの送信を制御するようにしても良い。つまり、処理対象のメッセージが、状態記憶部307に記憶されていないメッセージであれば、そのメッセージの送信を再試行する。
【0085】
また、図5ではメッセージと状態記憶部307の比較(ステップS502〜ステップS506)をステップS507の前に実行したが、メッセージと状態記憶部307の比較をステップS507の後で実行することも実現可能である。
【0086】
具体的には、ステップS509の前にステップS504、ステップS505を挿入する。その際、ステップS504でNOの場合には、ステップS506に処理が移り。終了となる。また、ステップS504でYESの場合には、ステップS505の処理を行い、ステップS510に処理が移る。
【0087】
ここで、図3の状態保持部305及び状態記憶部307で保持されるメッセージテーブルの一例について、図8を用いて説明する。
【0088】
図8は本発明の実施形態1の状態保持部及び状態記憶部で保持されるメッセージテーブルの一例を示す図である。
【0089】
図8のメッセージテーブルでは、イベントの発生する機器(例えば、プリンタ103)及び処理毎に、キャッシュ対象のメッセージの最新の内容を個別に記憶している。図8では、キャッシュ対象のメッセージとして、4台のプリンタA〜Dからのメッセージと、プリントサーバ102で実行された解析処理の処理状態を示すメッセージを記憶している例を示しており、それぞれが発生したイベントに対応している。
【0090】
尚、このメッセージテーブルの構成及びその内容は、これに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0091】
次に、メッセージ生成処理時のプリントサーバ102の具体例について、図3及び図4のフローチャートを参照して説明する。
【0092】
また、動作例の開始時点で、状態保持部305が保持するメッセージテーブルは図8の状態、メッセージキュー304が保持する内容は図9の状態、状態記憶部307が保持するメッセージテーブルは空の状態であると想定する。
【0093】
1.プリンタAでの印刷ページ数が14に更新され、状態情報が発生する(ステップS401)。
【0094】
2.状態受信部302において、状態情報を取得する(ステップS402)。
【0095】
3.取得した状態情報からメッセージ(プリンタA 14ページ(メッセージ種類:プリンタ ページカウント))を生成し、メッセージキュー304に追加する(ステップS403)。
【0096】
4.キャッシュ対象フラグ管理テーブル(図6)を参照すると、生成したメッセージ(プリンタA 14ページ(メッセージ種類:プリンタ ページカウント))は、キャッシュ対象であるため、状態保持部305にそのメッセージを保持する(ステップS405)。これにより、図8のメッセージテーブルは、図10のメッセージテーブルに更新される。
【0097】
5.プリンタBで、デバイスのエラーが発生し、状態情報が発生する(ステップS401)。
【0098】
6.状態受信部302において、状態情報を取得する(ステップS402)。
【0099】
7.取得した状態情報からメッセージ(プリンタB エラー発生(メッセージ種類:プリンタ エラー))を生成し、メッセージキュー304に追加する(ステップS403)。
【0100】
8.キャッシュ対象フラグ管理テーブルを参照すると、生成したメッセージ(プリンタ エラー)は、キャッシュ対象でないため、図3のフローチャートの先頭へ戻る(ステップS404)。
【0101】
ここまでの処理で、図9のメッセージキュー304の内容は、図11のようになる。
【0102】
続いて、メッセージ送信処理時のプリントサーバ102の動作例について、図3及び図5のフローチャートを参照して説明する。
【0103】
また、動作例の開始時点で、状態保持部305が保持するメッセージテーブルは図10の状態、メッセージキュー304が保持する内容は図11の状態、状態記憶部307が保持するメッセージテーブルは空の状態であると想定する。
【0104】
尚、本実施形態では、状態記憶部307が保持するメッセージテーブルを空の状態を想定して説明するが、ネットワークのトラフィックが増大した際、はじめにその時の状態保持部305が保持するメッセージテーブルの情報を状態記憶部307が保持するメッセージテーブルにコピーするようにして、状態記憶部307が保持するメッセージテーブルに情報が入っているようにしても良い。
【0105】
1.メッセージキュー304からメッセージ(プリンタA 10ページ(メッセージ種類:プリンタ ページカウント))を読み出す(ステップS501)。
【0106】
2.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 10ページ(メッセージ種類:プリンタ ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0107】
3.状態記憶部307に、状態保持部305より取得した情報が存在しないため、メッセージの送信処理に移行する(ステップS503)。
【0108】
4.ネットワークのトラフィック状態を確認し、送信可能であるか否かを判定する(ステップS507)。
【0109】
5.ここでは送信可能であると仮定し、メッセージをクライアントPC104へ送信する(ステップS511)。
【0110】
6.送信が成功したか否かを判定する(ステップS512)。
【0111】
7.送信が成功した場合、メッセージキュー304から次のメッセージを読み出す(ステップS501)。
【0112】
ここで、以下の8〜13では、メッセージ(プリンタA 10ページ(メッセージ種類:ページカウント))が送信不可である場合を説明する。
【0113】
8.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 10ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0114】
9.状態記憶部307には、メッセージが存在しないため、そのメッセージの送信処理に移行する(ステップS503)。
【0115】
10.ネットワークのトラフィック状態を確認し、送信可能であるか否かを判定する(ステップS507)。
【0116】
11.ここでは、ネットワークの負荷が高く、送信不可と仮定する。その後、キャッシュ対象フラグ管理テーブルを参照して、メッセージがキャッシュ対象であるか否かを判定する(ステップS508)。
【0117】
12.メッセージは、キャッシュ対象であるため、図10の状態保持部305のメッセージテーブルの内容を、状態記憶部307のメッセージテーブルにコピーする(ステップS509)。
【0118】
13.今回、取得したメッセージは破棄して、処理を進める(ステップS510)。
【0119】
14.メッセージキュー304から次のメッセージ(プリンタB 100ページ(メッセージ種類:ページカウント))を読み出す(ステップS501)。
【0120】
15.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタB 100ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0121】
16.状態記憶部307のメッセージテーブルの内容を確認する(ステップS503)
17.メッセージ(プリンタB 100ページ)に対し、状態記憶部307のメッセージテーブル中にメッセージ(プリンタB 102ページ)があるので、両者の内容を比較する。この場合、両者の内容は同一内容でないと判定する(ステップS504)。
【0122】
18.取得したメッセージは破棄して、処理を進める(ステップS506)。
【0123】
19.次に、メッセージキュー304中のメッセージにおいて、メッセージ(プリンタAの11ページ)からメッセージ(プリンタB 101ページ101)までは、上記の14(ステップS501)から18(ステップ506)を繰り返すことになる。
【0124】
20.その後、メッセージキュー304から次のメッセージ(データTESTA追加(メッセージ種類:ジョブ追加)を読み出す(ステップS501)。
【0125】
21.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(データTESTA追加(メッセージ種類:ジョブ追加)は、キャッシュ対象でないと判定する(ステップS502)。
【0126】
22.ネットワークのトラフィック状態を確認し、ここでは、送信不可と仮定する(ステップS507)。
【0127】
23.キャッシュ対象フラグ管理テーブルを参照すると、メッセージは、キャッシュ対象でないと判定する(ステップS508)。
【0128】
24.再度、ネットワークのトラフィック状態を確認する。そして、送信可能になるまで、22(ステップS507)及び23(ステップS508)を繰り返す。
【0129】
25.送信可能になったら、クライアントPC104へメッセージを送信する(ステップS511)
26.送信が成功したか否かを判定する(ステップS512)。送信が成功しない場合は、22(ステップS507)から25(ステップS511)を繰り返す。その後、送信が成功したら、処理を進める。
【0130】
27.その後、メッセージキュー304から次のメッセージ(データTESTB(メッセージ種類:ジョブ削除))を読み出す。キャッシュ対象フラグ管理テーブルを参照すると、メッセージは、キャッシュ対象でないため、20(ステップS501)から26(ステップS512)の処理を行う。また、その後のメッセージキュー304から読み出すメッセージ(プリンタA 13ページ)、メッセージ(プリンタB 102ページ)は、14(ステップS501)から18(ステップS506)を繰り返す。
【0131】
28.メッセージキュー304から次のメッセージ(プリンタA 14ページ(メッセージ種類:ページカウント))を読み出す(ステップS501)。
【0132】
29.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 14ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0133】
30.状態記憶部307のメッセージテーブルの内容を確認する(ステップS503)。
【0134】
31.メッセージ(プリンタA 14ページ)に対し、状態記憶部307のメッセージテーブル中の情報(プリンタA 14ページ)であるので、両者の内容を比較する。この場合、両者の内容は同一内容であると判定する(ステップS504)。
【0135】
32.状態記憶部307の内容をクリアする(ステップS505)。
【0136】
33.以降、4(ステップS507)から6(ステップS512)もしくは10(ステップS507)から13(ステップS510)の処理を同様に実行する。
【0137】
以上説明したように、実施形態1によれば、ネットワーク負荷(ネットワークのトラフィック状況)に応じて、クライアントへ通知するメッセージを削減できるため、負荷をかけ続ける状況から回避可能となり、リアルタイムでメッセージ通知が可能となる。
【0138】
また、メッセージの送信を制御するフラグを付与して、そのメッセージの送信を制御することで、より有効なメッセージ通知が可能となる。
【0139】
特に、実施形態1では、キャッシュ対象のメッセージの最新の内容を保持する状態保持部305と、キャッシュ対象のメッセージを送信不可の場合に、その時点の状態保持部305の内容を別途コピーして記憶する状態記憶部307を構成する。
【0140】
この構成により、送信対象のメッセージがキャッシュ対象で、かつその内容が状態保持部305の内容よりも古ければ、送信不要として、そのメッセージを破棄する制御を実現することができる。
【0141】
一方、そのメッセージの送信不可である場合には、その時点のメッセージの最新の内容を保持する状態保持部304の内容を状態記憶部307にコピーして記憶しておき、この内容と同一のメッセージをメッセージキュー304から取得して送信する場合には、その送信を直ちに破棄するのではなく、一旦送信の機会を設けて、送信可能であれば、そのメッセージを送信する制御を実現することができる。
【0142】
このような2種類の制御によって、送信不要となり得るメッセージを、常に破棄するのではなく、必要に応じて送信することが可能となるので、より有効なメッセージの通知が可能となる。
【0143】
<実施形態2>
実施形態1では、ステップS501で、メッセージキュー304からメッセージを読み出した後、ステップS502で、メッセージがキャッシュ対象であるか否かを判定する構成としているが、先に、ステップS507で、メッセージが送信可能であるか否かを判定するようにしても良い。
【0144】
以下、実施形態2のメッセージ送信処理について、図12を用いて説明する。
【0145】
図12は本発明の実施形態2のメッセージ送信処理を示すフローチャートである。
【0146】
尚、図12のフローチャートは、図5のフローチャートの処理順序及び不要なステップを変更した構成であり、以下の説明では、特徴的な部分についてのみ説明する。
【0147】
上述したように、実施形態2では、メッセージ送信処理において、ステップS501の処理後、ステップS507において、メッセージが送信可能であるか否かを判定する。
【0148】
ステップS507において、メッセージが送信可能である場合(ステップS507でYES)、ネットワーク負荷が低い状態であり、そのメッセージを送信しても差し支えないといえるので、送信対象のメッセージのキャッシュ対象フラグの値に関係なく、ステップS511で、そのメッセージをクライアントPCへ送信する。
【0149】
一方、メッセージが送信不可である場合(ステップS507でNO)、ステップS508に進み、そのメッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象でない場合(ステップS508でNO)、ステップS507に戻り、そのメッセージの送信を再試行する。一方、キャッシュ対象である場合(ステップS508でYES)、ステップS504に進む。
【0150】
ステップS504で、読み出したメッセージの内容が、状態記憶部307に保持されている内容と同一内容であるか否かを判定する。同一内容でない場合(ステップS504でNO)、ステップS507に戻り、そのメッセージの送信を再試行する。一方、同一内容である場合(ステップS504でYES)、ステップS505に進み、状態記憶部307の内容をすべてクリアする。その後、ステップS509及びステップS510の処理を実行する。
【0151】
尚、図12において、ステップS507へ処理が移る前に、ステップS505及びステップS509の処理を実行するようにしても良い。また、ステップS504でYESの場合、ステップS505、ステップS509を実行し、ステップS507へ処理が進むようにしても良い。
【0152】
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、ネットワーク負荷が低い状態であれば、そのメッセージがキャッシュ対象であるか否かに関わらず、そのメッセージを通知することができる。
【0153】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0154】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【0155】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0156】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0157】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0158】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0159】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0160】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0161】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0162】
【図1】本発明の実施形態1のプリントサーバシステムの構成を示す図である。
【図2】本発明の実施形態1の各種端末のハードウエア構成を示す図である。
【図3】本発明の実施形態1のプリントサーバシステムの機能構成を示す図である。
【図4】本発明の実施形態1のメッセージ生成処理を示すフローチャートである。
【図5】本発明の実施形態1のメッセージ送信処理を示すフローチャートである。
【図6】本発明の実施形態のキャッシュ対象フラグ管理テーブルの一例を示す図である。
【図7】本発明の実施形態1のメッセージ構造の一例を示す図である。
【図8】本発明の実施形態1の状態保持部及び状態記憶部で保持するメッセージテーブルの一例を示す図である。
【図9】本発明の実施形態1のメッセージキューの状態の一例を示す図である。
【図10】本発明の実施形態1の状態保持部のメッセージテーブルの一例を示す図である。
【図11】本発明の実施形態1のメッセージキューの状態の一例を示す図である。
【図12】本発明の実施形態2のメッセージ送信処理を示すフローチャートである。
【符号の説明】
【0163】
101 ホストコンピュータ
102 プリントサーバ
103 プリンタ
104 クライアントPC
105 ネットワーク
【技術分野】
【0001】
本発明は、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置及びその制御方法、プログラムに関するものである。
【背景技術】
【0002】
プリントサーバにおいては、印刷処理を行うのみではなく、ジョブの管理および出力するプリンタのステータスを管理することが必要な場合がある。そこで、プリントサーバでこれらの情報を取得し、クライアント上に表示することが必要となる。但し、これらの情報は、プリンタの台数やネットワークの回線の状態により通信負荷が高くなり、すべての情報が送れないもしくは時差が発生し、現在の状態と表示が著しく異なる状況が発生しえる。この状況を回避するために、クライアントとの通信処理になにかしら仕組みが必要となる。
【0003】
その1つとして、例えば、特許文献1には、クライアントに最新状態を表示するシステムが開示されている。特に、ネットワーク負荷の軽減とクライアントの更新を頻繁に繰り返さないように動作するものである。このシステムにおいては、段落番号<0014>から<0016>に記載されているように、フラグを2つ用いてタイマーにより待たせ処理という機能を用いて通知の削減をおこなっている。
【0004】
また、その他の技術として、通信障害が発生したときには不必要なメッセージを削除する構成がある。
【特許文献1】特開平7−175617号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載のシステムにおいては、通信データ量の削減が可能であるが、タイマーの設定間隔によってはネットワークの負荷がない場合にも情報が間引きされるため不自然に感じられることもある。
【0006】
また、ネットワーク障害が回復するまで不必要なメッセージを削除する場合では、メッセージが送れるような状態になって、キューにある必要なメッセージを送信して、クライアントの表示画面にプリンタや印刷状状態を更新しても、実際には印刷やプリンタの状態は刻々と変化しているためだいぶ前の情報が表示されてしまうことになり、実際の状況と大きく違いユーザにとってわかりにくいものとなっていた。
【0007】
本発明は上記の課題を解決するためになされたものであり、ネットワーク上の機器の状態通知をサーバクライアントシステム間で実現する環境において、有効なメッセージ通知を実現するとともに、ネットワークに係る負荷を低減することができるサーバ装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するための本発明によるサーバ装置は以下の構成を備える。即ち、
また、好ましくは、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信手段と、
前記受信手段で順次受信した状態情報を示すメッセージを累積管理するメッセージ管理手段と、
前記受信手段で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を更新保持する保持手段と、
前記ネットワークのトラフィック状態を検知する検知手段と、
第1メッセージを前記メッセージ管理手段から取得して送信しようとする際に、前記検知手段で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持手段で保持される内容をコピーして記憶する記憶手段と、
第2メッセージを前記メッセージ管理手段から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御手段と
を備えることを特徴とするサーバ装置。
【0009】
また、好ましくは、前記記憶手段で内容をコピーする場合に、前記第1メッセージを破棄する破棄手段を更に備える。
【0010】
また、好ましくは、前記メッセージの種類毎に、前記メッセージの優先度を管理する管理手段を更に備える。
【0011】
また、好ましくは、前記制御手段は、前記管理手段を参照して処理対象のメッセージの優先度を判定し、その優先度に基づいて、そのメッセージの送信を制御する。
【0012】
また、好ましくは、前記制御手段は、前記第2メッセージの内容が前記記憶手段に記憶されている内容に存在しない場合、前記第2メッセージを破棄する。
【0013】
また、好ましくは、前記ネットワーク負荷値が所定値以上であるか否かを判定する負荷判定手段を更に備え、
前記負荷判定手段の判定の結果、前記ネットワーク負荷値が所定値より高い場合、前記判定手段は、前記第1メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する。
【0014】
また、好ましくは、前記ネットワーク負荷値が所定値より高い場合で、かつ前記判定手段の判定の結果、前記第1メッセージの内容が、前記記憶手段に記憶されているメッセージの内容に存在する場合、前記制御手段は、該第1メッセージの送信が成功するまで、送信を再試行する。
【0015】
また、好ましくは、当該サーバ装置におけるデータ解析の状態情報を順次取得する取得手段を更に備え、
前記メッセージ管理手段は、前記受信手段で順次受信した状態情報を示すメッセージ及び前記取得手段で順次取得した状態情報を示すメッセージを累積管理する。
【0016】
上記の目的を達成するための本発明によるサーバ装置の制御方法は以下の構成を備える。即ち、
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御方法であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程と、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程と、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程と、
前記ネットワークのトラフィック状態を検知する検知工程と、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程と、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程と
を備える。
【0017】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
また、好ましくは、プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御を実現するプログラムであって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程のプログラムコードと、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程のプログラムコードと、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程のプログラムコードと、
前記ネットワークのトラフィック状態を検知する検知工程のプログラムコードと、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程のプログラムコードと、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程のプログラムコードと、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程のプログラムコードと
を備える。
【発明の効果】
【0018】
本発明によれば、ネットワーク上の機器の状態通知をサーバクライアントシステム間で実現する環境において、有効なメッセージ通知を実現するとともに、ネットワークに係る負荷を低減することができるサーバ装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【0019】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【0020】
本発明は、特に、プリントサーバシステムに関するものである。但し、これに限定されず、ネットワーク上の複数の機器間でデータ送受信が実行される環境、例えば、ネットワークスキャナやネットワーク機能を有する複合機(ファックス機能、印刷機能、スキャン機能等を有する機器)と、それを利用する端末間においても、本発明を適用することが可能である。
【0021】
<実施形態1>
図1は本発明の実施形態1のプリントサーバシステムの構成を示す図である。
【0022】
尚、図1のネットワーク105上に接続される各種端末の構成は、一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【0023】
ホストコンピュータ101は、プリンタ103に対する印刷データを生成し、出力する。プリントサーバ102は、プリントサーバ機能を有し、ホストコンピュータ101で生成された印刷データの印刷の管理や、プリンタ103の状態(ステータス)情報の管理等を行う。また、状態情報を示すメッセージを、後述する処理に基づいて、クライアントPC104に送信する。
【0024】
プリンタ103は、ネットワーク105を介して受信する印刷データに基づいて、記録媒体に印刷を実行する。また、このプリンタ103は、プリントサーバ102によって自身の状態(印刷状況や機器状況)の監視対象となる。この状態を示す状態情報は、プリンタ103自身が、必要に応じてプリンタサーバ102に通知することもあれば、プリンタサーバ102の要求に応じて通知する場合もある。
【0025】
尚、図1では、プリンタ103は一つだけ記載されているが、複数あるものとする。また、プリンタ103の印刷方式としては、例えば、インクジェット方式、レーザビーム方式、熱転写方式等の各種印刷方式のプリンタが想定される。
【0026】
クライアントPC(パーソナルコンピュータ)104は、プリントサーバ102とネットワーク105を介してプリントサーバ102からプリンタ103の状態情報を受信して表示する、プリンタ103のステータス確認用端末として主に機能するが、ホストコンピュータ101と同様に、プリンタ103に対する印刷データを生成して、出力することも可能である。
【0027】
ネットワーク105は、典型的にはインターネットやLANやWANや電話回線、専用デジタル回線、ATMやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
【0028】
次に、ホストコンピュータ101、プリントサーバ102、クライアントPC104の各種端末のハードウエア構成について、図2を用いて説明する。
【0029】
図2は本発明の実施形態1の各種端末のハードウエア構成を示す図である。
【0030】
図2において、CPU21、RAM22、ROM23、LANアダプタ24、ビデオアダプタ25、キーボード26、マウス27、ハードディスク28、CD−ROMドライブ29はそれぞれシステムバス20を介して互いに接続されている。システムバス20は、例えば、PCIバス、AGPバス、メモリバス等を意味する。また、図2では、各バス間の接続用チップやキーボードインタフェースやいわゆるSCSIやATAPIのような入出力用インタフェースは省略されている。
【0031】
CPU21は、オペレーションシステムのプログラムやアプリケーションプログラムに基づいて四則演算や比較演算等の各種の演算や、ハードウェアの制御を行う。RAM22には、ハードディスク28やCD−ROMドライブ29に装着されたCD−ROMやCD−R等の記憶媒体から読み出されたオペレーションシステムのプログラムやアプリケーションプログラム等が記憶され、これらはCPU21の制御の元に実行される。RAM22の内容については、後にメモリマップの内容として詳述する。
【0032】
ROM23は、オペレーションシステムと協働してハードディスク等への入出力を司るいわゆるBIOS等のデータを記憶している。LANアダプタ24は、CPUによって制御されるオペレーションシステムの通信プログラムと協働して、ネットワークを介した外部との通信を行う。ビデオアダプタ25は、ディスプレイ装置に出力する画像信号を生成する。入力部として機能する、キーボード26やマウス27は、当該端末への各種指示を入力するために用いられる。
【0033】
ハードディスク28は、オペレーションシステムやアプリケーションプログラムや、以下で説明するフローチャートを実現可能なプログラムを記憶している。
【0034】
CD−ROMドライブ29は、CD−ROMやCD−RやCD−R/W等の記憶媒体を装着してアプリケーションプログラムをハードディスク28にインストールするのに用いる。尚、CD−ROMドライブの代わりにCD−RドライブやCD−R/WドライブやMOドライブ、DVDドライブ等を用いても良いのは言うまでもない。
【0035】
次に、プリントサーバシステムの機能構成について、図3を用いて説明する。
【0036】
図3は本発明の実施形態1のプリントサーバシステムの機能構成を示す図である。
【0037】
尚、図3では、特に、プリントサーバ102の機能構成を中心に説明する。
【0038】
プリンタ103では、印刷ジョブの追加や、印刷済ページ数等の印刷ジョブの状態の変更及び機器の状態の変更があった場合に、プリントサーバ102の状態受信部302に、その内容を状態情報として都度通知を行う。
【0039】
状態受信部302は、メッセージキュー304(状態情報を示すメッセージを累積管理するメッセージ管理機能)へ通知された内容を追加する。
【0040】
印刷データ管理部303は、プリントサーバ102で、印刷データの解析処理を行っていて、その状態の変化があった場合、変更内容に応じた状態情報を示すメッセージをメッセージキュー304へ追加する。印刷データの解析処理とは、例えば、ホストコンピュータ101から受信した印刷データを、印刷可能形式(例えば、PDL、ビットマップ等)への変換処理等の処理が挙げられる。
【0041】
通信管理部306は、メッセージキュー304からメッセージを順次読み出し、その読み出したメッセージの種類やメッセージの内容に基づいて、クライアントPC104へそのメッセージの通知を制御する。
【0042】
例えば、プリンタ103の現在の印刷ページ数をメッセージとして送信する場合を考えると、そのメッセージは、その後の状態に影響を与えず、またすぐにカウントアップされたページ数を送信することとなる。そのため、今回送信するはずであったメッセージを破棄してもその後のメッセージにより表示の更新が見込めることとなる。
【0043】
但し、印刷データの最終ページの場合は、その後、カウントアップされたページ数はこないが、印刷完了などのメッセージによりページ数の表示をクリアすることで状態表示の矛盾を回避する。
【0044】
また、プリンタ103の現在の状態は、場合によっては頻繁に変化することもあるが、長い期間変化しないような場合は、その後に同様のメッセージがあれば今回のメッセージは破棄し、なければ必ず送信するように処理を行う。
【0045】
例えば、長い期間変化しないような場合は、プリンタで障害が発生し紙詰まりするといった時に発生する。また、紙詰まりを示すメッセージと同様のメッセージとは、紙詰まりを取り除き正常に戻るものがあげられる。
【0046】
以上のような種類のメッセージは、状態変更通知元となる状態受信部302や印刷データ管理部303から、メッセージキュー304に追加すると同時に、状態保持部305に対して、その状態情報を示すメッセージを更新保持する。これにより、状態保持部305では、最新情報のメッセージの内容が保持されることになる。そして、通信管理部306は、メッセージキュー306から、このような種類のメッセージを取得後、クライアントPC104に対して通知する。
【0047】
ここで、通知が失敗した場合は、状態保持部305から最新の情報(メッセージの内容)をコピーして、状態記憶部307に記憶する。その後、状態記憶部307に記憶された通知内容(メッセージの内容)がメッセージキュー304から取り出されるまでは、同種のメッセージは、送信を試みる前に破棄する(つまり、そのメッセージの送信を禁止して、破棄する)。また、状態記憶部307に記憶されたメッセージと同一内容のメッセージがメッセージキュー304から取り出された場合は、状態記憶部307に記憶されている該当内容のメッセージの内容をクリア(消去)する。
【0048】
一方、上述の種類のメッセージとは逆に、印刷データの削除メッセージの場合、そのメッセージを破棄してしまうとプリントサーバ102では、印刷データが存在していないものがクライアントPC104に情報として残ってしまい、その後の動作に矛盾が生じてしまう。そのため、このような種類のメッセージは、送信ができるようになるまで待ち状態を維持する。
【0049】
このように、メッセージの種類に応じて、クライアントPC104へ送信するメッセージを取捨選択するとともに、その送信を制御する。特に、ネットワーク負荷が高い場合は、負荷を減らすように優先度の低いメッセージを破棄することで、処理状態の変更を可能な限り早く通知を行うことが可能となる。
【0050】
次に、状態受信部302及び印刷データ管理部303におけるメッセージ生成処理について、図4を用いて説明する。
【0051】
図4は本発明の実施形態1のメッセージ生成処理を示すフローチャートである。
【0052】
まず、ステップS401では、クライアントPC104への通知対象のイベントが発生したか否かを判定する。イベントが発生していない場合(ステップS401でNO)、一旦処理を終了し、再度イベントの発生の有無を判定する。一方、イベントが発生した場合(ステップS401でYES)、ステップS402に進む。
【0053】
ステップS402で、発生したイベントを受信し、その内容判別を実行して、そのイベントに対するメッセージを生成するイベント受信処理を実行する。
【0054】
ここで、メッセージの生成とは、メッセージキュー304に追加するメッセージを生成することであり、例えば、状態受信部302で受信した状態情報を、内部的に定義した構造を持った形式のメッセージに変換する。
【0055】
ステップS403で、生成したメッセージをメッセージキュー304へ追加する。ステップS404で、生成したメッセージがキャッシュ対象であるか否かを判定する。
【0056】
尚、ステップS404において、メッセージがキャッシュ対象であるか否かの判定は、メッセージの種類毎に対応づけられた、予めキャッシュ対象の有無(H(Hi)/L(Low))を示すキャッシュ対象フラグを管理するキャッシュ対象フラグ管理テーブル(図6)を参照して判定する。
【0057】
ここで、キャッシュ対象フラグ管理テーブルについて、図6を用いて説明する。
【0058】
図6は本発明の実施形態のキャッシュ対象フラグ管理テーブルの一例を示す図である。
【0059】
図6に示すように、キャッシュ対象フラグ管理テーブルでは、メッセージ種別毎に、キャッシュ対象の有無(H(Hi)/L(Low))を示すキャッシュ対象フラグが対応づけて管理される。
【0060】
また、キャッシュ対象のメッセージとは、基本的には、送信対象のメッセージをリアルタイムでクライアントPC104に通知しなくても、その後の動作に矛盾が生じないメッセージのことである。換言すれば、キャッシュ対象のメッセージは、送信の優先度の低いメッセージであり、一方、非キャッシュ対象のメッセージは、送信の優先度の高いメッセージであると言える。つまり、図6は、メッセージの送信優先度を定義した管理テーブルとも言える。
【0061】
但し、キャッシュ対象フラグは、各メッセージの種類に対して、管理者によって任意に設定することが可能であるので、キャッシュ対象のメッセージが、必ずしもリアルタイムでクライアントに通知しなくても、その後の動作に矛盾が生じないメッセージであるとは限らない。そのため、キャッシュ対象のメッセージであるか否かは、最終的には、管理者の用途や目的に応じて設定されたキャッシュ対象フラグの値に委ねられることになる。
【0062】
尚、このキャッシュ対象フラグ管理テーブルを用いずに、メッセージ種類毎に優先度をプログラム上に定義しておき、その定義に基づいて、キャッシュ対象の有無を判定するようにしても良い。
【0063】
また、メッセージの一例について、図7を用いて説明する。
【0064】
図7は本発明の実施形態1のメッセージ構造の一例を示す図である。
【0065】
図7では、メッセージの一例として、プリンタの印刷済ページ数を示すプリンタ ページカウントメッセージ及びプリンタに対する印刷ジョブの追加を示すプリンタ ジョブ追加メッセージを示している。
【0066】
プリンタ ページカウントメッセージは、そのメッセージを固有に識別するメッセージ種別ID、メッセージの発行元のプリンタを固有に識別するプリンタID、印刷済ページ数を示す情報で構成される。また、プリンタ ジョブ追加メッセージは、メッセージ種別ID、プリンタID、ジョブ名称、そのジョブを固有に識別するジョブIDを示す情報で構成される。
【0067】
同様に、他の種別のメッセージについても、そのメッセージの内容に応じて、メッセージ種別ID、プリンタID等の必要な情報で構成される。
【0068】
図4の説明に戻る。
【0069】
ステップS404において、メッセージがキャッシュ対象でない場合(ステップS404でNO)、つまり、キャッシュ対象フラグがLである場合、処理を終了する。一方、メッセージがキャッシュ対象である場合(ステップS404でYES)、つまり、キャッシュ対象フラグがHの場合、ステップS405に進む。
【0070】
ステップS405で、キャッシュ対象のメッセージを、その内容に基づき、状態保持部305へ出力する。
【0071】
次に、通信管理部306におけるメッセージ送信処理について、図5を用いて説明する。
【0072】
図5は本発明の実施形態1のメッセージ送信処理を示すフローチャートである。
【0073】
まず、ステップS501で、メッセージキュー304からメッセージを読み出す。尚、このメッセージの読出は、FIFO(ファーストインファーストアウト)形式で読み出す。
【0074】
ステップS502で、読み出したメッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象である場合(ステップS502でYES)、ステップS503に進む。一方、キャッシュ対象でない場合(ステップS502でNO)、ステップS507に進む。
【0075】
尚、ステップS501の判定は、図4のステップS404の判定と同様である。
【0076】
ステップS503で、状態記憶部307に状態保持部305より取得した情報が存在しているか否かを判定する。情報が存在していない場合(ステップS503でNO)、ステップS507に進む。この場合、キャッシュ対象でないメッセージと同様の処理を、以降の処理で行うことになる。一方、情報が存在している場合(ステップS503でYES)、ステップS504へ進む。
【0077】
ステップS504で、読み出したメッセージの内容が、状態記憶部307に保持されている内容と同一内容の情報があるか否かを判定する。同一内容がない場合(ステップS504でNO)、つまり、読み出したメッセージが、状態記憶部307に記憶されている情報より古いメッセージであるため、読み出したメッセージは破棄して、処理を終了する。一方、同一内容がある場合(ステップS504でYES)、ステップS505に進み、状態記憶部307の内容をすべてクリアする。
【0078】
尚、ステップS504の判定は、読み出したメッセージが最新状態のメッセージであるか否かを判定するためのものである。また、具体的な判定は、メッセージと記憶された情報の単純な比較でも良いし、メッセージに付加されるシーケンス番号と記憶された情報のシーケンス番号の比較でも良いし、メッセージの種類を特定する一意の識別子の比較でも良い。
【0079】
ステップS507で、ネットワークのトラフィック状態を確認し、メッセージを送信可能とするか否かを判定する。送信可能とする場合(ステップS507でNO)、ステップS508に進む。一方、送信可能とする場合(ステップS507でYES)、ステップS511に進む。
【0080】
尚、ステップS507の判定は、汎用的なネットワークのトラフィック状態を判定する判定機能、例えば、サーバOSで用意されているAPI等を用いて行う。そして、そのトラフィック状態が示すネットワーク負荷値が所定値未満の場合に送信可能と判定し、所定値以上の場合に送信不可と判定する。ここで、ネットワーク負荷値とは、例えば、ネットワーク使用率や、単位時間当たりの転送パケット数が挙げられる。ネットワーク使用率で判定を行う場合は、例えば、ネットワーク使用率が70%以上である場合には、送信不可能であると判定する。
【0081】
ステップS508で、メッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象でない場合(ステップS508でNO)、ステップS507に戻り、メッセージの再送を試行する。一方、キャッシュ対象である場合(ステップS508でYES)、ステップS509へ進む。
【0082】
ステップS509で、状態保持部305の内容を状態記憶部307へコピーする。ステップS510で、メッセージはキャッシュ対象でない、つまり、送信不要のメッセージであるため、そのメッセージを破棄して、処理を終了する。
【0083】
一方、ステップS511で、メッセージをクライアントPC104へ送信する。ステップS512で、メッセージの送信が成功したか否かを判定する。成功していない場合(ステップS512でNO)、ステップS507に戻る。一方、成功した場合(ステップS512でYES)、処理を終了する。
【0084】
尚、ステップS509では、状態保持部305の内容の内、キャッシュ対象のメッセージの内容のみを、状態記憶部307にコピーするようにしても良い。この場合、状態記憶部307として確保するメモリ容量を節約することができる。この場合、ステップS508の判定を行わずに、処理対象のメッセージの内容と、状態記憶部307の内容を比較して、その比較結果に基づいて、処理対象のメッセージの送信を制御するようにしても良い。つまり、処理対象のメッセージが、状態記憶部307に記憶されていないメッセージであれば、そのメッセージの送信を再試行する。
【0085】
また、図5ではメッセージと状態記憶部307の比較(ステップS502〜ステップS506)をステップS507の前に実行したが、メッセージと状態記憶部307の比較をステップS507の後で実行することも実現可能である。
【0086】
具体的には、ステップS509の前にステップS504、ステップS505を挿入する。その際、ステップS504でNOの場合には、ステップS506に処理が移り。終了となる。また、ステップS504でYESの場合には、ステップS505の処理を行い、ステップS510に処理が移る。
【0087】
ここで、図3の状態保持部305及び状態記憶部307で保持されるメッセージテーブルの一例について、図8を用いて説明する。
【0088】
図8は本発明の実施形態1の状態保持部及び状態記憶部で保持されるメッセージテーブルの一例を示す図である。
【0089】
図8のメッセージテーブルでは、イベントの発生する機器(例えば、プリンタ103)及び処理毎に、キャッシュ対象のメッセージの最新の内容を個別に記憶している。図8では、キャッシュ対象のメッセージとして、4台のプリンタA〜Dからのメッセージと、プリントサーバ102で実行された解析処理の処理状態を示すメッセージを記憶している例を示しており、それぞれが発生したイベントに対応している。
【0090】
尚、このメッセージテーブルの構成及びその内容は、これに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【0091】
次に、メッセージ生成処理時のプリントサーバ102の具体例について、図3及び図4のフローチャートを参照して説明する。
【0092】
また、動作例の開始時点で、状態保持部305が保持するメッセージテーブルは図8の状態、メッセージキュー304が保持する内容は図9の状態、状態記憶部307が保持するメッセージテーブルは空の状態であると想定する。
【0093】
1.プリンタAでの印刷ページ数が14に更新され、状態情報が発生する(ステップS401)。
【0094】
2.状態受信部302において、状態情報を取得する(ステップS402)。
【0095】
3.取得した状態情報からメッセージ(プリンタA 14ページ(メッセージ種類:プリンタ ページカウント))を生成し、メッセージキュー304に追加する(ステップS403)。
【0096】
4.キャッシュ対象フラグ管理テーブル(図6)を参照すると、生成したメッセージ(プリンタA 14ページ(メッセージ種類:プリンタ ページカウント))は、キャッシュ対象であるため、状態保持部305にそのメッセージを保持する(ステップS405)。これにより、図8のメッセージテーブルは、図10のメッセージテーブルに更新される。
【0097】
5.プリンタBで、デバイスのエラーが発生し、状態情報が発生する(ステップS401)。
【0098】
6.状態受信部302において、状態情報を取得する(ステップS402)。
【0099】
7.取得した状態情報からメッセージ(プリンタB エラー発生(メッセージ種類:プリンタ エラー))を生成し、メッセージキュー304に追加する(ステップS403)。
【0100】
8.キャッシュ対象フラグ管理テーブルを参照すると、生成したメッセージ(プリンタ エラー)は、キャッシュ対象でないため、図3のフローチャートの先頭へ戻る(ステップS404)。
【0101】
ここまでの処理で、図9のメッセージキュー304の内容は、図11のようになる。
【0102】
続いて、メッセージ送信処理時のプリントサーバ102の動作例について、図3及び図5のフローチャートを参照して説明する。
【0103】
また、動作例の開始時点で、状態保持部305が保持するメッセージテーブルは図10の状態、メッセージキュー304が保持する内容は図11の状態、状態記憶部307が保持するメッセージテーブルは空の状態であると想定する。
【0104】
尚、本実施形態では、状態記憶部307が保持するメッセージテーブルを空の状態を想定して説明するが、ネットワークのトラフィックが増大した際、はじめにその時の状態保持部305が保持するメッセージテーブルの情報を状態記憶部307が保持するメッセージテーブルにコピーするようにして、状態記憶部307が保持するメッセージテーブルに情報が入っているようにしても良い。
【0105】
1.メッセージキュー304からメッセージ(プリンタA 10ページ(メッセージ種類:プリンタ ページカウント))を読み出す(ステップS501)。
【0106】
2.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 10ページ(メッセージ種類:プリンタ ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0107】
3.状態記憶部307に、状態保持部305より取得した情報が存在しないため、メッセージの送信処理に移行する(ステップS503)。
【0108】
4.ネットワークのトラフィック状態を確認し、送信可能であるか否かを判定する(ステップS507)。
【0109】
5.ここでは送信可能であると仮定し、メッセージをクライアントPC104へ送信する(ステップS511)。
【0110】
6.送信が成功したか否かを判定する(ステップS512)。
【0111】
7.送信が成功した場合、メッセージキュー304から次のメッセージを読み出す(ステップS501)。
【0112】
ここで、以下の8〜13では、メッセージ(プリンタA 10ページ(メッセージ種類:ページカウント))が送信不可である場合を説明する。
【0113】
8.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 10ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0114】
9.状態記憶部307には、メッセージが存在しないため、そのメッセージの送信処理に移行する(ステップS503)。
【0115】
10.ネットワークのトラフィック状態を確認し、送信可能であるか否かを判定する(ステップS507)。
【0116】
11.ここでは、ネットワークの負荷が高く、送信不可と仮定する。その後、キャッシュ対象フラグ管理テーブルを参照して、メッセージがキャッシュ対象であるか否かを判定する(ステップS508)。
【0117】
12.メッセージは、キャッシュ対象であるため、図10の状態保持部305のメッセージテーブルの内容を、状態記憶部307のメッセージテーブルにコピーする(ステップS509)。
【0118】
13.今回、取得したメッセージは破棄して、処理を進める(ステップS510)。
【0119】
14.メッセージキュー304から次のメッセージ(プリンタB 100ページ(メッセージ種類:ページカウント))を読み出す(ステップS501)。
【0120】
15.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタB 100ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0121】
16.状態記憶部307のメッセージテーブルの内容を確認する(ステップS503)
17.メッセージ(プリンタB 100ページ)に対し、状態記憶部307のメッセージテーブル中にメッセージ(プリンタB 102ページ)があるので、両者の内容を比較する。この場合、両者の内容は同一内容でないと判定する(ステップS504)。
【0122】
18.取得したメッセージは破棄して、処理を進める(ステップS506)。
【0123】
19.次に、メッセージキュー304中のメッセージにおいて、メッセージ(プリンタAの11ページ)からメッセージ(プリンタB 101ページ101)までは、上記の14(ステップS501)から18(ステップ506)を繰り返すことになる。
【0124】
20.その後、メッセージキュー304から次のメッセージ(データTESTA追加(メッセージ種類:ジョブ追加)を読み出す(ステップS501)。
【0125】
21.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(データTESTA追加(メッセージ種類:ジョブ追加)は、キャッシュ対象でないと判定する(ステップS502)。
【0126】
22.ネットワークのトラフィック状態を確認し、ここでは、送信不可と仮定する(ステップS507)。
【0127】
23.キャッシュ対象フラグ管理テーブルを参照すると、メッセージは、キャッシュ対象でないと判定する(ステップS508)。
【0128】
24.再度、ネットワークのトラフィック状態を確認する。そして、送信可能になるまで、22(ステップS507)及び23(ステップS508)を繰り返す。
【0129】
25.送信可能になったら、クライアントPC104へメッセージを送信する(ステップS511)
26.送信が成功したか否かを判定する(ステップS512)。送信が成功しない場合は、22(ステップS507)から25(ステップS511)を繰り返す。その後、送信が成功したら、処理を進める。
【0130】
27.その後、メッセージキュー304から次のメッセージ(データTESTB(メッセージ種類:ジョブ削除))を読み出す。キャッシュ対象フラグ管理テーブルを参照すると、メッセージは、キャッシュ対象でないため、20(ステップS501)から26(ステップS512)の処理を行う。また、その後のメッセージキュー304から読み出すメッセージ(プリンタA 13ページ)、メッセージ(プリンタB 102ページ)は、14(ステップS501)から18(ステップS506)を繰り返す。
【0131】
28.メッセージキュー304から次のメッセージ(プリンタA 14ページ(メッセージ種類:ページカウント))を読み出す(ステップS501)。
【0132】
29.キャッシュ対象フラグ管理テーブルを参照すると、取得したメッセージ(プリンタA 14ページ(メッセージ種類:ページカウント))は、キャッシュ対象であると判定する(ステップS502)。
【0133】
30.状態記憶部307のメッセージテーブルの内容を確認する(ステップS503)。
【0134】
31.メッセージ(プリンタA 14ページ)に対し、状態記憶部307のメッセージテーブル中の情報(プリンタA 14ページ)であるので、両者の内容を比較する。この場合、両者の内容は同一内容であると判定する(ステップS504)。
【0135】
32.状態記憶部307の内容をクリアする(ステップS505)。
【0136】
33.以降、4(ステップS507)から6(ステップS512)もしくは10(ステップS507)から13(ステップS510)の処理を同様に実行する。
【0137】
以上説明したように、実施形態1によれば、ネットワーク負荷(ネットワークのトラフィック状況)に応じて、クライアントへ通知するメッセージを削減できるため、負荷をかけ続ける状況から回避可能となり、リアルタイムでメッセージ通知が可能となる。
【0138】
また、メッセージの送信を制御するフラグを付与して、そのメッセージの送信を制御することで、より有効なメッセージ通知が可能となる。
【0139】
特に、実施形態1では、キャッシュ対象のメッセージの最新の内容を保持する状態保持部305と、キャッシュ対象のメッセージを送信不可の場合に、その時点の状態保持部305の内容を別途コピーして記憶する状態記憶部307を構成する。
【0140】
この構成により、送信対象のメッセージがキャッシュ対象で、かつその内容が状態保持部305の内容よりも古ければ、送信不要として、そのメッセージを破棄する制御を実現することができる。
【0141】
一方、そのメッセージの送信不可である場合には、その時点のメッセージの最新の内容を保持する状態保持部304の内容を状態記憶部307にコピーして記憶しておき、この内容と同一のメッセージをメッセージキュー304から取得して送信する場合には、その送信を直ちに破棄するのではなく、一旦送信の機会を設けて、送信可能であれば、そのメッセージを送信する制御を実現することができる。
【0142】
このような2種類の制御によって、送信不要となり得るメッセージを、常に破棄するのではなく、必要に応じて送信することが可能となるので、より有効なメッセージの通知が可能となる。
【0143】
<実施形態2>
実施形態1では、ステップS501で、メッセージキュー304からメッセージを読み出した後、ステップS502で、メッセージがキャッシュ対象であるか否かを判定する構成としているが、先に、ステップS507で、メッセージが送信可能であるか否かを判定するようにしても良い。
【0144】
以下、実施形態2のメッセージ送信処理について、図12を用いて説明する。
【0145】
図12は本発明の実施形態2のメッセージ送信処理を示すフローチャートである。
【0146】
尚、図12のフローチャートは、図5のフローチャートの処理順序及び不要なステップを変更した構成であり、以下の説明では、特徴的な部分についてのみ説明する。
【0147】
上述したように、実施形態2では、メッセージ送信処理において、ステップS501の処理後、ステップS507において、メッセージが送信可能であるか否かを判定する。
【0148】
ステップS507において、メッセージが送信可能である場合(ステップS507でYES)、ネットワーク負荷が低い状態であり、そのメッセージを送信しても差し支えないといえるので、送信対象のメッセージのキャッシュ対象フラグの値に関係なく、ステップS511で、そのメッセージをクライアントPCへ送信する。
【0149】
一方、メッセージが送信不可である場合(ステップS507でNO)、ステップS508に進み、そのメッセージがキャッシュ対象であるか否かを判定する。キャッシュ対象でない場合(ステップS508でNO)、ステップS507に戻り、そのメッセージの送信を再試行する。一方、キャッシュ対象である場合(ステップS508でYES)、ステップS504に進む。
【0150】
ステップS504で、読み出したメッセージの内容が、状態記憶部307に保持されている内容と同一内容であるか否かを判定する。同一内容でない場合(ステップS504でNO)、ステップS507に戻り、そのメッセージの送信を再試行する。一方、同一内容である場合(ステップS504でYES)、ステップS505に進み、状態記憶部307の内容をすべてクリアする。その後、ステップS509及びステップS510の処理を実行する。
【0151】
尚、図12において、ステップS507へ処理が移る前に、ステップS505及びステップS509の処理を実行するようにしても良い。また、ステップS504でYESの場合、ステップS505、ステップS509を実行し、ステップS507へ処理が進むようにしても良い。
【0152】
以上説明したように、実施形態2によれば、実施形態1で説明した効果に加えて、ネットワーク負荷が低い状態であれば、そのメッセージがキャッシュ対象であるか否かに関わらず、そのメッセージを通知することができる。
【0153】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0154】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【0155】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0156】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0157】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0158】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0159】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0160】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0161】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0162】
【図1】本発明の実施形態1のプリントサーバシステムの構成を示す図である。
【図2】本発明の実施形態1の各種端末のハードウエア構成を示す図である。
【図3】本発明の実施形態1のプリントサーバシステムの機能構成を示す図である。
【図4】本発明の実施形態1のメッセージ生成処理を示すフローチャートである。
【図5】本発明の実施形態1のメッセージ送信処理を示すフローチャートである。
【図6】本発明の実施形態のキャッシュ対象フラグ管理テーブルの一例を示す図である。
【図7】本発明の実施形態1のメッセージ構造の一例を示す図である。
【図8】本発明の実施形態1の状態保持部及び状態記憶部で保持するメッセージテーブルの一例を示す図である。
【図9】本発明の実施形態1のメッセージキューの状態の一例を示す図である。
【図10】本発明の実施形態1の状態保持部のメッセージテーブルの一例を示す図である。
【図11】本発明の実施形態1のメッセージキューの状態の一例を示す図である。
【図12】本発明の実施形態2のメッセージ送信処理を示すフローチャートである。
【符号の説明】
【0163】
101 ホストコンピュータ
102 プリントサーバ
103 プリンタ
104 クライアントPC
105 ネットワーク
【特許請求の範囲】
【請求項1】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信手段と、
前記受信手段で順次受信した状態情報を示すメッセージを累積管理するメッセージ管理手段と、
前記受信手段で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を更新保持する保持手段と、
前記ネットワークのトラフィック状態を検知する検知手段と、
第1メッセージを前記メッセージ管理手段から取得して送信しようとする際に、前記検知手段で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持手段で保持される内容をコピーして記憶する記憶手段と、
第2メッセージを前記メッセージ管理手段から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御手段と
を備えることを特徴とするサーバ装置。
【請求項2】
前記記憶手段で内容をコピーする場合に、前記第1メッセージを破棄する破棄手段を更に備える
ことを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記メッセージの種類毎に、前記メッセージの優先度を管理する管理手段を更に備える
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記制御手段は、前記管理手段を参照して処理対象のメッセージの優先度を判定し、その優先度に基づいて、そのメッセージの送信を制御する
ことを特徴とする請求項3に記載のサーバ装置。
【請求項5】
前記制御手段は、前記第2メッセージの内容が前記記憶手段に記憶されている内容に存在しない場合、前記第2メッセージを破棄する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項6】
前記ネットワーク負荷値が所定値以上であるか否かを判定する負荷判定手段を更に備え、
前記負荷判定手段の判定の結果、前記ネットワーク負荷値が所定値より高い場合、前記判定手段は、前記第1メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する
ことを特徴とする請求項1に記載のサーバ装置。
【請求項7】
前記ネットワーク負荷値が所定値より高い場合で、かつ前記判定手段の判定の結果、前記第1メッセージの内容が、前記記憶手段に記憶されているメッセージの内容に存在する場合、前記制御手段は、該第1メッセージの送信が成功するまで、送信を再試行する
ことを特徴とする請求項6に記載のサーバ装置。
【請求項8】
当該サーバ装置におけるデータ解析の状態情報を順次取得する取得手段を更に備え、
前記メッセージ管理手段は、前記受信手段で順次受信した状態情報を示すメッセージ及び前記取得手段で順次取得した状態情報を示すメッセージを累積管理する
ことを特徴とする請求項1に記載のサーバ装置。
【請求項9】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御方法であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程と、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程と、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程と、
前記ネットワークのトラフィック状態を検知する検知工程と、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程と、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程と
を備えることを特徴とするサーバ装置の制御方法。
【請求項10】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御を実現するプログラムであって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程のプログラムコードと、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程のプログラムコードと、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程のプログラムコードと、
前記ネットワークのトラフィック状態を検知する検知工程のプログラムコードと、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程のプログラムコードと、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程のプログラムコードと、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程のプログラムコードと
を備えることを特徴とするプログラム。
【請求項1】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信手段と、
前記受信手段で順次受信した状態情報を示すメッセージを累積管理するメッセージ管理手段と、
前記受信手段で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を更新保持する保持手段と、
前記ネットワークのトラフィック状態を検知する検知手段と、
第1メッセージを前記メッセージ管理手段から取得して送信しようとする際に、前記検知手段で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持手段で保持される内容をコピーして記憶する記憶手段と、
第2メッセージを前記メッセージ管理手段から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御手段と
を備えることを特徴とするサーバ装置。
【請求項2】
前記記憶手段で内容をコピーする場合に、前記第1メッセージを破棄する破棄手段を更に備える
ことを特徴とする請求項1に記載のサーバ装置。
【請求項3】
前記メッセージの種類毎に、前記メッセージの優先度を管理する管理手段を更に備える
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項4】
前記制御手段は、前記管理手段を参照して処理対象のメッセージの優先度を判定し、その優先度に基づいて、そのメッセージの送信を制御する
ことを特徴とする請求項3に記載のサーバ装置。
【請求項5】
前記制御手段は、前記第2メッセージの内容が前記記憶手段に記憶されている内容に存在しない場合、前記第2メッセージを破棄する
ことを特徴とする請求項1または2に記載のサーバ装置。
【請求項6】
前記ネットワーク負荷値が所定値以上であるか否かを判定する負荷判定手段を更に備え、
前記負荷判定手段の判定の結果、前記ネットワーク負荷値が所定値より高い場合、前記判定手段は、前記第1メッセージの内容が、前記記憶手段に記憶されている内容に存在するか否かを判定する
ことを特徴とする請求項1に記載のサーバ装置。
【請求項7】
前記ネットワーク負荷値が所定値より高い場合で、かつ前記判定手段の判定の結果、前記第1メッセージの内容が、前記記憶手段に記憶されているメッセージの内容に存在する場合、前記制御手段は、該第1メッセージの送信が成功するまで、送信を再試行する
ことを特徴とする請求項6に記載のサーバ装置。
【請求項8】
当該サーバ装置におけるデータ解析の状態情報を順次取得する取得手段を更に備え、
前記メッセージ管理手段は、前記受信手段で順次受信した状態情報を示すメッセージ及び前記取得手段で順次取得した状態情報を示すメッセージを累積管理する
ことを特徴とする請求項1に記載のサーバ装置。
【請求項9】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御方法であって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程と、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程と、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程と、
前記ネットワークのトラフィック状態を検知する検知工程と、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程と、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程と、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程と
を備えることを特徴とするサーバ装置の制御方法。
【請求項10】
プリンタ及びクライアント装置とネットワークを介して接続され、前記プリンタに関する状態情報を示すメッセージを、前記クライアント装置へ出力するサーバ装置の制御を実現するプログラムであって、
前記プリンタから、該プリンタの状態情報を順次受信する受信工程のプログラムコードと、
前記受信工程で順次受信した状態情報を示すメッセージをメッセージ管理部で累積管理するメッセージ管理工程のプログラムコードと、
前記受信工程で前記状態情報を受信する毎に、その状態情報を示すメッセージの種類に基づいて、そのメッセージの内容を保持部に更新保持する保持工程のプログラムコードと、
前記ネットワークのトラフィック状態を検知する検知工程のプログラムコードと、
第1メッセージを前記メッセージ管理部から取得して送信しようとする際に、前記検知工程で検知したトラフィック状態が示すネットワーク負荷値が所定値より高い場合、前記保持部で保持される内容をコピーして記憶部に記憶する記憶工程のプログラムコードと、
第2メッセージを前記メッセージ管理部から新たに取得して送信しようとする際に、前記第2メッセージの内容が、前記記憶部に記憶されている内容に存在するか否かを判定する判定工程のプログラムコードと、
前記判定工程の判定結果に基づいて、前記第2メッセージの前記クライアント装置への送信を制御する制御工程のプログラムコードと
を備えることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−4085(P2006−4085A)
【公開日】平成18年1月5日(2006.1.5)
【国際特許分類】
【出願番号】特願2004−178521(P2004−178521)
【出願日】平成16年6月16日(2004.6.16)
【出願人】(390002761)キヤノン販売株式会社 (656)
【Fターム(参考)】
【公開日】平成18年1月5日(2006.1.5)
【国際特許分類】
【出願日】平成16年6月16日(2004.6.16)
【出願人】(390002761)キヤノン販売株式会社 (656)
【Fターム(参考)】
[ Back to top ]