JP2023111145A - 通信装置と通信装置のためのコンピュータプログラム - Google Patents
通信装置と通信装置のためのコンピュータプログラム Download PDFInfo
- Publication number
- JP2023111145A JP2023111145A JP2022012833A JP2022012833A JP2023111145A JP 2023111145 A JP2023111145 A JP 2023111145A JP 2022012833 A JP2022012833 A JP 2022012833A JP 2022012833 A JP2022012833 A JP 2022012833A JP 2023111145 A JP2023111145 A JP 2023111145A
- Authority
- JP
- Japan
- Prior art keywords
- notification
- server
- mode
- printer
- communication 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 73
- 238000004590 computer program Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000002085 persistent effect Effects 0.000 description 18
- 238000007639 printing Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 108010025037 T140 peptide Proteins 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 108010045306 T134 peptide Proteins 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】通信装置が通知サーバから処理実行通知を迅速かつ適切に受信し得る技術を提供すること。【解決手段】通信装置は、端末装置から通知サーバに処理実行指示が送信される場合に、通知サーバから処理実行通知を受信し、所定処理を実行する。通信装置は、第1のモードと第2のモードとのそれぞれで交互に動作し、第1のモードでは、ポーリング信号を通知サーバに送信して通知サーバから処理実行通知を受信し、通知サーバから処理実行通知を受信しない場合に、第2のモードで動作し、第2のモードでは、サーバプッシュ型の接続を確立して通知サーバから処理実行通知を受信し、通知サーバから処理実行通知を受信することなくポーリング信号が通知サーバに送信されてから第1の所定時間が経過する場合に、接続を切断して第1のモードで動作する。【選択図】図5
Description
本明細書では、通知サーバから処理実行通知を受信して所定処理を実行する通信装置に関する技術を開示する。
特許文献1には、GCP(Google Cloud Printの略)に従って印刷を実行可能なプリンタが開示されている。プリンタは、XMPP(eXtensible Messaging and Presence Protocol)接続を印刷仲介サーバと確立している場合(以下では「XMPPモード」と記載する)には、ポーリング信号を印刷仲介サーバに定期的に送信することなく、印刷仲介サーバによって印刷ジョブが生成される際に、印刷仲介サーバから印刷に関する通知を受信する。プリンタは、XMPPモードで動作している間に印刷仲介サーバとの通信が不安定になると、XMPPのストリームをクローズして、ポーリング信号を印刷仲介サーバに定期的に送信する状態(以下では「ポーリングモード」と記載する)に移行する。プリンタは、ポーリング信号の送信時に印刷仲介サーバが印刷ジョブを有している場合に、印刷仲介サーバから印刷に関する通知を受信する。
ポーリングモードでは、印刷仲介サーバにおいて印刷ジョブが生成されてから、プリンタから印刷仲介サーバにポーリング信号が送信されるまでの間、印刷仲介サーバからプリンタに上記の通知が送信されない。このため、印刷ジョブが生成されてから印刷が開始されるまでの間に時間を要する。一方、XMPPモードでは、プリンタが印刷仲介サーバから上記の通知を適切に受信できない事象が発生する可能性がある。
本明細書では、通信装置が通知サーバから処理実行通知を迅速かつ適切に受信し得る技術を提供する。
本明細書で開示する通信装置は、端末装置から通知サーバに処理実行指示が送信される場合に、前記通知サーバから処理実行通知を受信する通知受信部と、前記通知サーバから前記処理実行通知が受信される場合に、所定処理を実行する処理実行部と、を備えてもよい。前記通知受信部は、第1のモードと第2のモードとのそれぞれで交互に動作し、前記第1のモードでは、ポーリング信号を前記通知サーバに送信し、前記端末装置から前記通知サーバに前記処理実行指示が送信された後に、前記ポーリング信号が前記通知サーバに送信される場合に、前記通知サーバから、前記ポーリング信号に対する第1種の応答である前記処理実行通知を受信し、前記ポーリング信号が前記通知サーバに送信され、かつ、前記通知サーバから前記処理実行通知が受信されない場合に、前記第2のモードで動作し、前記第2のモードでは、前記通信装置と前記通知サーバとの間にサーバプッシュ型の接続を確立し、前記接続が確立されている状態において、前記端末装置から前記通知サーバに前記処理実行指示が送信される場合に、前記接続を利用して前記通知サーバから前記処理実行通知を受信し、前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから第1の所定時間が経過する場合に、前記接続を切断し、前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから前記第1の所定時間が経過する場合に、前記第1のモードで動作してもよい。
上記の構成によると、通信装置は、第1のモードと第2のモードとのそれぞれで交互に動作して、通知サーバから処理実行通知を受信する。このために、通信装置は、仮に、第2のモードにおいて、通知サーバから処理実行通知を受信することができなくても、第1のモードにおいて、通知サーバから処理実行通知を適切に受信し得る。また、通信装置は、第1のモードのみで動作する構成と比べると、第2のモードにおいて、通知サーバから処理実行通知を迅速に受信し得る。従って、通信装置は、通知サーバから処理実行通知を迅速かつ適切に受信し得る。
上記の通信装置を実現するためのコンピュータプログラム、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体、及び、通信装置によって実行される方法も新規で有用である。また、通信装置と他の1個以上のデバイス(例えば通知サーバ及び/又は端末装置)とを備えるシステムも新規で有用である。
(第1実施例)
(通信システム2の構成;図1)
図1に示されるように、通信システム2は、プリンタ10と、携帯端末50と、複数個のアクセスポイント(以下では「AP(Access Pointの略)」と記載する)60,70と、印刷仲介サーバ100と、を備える。プリンタ10は、AP60が親局として動作しているLAN(Local Area Networkの略)62、又は、AP70が親局として動作しているLAN72に選択的に所属することができる。印刷仲介サーバ100は、インターネット6に接続されている。プリンタ10は、LAN62又はLAN72に所属している場合に、AP60又はAP70を介して、印刷仲介サーバ100との通信を実行することができる。変形例では、LAN62及びLAN72は、無線LANの代わりに有線LANであってもよい。携帯端末50は、LAN62又はLAN72に所属している場合に、AP60又は70を介して、プリンタ10及び印刷仲介サーバ100との通信を実行することができる。変形例では、携帯端末50は、3G、4G、5G等のセルラー通信を利用して、印刷仲介サーバ100との通信を実行してもよい。
(通信システム2の構成;図1)
図1に示されるように、通信システム2は、プリンタ10と、携帯端末50と、複数個のアクセスポイント(以下では「AP(Access Pointの略)」と記載する)60,70と、印刷仲介サーバ100と、を備える。プリンタ10は、AP60が親局として動作しているLAN(Local Area Networkの略)62、又は、AP70が親局として動作しているLAN72に選択的に所属することができる。印刷仲介サーバ100は、インターネット6に接続されている。プリンタ10は、LAN62又はLAN72に所属している場合に、AP60又はAP70を介して、印刷仲介サーバ100との通信を実行することができる。変形例では、LAN62及びLAN72は、無線LANの代わりに有線LANであってもよい。携帯端末50は、LAN62又はLAN72に所属している場合に、AP60又は70を介して、プリンタ10及び印刷仲介サーバ100との通信を実行することができる。変形例では、携帯端末50は、3G、4G、5G等のセルラー通信を利用して、印刷仲介サーバ100との通信を実行してもよい。
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺装置(例えば携帯端末50の周辺装置)である。プリンタ10は、表示部12と、無線LANインターフェース14と、印刷実行部18と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。
プリンタ10は、印刷機能を実行可能な周辺装置(例えば携帯端末50の周辺装置)である。プリンタ10は、表示部12と、無線LANインターフェース14と、印刷実行部18と、制御部30と、を備える。各部12~30は、バス線(符号省略)に接続されている。
表示部12は、様々な情報を表示するためのディスプレイである。表示部12は、いわゆるタッチパネル(即ちユーザによって操作される操作部)としても機能する。無線LANインターフェース14は、Wi-Fi規格に従った無線通信を実行するための無線インターフェースである。具体的には、無線LANインターフェース14は、AP60又はAP70との無線接続を確立する。これにより、プリンタ10は、LAN62又はLAN72に所属する。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構である。
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に記憶されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、上記のプログラム36の他に、プロキシ設定を記憶する。
プロキシ設定は、プロキシサーバ71を利用することを示す「有効」と、プロキシサーバ71を利用しないことを示す「無効」と、のどちらかの値を示すフラグ情報を含む。プロキシ設定は、さらに、プロキシサーバ71を利用するための複数個の設定値を含み得る。複数個の設定値は、プロキシサーバ71のIPアドレスと、プロキシサーバ71との通信に利用されるポート番号と、ユーザ名と、パスワードと、を含む。フラグ情報及び各設定値は、ユーザによってプリンタ10に入力されることに応じて、メモリ34内に記憶される。
(AP60,70の構成)
各AP60,70は、DHCP(Dynamic Host Configuration Protocolの略)サーバ機能を有する。そのため、AP60、AP70は、それぞれ、LAN62、LAN72に所属するデバイスにIPアドレスを割り当てることができる。AP70によって形成されるLAN72には、さらに、プロキシサーバ71が設けられている。
各AP60,70は、DHCP(Dynamic Host Configuration Protocolの略)サーバ機能を有する。そのため、AP60、AP70は、それぞれ、LAN62、LAN72に所属するデバイスにIPアドレスを割り当てることができる。AP70によって形成されるLAN72には、さらに、プロキシサーバ71が設けられている。
(携帯端末50の構成)
携帯端末50は、例えば、携帯電話、スマートフォン、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、携帯端末50に代えて、据置型のPC、ノートPC等が利用されてもよい。以下では、携帯端末50のことを「端末50」と記載する。
携帯端末50は、例えば、携帯電話、スマートフォン、PDA、タブレットPC等の可搬型の端末装置である。なお、変形例では、携帯端末50に代えて、据置型のPC、ノートPC等が利用されてもよい。以下では、携帯端末50のことを「端末50」と記載する。
(印刷仲介サーバ100の構成)
印刷仲介サーバ100は、例えばGCP(Google(登録商標) Cloud Print)サービス等のクラウド印刷サービスを提供するサーバである。クラウト印刷サービスでは、印刷仲介サーバ100は、端末装置(例えば50)から画像データを含む印刷指示を受信する場合に、通知をプリンタ(例えば10)に送信する。そして、印刷仲介サーバ100は、画像データを変換して印刷データを生成し、印刷データをプリンタに送信する。印刷仲介サーバ100は、プリンタ10のベンダによって設置されるサーバではなく、クラウド印刷サービスを提供する事業者によって設置されるサーバである。変形例では、印刷仲介サーバ100は、プリンタ10のベンダによって設置されるサーバであってもよい。以下では、印刷仲介サーバ100のことを「サーバ100」と記載する。
印刷仲介サーバ100は、例えばGCP(Google(登録商標) Cloud Print)サービス等のクラウド印刷サービスを提供するサーバである。クラウト印刷サービスでは、印刷仲介サーバ100は、端末装置(例えば50)から画像データを含む印刷指示を受信する場合に、通知をプリンタ(例えば10)に送信する。そして、印刷仲介サーバ100は、画像データを変換して印刷データを生成し、印刷データをプリンタに送信する。印刷仲介サーバ100は、プリンタ10のベンダによって設置されるサーバではなく、クラウド印刷サービスを提供する事業者によって設置されるサーバである。変形例では、印刷仲介サーバ100は、プリンタ10のベンダによって設置されるサーバであってもよい。以下では、印刷仲介サーバ100のことを「サーバ100」と記載する。
(登録処理:図2)
図2を参照して、プリンタ10がサーバ100からクラウド印刷サービスを受けるために、プリンタ10に関する情報をサーバ100に登録するための処理を説明する。図2の初期状態では、プリンタ10及び端末50は、同じLAN(即ちLAN62又はLAN72)に所属している。プリンタ10がLAN62に所属している場合には、プリンタ10は、AP60を利用して、端末50及びサーバ100との通信を実行する。また、プリンタ10がLAN72に所属している場合には、プリンタ10は、AP70を利用して、端末50及び印刷仲介サーバ100との通信を実行し、プロキシサーバ71をさらに利用して、印刷仲介サーバ100との通信を実行する。しかしながら、図2では、AP60、AP70、及び、プロキシサーバ71を図示省略している。下記の図5以降のシーケンス図でも、特に必要がない限り、これらのデバイスを図示省略する。
図2を参照して、プリンタ10がサーバ100からクラウド印刷サービスを受けるために、プリンタ10に関する情報をサーバ100に登録するための処理を説明する。図2の初期状態では、プリンタ10及び端末50は、同じLAN(即ちLAN62又はLAN72)に所属している。プリンタ10がLAN62に所属している場合には、プリンタ10は、AP60を利用して、端末50及びサーバ100との通信を実行する。また、プリンタ10がLAN72に所属している場合には、プリンタ10は、AP70を利用して、端末50及び印刷仲介サーバ100との通信を実行し、プロキシサーバ71をさらに利用して、印刷仲介サーバ100との通信を実行する。しかしながら、図2では、AP60、AP70、及び、プロキシサーバ71を図示省略している。下記の図5以降のシーケンス図でも、特に必要がない限り、これらのデバイスを図示省略する。
以下では、理解のし易さの観点から、プリンタ10のCPU32がプログラム36に従って実行する処理を説明する際に、CPU32を主体として記載するのではなく、プリンタ10を主体として記載する。また、プリンタ10によって実行される以下の全ての通信は、無線LANインターフェース14を介して実行される。従って、以下では、通信に関する処理を説明する際に、「無線LANインターフェース14を介して」という記載を省略する。
端末50は、ユーザから操作を受け付けることに応じて、例えばプリンタ10内のウェブサーバにアクセスする。そして、端末50は、ユーザから、さらに、プリンタ10がクラウド印刷サービスを受けるための操作を受け付けることに応じて、T10において、登録指示をプリンタ10に送信する。
プリンタ10は、T10において、端末50から登録指示を受信すると、T12において、プリンタ10を識別する情報であるプリンタIDを含む登録要求をサーバ100に送信する。
サーバ100は、T12において、プリンタ10から登録要求を受信すると、T14において、PINコードを生成し、登録要求に含まれるプリンタIDと生成済みのPINコードとを対応付けて記憶する。次いで、サーバ100は、T20において、PINコードとログイン用URL(Uniform Resource Locatorの略)とをプリンタ10に送信する。ログイン用URLは、サーバ100内の後述の認証画面データの位置を示す情報である。
プリンタ10は、T20において、サーバ100からPINコードとURLとを受信すると、T22において、それらを端末50に送信する。
端末50は、T22において、プリンタ10からPINコードとURLとを受信すると、T30において、それらを表示する。次いで、端末50は、T32において、ユーザからURLを選択する操作を受け付けると、T40において、URLを含む認証要求をサーバ100に送信する。
サーバ100は、T40において、端末50から認証要求を受信すると、T42において、認証要求に含まれるURLによって特定される認証画面データを端末50に送信する。認証画面データは、PINコードを入力するための認証画面を表わすデータである。
端末50は、T42において、サーバ100から認証画面データを受信すると、T44において、認証画面データによって表わされる認証画面を表示する。次いで、端末50は、T46において、ユーザから、T30で表示されたPINコードの入力を受け付ける。この場合、端末50は、T50において、入力済みのPINコードをサーバ100に送信する。
サーバ100は、T50において、端末50からPINコードを受信すると、T52において、受信済みのPINコードの認証を実行する。具体的には、サーバ100は、受信済みのPINコードを記憶済みであるのか否かを判断する。サーバ100は、受信済みのPINコードを記憶済みであると判断する場合、即ち、認証が成功する場合には、T54において、ユニークな文字列であるアクセストークン(以下ではAT(Access Tokenの略)と記載する)を生成する。そして、サーバ100は、T56において、プリンタIDと生成済みのATとを対応付けて記憶し、T60において、生成済みのATを含む認証通知をプリンタ10に送信する。
プリンタ10は、T62において、認証通知に含まれるATをメモリ34に記憶させる。これにより、登録処理が終了する。
(プリンタの動作決定処理:図3)
次いで、図3を参照して、プリンタ10のCPU32によって実行される動作決定処理を説明する。図3の処理は、登録処理が終了すること、又は、プリンタ10の電源がONされることをトリガとして開始される。
次いで、図3を参照して、プリンタ10のCPU32によって実行される動作決定処理を説明する。図3の処理は、登録処理が終了すること、又は、プリンタ10の電源がONされることをトリガとして開始される。
S10及びS12の処理は、プリンタ10がプロキシ環境にあるのか非プロキシ環境にあるのかを判断する一連の処理である。プロキシ環境は、プリンタ10が、プロキシサーバ71を利用して、インターネット6上のデバイスとの通信を実行する環境(即ちLAN72に所属している状況)である。非プロキシ環境は、プリンタ10が、プロキシサーバ71を利用せずに、インターネット6上のデバイスとの通信を実行する環境(即ちLAN62に所属している状況)である。
S10では、プリンタ10は、メモリ34内のプロキシ設定に含まれるフラグ情報が「有効」を示し、かつ、各設定値(IPアドレス、ポート番号等)が記憶されているのか否かを判断する。プリンタ10は、フラグ情報が「有効」を示し、かつ、各設定値が記憶されている場合に、プリンタ10がプロキシ環境にあると判断し(S10でYES)、S30に進む。一方、プリンタ10は、フラグ情報が「無効」を示す場合、又は、フラグ情報が「有効」を示すが各設定値が記憶されていない場合(S10でNO)に、S12に進む。プリンタ10は、プロキシ設定に基づいてS10の判断を実行するので、プリンタ10がプロキシ環境にあるのか否かを適切に判断することができる。
S12では、プリンタ10は、WPAD(Web Proxy Auto-Discovery Protocolの略)ファイルのURLがメモリ34に記憶されているのか否かを判断する。ここで、WPADについて説明する。プリンタ10は、LAN62又はLAN72に所属する際に、IPアドレスの割り当てをAP60又はAP70に要求する。AP60又はAP70は、DHCPサーバ機能を有するので、IPアドレスをプリンタ10に自動的に割り当てる。AP70は、LAN72にプロキシサーバ71が存在する場合には、IPアドレスをプリンタ10に割り当てる際に、WPADファイルのURLもプリンタ10に送信する。WPADファイルは、プロキシサーバ71に関する情報を示すファイルである。従って、プリンタ10は、AP71からWPADファイルのURLを受信する場合には、プロキシサーバ71がLAN72に存在する、即ち、プリンタ10がプロキシ環境にある、と判断することができる。
プリンタ10は、プリンタ10がLAN72に所属している場合には、AP71からWPADファイルのURLを受信済みであるので、プリンタ10がプロキシ環境にあると判断し(S12でYES)、S30の処理に進む。一方、プリンタ10は、プリンタ10がLAN62に所属している場合には、AP60からWPADファイルを受信しないので、プリンタ10がプロキシ環境にない(即ち非プロキシ環境にある)と判断し(S12でNO)、S40の処理に進む。プリンタ10は、WPADファイルのURLの受信の有無に基づいてS12の判断を実行するので、プリンタ10がプロキシ環境にあるのか否かを適切に判断することができる。
S30では、プリンタ10は、Polling Mode(以下「PM」と記載する)とEvent Wait Mode(以下「EWM」と記載する)とで交互に動作する。PMは、ポーリング信号をサーバ100に繰り返し送信して、サーバ100から通知を受信するためのモードである。EWMは、ポーリング信号をサーバ100に送信することなく、サーバ100から通知を受信するためのモードである。S30が終了すると、図3の処理が終了する。
PMでは、サーバ100は、プリンタ10からのポーリング信号の応答として、通知をプリンタ10に送信する。このため、印刷指示を受信した旨の通知がサーバ100からプリンタ10に送信されるのが遅くなり得る。この結果、印刷が開始されるのが遅くなり得る。一方、EWMでは、サーバ100は、端末50から印刷指示を受信した直後に、印刷指示を受信した旨の通知をプリンタ10に送信することができる。このため、当該通知がサーバ100からプリンタ10に迅速に送信される。この結果、印刷が開始されるのが遅くなることが抑制される。ただし、本発明者らの研究の結果、プリンタ10がプロキシ環境にある場合にEWMで動作すると、プリンタ10がサーバ100から通知を受信することができない事象(以下では「受信不可事象」と記載する)が発生する可能性があることが判明した。
上記の実情に鑑みて、本実施例では、プリンタ10は、プロキシ環境にある場合にPMとEWMとで交互に動作する(S30)。このため、プリンタ10は、仮にEWMにおいて受信不可事象が発生しても、PMにおいてサーバ100から通知を適切に受信することができる。また、プリンタ10は、受信不可事象が発生しない場合には、EWMにおいてサーバ100から通知を迅速に受信することができる。このように、プリンタ10は、サーバ100から通知を迅速かつ適切に受信することができる。
S40では、プリンタ10は、EWMのみで動作する。S40が終了すると、図3の処理が終了する。このように、本実施例では、プリンタ10は、非プロキシ環境にある場合にEWMのみで動作する(S40)。プリンタ10が非プロキシ環境にある場合には、受信不可事象が発生する可能性が低いからである。このため、プリンタ10は、EWMのみで動作しても、サーバ100から通知を迅速かつ適切に受信することができる。また、プリンタ10は、PMとEWMとで交互に動作しないので、処理負荷及び通信負荷が高くなるのを抑制することができる。
(ケースA:図4)
次いで、図4を参照して、プリンタ10がLAN62に所属している状況で実現されるケースAを説明する。ケースAでは、プリンタ10のプロキシ設定は、フラグ情報「無効」を含み、各設定値を含まない。図4は、図2の続きの処理である。図示省略しているが、図2の処理の後に、プリンタ10の電源がOFFされてONされることに応じて、図4の処理が開始される。この点は、後述の図5、第2実施例の図7及び図8、第3実施例の図10でも同様である。
次いで、図4を参照して、プリンタ10がLAN62に所属している状況で実現されるケースAを説明する。ケースAでは、プリンタ10のプロキシ設定は、フラグ情報「無効」を含み、各設定値を含まない。図4は、図2の続きの処理である。図示省略しているが、図2の処理の後に、プリンタ10の電源がOFFされてONされることに応じて、図4の処理が開始される。この点は、後述の図5、第2実施例の図7及び図8、第3実施例の図10でも同様である。
プリンタ10の電源がONされると(図3の処理のトリガ)、プリンタ10は、AP60によって形成されるLAN62に所属し、T100において、IPアドレス要求をAP60に送信する。この場合、プリンタ10は、T102において、AP60からIPアドレスの候補を受信する。
プリンタ10は、プロキシ設定のフラグ情報が「無効」を示し(S10でNO)、かつ、WPADファイルのURLを受信済みでないので(S12でNO)、T110において、プリンタ10が非プロキシ環境にあると判断する。従って、プリンタ10は、EWMで動作する(S40)。
次いで、プリンタ10は、T120において、IPアドレスの承認要求をAP60に送信し、T122において、AP60からIPアドレスの割当て完了通知を受信する。プリンタ10によって実行されるこの後の通信もAP60を介して実行される。ただし、図4では、図面の見易さを考慮して、AP60を介して通信が実行される様子を図示省略している。この点は、後述の図5、第2実施例の図7及び図8、第3実施例の図10でも同様である。
プリンタ10は、T124において、記憶済みのAT(図2のT62参照)を利用して、HTTPに従った持続的接続をサーバ100と確立する。持続的接続は、いわゆる常時接続と呼ばれるものであり、プリンタ10からサーバ100への信号の送信がなくても、サーバ100からプリンタ10への信号の送信を可能とする接続である。即ち、持続的接続は、サーバプッシュ型の通信を実行するための接続である。
次いで、プリンタ10は、T130において、Get-Notification(Event Wait Mode)Request(以下「GN(EWM)Req」と記載する)をサーバ100に送信する。GN(EWM)Reqは、端末50から印刷指示を受信する際にその旨の通知をプリンタ10に送信すべきことをサーバ100に要求するための信号である。これにより、サーバ100は、端末50から印刷指示を受信すると、Job-IDを含むGet-Notification(Event Wait Mode)Response(以下「GN(EWM)Res」と記載する)をプリンタ10に送信する。一方、サーバ100は、端末50から印刷指示を受信することなく所定の待機時間が経過する毎に、Job-IDを含まないGN(EWM)Resをプリンタ10に送信する。上記の所定の待機時間は、例えば60s(「s」は秒(seconds)の略)である。
プリンタ10は、T130において、GN(EWM)Reqを送信すると、その直後に、T132において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。その後、プリンタ10は、T134,T136において、サーバ100からJob-IDを含まないGN(EWM)Resを60s毎に受信する。
端末50は、ユーザから印刷実行操作を受け付けることに応じて、T140において、印刷指示をサーバ100に送信する。印刷指示は、ユーザによって指定された印刷対象の画像を表わす画像データを含む。
サーバ100は、T136のGN(EWM)Resを送信してから60sが経過する前に、T140において、端末50から印刷指示を受信する。この場合、サーバ100は、T142において、受信済みの画像データを変換して、プリンタ10が解釈可能なデータ形式を有する印刷データを生成する。サーバ100は、さらに、Job-IDを生成し、印刷データとJob-IDとを関連付けて記憶する。そして、サーバ100は、T136のGN(EWM)Resを送信してから60sが経過する前に、即ち、端末50から印刷指示を受信した直後に、T150において、上記の持続的接続を利用して、Job-IDを含むGN(EWM)Resをプリンタ10に送信する。
プリンタ10は、T150において、上記の持続的接続を利用してサーバ100からJob-IDを含むGN(EWM)Resを受信すると、T160~T166において、印刷データを受信するための通信をサーバ100と実行する。具体的には、プリンタ10は、T160において、Job-IDを含むFetch-job Requestをサーバ100に送信し、T162において、サーバ100から、Job情報を含むResponseを受信する。Job情報は、端末50のユーザによって設定された印刷条件(例えば、用紙サイズ、色数、両面印刷の有無等)を示す情報である。そして、プリンタ10は、T164において、Job-IDを含むFetch-Document Requestをサーバ100に送信し、T166において、サーバ100から、Job-IDに関連付けられている印刷データを含むResponseを受信する。
次いで、プリンタ10は、T170において、印刷データによって表わされる画像の印刷を実行する。この結果、印刷済みの用紙が端末50のユーザに提供される。
上述したケースAに示されるように、プリンタ10は、非プロキシ環境にある場合にEWMのみで動作する。このために、プリンタ10は、Job-IDを含むGN(EWM)Resを迅速かつ適切に受信することができる(T150)。
(ケースB:図5)
次いで、図5を参照して、プリンタ10がLAN72に所属している状況で実現されるケースBを説明する。ケースBでは、プリンタ10のプロキシ設定は、フラグ情報「有効」と各設定値とを含む。
次いで、図5を参照して、プリンタ10がLAN72に所属している状況で実現されるケースBを説明する。ケースBでは、プリンタ10のプロキシ設定は、フラグ情報「有効」と各設定値とを含む。
プリンタ10は、T200において、IPアドレス要求をAP70に送信する。この場合、プリンタ10は、T202において、AP70から、プリンタ10に設定されるべきIPアドレスの候補と、WPADファイルのURLと、を受信する。プリンタ10は、T204において、受信済みのURLをメモリ34に保存する。
プリンタ10は、プロキシ設定において、フラグ情報が「有効」を示し、かつ、各設定値が記憶されているので、T210において、プリンタ10がプロキシ環境にあると判断する(図3のS10でYES)。従って、プリンタ10は、PMとEWMとで交互に動作する(S30)。
次いで、プリンタ10は、T220において、IPアドレスの承認要求をAP70に送信し、T222において、AP70からIPアドレスの割当て完了通知を受信する。
プリンタ10は、まず、PMで動作する。即ち、プリンタ10は、T230において、Get-Notification(Polling Mode)Request(以下「GN(PM)Req」と記載する)をサーバ100に送信し、その直後に、T232において、サーバ100からJob-IDを含まないGet-Notification(Polling Mode)Response(以下では「GN(PM)Res」と記載する)を受信する。GN(PM)Resは、サーバ100によって指定される30sを示すポーリング時間情報を含む。ポーリング時間情報は、GN(PM)Resを受信してから次のGN(PM)Reqを送信するまでの時間を示す。
(ケースB1:通信が不安定なケース)
ケースB1は、EWMにおいて受信不可事象が発生するケースである。プリンタ10は、T232のGN(PM)Resを受信した直後に、PMに代えてEWMで動作する。即ち、プリンタ10は、T234において、記憶済みのAT(図2のT62参照)を利用して、HTTPに従った持続的接続をサーバ100と確立する。当該接続は、図4のT124の接続と同様である。
ケースB1は、EWMにおいて受信不可事象が発生するケースである。プリンタ10は、T232のGN(PM)Resを受信した直後に、PMに代えてEWMで動作する。即ち、プリンタ10は、T234において、記憶済みのAT(図2のT62参照)を利用して、HTTPに従った持続的接続をサーバ100と確立する。当該接続は、図4のT124の接続と同様である。
次いで、プリンタ10は、T240において、GN(EWM)Reqをサーバ100に送信し、その直後に、T242において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。
サーバ100は、T232のGN(PM)Resを送信してから30sが経過する前に、T250において、端末50から印刷指示を受信すると、T252において、印刷データを生成し、当該印刷データとJob-IDとを関連付けて記憶する。そして、サーバ100は、上記の持続的接続を利用して、Job-IDを含むGN(EWM)Resをプリンタ10に送信することを試みる。しかしながら、ケースB1では、受信不可事象が発生するので、Job-IDを含むGN(EWM)Resがプリンタ10によって受信されない。
プリンタ10は、サーバ100からGN(EWM)Resを受信することなく、T232のGN(PM)Resを受信してから30sが経過すると、EWMに代えてPMで動作する。当該30sは、T232のGN(PM)Resに含まれるポーリング時間情報によって示される時間である。従って、仮に、ポーリング時間情報が30sとは異なる時間を示す場合には、プリンタ10は、T232のGN(PM)Resを受信してから当該異なる時間が経過すると、EWMに代えてPMで動作する。このように、プリンタ10は、ポーリング時間情報に従って、EWMに代えてPMで動作するタイミングを決定するので、サーバ100から指定された間隔でGN(PM)Reqをサーバ100に繰り返し送信することができる。
プリンタ10は、まず、T254において、上記の持続的接続を切断する。プリンタ10は、例えば、切断信号をサーバ100に送信することによって、上記の持続的接続を切断する。これにより、EWMでの動作が終了する。本実施例のプリンタ10は、サーバ100との通信を実行するためのタスクとして1つのタスクしか有さない。従って、プリンタ10は、EWMとPMとで並行に動作することができず、EWMでの動作を終了した後に、PMで動作する。
プリンタ10は、T260において、GN(PM)Reqをサーバ100に送信し、T262において、サーバ100からポーリング時間情報とJob-IDとを含むGN(PM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。図示省略しているが、プリンタ10は、T170の処理が終了すると、PMで再び動作し、その後、EWMで再び動作する。即ち、プリンタ10は、PMとEWMとで交互に動作することを繰り返す。
上述したケースB1に示されるように、プリンタ10は、プロキシ環境にある場合にPMとEWMとで交互に動作する。このために、プリンタ10は、EWMにおいて受信不可事象が発生しても、PMにおいてJob-IDを含むGN(PM)Resを適切に受信することができる(T262)。
(ケースB2:通信が安定なケース)
ケースB2は、EWMにおいて受信不可事象が発生しないケースである。T232の後のT234~T252は、ケースB1と同様である。ケースB2では、EWMにおいて受信不可事象が発生しないので、プリンタ10は、T232のGN(PM)Resを受信してから30sが経過する前に、即ち、端末50からサーバ100に印刷指示が送信された直後に、T270において、上記の持続的接続を利用して、サーバ100からJob-IDを含むGN(EWM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
ケースB2は、EWMにおいて受信不可事象が発生しないケースである。T232の後のT234~T252は、ケースB1と同様である。ケースB2では、EWMにおいて受信不可事象が発生しないので、プリンタ10は、T232のGN(PM)Resを受信してから30sが経過する前に、即ち、端末50からサーバ100に印刷指示が送信された直後に、T270において、上記の持続的接続を利用して、サーバ100からJob-IDを含むGN(EWM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
上述したケースB2に示されるように、プリンタ10は、プロキシ環境にある場合にPMとEWMとで交互に動作する。このために、プリンタ10は、受信不可事象が発生しない場合に、EWMにおいてJob-IDを含むGN(PM)Resを迅速に受信することができる(T270)。
(対応関係)
プリンタ10、サーバ100が、それぞれ、「通信装置」、「通知サーバ」の一例である。PM、EWMが、それぞれ、「第1のモード」、「第2のモード」の一例である。印刷指示が、「処理実行指示」の一例である。Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resが、「処理実行通知」の一例である。GN(PM)Reqが、「ポーリング信号」の一例である。Job-IDを含むGN(PM)Res、Job-IDを含まないGN(PM)Resが、それぞれ、「第1種の応答」、「第2種の応答」の一例である。印刷が、「所定処理」の一例である。30sが、「第1の所定時間」の一例である。図3のS10でYES又はS12でYESの場合が、「第1の条件が満たされる場合」の一例である。S12でNOの場合が、「第2の条件が満たされる場合」の一例である。WPADファイルが、「存在情報」の一例である。
プリンタ10、サーバ100が、それぞれ、「通信装置」、「通知サーバ」の一例である。PM、EWMが、それぞれ、「第1のモード」、「第2のモード」の一例である。印刷指示が、「処理実行指示」の一例である。Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resが、「処理実行通知」の一例である。GN(PM)Reqが、「ポーリング信号」の一例である。Job-IDを含むGN(PM)Res、Job-IDを含まないGN(PM)Resが、それぞれ、「第1種の応答」、「第2種の応答」の一例である。印刷が、「所定処理」の一例である。30sが、「第1の所定時間」の一例である。図3のS10でYES又はS12でYESの場合が、「第1の条件が満たされる場合」の一例である。S12でNOの場合が、「第2の条件が満たされる場合」の一例である。WPADファイルが、「存在情報」の一例である。
図4及び図5において、Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resを受信するための各処理(例えば、図4のT124~T136、T150、図5のT230~T242、T254~T262、T270)が、「通知受信部」によって実現される処理の一例である。図4のT170が、「処理実行部」によって実現される処理の一例である。
(第2実施例:図6)
続いて、第2実施例を説明する。第2実施例では、図3の処理に代えて、図6の処理が実行される。
続いて、第2実施例を説明する。第2実施例では、図3の処理に代えて、図6の処理が実行される。
図6のS10及びS12は、図3のS10及びS12と同様である。プリンタ10は、S10でYESの場合又はS12でYESの場合、即ち、プリンタ10がプロキシ環境にあると判断する場合に、S32において、PMのみで動作する。上述したように、プリンタ10がプロキシ環境にある場合には、EWMにおいて受信不可事象が発生する可能性がある。本実施例のプリンタ10は、プリンタ10がプロキシ環境にある場合に、PMのみで動作するので、サーバ100からJob-IDを含むGN(PM)Resを適切に受信することができる。
プリンタ10は、S12でNOの場合、即ち、プリンタ10が非プロキシ環境にあると判断する場合に、S42において、PMとEWMとで交互に動作する。上述したように、プリンタ10が非プロキシ環境にある場合には、EWMにおいて受信不可事象が発生する可能性が低い。ただし、プリンタ10が非プロキシ環境にある場合でも、受信不可事象が発生する可能性があることも否定できない。このため、本実施例のプリンタ10は、プリンタ10が非プロキシ環境にある場合に、PMとEWMとで交互に動作する。これにより、プリンタ10は、仮にEWMにおいて受信不可事象が発生しても、PMにおいて、サーバ100からJob-IDを含むGN(PM)Resを適切に受信することができる。また、プリンタ10は、受信不可事象が発生しない場合には、EWMにおいて、サーバ100からJob-IDを含むGN(EWM)Resを迅速に受信することができる。
(ケースC:図7)
図7を参照して、プリンタ10がLAN72に所属している状況で実現されるケースCを説明する。ケースCでは、プリンタ10のプロキシ設定は、フラグ情報「有効」と各設定値とを含む。
図7を参照して、プリンタ10がLAN72に所属している状況で実現されるケースCを説明する。ケースCでは、プリンタ10のプロキシ設定は、フラグ情報「有効」と各設定値とを含む。
T300~T322は、図5のT200~T222と同様である。プリンタ10は、T330において、GN(PM)Reqをサーバ100に送信し、T332において、サーバ100から、Job-IDを含まないGN(PM)Resを受信する。プリンタ10は、T332のGN(PM)Resを受信してからポーリング時間情報によって示される30sが経過すると、T334において、GN(PM)Reqをサーバ100に再び送信し、T336において、サーバ100から、Job-IDを含まないGN(PM)Resを受信する。即ち、プリンタ10は、GN(PM)Reqをサーバ100に繰り返し送信し、サーバ100からGN(PM)Resを繰り返し受信する。
サーバ100は、T336のGN(PM)Resを送信してから30sが経過する前に、T340において、端末50から印刷指示を受信すると、T342において、印刷データを生成し、当該印刷データとJob-IDとを関連付けて記憶する。その後、サーバ100は、T336のGN(PM)Resを送信してから30sが経過すると、T350において、プリンタ10からGN(PM)Reqを受信する。この場合、サーバ100は、T352において、ポーリング時間情報とJob-IDとを含むGN(PM)Resをプリンタ10に送信する。
プリンタ10は、T352において、サーバ100からJob-IDを含むGN(PM)Resを受信すると、図4のT160~T170と同様の処理を実行する。図示省略しているが、プリンタ10は、T170の処理が終了すると、GN(PM)Reqをサーバ100に繰り返し送信する。
上述したケースCに示されるように、プリンタ10は、プロキシ環境にある場合にPMのみで動作する。このため、プリンタ10は、Job-IDを含むGN(PM)Resを適切に受信することができる(T352)。
(ケースD:図8)
図8を参照して、プリンタ10がLAN62に所属している状況で実現されるケースDを説明する。ケースDでは、プリンタ10のプロキシ設定は、フラグ情報「無効」を含み、各設定値を含まない。
図8を参照して、プリンタ10がLAN62に所属している状況で実現されるケースDを説明する。ケースDでは、プリンタ10のプロキシ設定は、フラグ情報「無効」を含み、各設定値を含まない。
T400~T422は、図5のT100~T122と同様である。プリンタ10は、まず、PMで動作する。即ち、プリンタ10は、T430において、GN(PM)Reqをサーバ100に送信し、T432において、サーバ100からJob-IDを含まないGN(PM)Resを受信する。
(ケースD1:通信が不安定なケース)
ケースD1は、プリンタ10が非プロキシ環境にある状況において、受信不可事象が発生するケースである。プリンタ10は、T432のGN(PM)Resを受信した直後に、PMに代えてEWMで動作する。即ち、プリンタ10は、T434において、持続的接続をサーバ100と確立する。次いで、プリンタ10は、T440において、GN(EWM)Reqをサーバ100に送信し、その直後に、T442において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。
ケースD1は、プリンタ10が非プロキシ環境にある状況において、受信不可事象が発生するケースである。プリンタ10は、T432のGN(PM)Resを受信した直後に、PMに代えてEWMで動作する。即ち、プリンタ10は、T434において、持続的接続をサーバ100と確立する。次いで、プリンタ10は、T440において、GN(EWM)Reqをサーバ100に送信し、その直後に、T442において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。
サーバ100は、T432のGN(PM)Resをプリンタ10に送信してから30sが経過する前に、T450において、端末50から印刷指示を受信すると、T452において、印刷データを生成し、当該印刷データとJob-IDとを関連付けて記憶する。ここで、ケースD1では、受信不可事象が発生するので、Job-IDを含むGN(EWM)Resがプリンタ10によって受信されない。
プリンタ10は、サーバ100からGN(EWM)Resを受信することなく、T432のGN(PM)Resを受信してから30sが経過すると、EWMに代えてPMで動作する。即ち、プリンタ10は、T454において、上記の持続的接続を切断し、T460において、GN(PM)Reqをサーバ100に送信し、T462において、サーバ100からポーリング時間情報とJob-IDとを含むGN(PM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
上述したケースD1に示されるように、プリンタ10は、非プロキシ環境にある場合にPMとEWMとで交互に動作する。このため、プリンタ10は、EWMにおいて受信不可事象が発生しても、PMにおいてJob-IDを含むGN(PM)Resを適切に受信することができる(T462)。
(ケースD2:通信が安定なケース)
ケースD2は、受信不可事象が発生しないケースである。T432の後のT434~T452は、ケースD1と同様である。ケースD2では、EWMにおいて受信不可事象が発生しないので、プリンタ10は、T432のGN(PM)Resを受信してから30sが経過する前に、即ち、T450において、端末50からサーバ100に印刷指示が送信された直後に、T470において、上記の持続的接続を利用して、サーバ100からJob-IDを含むGN(EWM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
ケースD2は、受信不可事象が発生しないケースである。T432の後のT434~T452は、ケースD1と同様である。ケースD2では、EWMにおいて受信不可事象が発生しないので、プリンタ10は、T432のGN(PM)Resを受信してから30sが経過する前に、即ち、T450において、端末50からサーバ100に印刷指示が送信された直後に、T470において、上記の持続的接続を利用して、サーバ100からJob-IDを含むGN(EWM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
上述したケースD2に示されるように、プリンタ10は、非プロキシ環境にある場合にPMとEWMとで交互に動作する。このため、プリンタ10は、受信不可事象が発生しない場合に、EWMにおいてJob-IDを含むGN(PM)Resを迅速に受信することができる(T470)。
(対応関係)
図6のS12でNOの場合が、「第1の条件が満たされる場合」の一例である。図6のS10でYES又はS12でYESの場合が、「第2の条件が満たされる場合」の一例である。図7及び図8において、Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resを受信するための各処理(例えば、図7のT330~T336、T350、T352、図8のT430~T442、T454~T462、T470)が、「通知受信部」によって実現される処理の一例である。
図6のS12でNOの場合が、「第1の条件が満たされる場合」の一例である。図6のS10でYES又はS12でYESの場合が、「第2の条件が満たされる場合」の一例である。図7及び図8において、Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resを受信するための各処理(例えば、図7のT330~T336、T350、T352、図8のT430~T442、T454~T462、T470)が、「通知受信部」によって実現される処理の一例である。
(第3実施例:図9)
続いて、第3実施例を説明する。第3実施例では、図3の処理に代えて、図9の処理が実行される。図9の処理では、プリンタ10がプロキシ環境にあるのか非プロキシ環境にあるのかに関わらず、プリンタ10がGN(EWM)Resを定期的に受信するのか否かに応じて、プリンタ10が動作すべきモードが決定される。
続いて、第3実施例を説明する。第3実施例では、図3の処理に代えて、図9の処理が実行される。図9の処理では、プリンタ10がプロキシ環境にあるのか非プロキシ環境にあるのかに関わらず、プリンタ10がGN(EWM)Resを定期的に受信するのか否かに応じて、プリンタ10が動作すべきモードが決定される。
S50では、プリンタ10は、まず、EWMで動作する。即ち、プリンタ10は、持続的接続をサーバ100と確立し、GN(EWM)Reqをサーバ100に送信する。
S60では、プリンタ10は、サーバ100からJob-IDを含まないGN(EWM)Resを受信することを監視する。本実施例では、Job-IDを含まないGN(EWM)Resは、60s毎にサーバ100からプリンタ10に送信される。変形例では、60sとは異なる時間が採用されてもよい。プリンタ10は、サーバ100から60s毎にJob-IDを含まないGN(EWM)Resを受信する場合には、S60でYESと判断し、EWMで動作することを維持する。一方、プリンタ10は、GN(EWM)Reqを送信してから60sが経過しても、サーバ100からJob-IDを含まないGN(EWM)Resを受信しない場合、又は、サーバ100から前回のGN(EWM)Resを受信してから60sが経過しても、サーバ100からJob-IDを含まないGN(EWM)Resを受信しない場合に、S60でNOと判断し、S70に進む。
S70では、プリンタ10は、PMとEWMとで交互に動作する。これにより、プリンタ10は、仮にEWMにおいて受信不可事象が発生しても、PMにおいて、サーバ100からJob-IDを含むGN(PM)Resを適切に受信することができる。また、プリンタ10は、受信不可事象が発生しない場合には、EWMにおいて、サーバ100からJob-IDを含むGN(EWM)Resを迅速に受信することができる。
(ケースE:図10)
図10を参照して、図9の処理によって実現されるケースEを説明する。ケースEでは、プリンタ10は、LAN62及びLAN72のどちらに所属していてもよい。即ち、プリンタ10は、プロキシ環境及び非プロキシ環境のどちらにあってもよい。プリンタ10は、LAN62に所属している場合には、図4のT100~T122と同様の処理を実行する。一方、プリンタ10は、LAN72に所属している場合には、図5のT200~T222と同様の処理を実行する。
図10を参照して、図9の処理によって実現されるケースEを説明する。ケースEでは、プリンタ10は、LAN62及びLAN72のどちらに所属していてもよい。即ち、プリンタ10は、プロキシ環境及び非プロキシ環境のどちらにあってもよい。プリンタ10は、LAN62に所属している場合には、図4のT100~T122と同様の処理を実行する。一方、プリンタ10は、LAN72に所属している場合には、図5のT200~T222と同様の処理を実行する。
プリンタ10は、まず、EWMで動作する(図9のS50)。プリンタ10は、T500において、持続的接続をサーバ100と確立する。次いで、プリンタ10は、T510において、GN(EWM)Reqをサーバ100に送信し、その直後に、T512において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。プリンタ10は、T514,T516において、サーバ100からJob-IDを含まないGN(EWM)Resを60s毎に受信する(S60でYES)。この場合、プリンタ10は、EWMで動作することを維持する。
その後、プリンタ10において受信不可事象が発生する。上述したように、例えば、プリンタ10がプロキシ環境にある場合には、受信不可事象が発生する可能性がある。また、プリンタ10が非プロキシ環境にある場合でも、受信不可事象が発生し得る。プリンタ10は、T516のGN(EWM)Resを受信してから60sが経過しても、サーバ100からJob-IDを含まないGN(EWM)Resを受信しない(S60でNO)。この場合、プリンタ10は、PMとEWMとで交互に動作することを開始する(S70)。
プリンタ10は、まず、EWMに代えてPMで動作する。即ち、プリンタ10は、T518において、上記の持続的接続を切断し、T520において、GN(PM)Reqをサーバ100に送信し、T522において、サーバ100からポーリング時間情報を含むGN(PM)Resを受信する。
次いで、プリンタ10は、PMに代えてEWMで動作する。即ち、プリンタ10は、T524において、持続的接続をサーバ100と確立し、T530において、GN(EWM)Reqをサーバ100に送信し、その直後に、T532において、サーバ100からJob-IDを含まないGN(EWM)Resを受信する。
サーバ100は、T522のGN(PM)Resをプリンタ10に送信してから30sが経過する前に、T540において、端末50から印刷指示を受信すると、T542において、印刷データを生成し、当該印刷データとJob-IDとを関連付けて記憶する。ここで、ケースEでは、受信不可事象が発生するので、Job-IDを含むGN(EWM)Resがプリンタ10によって受信されない。
プリンタ10は、サーバ100からGN(EWM)Resを受信することなく、T522のGN(PM)Resを受信してから30sが経過すると、EWMに代えてPMで動作する。即ち、プリンタ10は、T544において、上記の持続的接続を切断し、T550において、GN(PM)Reqをサーバ100に送信し、T552において、サーバ100からポーリング時間情報とJob-IDとを含むGN(PM)Resを受信する。その後の処理は、図4のT160~T170の処理と同様である。
上述したケースEに示されるように、プリンタ10は、サーバ100からGN(EWM)Resを受信しない場合、即ち、受信不可事象が発生する場合に、PMとEWMとで交互に動作する。このため、プリンタ10は、受信不可事象が発生しても、PMにおいてJob-IDを含むGN(PM)Resを適切に受信することができる(T552)。
なお、ケースEでは、プリンタ10は、受信不可事象が発生するので、サーバ100からJob-IDを含むGN(EWM)Resを受信しない。しかしながら、プリンタ10は、受信不可事象が発生しない状況では、サーバ100からJob-IDを含むGN(EWM)Resを受信することができる。即ち、プリンタ10は、受信不可事象が発生しない場合には、Job-IDを含むGN(EWM)Resを迅速に受信することができる。
(対応関係)
Job-IDを含まないGN(EWM)Resが、「所定信号」の一例である。60sが、「第2の所定時間」の一例である。図9のS60でNOの場合が、「第1の条件が満たされる場合」の一例である。S60でYESの場合が、「第2の条件が満たされる場合」の一例である。図9において、Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resを受信するための各処理(例えば、図10のT500~T532、T544~T552)が、「通知受信部」によって実現される処理の一例である。
Job-IDを含まないGN(EWM)Resが、「所定信号」の一例である。60sが、「第2の所定時間」の一例である。図9のS60でNOの場合が、「第1の条件が満たされる場合」の一例である。S60でYESの場合が、「第2の条件が満たされる場合」の一例である。図9において、Job-IDを含むGN(EWM)Res又はJob-IDを含むGN(PM)Resを受信するための各処理(例えば、図10のT500~T532、T544~T552)が、「通知受信部」によって実現される処理の一例である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)GN(PM)Resは、ポーリング時間情報を含まなくてもよい。この場合、プリンタ10は、GN(PM)Reqを繰り返し送信するための時間間隔(例えば15s、45s等)をプリンタ10自身によって決定してもよい。一般的に言うと、「通知受信部」は、第2種の応答に含まれるポーリング時間情報に従って、第1の所定時間を決定しなくてもよい。また、本変形例では、プリンタ10自身によって決定される時間間隔が、「第1の所定時間」の一例である。
(変形例2)プリンタ10は、例えば図3のS10及びS12の判断を実行せず、常にPMとEWMとで交互に動作するように構成されていてもよい。一般的に言うと、「通知受信部」は、第1の条件と第2の条件とのどちらが満たされるかに関わらず、第1のモードと第2のモードとで交互に動作してもよい。
(変形例3)プリンタ10は、図3のS40において、PMのみで動作してもよい。一般的に言うと、「通知受信部」は、通信装置が非プロキシ環境にあるという第2の条件が満たされる場合に、第1のモードと第2のモードとのうちの第1のモードのみで動作してもよい。
(変形例4)プリンタ10は、図6のS32において、EWMのみで動作してもよい。一般的に言うと、「通知受信部」は、通信装置がプロキシ環境にあるという第2の条件が満たされる場合に、第1のモードと第2のモードとのうちの第2のモードのみで動作してもよい。
(変形例5)図3のS10が省略されてもよい。この場合、S12の判断のみが実行され、S12でYESの場合にS30に進み、S12でNOの場合にS40に進む。別の変形例では、図3のS12が省略されてもよい。この場合、S10の判断のみが実行され、S10でYESの場合にS30に進み、S10でNOの場合にS40に進む。一般的に言うと、通信装置がプロキシ環境にあるのか非プロキシ環境にあるのかを判断するための手法は、上記の実施例の手法に限られない。
(変形例6)「通信装置」は、プリンタでなくてもよく、スキャナ、ファクシミリ、PC、サーバ等の他のデバイスであってもよい。スキャナが「通信装置」の一例である場合には、端末50からサーバ100に送信されるスキャン実行指示が「処理実行指示」の一例であり、スキャナによって実行されるスキャン処理が「所定処理」の一例である。PCが「通信装置」の一例である場合には、端末50からサーバ100に送信されるデータ送信指示が「処理実行指示」の一例であり、PCがサーバ100からデータをダウンロードする処理が「所定処理」の一例である。
(変形例7)上記の実施例では、プリンタ10のCPU32がプログラム36を実行することによって、図2~図10の各処理が実現される。これに代えて、いずれかの処理は、論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、6:インターネット、12:表示部、14:無線LANインターフェース、18:印刷実行部、30:制御部、32:CPU、34:メモリ、36:プログラム、50:携帯端末、60,70:AP、62,72:LAN、71:プロキシサーバ、100:印刷仲介サーバ
Claims (12)
- 通信装置であって、
端末装置から通知サーバに処理実行指示が送信される場合に、前記通知サーバから処理実行通知を受信する通知受信部と、
前記通知サーバから前記処理実行通知が受信される場合に、所定処理を実行する処理実行部と、を備え、
前記通知受信部は、
第1のモードと第2のモードとのそれぞれで交互に動作し、
前記第1のモードでは、ポーリング信号を前記通知サーバに送信し、
前記端末装置から前記通知サーバに前記処理実行指示が送信された後に、前記ポーリング信号が前記通知サーバに送信される場合に、前記通知サーバから、前記ポーリング信号に対する第1種の応答である前記処理実行通知を受信し、
前記ポーリング信号が前記通知サーバに送信され、かつ、前記通知サーバから前記処理実行通知が受信されない場合に、前記第2のモードで動作し、
前記第2のモードでは、前記通信装置と前記通知サーバとの間にサーバプッシュ型の接続を確立し、
前記接続が確立されている状態において、前記端末装置から前記通知サーバに前記処理実行指示が送信される場合に、前記接続を利用して前記通知サーバから前記処理実行通知を受信し、
前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから第1の所定時間が経過する場合に、前記接続を切断し、
前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから前記第1の所定時間が経過する場合に、前記第1のモードで動作する、
通信装置。 - 前記通知受信部は、
前記ポーリング信号が前記通知サーバに送信され、かつ、前記通知サーバから、前記処理実行通知が受信されることなく、前記ポーリング信号に対する第2種の応答が受信される場合に、前記第2のモードで動作し、
前記第2種の応答に含まれるポーリング時間情報に従って、前記第1の所定時間を決定する、請求項1に記載の通信装置。 - 前記通知受信部は、
第1の条件が満たされる場合に、前記第1のモードと前記第2のモードとのそれぞれで交互に動作し、
前記第1の条件とは異なる第2の条件が満たされる場合に、前記第1のモードと前記第2のモードとのうちの一方のモードのみで動作する、請求項1又は2に記載の通信装置。 - 前記通信装置がプロキシ環境にある場合に、前記第1の条件が満たされ、
前記通信装置が非プロキシ環境にある場合に、前記第2の条件が満たされ、
前記プロキシ環境は、プロキシサーバを利用して前記通知サーバとの通信を実行するための環境であり、
前記非プロキシ環境は、前記プロキシサーバを利用せずに前記通知サーバとの通信を実行するための環境である、請求項3に記載の通信装置。 - 前記通知受信部は、前記第2の条件が満たされる場合に、前記第1のモードと前記第2のモードとのうちの前記第2のモードのみで動作する、請求項4に記載の通信装置。
- 前記通信装置がプロキシ環境にある場合に、前記第2の条件が満たされ、
前記通信装置が非プロキシ環境にある場合に、前記第1の条件が満たされ、
前記プロキシ環境は、プロキシサーバを利用して前記通知サーバとの通信を実行するための環境であり、
前記非プロキシ環境は、前記プロキシサーバを利用せずに前記通知サーバとの通信を実行するための環境である、請求項3に記載の通信装置。 - 前記通知受信部は、前記第2の条件が満たされる場合に、前記第1のモードと前記第2のモードとのうちの前記第1のモードのみで動作する、請求項6に記載の通信装置。
- 前記通信装置は、さらに、メモリを備え、
前記通知受信部は、
前記プロキシサーバを利用するためのプロキシ設定情報が前記メモリに記憶されている場合に、前記通信装置が前記プロキシ環境にあると判断し、
前記プロキシ設定情報が前記メモリに記憶されていない場合に、前記通信装置が前記非プロキシ環境にあると判断する、請求項4から7のいずれか一項に記載の通信装置。 - 前記通知受信部は、
DHCP(Dynamic Host Configuration Protocolの略)サーバから前記プロキシサーバの存在を示す存在情報が受信される場合に、前記通信装置が前記プロキシ環境にあると判断し、
前記DHCPサーバから前記存在情報が受信されない場合に、前記通信装置が前記非プロキシ環境にあると判断する、請求項4から8のいずれか一項に記載の通信装置。 - 前記第2のモードにおいて、前記通知サーバから前記処理実行通知が受信されることなく第2の所定時間が経過する毎に、前記通知サーバから所定信号が受信される場合に、前記第2の条件が満たされ、
前記通知受信部は、前記第2の条件が満たされる場合に、前記第1のモードと前記第2のモードとのうちの前記第2のモードのみで動作し、
前記第2のモードにおいて、前記通知サーバから前記処理実行通知が受信されることなく前記第2の所定時間が経過しても、前記通知サーバから前記所定信号が受信されない場合に、前記第1の条件が満たされる、請求項3に記載の通信装置。 - 前記通信装置は、さらに、印刷実行部を備え、
前記所定処理は、前記通知サーバから受信される印刷データに従った印刷を前記印刷実行部に実行させる処理を含む、請求項1から10のいずれか一項に記載の通信装置。 - 通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
端末装置から通知サーバに処理実行指示が送信される場合に、前記通知サーバから処理実行通知を受信する通知受信部と、
前記通知サーバから前記処理実行通知が受信される場合に、所定処理を実行する処理実行部と、として機能させ、
前記通知受信部は、
第1のモードと第2のモードとのそれぞれで交互に動作し、
前記第1のモードでは、ポーリング信号を前記通知サーバに送信し、
前記端末装置から前記通知サーバに前記処理実行指示が送信された後に、前記ポーリング信号が前記通知サーバに送信される場合に、前記通知サーバから、前記ポーリング信号に対する第1種の応答である前記処理実行通知を受信し、
前記ポーリング信号が前記通知サーバに送信され、かつ、前記通知サーバから前記処理実行通知が受信されない場合に、前記第2のモードで動作し、
前記第2のモードでは、前記通信装置と前記通知サーバとの間にサーバプッシュ型の接続を確立し、
前記接続が確立されている状態において、前記端末装置から前記通知サーバに前記処理実行指示が送信される場合に、前記接続を利用して前記通知サーバから前記処理実行通知を受信し、
前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから第1の所定時間が経過する場合に、前記接続を切断し、
前記接続を利用して前記通知サーバから前記処理実行通知が受信されることなく、前記ポーリング信号が前記通知サーバに送信されてから前記第1の所定時間が経過する場合に、前記第1のモードで動作する、
コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022012833A JP2023111145A (ja) | 2022-01-31 | 2022-01-31 | 通信装置と通信装置のためのコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022012833A JP2023111145A (ja) | 2022-01-31 | 2022-01-31 | 通信装置と通信装置のためのコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023111145A true JP2023111145A (ja) | 2023-08-10 |
Family
ID=87551630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022012833A Pending JP2023111145A (ja) | 2022-01-31 | 2022-01-31 | 通信装置と通信装置のためのコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023111145A (ja) |
-
2022
- 2022-01-31 JP JP2022012833A patent/JP2023111145A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6980319B2 (en) | System and method of selectively Printing at remote printers via portable digital device | |
JP6406092B2 (ja) | 通信機器 | |
US20030048303A1 (en) | Destination direction for push scanning to at least one of multiple destinations | |
US8676967B2 (en) | Event proxy notification apparatus and method of controlling the same and program | |
CN113747435A (zh) | 计算机可读介质和通信设备 | |
JP6819418B2 (ja) | 端末装置のためのコンピュータプログラム、及び、通信装置 | |
JP7552352B2 (ja) | 画像処理装置及び画像処理装置のためのコンピュータプログラム | |
US20060077421A1 (en) | System and method for driverless printers | |
JP7494683B2 (ja) | 通信装置と通信装置のためのコンピュータプログラム | |
JP2019036801A (ja) | 画像処理装置 | |
JP2023111145A (ja) | 通信装置と通信装置のためのコンピュータプログラム | |
JP7070095B2 (ja) | 通信装置のためのコンピュータプログラムと通信装置とサーバのためのコンピュータプログラム | |
JP2023111141A (ja) | 通信装置と通信装置のためのコンピュータプログラム | |
JP7517029B2 (ja) | 通信装置と通信装置のためのコンピュータプログラム | |
JP7070094B2 (ja) | 通信装置のためのコンピュータプログラムと通信装置 | |
JP7552353B2 (ja) | 画像処理装置及び画像処理装置のためのコンピュータプログラム | |
JP2019024221A (ja) | 通信機器 | |
JP7494661B2 (ja) | 印刷装置及びサーバ | |
JP2024001770A (ja) | 画像形成装置と画像形成装置のためのコンピュータプログラム | |
JP2019145961A (ja) | 通信装置 | |
JP2020101913A (ja) | 情報処理装置、及び、情報処理装置のためのコンピュータプログラム | |
US11625211B2 (en) | Printer capable of receiving print job from server and non-transitory computer-readable recording medium storing computer-readable instructions for printer | |
JP7447686B2 (ja) | 通信システム、第1のサーバ、第2のサーバ、第1のサーバのためのコンピュータプログラム、及び、第2のサーバのためのコンピュータプログラム | |
EP3917110A1 (en) | Computer program for first terminal device performing a dpp provisioning of a communication device | |
JP2022156470A (ja) | 通信装置及び通信装置のためのコンピュータプログラム |