JP2012037976A - サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体 - Google Patents

サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体 Download PDF

Info

Publication number
JP2012037976A
JP2012037976A JP2010175573A JP2010175573A JP2012037976A JP 2012037976 A JP2012037976 A JP 2012037976A JP 2010175573 A JP2010175573 A JP 2010175573A JP 2010175573 A JP2010175573 A JP 2010175573A JP 2012037976 A JP2012037976 A JP 2012037976A
Authority
JP
Japan
Prior art keywords
event
error
message
terminal device
server device
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.)
Pending
Application number
JP2010175573A
Other languages
English (en)
Inventor
Shoji Nishiyama
将司 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010175573A priority Critical patent/JP2012037976A/ja
Priority to US13/198,079 priority patent/US8775878B2/en
Publication of JP2012037976A publication Critical patent/JP2012037976A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1234Errors handling and recovery, e.g. reprinting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration

Abstract

【課題】プリンタにおけるエラー解除イベントの確認をクライアントPCで確実に行う。
【解決手段】プロキシサーバ121は、プリンタ101〜103及びクライアントPC111〜113にネットワーク100を介して接続されている。プロキシサーバはプリンタで発生したイベントを示すイベントメッセージを受信した際、当該イベントメッセージをクライアント装置に転送する。そして、プロキシサーバはクライアントPCに転送したイベントメッセージがプリンタにおけるエラーを示すエラーイベントであると、プリンタにおいてエラーイベントの解除が行われたか否かを監視して、プリンタにおいてエラーイベントの解除が行われると、クライアントPCにエラーイベントが解除された旨を示すエラー解除メッセージを通知する。
【選択図】図1

Description

本発明は、サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体に関し、特に、サーバ装置、クライアント装置、及び端末装置が相互にネットワークで接続された通信システムに関する。
一般に、WS−Eventing(Web Services Eventing)を用いた通信システムにおいては、クライアント装置であるクライアントPC(パーソナルコンピュータ)がイベント通知装置(端末装置)に対してイベント通知要求のための登録(以下、イベント登録と呼ぶ)を行う。
イベント通知装置は、イベントが発生するとイベント登録された全てのクライアントPCに対してイベントメッセージを送信する。これによって、クライアントPCはネットワーク上に存在する多種多様なイベント通知装置の状況をリアルタイムで把握することができる。そして、イベント通知装置の状況をリアルタイムで把握すれば、空いているイベント通知装置の効率的な利用及び故障時の迅速でかつ円滑なトラブル解決を行うことが可能となる。
イベント通知装置をプリンタとすると、イベントの種類として、例えば、ジョブ状態変化イベント、紙詰まり、トナー及びインク切れ、及びプリンタ本体の故障等のエラーイベントがある。クライアントPCによっては、プリンタからエラーイベントメッセージが送信されると、以後、イベント通知元のプリンタが故障中であると判断し、そのプリンタの使用を禁止する。そのため、プリンタは、エラーから復旧した場合にはエラー解除イベントメッセージをクライアントPC側に送信する必要がある。
エラー解除イベントメッセージを送信しないと、プリンタが復旧したにも関わらず、クライアントPCは当該プリンタを故障中と判断して使用を禁止したままとなってしまう。
ところで、上記のエラーイベントメッセージの送信履歴情報を記憶して、エラー発生時には、エラー復旧した際のエラー解除イベントを確実にクライアントPCに送信するようにしたものがある(例えば、特許文献1参照)。
特開2007−65757号公報
ところが、一般に安価なプリンタでは、不揮発性の記憶媒体を備えないことがあり、たとえ不揮発性の記録媒体が備えられていたとしても、その容量は少ない。このようなプリンタにおいては、特許文献1に記載のようにエラーイベントメッセージの送信履歴情報を記憶しておくことが困難である。
つまり、容量が少なければ、エラーが解除された際には、他の情報が別に書き込まれて、エラーイベントメッセージの送信先履歴情報が消えている可能性がある。その結果、エラー解除イベントメッセージを確実にクライアントPCに送信することができない。
よって、上述のように安価なプリンタが接続された通信システムにおいては、クライアントPCはエラー解除イベントの確認を行うことが難しいという課題がある。
従って、本発明の目的は、確実にエラー解除イベントの確認を行うことのできるサーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体を提供することにある。
上記の目的を達成するため、本発明によるサーバ装置は、端末装置とクライアント装置とにネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを受信した際、当該イベントメッセージを前記クライアント装置に転送するサーバ装置であって、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視手段と、前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知手段とを有することを特徴とする。
本発明による通信システムは、端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する通信システムであって、前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定手段と、前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定手段と、前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知手段とを備え、前記サーバ装置は、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視手段と、前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知手段とを備えることを特徴とする。
本発明による通信制御方法は、端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する際に用いられる通信制御方法であって、前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定ステップと、前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定ステップと、前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知ステップとを実行し、前記サーバ装置は、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視ステップと、前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知ステップとを実行することを特徴とする。
本発明による通信制御プログラムは、端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する際に用いられる通信制御プログラムであって、前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、前記端末装置が備えるコンピュータに、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定ステップと、前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定ステップと、前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知ステップとを実行させ、前記サーバ装置が備えるコンピュータに、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視ステップと、前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知ステップとを実行させることを特徴とする。
本発明による記録媒体は、上記の通信制御プログラムが記録されたコンピュータに読み取り可能な記録媒体である。
本発明よれば、サーバ装置が端末装置のエラー発生状況を監視・確認して、エラーが解除されると、エラー解除メッセージをクライアント装置に送信する。これによって、クライアント装置は、端末装置におけるエラー解除を確実に知ることができる。
本発明の第1の実施形態による通信システムの一例を示す図である。 図1に示すDP及びクライアントPCの各々のハードウェア構成の一例を示すブロック図である。 図1に示すプリンタの各々のハードウェア構成の一例を示すブロック図である。 図1に示すDP又はクライアントPCに備えられたHDに記憶されるデバイス情報の一例を示す図である。 図1及び図2に示すDPにおいてデバイス情報登録を行う際の処理を説明するためのフローチャートである。 図1及び図3に示すプリンタの各々においてGetメッセージ受信からGet Responseメッセージの送信処理に至るまでの手順を説明するためのフローチャートである。 図1及び図2に示すクライアントPCの各々においてプリンタの検索処理の手順を説明するためのフローチャートである。 図1及び図2に示すDPにおいてクライアントPCからDP検索要求を受信して検索応答をクライアントPCに送信するまでの処理を説明するためのフローチャートである。 図1及び図2に示すDPにおいてクライアントPCからデバイス検索要求を受信した場合の処理を説明するためのフローチャートである。 図7に示す処理においてクライアントPCからGetメッセージを受信した際のDPにおける処理を説明するためのフローチャートである。 図1及び図3に示すクライアントPCにおいて、検索したデバイスの情報を表示する際に用いられるユーザインターフェース(UI)の一例を示す図である。 図1及び図3に示すクライアントPCにおいてデバイス検索によって検索されたデバイスに対してイベント登録処理を行う手順を説明するためのフローチャートである。 図1及び図2に示すDPがクライアントPCからSubscribeリクエストを受信してからプリンタにSubscribeリクエストを送信するまでの処理を説明するためのフローチャートである。 図2に示すDPのHDに記憶された代行イベント情報の一例を示す図である。 図3に示すプリンタのRAMに記憶されるイベント登録情報の一例を示す図である。 は、図1及び図3に示すプリンタにおいてイベントが発生した際の処理の手順を説明するためのフローチャートである。 図1及び図2に示すDPにおいてプリンタからイベントメッセージを受信してクライアントPCに当該イベントを転送するまでの処理を説明するためのフローチャートである。 図1及び図2に示すDP121においてプリンタのエラー解除状態を確認して、エラー解除イベントメッセージをクライアントPCに送信するまでの処理を説明するためのフローチャートである。 図3に示すRAMに記憶されるイベント登録情報の一例を示す図である。 図1及び図3に示すプリンタにおいてイベントが発生した場合の処理の手順を説明するためのフローチャートである。
以下、本発明の実施の形態による通信システムの一例について図面を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態による通信システムの一例を示す図である。
図1を参照すると、図示の通信システムにおいては、イベント通知装置である複数のプリンタ(端末装置)101〜103が備えられている。そして、プリンタ101〜103はクライアント装置である複数のクライアントPC111〜113とプロキシサーバ(サーバ装置:Device proxy(以下DPと呼ぶ))とネットワーク100を介して接続されている。
図示のプリンタ101〜103は、プリンタ本来の機能であるプリント機能を有するとともに、WS−Eventingを用いてイベント登録元にイベントメッセージを送信するイベント送信機能を有している。図示の例では、イベントの内容として、ジョブ状態変化イベント、紙詰まり、トナー又はインク切れ、そして、その他プリンタ本体の故障等のエラーイベントがある。さらに、プリンタ101〜103の各々は、リクエストに応じたリクエストレスポンスによってジョブ状態変化及びエラー状態を返答するエラー返答機能を有している。
加えて、図示のプリンタ101〜103の各々は、不揮発記録媒体を備えているが、その容量が少ないためにイベント登録元に関する情報を不揮発記録媒体には記憶せず、例えば、RAM等の揮発性記録媒体に記憶するものとする。従って、電源がオン/オフされた場合には、プリンタ101〜103においては、イベント登録元に関する情報の全てが消えてしまう。そのため、電源のオン/オフ後においては、たとえ、エラーが解除されても、プリンタ101〜102はエラー解除イベントメッセージをイベント登録元に送信することがない。
クライアントPC111〜113は、例えば、演算、制御、及び表示機能を有するクライアント機器(情報処理装置)である。クライアントPC111〜113の各々は、少なくともプリンタ101〜103に対して印刷ジョブを送信(以下、特に言及しない限り「送信する」とはユニキャストで送信することをいう)する。これによって、印刷ジョブを受信したプリンタ101〜103のいずれかは印刷ジョブに応じた印刷を実行する。
また、クライアントPC111〜113は、WS−Discovery(Web Services dynamic Discovery)を用いて、プリンタ101〜103又はDP121を検索する検索機能を有する。さらに、クライアントPC111〜113は、WS−Eventingを用いて、プリンタ101〜103又はDP121に対して、イベント登録メッセージを送信するメッセージ送信機能を有する。そして、クライアントPC111〜113は、プリンタ101〜103からエラーイベントメッセージを受信すると、エラー解除イベントメッセージを受信するまで、プリンタ101〜103に対して印刷ジョブの送信を実行不可とする。
DP121は、クライアントPC111〜113からのデバイス検索要求に応じてプリンタ101〜103を検索して、その検索結果をクライアントPC111〜113に返答する検索・返答機能を有している。図示の例では、クライアントPC111〜113はDP検索によってDP121を発見した場合には、DP121にプリンタ検索を依頼する。
そして、クライアントPC111〜113はDP121によって検索されたプリンタ101〜103に対するイベント登録もDP121に依頼する。これによって、DP121はクライアントPC111〜113に代わってイベント登録を行う。
プリンタ101〜103においてイベントが発生した場合、プリンタ101〜103はDP121に対してイベントメッセージを送信する。プリンタ101〜103で発生したイベントがエラーイベントの場合には、プリンタ101〜103はDP121に対してエラーイベントメッセージを送信する。
DP121は、エラーイベント(つまり、エラーイベントメッセージ)を受信すると、一定間隔(所定の間隔)でプリンタ101〜103にエラー状態を問い合わせる。一方、エラーが解除された旨の返答を受けると、DP121はクライアントPC101〜103にエラー解除イベントメッセージを送信する。
クライアントPC111〜113が直接プリンタ101〜103に対してイベント登録を行うようにしてもよいが、その場合には、プリンタ101〜103においてエラーイベントが発生しても、プリンタ101〜103はクライアントPC111〜113にはエラーイベントは通知しない。そして、前述のように、プリンタ101〜103は電源がオン/オフされると、イベント登録元に関する情報が消えてしまい、エラー解除イベントメッセージをイベント登録元に送信することができない。
図2は、図1に示すDP121及びクライアントPC111〜113の各々のハードウェア構成の一例を示すブロック図である。ここで、DP121及びクライアントPC111〜113の各々として、所謂汎用PCが使用可能であり、図示のように、DP121及びクライアントPC111〜113の各々は同様のハードウェア構成を有している。従って、ここでは、DP121を例に挙げて説明することにする。
図2を参照して、SP121はCPU201を有しており、CPU201はシステムバス204に接続された各種デバイスの制御を行う。ROM202にはBIOS及びブートプログラム等が記憶されており、RAM203はCPU201の主記憶装置として使用される。
キーボードコントローラ(KBC)205は、マウス(登録商標)等のポインティングデバイス209a及びキーボード209bからの入力情報等に係る入力処理を行う。表示制御部(CRTC)206は、その内部にビデオメモリを有し、CPU201からの指示に応じてビデオメモリに描画するととともに、ビデオメモリに描画されたイメージデータをビデオ信号としてCRT表示装置210に出力する。
なお、図2においては、CRT表示装置210が示されているが、例えば、液晶表示装置又は他の表示装置を用いるようにしてもよい。
ディスクコントローラ(DKC)207は、ハードディスク(HD)211及びフロッピー(登録商標)ディスク212に対するアクセスを行う。ネットワークインタフェースカード(NIC)208は、ネットワーク100(図1)に接続して、ネットワーク100を介して情報通信を行う。なお、HD211には、OS(Operating System)及びOS上で動作する各種アプリケーションプログラム等が格納される。
上記の構成において、電源がオンとなると、CPU201はROM202に格納されたブートプログラムに従って、HD211からOSをRAM203に読み込み、情報処理装置として機能する。
図3は、図1に示すプリンタ101〜103の各々のハードウェア構成の一例を示すブロック図である。ここで、プリンタ101〜103のハードウェア構成は同様であるので、プリンタ101を例に挙げて説明する。
図3を参照して、プリンタ101は、CPU301を有している。そして、図示の例では、ROM303はフォントROM部303a、プログラムROM部303b、及びデータROM部303cに分けられている。
CPU301は、プログラム用ROM部303bに記憶された制御プログラムに基づいてシステムバス304に接続される各種のデバイスに対するアクセスを総括的に制御する。また、CPU301は印刷インターフェース307を介して接続される印刷部(プリンタエンジン)310に出力情報として画像データを出力する。さらに、CPU301は読取インターフェース(図示せず)を介して接続される読取部(スキャナ:図示せず)から入力される画像信号を受ける。
フォント用ROM部303aには、例えば、CPU301が画像信号から画像データ(出力情報)を生成する際に用いるフォントデータ(アウトラインフォントデータを含む)等が記憶されている。データ用ROM部303cには、ホストコンピュータ(例えば、クライアントPC)で利用される情報等が記憶されている。
CPU301はLANコントローラ部306を介してネットワーク100のホストコンピュータ及び画像形成装置(他のプリンタ)との通信処理が可能である。RAM302は、主にCPU301の主メモリ,ワークエリア等として用いられる。
なお、RAM302は、揮発性の記憶媒体であり、出力情報展開領域,環境データ格納領域等にも用いられる。そして、ユーザは操作パネル305に備えられたソフトウェアキーを用いて各種情報を入力する。
図4は、図1に示すDP121又はクライアントPC111〜113に備えられたHD211に記憶されるデバイス情報の一例を示す図である。
ここでは、DP121に備えられるデバイス情報を例に挙げて説明する。図示のデバイス情報管理テーブル400は、デバイス自体に関する情報(以下デバイス情報と呼ぶ)をレコードとして記憶する。デバイス情報400は、ID401、UUID402、バージョン403、デバイスタイプ404、モデル名405、デバイス名406、URL407、IPアドレス408、及びXML保存パス409を有している。
ID401はDPにおいてデバイスを管理するにあたって、各デバイスを識別するためのものである。UUID402はデバイスをグローバルに一意に識別するものである。バージョン403はデバイス情報のバージョンを表す。デバイスタイプ404には複合機を表す「MFP」、プリンタを表す「Printer」等がある。
モデル名405は「LBPXXXX」のようなデバイスのモデル名を表している。デバイス名406はデバイス管理者がデバイスに設定した名前である。URL407はデバイス情報を取得するためのものである。IPアドレス408はデバイスのIPアドレスである。XML保存パス409は、後述するデバイスから取得したゲットレスポンス(Get Response)データのHD211における保存先を表す。
各プリンタ101〜103のCPU301は、起動時においてDP121に対して、XML形式のHelloメッセージを送信して、その存在をDP121に通知する。Helloメッセージは、<Header>タグで囲まれるヘッダ(header部)と<Body>タグで囲まれるボディー(body)部502とを有している。そして、Helloメッセージの全体が<Envelope>タグで囲まれる構造になっている。
header部501はメッセージの内容に依存しない共通ヘッダとしての役割を果たしており、<Action>タグ、<Message ID>タグ、<To>タグが存在する。<Action>タグはメッセージの種類を識別するためのものである。そして、<Message ID>タグはメッセージを一意に識別するための識別子である。<To>タグはこのメッセージの送信先を識別するためのものである。一方、body部502はメッセージの内容に対応してその構造が変化する。
Helloメッセージにおいては、<Body>タグの直下に<Hello>タグが存在し、このメッセージがHelloメッセージであることを示している。<Hello>タグの中には<Endpoint Reference>タグ、<Types>タグ、<XAddrs>タグ、及び<Metadata Version>タグが存在する。<EndpointReference>タグ中には<Address>タグが存在し、このタグはデバイスを識別するアドレス情報を有する。
<Types>タグはデバイスのタイプ情報を有する。<XAddrs>タグはデバイス情報を取得するためのURLを有する。<Metadata Version>タグはデバイス情報のバージョンを有する。
図5は、図1及び図2に示すDP121においてデバイス情報登録を行う際の処理を説明するためのフローチャートである。
図2及び図5を参照して、いま、DP121においてCPU201がHelloメッセージを受信したとする(ステップS601)。すると、CPU201は、Helloメッセージからデバイスをグローバルに識別するUUIDとして<Endpoint Reference>タグ中の<Address>タグの値を抽出する(ステップS602)。続いて、CPU201は、<Address>タグの値と同一のUUIDを有するレコードがデバイス情報管理テーブル400に存在するか否かについて調べる(ステップS603)。
デバイス情報管理テーブル400に当該レコードが存在しないと(ステップS603において、NO)、CPU201は、受信したHelloメッセージからデバイスタイプとして<Types>タグの値を抽出する。さらに、CPU201は、受信したHelloメッセージからデバイス情報のバージョンとして<Metadata Version>タグの値を抽出する。加えて、CPU201は、受信したHelloメッセージからデバイス情報を取得するためのURLとして<XAddrs>タグの値を抽出する。
そして、CPU201は、前述の抽出した値と受信したHelloメッセージの送信元IPアドレスとに基づいて、デバイス情報管理テーブル400に新規レコードを追加する(ステップS604)。
続いて、CPU201は、<XAddrs>タグから抽出したURLに対して、後述するGetメッセージを送信する(ステップS605)。図示の例では、<XAddrs>タグから抽出したURLはプリンタ101〜103のいずれかのIPアドレスを示ものとする。
例えば、Getメッセージは、header部のみを有するメッセージであり、header部の<Action>タグにおいて、このメッセージがGetメッセージであることが示される。プリンタ101〜103のいずれかにおいて、CPU301(図3)は、Getメッセージを受信すると、Get ResponseメッセージをDP121に送信する。そして、DP121において、CPU201はGet Responseメッセージを受信する(ステップS605)。
このGetResponseメッセージは、例えば、そのbody部に<Meta data>タグで示されるデバイス情報を有する構造となっている。<Meta data>タグ中には<Meta data Section>タグで示されるMeta data Section部が3つ存在する。各Meta data Section部はその直下のタグによって、その中に含まれる情報の種類が指定される。
最初のMeta data Section部は<This Device>タグを有しており、デバイス毎に異なる情報が格納される。<Friendly Name>タグは、当該デバイスにつけた名前であり、<Firmware Version>タグは、当該デバイスのファームウェアバージョンを示す。また、<Serial Number>タグは当該デバイスのシリアル番号を示す。続くMeta data Section部は<This Model>タグを有しており、当該デバイスのモデル毎に異なる情報が格納される。
<Manufacturer>タグは当該デバイスの製造会社名を示し、<Manufacturer>タグはデバイス製造会社のURLを示す。そして、<Presentation URL>は当該デバイスの情報を示すURLである。<Model Name>タグはデバイスのモデル名を示す。
最後のMeta data Section部は、<Relationship>タグを有しており、このタグには当該デバイスが有する内部サービスの情報が格納される。ここでは、内部サービスとはプリンタが提供するプリントサービスを意味する。<Relationship>タグはさらにその直下に<Hosted>タグを有し、その中に<Endpoint Reference>タグ、<Types>タグ、及び<ServiceId>タグが存在する。
<Endpoint Reference>タグ中には<Address>タグが存在し、この<Address>タグはサービスを利用するためのアドレス情報を有している。<Types>タグはサービスのタイプ情報を有する。<ServiceId>タグはデバイス内におけるサービスを識別するための識別子を有している。
Get Responseメッセージを受信すると、CPU201は、Get Responseメッセージからデバイス名として<Friendly Name>タグの値、モデル名として<Model Name>タグの値を抽出する。さらに、CPU201は、<Friendly Name>及び<ModelName>タグから抽出した値に応じてデバイス情報管理テーブル400の当該レコードを更新する(ステップS606)。
さらに、CPU201は、受信したGet ResponseメッセージのXML自体もHD211に記憶して、そのファイルパスをXML保存パス409とし、デバイス情報管理テーブル400の当該レコードを更新する。そして、CPU201は処理を終了する。
一方、ステップS603において、デバイス情報管理テーブル400に当該レコードが存在すると(ステップS603において、YES)、CPU201は、Helloメッセージからバージョン情報を抽出する(ステップS607)。続いて、CPU201は、UUIDが一致したレコードにおいてバージョン情報が同一であるか否かについて判定する(ステップS608)。
バージョン情報が異なっていると(ステップS608において、NO)、CPU201はステップS605に進む。一方、バージョン情報が同一であると(ステップS608において、YES)、CPU201は処理を終了する。
図6は、図1及び図3に示すプリンタ101〜103の各々においてGetメッセージ受信からGet Responseメッセージの送信処理に至るまでの手順を説明するためのフローチャートである。ここでは、プリンタ101がGetメッセージを受信したとして説明する。
図3及び図6を参照して、CPU301は、Getメッセージを受信したか否かについて判定する(ステップS901)。Getメッセージを受信すると(ステップS901において、YES)、CPU301は、前述のGet ResponseメッセージをDP121に送信して(ステップS902)、ステップS901に戻る。一方、Getメッセージを受信しないと(ステップS901において、NO)、CPU301は待機する。
図7は、図1及び図2に示すクライアントPC111〜113の各々においてプリンタ101〜103の検索処理の手順を説明するためのフローチャートである。
図2及び図7を参照して、ここではクライアントPC111における検索処理について説明する。なお、他のクライアントPC112及び113も同様にして検索処理を行う。
クライアントPC111がプリンタ101〜103の検索処理を行う際には、CPU201は、後述するプローブ(Probe)メッセージ(第1のProbeメッセージ)をマルチキャストで送信して、DP121を検索する(ステップS1001)。
第1のProbeメッセージは、例えば、そのbody部に<Probe>タグが存在し、これによって、このメッセージがProbeメッセージであることが示される。<Probe>タグ中には<Types>タグが存在する。そして、<Types>タグには”Deveice Proxy”が指定される。
図8は、図1及び図2に示すDP121においてクライアントPC111〜113からDP検索要求を受信して検索応答をクライアントPC111〜113に送信するまでの処理を説明するためのフローチャートである。
図2及び図8を参照すると、DP121において、CPU201は、第1のProbeメッセージを受信したか否かを監視している(ステップS1201)。第1のProbeメッセージを受信しないと(ステップS1201において、NO)、CPU201は待機する。
一方、第1のProbeメッセージを受信すると(ステップS1201において、YES)、CPU201は、当該Probeメッセージ中の<Types>タグを抽出して、”Device Proxy”に該当するか否かについて調べる(ステップS1202)。
”Device Proxy”に該当する場合には(ステップS1202において、YES)、CPU201は、後述するプローブ一致(Probe Match)メッセージ(第1のProbe Matchメッセージ)をクライアントPC111に送信する(ステップS1203)。そして、CPU201はS1201に戻る。一方、”Device Proxy”に該当しない場合には(ステップS1202において、NO)、CPU201はステップS1201に戻る。
前述の第1のProbe Matchメッセージは、例えば、body部に<Probe Matches>タグが存在する。そして、このタグによって、当該メッセージがProbe Matchメッセージであることが示される。
<Probe Matches>タグ中には<Probe Match>タグで示されるProbe Match部が存在する。Probe Match部が1つの検索結果に対応しており、ここでは、DP121による検索結果が返送されることが示される。
再び図2及び図7を参照して、前述のようにして、Probeメッセージを送信した後、クライアントPC111において、CPU201は、DP121から第1のProbe Matchメッセージを受信したか否かを監視する(ステップS1002)。
第1のProbe Matchメッセージを受信すると(ステップS1002において、YES)、CPU201は、第1のProbe Matchメッセージ中の<XAddrs>タグから抽出したURLに対して(つまり、DO212に対して)、別のProbeメッセージ(第2のProbeメッセージ)を送信する(ステップS1003)。
第2のProbeメッセージは、例えば、<Types>タグ中にPrinterが指定され、これによって、プリンタデバイスの検索が示される。
図9は、図1及び図2に示すDP121においてクライアントPC111〜113からデバイス検索要求を受信した場合の処理を説明するためのフローチャートである。
図2及び図9を参照して、DP121において、CPU201は、第2のProbeメッセージを受信したか否かを監視している(ステップS1501)、第2のProbeメッセージを受信しないと(ステップS1501において、NO)、CPU201は待機する。
一方、第2のProbeメッセージを受信すると(ステップS1501において、YES)、CPU201は、第2のProbeメッセージ中から<Types>タグを抽出して、HD211に記憶されたデバイス情報管理テーブル400から検索条件に合致するデバイスを探す(ステップS1502)。そして、CPU201は、当該検索条件に合致したデバイスがデバイス情報管理テーブル400に存在するか否かを調べる(ステップS1503)。
検索条件に合致するデバイスが存在すると(ステップS1503において、YES)、CPU201は、別のProbe Matchメッセージ(第2のProbe Matchメッセージ)をクライアントPC111に送信する(ステップS1504)。そして、CPU201はステップS1501に戻る。
なお、検索条件に合致するデバイスが存在しないと(ステップS1503において、NO)、CPU201はステップS1501に戻る。
上記の第2のProbe Matchメッセージは、例えば、<Probe Matches>タグ中に<Probe Match>タグで示されるProbe Match部が2つ存在する。各Probe Match部が1つの検索結果に対応しており、ここでは、2つの検索結果が返送されることが示されている。また、第2のProbe Matchメッセージでは、<Probe Matches>タグ中の<XAddrs>タグが示すURLは、DP121のIPアドレスからなる。
再び図2及び図7を参照して、クライアントPC111において、第1のProbe Matchメッセージを受信しないと(ステップS1002において、NO)、ネットワーク上にDP121が存在しないことを示すため、CPU201は、<Types>タグにPrinterを指定し、Probメッセージ(第3のProbeメッセージ)をマルチキャストで送信する(ステップS1004)。
クライアントPC111において、CPU201は、第2のProbe Matchメッセージを受信したか否かを監視している(ステップS1005)。第2のProbe Matchメッセージを受信すると(ステップS1005において、YES)、CPU201は、第2のProbeMatchメッセージからデバイスをグローバルに識別するUUIDとして<Endpoint Reference>タグ中の<Address>タグの値を抽出する(ステップS1006)。
続いて、CPU201は、抽出したUUIDと同一のUUIDを有するレコード(以下UUID一致レコードと呼ぶ)がデバイス情報管理テーブル400に存在するか否かについて調べる(ステップS1007)。UUID一致レコードが存在しないと(ステップS1007において、NO)、CPU201は、HD211に記憶されたデバイス情報管理テーブル400に新たにレコードを追加する(ステップS1008)。
次に、CPU201は、第2のProbeMatchメッセージから<XAddrs>タグで記載されたURLを抽出して、そのURLに対して前述のGetメッセージを送信する(ステップS1009)。そして、CPU201は当該Getメッセージに対するGet Responseメッセージを受信することになる。
ここでは、CPU201が送信するGetメッセージの<To>タグには、ステップS1005において受信した第2のProb Matchメッセージの<EndpointReference>タグが示す情報を挿入する。
続いて、クライアントPC111において、CPU201は、受信したGet Responseメッセージの情報を参照して、HD211に記憶されたデバイス情報管理テーブル400の当該レコードを更新する(ステップS1010)。
さらに、ステップS1010において、CPU201は、受信したGet ResoponseメッセージのXMLをHD211に記憶する。加えて、CPU201は、上記のXMLのファイルパスをXML保存パスとしてデバイス情報管理テーブル400に記憶する。
ところで、ステップS1009において、Getメッセージの送信先がDP121である場合、ステップS1009において受信するGet Responseメッセージには、例えば、<Types>が”Device Proxy Eventing Service Type”である<Hosted>タグが存在する。
一方、ステップS1009において、Getメッセージの送信先がプリンタ101〜103である場合、ステップS1009で受信するGet Responseメッセージには、例えば、<Types>が”Device Proxy Eventing Service Type”である<Hosted>タグが存在しない。
この場合、CPU201は、Printer Service Typeが示すURLにイベント登録リクエスト(Subscribeリクエスト)を送信して、直接プリンタ101〜103にイベント登録することになる。
なお、ステップS1009において抽出されたURLが示すアドレスは、ステップS1002の分岐に応じてプリンタ101〜103のアドレスとなるか又はDP121のアドレスとなる。
例えば、ステップS1002において、第1のProbe Matchメッセージを受信すると(ステップS1002において、YES)、ステップS1003において、CPU201はDP121に対してデバイス検索要求する。そして、ステップS1004において、CPU201はDP121から第2のProbe Matchメッセージを受信する。従って、第2のProbe Matchメッセージでは、<XAddrs>タグはDP121のIPアドレスからなる。
一方、ステップS1002において、第1のProbe Matchメッセージを受信しないと(ステップS1002において、NO)、ステップS1004において、CPU201はマルチキャストでデバイス検索要求することになる。従って、ステップS1004において、CPU201はプリンタ101〜103からProbe Matchメッセージを第2のProbe Matchメッセージとして受信することになる。よって、この場合には、第2のProbeMatchメッセージ上の<XAddrs>タグはプリンタ101〜103のIPアドレスからなる。
ステップS1007において、UUID一致レコードが存在する場合には(ステップS1007において、YES)、CPU201は、第2のProbe Matchメッセージからバージョン情報を抽出する(ステップS1011)。そして、CPU201は、当該バージョン情報が同一であるか否かについて判定する(ステップS1012)。バージョン情報が異なる場合には(ステップS1012において、NO)、CPU201は、前述のステップS1009に進む。
一方、バージョン情報が一致する場合には(ステップS1012において、YES)、CPU201は、後述するステップS1013に進む。
図10は、図7に示す処理においてクライアントPC111からGetメッセージを受信した際のDP121における処理を説明するためのフローチャートである。
図2及び図10を参照して、DP121において、CPU201は、Getメッセージを受信したか否かについて監視している(ステップS1701)。Getメッセージを受信しないと(ステップS1701において、NO)、CPU201は待機する。一方、Getメッセージを受信すると(ステップS1701において、YES)、CPU201は、Getメッセージの中からデバイスをグローバルに識別するUUIDとして<To>タグの値を抽出する(ステップS1702)。
続いて、CPU201は、抽出したUUIDと同一のUUIDを有するレコードがデバイス情報管理テーブル400に存在するかについて検索する(デバイス情報検索:ステップS1703)。そして、CPU201は、抽出されたUUIDと同一のUUIDを有するレコードが存在するか否かについて判定する(ステップS1704)。
抽出されたUUIDと同一のUUIDを有するレコードが存在すると(ステップS1704において、YES)、CPU201は、後述するGet ResponseメッセージをクライアントPC111に送信して(ステップS1705)、ステップS1701に戻る。
なお、抽出されたUUIDと同一のUUIDを有するレコードが存在しなければ(ステップS1704において、NO)、CPU201はステップS1701に戻る。
上述のステップS1705において送信されるGet Responseメッセージは、例えば、DP121のHD211に記憶されたデバイス情報管理テーブル400の情報に基づいて作成される。このGet Responseメッセージは、<Metadata>タグ中にHosted部が2つ存在する。
一つ目のHosted部は、前述のステップS1703においてデバイス情報管理テーブル400から検索されたデバイスの情報を示す。二つ目のHosted部は、DP121自体の情報を示す。二つ目のHosted部は、<Types>として”Device Proxy Eventing Service Type”が指定され、<Address>タグにはDP121のIPアドレスからなるURLが指定される。
後述するように、クライアントPC111は、上記のURLにイベント登録リクエスト(Subscribeリクエスト)を送信して、DP121経由によってデバイスにイベント登録リクエストを発行することができる。
続いて、図7を再び参照して、クライアントPC111において、CPU201は、前述のステップS1005において受信した第2のProbe Matchメッセージに含まれている全Probe Match分の処理が完了したか否かについて判定する(ステップS1013)。未だ全ProbeMatch分の処理が完了していない場合には(ステップS1013において、NO)、CPU201はステップS1006に戻って処理を続行する。
一方、全ProbeMatch分の処理が完了している場合には(ステップS1013において、YES)、CPU201は処理を終了する。なお、ステップS1005において、第2のProbe Matchメッセージを受信しないと(ステップS1005において、NO)、CPU201は待機する。
図11は、図1及び図3に示すクライアントPC111〜113において、検索したデバイスの情報を表示する際に用いられるユーザインターフェース(UI)の一例を示す図である。
図11において、UIには領域1901が表示され、この領域1901において検索するデバイスのタイプが指定される。例えば、「MFP」及び「Printer」等のキーワードが領域1901で指定可能である。領域1901が無入力であると、CPU201は全てのデバイスを検索する。そして、ボタン1902の押下によって、上述したデバイスの検索が実行され、検索の結果は領域1903に表示される。
図12は、図1及び図3に示すクライアントPC111〜113においてデバイス検索によって検索されたデバイスに対してイベント登録処理を行う手順を説明するためのフローチャートである。ここでも、クライアントPC111がイベント登録を行う場合について説明する。
図3及び図12を参照して、クライアントPC111において、CPU201は、HD211に記憶されたGet Responseメッセージの情報から、イベント登録リクエスト送信先のURLを抽出する(ステップS2001)。図7のステップS1009において、DP121からデバイス情報を取得している場合には、イベント登録リクエスト送信先のURLはDP121のIPアドレスからなる。
一方、図7のステップS1009において、プリンタ101〜103からデバイス情報を取得している場合には、イベント登録リクエスト送信先のURLはプリンタ101〜103のIPアドレスからなる。
続いて、CPU201は、イベント登録リクエスト先のURLに対して、Subscribeリクエストを送信する(ステップS2002)。DP121に送信する際のSubscribeリクエストにおいては、wsa:Filter部は、「”Printer Status Event”が示すイベントについて、そのStatusが変化したら(つまり、イベントが発生したら)通知をしてほしい」旨を示す(通知要求)。
また、wsa:To部は、イベント通知のサービスを提供する装置のURLを示す。このURLは、図7のステップS1009において取得したGet Responseメッセージ中において、<Types>がPrinter Service Typeである<Hosted>タグ内の<Address>タグが示すURLに該当する。
wsa:Reply To部は、メッセージの応答を受信すべきエンドポイントのURLを示す。ここでは、クライアントPC111のURLが該当する。
図13は、図1及び図2に示すDP121がクライアントPC111〜113からSubscribeリクエストを受信してからプリンタ101〜103にSubscribeリクエストを送信するまでの処理を説明するためのフローチャートである。ここでは、DP212がクライアントPC111からSubscribeリクエストを受信した場合について説明する。
図2及び図13を参照して、DP212において、CPU201はSubscribeリクエストを受信したか否かを監視している(ステップS2201)。Subscribeリクエストを受信しないと(ステップS2201において、NO)、CPU201は待機する。
一方、Subscribeリクエストを受信すると(ステップS2201において、YES)、CPU201は、受信したSubscribeリクエストの情報を代行イベント情報としてHD211に記憶された後述の代行イベント情報保持部(デバイス管理テーブルの1つ)2300に追加記録する(ステップS2202)。
図14は、図2にDP121のHD211に記憶された代行イベント情報の一例を示す図である。
図14において、デバイス情報管理テーブル2300には、各代行イベント情報がレコードとして記憶する。レコードはID2301、イベント登録先URL2302、イベント通知先URL2303、イベント種別2304、及びエラー解除イベント未送信リスト2305を有している。
ID2301はDP121において代行イベント情報を識別するためのものである。イベント登録先URL2302は、イベント登録先のサービスURLを示し、前述のwsa:Toタグに示す情報が該当する。イベント通知先URL2303は、Subscribeリクエスト送信元のクライアントPCのURLを表し、前述のwsa:Reply Toタグに示す情報が該当する。イベント種別2304は、通知して欲しいイベントの種別を示し、前述のwsa:Filterに示す情報が該当する。
後述するように、DP121は、イベント登録先URL2302に示すデバイスから、イベント種別2304に示すイベント種別のイベントを受信した場合には、イベント通知先URL2303に示すクライアントPCにイベントメッセージを送信することになる。
エラー解除イベント未送信リスト2305は、エラーイベントをイベント通知先URLに送信したが、エラー解除イベントをイベント通知先URLに送信していないものを示す。このリスト中の情報は、イベント通知先URLに送信したエラーイベントのMessage IDとエラー内容とを表す。
DP121は、イベント登録先URL2302に示すデバイスに対して、定期的にエラーが解除されたか否かを確認する。そして、エラーが解除されたことを確認した場合は、DP121はエラー解除イベントをイベント通知先URLに送信する。エラー解除イベントをイベント通知先URLに送信した場合には、DP121において、CPU201は該当するMessege IDをエラー解除イベント未送信リストから削除する。
再び図2及び図13を参照して、DP121において、CPU201は、デバイス情報管理テーブル2300に追加したレコードのイベント登録先URL2303が新規である否かを判定する(ステップS2203)。イベント登録先URL2303が新規でないと(ステップS2203において、NO)、CPU201はイベント種別2304が新規であるか否かについて調べる(ステップS2204)。そして、イベント種別2304が新規でなければ(ステップS2204において、NO)、CPU201は処理を終了する。
つまり、イベント種別2304が新規でなければ、既に同一のイベント種別が存在していることになる。この場合には、既にイベント登録先URLに対して同一のイベント種別においてSubscribeリクエスト送信済であるため、CPU201は処理を終了することになる。何もしないで終了する。
一方、イベント登録先URL2303が新規であると(ステップS2203において、YES)、CPU201は、XML形式のSubscribeリクエストをイベント登録先URL2303が示すURLに送信する(ステップS2005)。なお、ステップS2204において、イベント種別2304が新規であれば(ステップS2204において、YES)、CPU201は同様にステップS2205に進む。
前述のステップS2005でCPU201が送信するSubscribeリクエストにおいて、wsa:Filter部は、”PrinterStatusEvent”が示すイベントについてStatusが変化したら(イベントが発生したら)通知をしてほしい」旨を示す。また、wsa:To部は、イベント通知のサービスを提供する装置のURLを示す。そして、当該URLはイベント登録先URL2302のURLに該当する。
さらに、wsa:Reply To部は、メッセージの応答を受信すべきエンドポイントのURLを示す。ここでは、DP121のURLが該当する。プリンタ101〜103の各々において、CPU301は、Subscribeリクエストを受信すると、RAM302に通知すべきイベント種別とイベント通知先情報とを関連付けて記憶する。
図15は、図3に示すプリンタ101〜103のRAM302に記憶されるイベント登録情報の一例を示す図である。
図15において、イベント登録情報テーブル2500には、各登録(Subscribe)元からの登録情報がレコードとして記憶される。ID2501は、プリンタ101〜103の各々において、イベント登録情報を識別するためのものである。イベント通知先URL2502は、イベントが発生した際の通知先のURLを表す。
このイベント通知先URL2502は、DP121から登録(Subscribe)された場合には、DP121のURLを表す。一方、他のクライアントPCから登録されたされた場合には、これらクライアントPCの各々のURLを表す。イベント種別2503は、通知して欲しいイベントの種別を表し、例えば、前述のwsa:Filterに示す情報が該当する。
前述のように、RAM302は揮発性のメモリであるので、電源をOFFすると、RAM302に記憶されたイベント登録情報テーブル2500に係る情報は全て消えてしまう。
図16は、図1及び図3に示すプリンタ101〜103においてイベントが発生した際の処理の手順を説明するためのフローチャートである。なお、ここでは、プリンタ101を例に挙げて説明する。
図3及び図16を参照して、プリンタ101において、例えば、ジョブに対する遷移状態変化に関するイベント、エラーイベント、オプション装置等の変更に関するイベント、及び諸設定変更に関連するイベントが発生すると、図16に示す処理が開始される。
プリンタ101において、CPU301はイベントが発生したか否かを監視している(ステップS2601)。イベントが発生しないと(ステップS2601において、NO)、CPU301は待機する。一方、イベントが発生すると(ステップS2601において、YES)、CPU301は、RAM302に記憶されているイベント登録情報テーブル2500を検索する(ステップS2602)。
続いて、CPU301は、発生したイベントが通知すべきイベント種別として登録イベント)、イベント登録情報テーブル2500に記憶されているか否かを調べる(ステップS2603)。発生したイベントが通知すべきイベント種別であると(ステップS2603において、YES)、CPU301は当該イベントがエラー関連イベント(つまり、エラーイベント)であるか否かについて調べる(ステップS2604:エラー判定手段)。
発生したイベントがエラーイベントであると(ステップS2604において、YES)、CPU301は、イベント通知先URLに対して、Getメッセージを送信する(ステップS2605)。そして、CPU301は、後述するGet Responseメッセージの受信を待つ。
CPU301は、イベント通知先URLから、Get Responseメッセージを受信する(ステップS2606)。そして、CPU301は、受信したGet Responseの送信元がDP(Device Proxy)121であるか否かについて判定する(ステップS2607:通知先判定手段)。
例えば、Get Responseメッセージにおいて、<Types>が”Device Proxy Eventing Service Type”である<Hosted>タグが存在する場合、Get Responseメッセージの送信元はDP121であることを示している。
Get Responseメッセージの送信元(つまり、イベント通知先)がDP121である場合(ステップS2607において、YES)、CPU301は、イベント通知先URLに対してイベントメッセージ(Status Event Report)を送信する(ステップS2608:第1のイベント通知手段及び第2のイベント通知手段)。
ここでは、サービスコールエラーが発生した場合について、Status Event Reportメッセージが送信される。つまり、ここでは、CPU301は、サービスコールエラーが発生したことを検出した場合に、当該エラーイベントを通知するために、Status Event Reportメッセージを送信する。
その後、CPU301はイベント登録テーブル2500の全てについて検索・処理が終了したか否かについては判定する(ステップS2609)。そして、イベント登録テーブル2500の全てについて検索・処理が終了していないと(ステップS2609において、NO)、CPU301はステップS2602に戻って処理を続行する。
一方、イベント登録テーブル2500の全てについて検索・処理が終了すると(ステップS2609において、YES)、CPU301は処理を終了する。
なお、ステップS2607において、Get Responseメッセージの送信元がDP121でないと(ステップS2607において、NO)、CPU301は処理をステップS2609に移行する。
また、ステップS2604において、発生したイベントがエラーイベントではないと(ステップS2604において、NO)、CPU301は処理をステップS2608に移行して、イベント通知先URLに対してイベントメッセージを送信することになる。
さらに、ステップS2603において、発生したイベントが通知すべきイベント種別でないと(ステップS2603において、NO)、CPU301は処理をステップS2609に移行する。
図17は、図1及び図2に示すDP121においてプリンタ101〜103からイベントメッセージを受信してクライアントPC111〜113に当該イベントを転送するまでの処理を説明するためのフローチャートである。なお、ここでは、プリンタ101からイベントメッセージを受信するものとして説明する。
図2及び図17を参照して、DP121において、CPU201は、イベントメッセージの受信を監視している(ステップS3001)。イベントメッセージを受信しないと(ステップS3001において、NO)、CPU201は待機する。
一方、イベントメッセージを受信すると(ステップS3001において、YES)、CPU201は、受信したイベントメッセージについてそのイベント送信元が、HD211に記憶されたデバイス情報管理テーブル2300にイベント登録先URLとして登録されているか否かについて調べる(ステップS3002)。
イベント送信元がイベント登録先URLとして登録されている場合には(ステップS3002において、YES)、CPU201は、登録されているイベント通知先URLと同一のレコード上のイベント通知先URL2303が示すURLに対してイベントメッセージを送信する(ステップS3003:メッセージ通知手段)。
続いて、CPU301は、送信したイベントメッセージがエラーイベントメッセージであるか否かを調べる(ステップS3004)。送信したイベントメッセージがエラーイベントメッセージであると(ステップS3004において、YES)、CPU201は、エラー解除イベント未送信リスト2305に、送信したエラーイベントメッセージ(エラーメッセージともいう)のMessage ID(エラー解除未送信情報)を追加登録する(ステップS3005:保持手段)。
次に、CPU201は、全てのイベント通知先URLにイベントメッセージの送信が完了したか否かを判定する(ステップS3006)。つまり、CPU201は、イベント登録先URLに対して複数のイベント通知先URLが登録されている場合には、その全てに対してイベント送信処理が完了したか否かを判定することになる。
全てのイベント通知先URLに対してイベントメッセージの送信が完了していない場合には(ステップS3006において、NO)、CPU201は、ステップS3003に戻って処理を続行する。一方、全てのイベント通知先URLに対してイベントメッセージの送信が完了していると(ステップS3006において、YES)、CPU201は処理を終了する。
なお、ステップS3002において、イベント送信元がイベント登録先URLとして登録されていない場合には(ステップS3002において、NO)、CPU201は処理を終了する。
図18は、図1及び図2に示すDP121においてプリンタ101〜103のエラー解除状態を確認して、エラー解除イベントメッセージをクライアントPC111〜113に送信するまでの処理を説明するためのフローチャートである。
図2及び図18を参照して、DP121において、CPU201は、まず、エラー解除イベント未送信リスト2305を先頭から検索する(ステップS3101)。そして、CPU201は、エラー解除イベント未送信リスト2305にエラー解除イベント未送信のデータがあるか否かについて判定する(ステップS3102)。
エラー解除イベント未送信リスト2305にエラー解除イベント未送信のデータが存在すると(ステップS3102において、YES)、CPU201は、イベント登録先URLが示すプリンタの状態を確認する(ステップS3103)。なお、プリンタの状態を確認する手法については種々の手法が知られている。
続いて、CPU201は確認の結果に応じてエラーが既に解除されているか否かについて判断する(ステップS3104:監視手段)。確認した結果、エラー解除イベント未送信リスト2305のデータが示すエラーが解除されていると(ステップS3104において、YES)、CPU201は、エラー解除イベントメッセージをイベント通知先URLへ送信する(ステップS3105:通知手段)。
そして、CPU201は、送信したエラー解除イベントメッセージに該当するデータを、エラー解除イベント未送信リスト2305から削除する(ステップS3106:保持手段)。次に、CPU201は、エラー解除イベント未送信リスト2305から次のデータを検索して(ステップS3107)、ステップS3102に戻って処理を続行する。
なお、ステップS3102において、エラー解除イベント未送信リスト2305にエラー解除イベント未送信のデータが存在しないと(ステップS3102において、NO)、CPU201は、所定の時間(一定時間)の待った後(ステップS3108)、ステップS3101に戻って処理を続ける。
また、ステップS3104において、確認した結果、エラー解除イベント未送信リスト2305のデータが示すエラーが解除されていないと(ステップS3104において、NO)、CPU201は処理をステップS3107に進める。
このように、第1の実施形態においては、プリンタ101〜103は、エラーイベントが発生した場合、イベント登録元がDP121であると、DP121にエラーイベントメッセージを送信する。そして、DP121は、プリンタ101〜103からエラーイベントメッセージを受信すると、クライアントPC111〜113にイベントを転送する。
次に、DP121は、エラーが解除されたか否かをプリンタ101〜103に対して周期的に確認して(予め定められた周期で確認して)、エラーが解除されたことを知ると、クライアントPC111〜1113にエラー解除イベントメッセージを送信する。
これによって、クライアントPC111〜113はエラーイベントメッセージとエラー解除イベントメッセージを受信することが可能となって、プリンタ101〜103のエラー状況をリアルタイムに把握することができる。
つまり、第1の実施形態では、プロキシサーバがプリンタのエラー発生状況を監視・確認して、エラーが解除されると、エラー解除メッセージをクライアントPCに送信する。これによって、クライアントPCは、プリンタにおけるエラー解除を確実に知ることができる。この結果、プリンタがイベント登録情報を不揮発性の記憶媒体に記憶できない場合であっても、エラー解除メッセージを利用してエラー解除の確認をクライアントPCで行うことができることになる。
(第2の実施形態)
上述の第1の実施形態においては、図16に関連して説明したように、プリンタ101〜103でイベントが発生すると、Getメッセージを用いてイベント通知先がDP121か否かを確認するようにしている。第2の実施形態においては、図13に示すステップS2205において、DP121のCPU201がプリンタ101〜103に送信するSubscribeリクエスト中に、DP121からのリクエストであることを示すタグを含める。
これによって、プリンタ101〜103のCPU301は、受信したSubscribeリクエストの内容からリクエスト元がDP121であるかクライアントPC111〜113であるかを抽出する。そして、プリンタ101〜103において、CPU301は、後述するイベント登録情報をRAM302に記憶する。
図19は、図3に示すRAM302に記憶されるイベント登録情報の一例を示す図である。
図19において、イベント登録情報3300には、ID、イベント通知先URL、イベント種別の他に、イベント通知先タイプ3301が備えられている。そして、このイベント通知先タイプ3301によって、リクエスト元がDP121であるかクライアントPC111〜113であるかが示される。
つまり、CPU301は、イベント通知先タイプ3301によって、イベント通知先URLが示す装置がDP121であるか又はクライアントPC111〜113であるかを判断することができることになる。
図20は、図1及び図3に示すプリンタ101〜103においてイベントが発生した場合の処理の手順を説明するためのフローチャートである。
第1の実施形態ではプリンタ101〜103の各々においてイベントが発生した際には、図16で説明したように、ステップS2605においてGetメッセージの送信を行い、ステップS2606においてGetResponseメッセージの受信処理を行っている。
第2の実施形態においては、図16に示すステップS2605及び2606の代わりに、CPU301はイベント登録情報3300を参照してイベント通知先のタイプがDP121であるか否かを判定する(ステップS3405)。
そして、イベント通知先のタイプがDP121であると(ステップS3405において、YES)、CPU301は、図16で説明したステップS2608に処理を進める。一方、イベント通知先のタイプがDP121でないと(ステップS3405において、NO)、CPU301は、図16で説明したステップS2609に処理を進める。
なお、図20において、図16と同様のステップについては同一の参照符号が付されている。
このように、第2の実施形態においては、第1の実施形態に比べて、CPU301が実行するステップの数が少なくなっているので、イベント発生時におけるイベントメッセージ送信処理に係るパフォーマンスを向上することができる。
上述の説明から明らかなように、DP121において、CPU201が監視手段、メッセージ通知手段、及び通知手段として機能する。また、DP121において、CPU201及びHD211がとして機能する。そして、プリンタ101〜103の各々において、CPU301が第1及び第2のイベント通知手段、判定するエラー判定手段、及び通知先判定手段として機能する。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を通信制御方法として、この通信制御方法を、DP121及びプリンタ101〜103に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを通信制御プログラムとして、この制御プログラムをDP121及びプリンタ101〜103が備えるコンピュータに実行させるようにしてもよい。
この際、通信制御方法及び通信制御プログラムは、少なくともエラー判定ステップ、通知先判定ステップ、通知ステップ、監視ステップ、及び通知ステップを有することになる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100 ネットワーク
101〜103 プリンタ
111〜113 クライアントPC
121 プロキシサーバ(Device Proxy)
201,301 CPU
208 NIC
305 操作パネル
306 LANコントローラ
307 印刷インターフェース
308 プリントエンジン

Claims (10)

  1. 端末装置とクライアント装置とにネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを受信した際、当該イベントメッセージを前記クライアント装置に転送するサーバ装置であって、
    前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視手段と、
    前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知手段とを有することを特徴とするサーバ装置。
  2. 前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、当該エラーイベントが未送信であることを示すエラー解除未送信情報を、前記エラー解除メッセージが送信されるまで保持する保持手段を有することを特徴とする請求項1記載のサーバ装置。
  3. 前記クライアント装置から前記イベントの通知要求を受信した場合に、当該クライアント装置に前記イベントメッセージの通知を行うメッセージ通知手段を有することを特徴とする請求項1又は2記載のサーバ装置。
  4. 前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、
    前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントであると、当該登録イベントについて予め登録されたイベント通知先に通知する第1のイベント通知手段を有することを特徴とする請求項1〜3いずれか1項記載のサーバ装置。
  5. 前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントであると、当該イベントが前記エラーイベントであるか否かを判定するエラー判定手段と、
    前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定手段と、
    前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知する第2のイベント通知手段とを有することを特徴とする請求項4記載のサーバ装置。
  6. 前記監視手段は、予め定められた周期で前記端末装置において前記エラーイベントの解除が行われたか否かを確認することを特徴とする請求項1〜5いずれか1項記載のサーバ装置。
  7. 端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する通信システムであって、
    前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、
    前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定手段と、
    前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定手段と、
    前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知手段とを備え、
    前記サーバ装置は、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視手段と、
    前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知手段とを備えることを特徴とする通信システム。
  8. 端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する際に用いられる通信制御方法であって、
    前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、
    前記端末装置は、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定ステップと、
    前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定ステップと、
    前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知ステップとを実行し、
    前記サーバ装置は、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視ステップと、
    前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知ステップとを実行することを特徴とする通信制御方法。
  9. 端末装置と、クライアント装置と、サーバ装置とがネットワークを介して接続され、前記端末装置で発生したイベントを示すイベントメッセージを前記サーバ装置が受信した際、前記サーバ装置が当該イベントメッセージを前記クライアント装置に転送する際に用いられる通信制御プログラムであって、
    前記端末装置には、前記イベントについて前記サーバ装置又は前記クライアント装置がイベント通知先として登録されており、
    前記端末装置が備えるコンピュータに、該端末装置で発生したイベントが予め登録された通知すべき登録イベントである際、当該イベントが前記端末装置で発生したエラーを示すエラーイベントであるか否かを判定するエラー判定ステップと、
    前記イベントがエラーイベントであると、前記イベント通知先が前記サーバ装置であるか否かを判定する通知先判定ステップと、
    前記イベント通知先が前記サーバ装置であると、前記エラーイベントを示すエラーイベントメッセージを前記サーバ装置に通知するイベント通知ステップとを実行させ、
    前記サーバ装置が備えるコンピュータに、前記クライアント装置に転送した前記イベントメッセージが前記端末装置におけるエラーを示すエラーイベントであると、前記端末装置において当該エラーイベントの解除が行われたか否かを監視する監視ステップと、
    前記端末装置においてエラーイベントの解除が行われると、前記クライアント装置に前記エラーイベントが解除された旨を示すエラー解除メッセージを通知する通知ステップとを実行させることを特徴とする通信制御プログラム。
  10. 請求項9に記載の通信制御プログラムが記録されたコンピュータに読み取り可能な記録媒体。
JP2010175573A 2010-08-04 2010-08-04 サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体 Pending JP2012037976A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010175573A JP2012037976A (ja) 2010-08-04 2010-08-04 サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体
US13/198,079 US8775878B2 (en) 2010-08-04 2011-08-04 Information processing apparatus, communication system, communication control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010175573A JP2012037976A (ja) 2010-08-04 2010-08-04 サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体

Publications (1)

Publication Number Publication Date
JP2012037976A true JP2012037976A (ja) 2012-02-23

Family

ID=45556990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010175573A Pending JP2012037976A (ja) 2010-08-04 2010-08-04 サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体

Country Status (2)

Country Link
US (1) US8775878B2 (ja)
JP (1) JP2012037976A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015162063A (ja) * 2014-02-27 2015-09-07 京セラドキュメントソリューションズ株式会社 イベント管理装置及びイベント管理方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198304B2 (en) * 2014-11-04 2019-02-05 Oath Inc. Targeted crash fixing on a client device
JP6720735B2 (ja) * 2016-07-04 2020-07-08 コニカミノルタ株式会社 印刷システム及び装置検索方法並びに装置検索プログラム
WO2019220006A1 (en) * 2018-05-16 2019-11-21 Nokia Technologies Oy Error handling framework for security management in a communication system
JP2019204226A (ja) * 2018-05-22 2019-11-28 キヤノン株式会社 画像形成装置および端末装置および画像形成システムとその制御方法、プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697970B1 (en) * 2000-07-14 2004-02-24 Nortel Networks Limited Generic fault management method and system
DE10144006A1 (de) * 2001-09-07 2003-04-30 Siemens Ag Verfahren zur Meldungsdiagnose
US7284163B2 (en) * 2003-01-31 2007-10-16 American Megatrends, Inc. Event mechanism for reporting diagnostic event messages
JP4235481B2 (ja) * 2003-04-15 2009-03-11 キヤノン株式会社 通信機器及び通信機器のデータ処理方法
US8825837B2 (en) * 2010-04-21 2014-09-02 International Business Machines Corporation Notice of restored malfunctioning links
JP4379811B2 (ja) 2005-08-29 2009-12-09 京セラミタ株式会社 ネットワーク機器のエラー通知装置およびエラー通知プログラム
JP2010008742A (ja) * 2008-06-27 2010-01-14 Oki Data Corp 画像形成装置
US8453017B2 (en) * 2008-08-27 2013-05-28 Kyocera Document Solutions Inc. Electronic device saving selected error information and an error management system including such a device
US8250413B2 (en) * 2008-09-30 2012-08-21 Hewlett-Packard Development Company, L.P. Connection broker assignment status reporting
US8793783B2 (en) * 2011-12-20 2014-07-29 International Business Machines Corporation Dynamic allocation of network security credentials for alert notification recipients

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015162063A (ja) * 2014-02-27 2015-09-07 京セラドキュメントソリューションズ株式会社 イベント管理装置及びイベント管理方法

Also Published As

Publication number Publication date
US20120036403A1 (en) 2012-02-09
US8775878B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
JP5595035B2 (ja) 情報処理装置、その方法及びプログラム
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
JP4753727B2 (ja) 画像処理システム、管理サーバ、画像処理方法及び画像処理プログラム
JP5236958B2 (ja) 通知方法、管理装置及びクライアント装置
US8935708B2 (en) Communication system and communication apparatus and control method thereof
EP3232318B1 (en) Image processing apparatus having file server function, and control method and storage medium therefor
US8250042B2 (en) Data processing apparatus and data processing method with conversion of error information
JP5979986B2 (ja) 配信システム及びその制御方法
JP2007122093A (ja) 印刷制御装置及び印刷制御方法ならびに印刷制御方法を実行するプログラム
JP2020140439A (ja) 印刷管理プログラム、印刷管理方法、および印刷管理装置
JP2012037976A (ja) サーバ装置、通信システム、通信制御方法、及び通信制御プログラム、並びに記録媒体
JP2008092556A (ja) 画像処理装置に対するリモートインターフェースを遠隔で構築するためのシステムおよび方法
US20050097198A1 (en) Printer monitoring system and method
JP5537160B2 (ja) イベント代行通知装置及びその制御方法とそのプログラム
CN101253048B (zh) 图像形成设备及其控制方法以及图像形成系统
JP2016076161A (ja) 管理システム及び情報処理方法
JP4987770B2 (ja) イベント通知装置、イベント通知方法、及びイベント通知プログラム
JP2007156614A (ja) ローカルデバイスが接続される制御装置におけるメニューデータの生成
JP2006285840A (ja) 文書管理システム
JP5056200B2 (ja) イベント通知方法及び制御プログラム並びに制御装置
JP2013156807A (ja) ネットワークにおけるイベント通知システム
JP4435772B2 (ja) キー操作監視方法、この方法をコンピュータに実行させるプログラムおよび画像形成装置
JP2006260596A (ja) 描画情報取得方法、この方法をコンピュータに実行させるプログラムおよび画像形成装置
JP4268174B2 (ja) キー操作再生方法、この方法をコンピュータに実行させるプログラムおよび画像形成装置
JP2009141774A (ja) データ処理装置及びその制御方法、コンピュータプログラム