IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特開2022-156470通信装置及び通信装置のためのコンピュータプログラム
<>
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図1
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図2
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図3
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図4
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図5
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図6
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図7
  • 特開-通信装置及び通信装置のためのコンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022156470
(43)【公開日】2022-10-14
(54)【発明の名称】通信装置及び通信装置のためのコンピュータプログラム
(51)【国際特許分類】
   G06F 3/12 20060101AFI20221006BHJP
   G06F 13/00 20060101ALI20221006BHJP
   H04N 1/00 20060101ALI20221006BHJP
   B41J 29/38 20060101ALI20221006BHJP
【FI】
G06F3/12 336
G06F3/12 359
G06F3/12 385
G06F3/12 320
G06F13/00 357A
H04N1/00 127A
B41J29/38 401
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021060185
(22)【出願日】2021-03-31
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】白木 智美
【テーマコード(参考)】
2C061
5B089
5C062
【Fターム(参考)】
2C061AP01
2C061AP07
2C061AQ05
2C061AQ06
2C061HK05
2C061HN05
2C061HN15
5B089GA13
5B089GA21
5B089GB01
5B089HA06
5B089HA10
5B089HB05
5B089JA35
5B089KA05
5B089KB04
5B089KC27
5B089KG10
5C062AA02
5C062AA05
5C062AA13
5C062AA35
5C062AB20
5C062AB23
5C062AB38
5C062AB40
5C062AB42
5C062AC05
5C062AC22
5C062AC34
5C062AE15
(57)【要約】
【課題】サーバからジョブ通知を受信することに応じて、適切な処理を実行し得る通信装置を提供する。
【解決手段】通信装置は、動作モードを第1のモードに設定する。第1のモードは、通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、接続を利用して、サーバから、通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードである。通信装置は、第1のモードである間に、接続を利用して、サーバから、通信装置が実行すべき第1のジョブが存在することを示す第1のジョブ通知が受信される場合に、第1のジョブが終了する前に、接続を切断する。通信装置は、サーバから第1のジョブ通知が受信される場合に、第1のジョブを実行する。
【選択図】図4
【特許請求の範囲】
【請求項1】
通信装置であって、
前記通信装置の動作モードを第1のモードに設定する第1のモード設定部であって、
前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードである、前記第1のモード設定部と、
前記通信装置の前記動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1のジョブ通知が受信される場合に、前記第1のジョブが終了する前に、前記接続を切断する切断部と、
前記サーバから前記第1のジョブ通知が受信される場合に、前記第1のジョブを実行する第1のジョブ実行部と、
を備える、通信装置。
【請求項2】
前記通信装置は、さらに、
前記第1のジョブが終了することを監視する監視部と、
前記第1のジョブが終了することに応じて、所定信号を前記サーバに送信する所定信号送信部と、
前記所定信号が前記サーバに送信されることに応じて、前記サーバから、前記通信装置が実行すべき第2のジョブに関係する関係情報が受信される場合に、前記第2のジョブを実行する第2のジョブ実行部と、
を備える、請求項1に記載の通信装置。
【請求項3】
前記所定信号送信部は、前記第1のジョブが終了することに応じて、前記接続を再確立することなく、前記所定信号を前記サーバに送信する、請求項2に記載の通信装置。
【請求項4】
前記所定信号は、新たなジョブが存在するのか否かを問い合わせるための問合信号であり、
前記関係情報は、前記第2のジョブが存在することを示す第1の応答信号である、請求項2又は3に記載の通信装置。
【請求項5】
前記通信装置は、さらに、
前記問合信号である前記所定信号が前記サーバに送信されることに応じて、前記サーバから、新たなジョブが存在しないことを示す第2の応答信号が受信される場合に、前記接続を再確立して、前記通信装置の前記動作モードを前記第1のモードに設定する第2のモード設定部を備える、請求項4に記載の通信装置。
【請求項6】
前記通信装置は、さらに、
メモリと、
前記通信装置の動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから前記第1のジョブ通知が受信される場合に、前記通信装置の前記動作モードを第2のモードに設定する第3のモード設定部であって、前記第2のモードは、前記接続を利用することなく、ポーリング信号を前記サーバに繰り返し送信して、前記サーバから前記ジョブ通知を受信するためのモードである、前記第3のモード設定部と、
前記第1のジョブが終了する前に、前記ポーリング信号が前記サーバに送信されることに応じて、前記サーバから、前記通信装置が実行すべき前記第2のジョブが存在することを示す第2のジョブ通知が受信される場合に、前記第2のジョブを識別するジョブ識別情報を前記メモリに記憶させる記憶制御部と、を備え、
前記所定信号送信部は、前記第1のジョブが終了することに応じて、新たなジョブが存在するのか否かを問い合わせるための問合信号を送信することなく、前記メモリに記憶されている前記ジョブ識別情報を含む前記所定信号を前記サーバに送信し、
前記関係情報は、前記第2のジョブを実行するための設定情報を含む、請求項2又は3に記載の通信装置。
【請求項7】
前記通信装置は、さらに、
前記第1のジョブが終了する前に、前記ポーリング信号が前記サーバに送信されることに応じて、前記サーバから、前記通信装置が実行すべきジョブが存在することを示す前記ジョブ通知が受信されない場合に、前記通信装置の前記動作モードを前記第2のモードに代えて前記第1のモードに設定する第4のモード設定部を備える、請求項6に記載の通信装置。
【請求項8】
通信装置であって、
前記通信装置の動作モードを第1のモードに設定する第1のモード設定部であって、
前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードであり、
前記第1のモードで動作している前記通信装置が前記ジョブ通知を受信するための第1のタスクは、前記通信装置が実行すべきジョブが存在する場合に、前記通信装置が実行すべきジョブが存在することを示す存在ジョブ通知を受信し、
前記第1のタスクは、前記通信装置が実行すべきジョブが存在しない場合に、前記通信装置が実行すべきジョブが存在しないことを示す不存在ジョブ通知を第1の所定時間毎に受信し、前記不存在ジョブ通知を受信する処理を実行してから、次の前記不存在ジョブ通知を受信するまでの間に他の処理を実行しないブロッキング状態に移行する、前記第1のモード設定部と、
前記通信装置の動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1の存在ジョブ通知が前記第1のタスクによって受信される場合に、前記第1のモードを停止する停止部と、
前記サーバから前記第1の存在ジョブ通知が受信される場合に、前記第1のジョブを前記第1のタスクとは異なる第2のタスクによって実行する第1のジョブ実行部と、
を備える、通信装置。
【請求項9】
前記通信装置は、さらに、
前記第1のモードが停止される場合に、前記第1のジョブが終了することを前記第1のタスクによって監視する監視部と、
前記第1のジョブが終了することに応じて、所定信号を前記サーバに送信する所定信号送信部と、
前記所定信号が前記サーバに送信されることに応じて、前記サーバから、前記通信装置が実行すべき第2のジョブに関係する関係情報が受信される場合に、前記第2のジョブを前記第2のタスクによって実行する第2のジョブ実行部と、
を備える、請求項8に記載の通信装置。
【請求項10】
前記監視部は、前記第1のジョブが終了したのか否かを第2の所定時間毎に確認することによって、前記第1のジョブが終了することを監視し、
前記第2の所定時間は、前記第1の所定時間よりも短い、請求項9に記載の通信装置。
【請求項11】
前記所定信号は、新たなジョブが存在するのか否かを問い合わせるための問合信号であり、
前記関係情報は、前記第2のジョブが存在することを示す第1の応答信号である、請求項9又は10に記載の通信装置。
【請求項12】
前記通信装置は、さらに、
前記問合信号である前記所定信号が前記サーバに送信されることに応じて、前記サーバから、新たなジョブが存在しないことを示す第2の応答信号が受信される場合に、前記通信装置の前記動作モードを前記第1のモードに設定する第2のモード設定部を備える、請求項11に記載の通信装置。
【請求項13】
前記通信装置は、さらに、
メモリと、
前記第1のモードが停止された後に、前記通信装置の前記動作モードを第2のモードに設定する第3のモード設定部であって、前記第2のモードは、前記接続を利用することなく、ポーリング信号を前記サーバに前記第1のタスクによって繰り返し送信して、前記サーバから前記ジョブ通知を受信するためのモードである、前記第3のモード設定部と、
前記第1のジョブが終了する前に、前記ポーリング信号が前記サーバに送信されることに応じて、前記サーバから、前記通信装置が実行すべき前記第2のジョブが存在することを示す第2の存在ジョブ通知が前記第1のタスクによって受信される場合に、前記第2のジョブを識別するジョブ識別情報を前記メモリに記憶させる記憶制御部と、を備え、
前記所定信号送信部は、前記第1のジョブが終了することに応じて、新たなジョブが存在するのか否かを問い合わせるための問合信号を送信することなく、前記メモリに記憶されている前記ジョブ識別情報を含む前記所定信号を前記サーバに送信し、
前記関係情報は、前記第2のジョブを実行するための設定情報を含む、請求項9又は10に記載の通信装置。
【請求項14】
前記通信装置は、さらに、
前記第1のジョブが終了する前に、前記ポーリング信号が前記サーバに送信されることに応じて、前記サーバから前記存在ジョブ通知が受信されない場合に、前記通信装置の前記動作モードを前記第1のモードに設定する第4のモード設定部を備える、請求項13に記載の通信装置。
【請求項15】
前記通信装置は、さらに、
前記通信装置の動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから前記第1の存在ジョブ通知が受信される場合に、前記第1のジョブが終了する前に、前記接続を切断する切断部を備える、請求項8から14のいずれか一項に記載の通信装置。
【請求項16】
通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
前記通信装置の動作モードを第1のモードに設定する第1のモード設定部であって、
前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードである、前記第1のモード設定部と、
前記通信装置の前記動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1のジョブ通知が受信される場合に、前記第1のジョブが終了する前に、前記接続を切断する切断部と、
前記サーバから前記第1のジョブ通知が受信される場合に、前記第1のジョブを実行する第1のジョブ実行部と、
として機能させる、コンピュータプログラム。
【請求項17】
通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
前記通信装置の動作モードを第1のモードに設定する第1のモード設定部であって、
前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードであり、
前記第1のモードで動作している前記通信装置が前記ジョブ通知を受信するための第1のタスクは、前記通信装置が実行すべきジョブが存在する場合に、前記通信装置が実行すべきジョブが存在することを示す存在ジョブ通知を受信し、
前記第1のタスクは、前記通信装置が実行すべきジョブが存在しない場合に、前記通信装置が実行すべきジョブが存在しないことを示す不存在ジョブ通知を第1の所定時間毎に受信し、前記不存在ジョブ通知を受信する処理を実行してから、次の前記不存在ジョブ通知を受信するまでの間に他の処理を実行しないブロッキング状態に移行する、前記第1のモード設定部と、
前記通信装置の動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1の存在ジョブ通知が前記第1のタスクによって受信される場合に、前記第1のモードを停止する停止部と、
前記サーバから前記第1の存在ジョブ通知が受信される場合に、前記第1のジョブを前記第1のタスクとは異なる第2のタスクによって実行する第1のジョブ実行部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、サーバからジョブ通知を受信することに応じてジョブを実行する通信装置に関する技術を開示する。
【背景技術】
【0002】
特許文献1には、GCP(Google Cloud Printの略)に従って印刷を実行可能なプリンタが開示されている。プリンタは、XMPP(eXtensible Messaging and Presence Protocol)接続を印刷仲介サーバと確立している場合(以下では「XMPPモード」と記載する)には、印刷仲介サーバが印刷ジョブを生成した直後に、印刷仲介サーバから印刷に関する通知を受信する。プリンタは、XMPPモードで動作している間に印刷仲介サーバとの通信が不安定になると、XMPPのストリームをクローズして、ポーリング信号を印刷仲介サーバに定期的に送信する状態に移行する。プリンタは、ポーリング信号の送信時に印刷仲介サーバが印刷ジョブを有している場合に、印刷仲介サーバから印刷に関する通知を受信する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-187866号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、サーバからジョブ通知を受信することに応じて、適切な処理を実行し得る通信装置を提供する。
【0005】
本明細書によって開示される通信装置は、動作モードを第1のモードに設定する第1のモード設定部であって、前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードである、前記第1のモード設定部と、前記通信装置の前記動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1のジョブ通知が受信される場合に、前記第1のジョブが終了する前に、前記接続を切断する切断部と、前記サーバから前記第1のジョブ通知が受信される場合に、前記第1のジョブを実行する第1のジョブ実行部と、を備えてもよい。
【0006】
上記の構成によると、通信装置は、サーバから第1のジョブ通知を受信する場合に、第1のジョブが終了する前に、サーバとの接続を切断する。このため、通信装置は、第1のジョブを実行する間に、サーバとの接続を維持するための処理を実行せずに済む。従って、当該処理の実行のためのリソースを削減することができる。
【0007】
また、本明細書によって開示される通信装置は、動作モードを第1のモードに設定する第1のモード設定部であって、前記第1のモードは、前記通信装置とサーバとの間でサーバプッシュ型の通信を実行するための接続が確立されている状態において、前記接続を利用して、前記サーバから、前記通信装置が実行すべきジョブが存在するのか否かを示すジョブ通知を受信するためのモードであり、前記第1のモードで動作している前記通信装置が前記ジョブ通知を受信するための第1のタスクは、前記通信装置が実行すべきジョブが存在する場合に、前記通信装置が実行すべきジョブが存在することを示す存在ジョブ通知を受信し、前記第1のタスクは、前記通信装置が実行すべきジョブが存在しない場合に、前記通信装置が実行すべきジョブが存在しないことを示す不存在ジョブ通知を第1の所定時間毎に受信し、前記不存在ジョブ通知を受信する処理を実行してから、次の前記不存在ジョブ通知を受信するまでの間に他の処理を実行しないブロッキング状態に移行する、前記第1のモード設定部と、前記通信装置の動作モードが前記第1のモードである間に、前記接続を利用して、前記サーバから、前記通信装置が実行すべき第1のジョブが存在することを示す第1の存在ジョブ通知が前記第1のタスクによって受信される場合に、前記第1のモードを停止する停止部と、前記サーバから前記第1の存在ジョブ通知が受信される場合に、前記第1のジョブを前記第1のタスクとは異なる第2のタスクによって実行する第1のジョブ実行部と、を備えてもよい。
【0008】
上記の構成によると、通信装置は、サーバから第1の存在ジョブ通知を受信する場合に、第1のモードを停止する。このため、第1のタスクは、第1の所定時間毎にブロッキング状態に移行せずに済むので、他の処理を実行し得る。
【0009】
上記の通信装置を実現するためのコンピュータプログラム、及び、当該コンピュータプログラムによって記憶するコンピュータ可読記憶媒体も新規で有用である。また、上記の通信装置によって実現される方法も新規で有用である。また、上記の通信装置と他の装置(例えば、サーバ等)とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【0010】
図1】通信システムの構成を示す。
図2】登録処理のシーケンスを示す。
図3】印刷処理のシーケンスを示す。
図4図3の続きのケースAのシーケンスを示す。
図5図3の続きのケースBのシーケンスを示す。
図6】比較例のシーケンスを示す。
図7】第2実施例のケースAのシーケンスを示す。
図8】第2実施例のケースBのシーケンスを示す。
【発明を実施するための形態】
【0011】
(第1実施例)
(通信システム2の構成;図1
図1に示されるように、通信システム2は、プリンタ10と、端末50と、印刷仲介サーバ60と、を備える。プリンタ10及び端末50は、LAN(Local Area Networkの略)8に接続されている。プリンタ10及び端末50は、LAN8を介して相互に通信可能である。LAN8は、有線LAN及び無線LANのどちらであってもよい。LAN8は、インターネット6に接続されている。インターネット6は、印刷仲介サーバ60に接続されている。各装置10,50,60は、インターネット6を介して相互に通信可能である。
【0012】
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺装置(例えば、端末50等の周辺装置)である。プリンタ10は、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ10は、通信インターフェース(以下ではインターフェースを「I/F」と記載する)12と、表示部14と、印刷実行部18と、制御部30と、を備える。
【0013】
通信I/F12は、LAN8に接続されている。通信I/F12は、無線I/Fであってもよいし、有線I/Fであってもよい。表示部14は、いわゆるタッチパネルであり、操作部としても機能する。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構である。
【0014】
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、さらに、印刷ステータスを記憶する。印刷ステータスは、プリンタ10が印刷ジョブを実行中であることを示す「処理中」と、プリンタ10が印刷ジョブを実行中でないことを示す「待機」と、を含む複数のステータスのいずれかを示す。
【0015】
(印刷仲介サーバ60の構成)
印刷仲介サーバ60は、クラウド印刷サービスを提供するサーバである。印刷仲介サーバ60は、本実施例では、プリンタ10のベンダによって設置されるサーバではなく、クラウド印刷サービスを提供する事業者によって設置されるサーバである。変形例では、印刷仲介サーバ60は、プリンタ10のベンダによって設置されるサーバであってもよい。印刷仲介サーバ60は、例えば端末50から画像データ受信する場合に、ジョブを生成し、当該ジョブをプリンタ10に送信する。ジョブは、画像データをプリンタ10が解釈可能なデータ形式に変換することによって生成される印刷データを含む。以下では、印刷仲介サーバ60のことを単に「サーバ60」と記載する。
【0016】
(登録処理;図2
図2を参照して、プリンタ10がサーバ60からクラウド印刷サービスを受けるために、プリンタ10に関する情報をサーバ60に登録するための処理を説明する。以下では、理解の容易化のために、プリンタ10のCPU32がプログラム36に従って実行する処理を説明する際に、CPU32を主体として記載するのではなく、プリンタ10を主体として記載する。また、プリンタ10によって実行される以下の全ての通信は、通信I/F12を介して実行される。従って、以下では、通信に関する処理を説明する際に、「通信I/F12を介して」という記載を省略する。
【0017】
端末50は、ユーザからの操作を受け付けることに応じて、プリンタ10内のウェブサーバにアクセスする。そして、端末50は、ユーザから、さらに、クラウド印刷サービスを受けるための操作を受け付けることに応じて、T10において、登録指示をプリンタ10に送信する。
【0018】
プリンタ10は、T10において、端末50から登録指示を受信すると、T12において、プリンタ10を識別する情報であるプリンタIDを含む登録要求をサーバ60に送信する。
【0019】
サーバ60は、T12において、プリンタ10から登録要求を受信すると、T14において、PINコードを生成して、登録要求に含まれるプリンタIDと生成済みのPINコードとを対応付けて記憶する。次いで、サーバ60は、T20において、PINコードとログイン用URL(Uniform Resource Locatorの略)とをプリンタ10に送信する。ログイン用URLは、サーバ60内の後述の認証画面データの位置を示す情報である。
【0020】
プリンタ10は、T20において、サーバ60からPINコードとURLとを受信すると、T22において、それらを端末50に送信する。
【0021】
端末50は、T22において、プリンタ10からPINコードとURLとを受信すると、T30において、それらを表示する。次いで、端末50は、T32において、ユーザからURLを選択する操作を受け付けると、T40において、URLを含む認証要求をサーバ60に送信する。
【0022】
サーバ60は、T40において、端末50から認証要求を受信すると、T42において、認証要求に含まれるURLによって特定される認証画面データを端末50に送信する。認証画面データは、PINコードを入力するための認証画面を表わすデータである。
【0023】
端末50は、T42において、サーバ60から認証画面データを受信すると、T44において、認証画面データによって表わされる認証画面を表示する。次いで、端末50は、T46において、ユーザから、T30で表示されたPINコードの入力を受け付ける。この場合、端末50は、T50において、入力済みのPINコードをサーバ60に送信する。
【0024】
サーバ60は、T50において、端末50からPINコードを受信すると、T52において、受信済みのPINコードの認証を実行する。具体的には、サーバ60は、受信済みのPINコードを記憶済みであるのか否かを判断する。サーバ60は、受信済みのPINコードを記憶済みであると判断する場合、即ち、認証が成功する場合には、T54において、ユニークな文字列であるアクセストークン(以下ではAT(Access Tokenの略)と記載する)を生成する。そして、サーバ60は、T56において、プリンタIDと生成済みのATとを対応付けて記憶し、T60において、生成済みのATを含む認証通知をプリンタ10に送信する。
【0025】
プリンタ10は、T62において、認証通知を受信すると、認証通知に含まれるATをメモリ34に記憶する。これにより、登録処理が終了する。
【0026】
(印刷処理;図3図5
続けて、図3図5を参照して、本実施例の印刷処理を説明する。先ず、図3及び図4を参照して、印刷処理がプリンタ10によって実行され、かつ、常時接続が切断されている間に、新たなジョブが発生するケースAを説明し、次いで、図5を参照して、印刷処理がプリンタ10によって実行され、かつ、常時接続が切断されている間に、新たなジョブが発生しないケースBを説明する。
【0027】
プリンタ10のCPU32は、複数のタスクを並列的に実行することができる。以下では、CPU32が第1のタスク又は第2のタスクによって実行する処理を説明する際に、第1のタスク又は第2のタスクを主体として記載する。第1のタスクは、主に、サーバ60から、ジョブが存在するのか否かを示す通知を受信するためのタスクである。第2のタスクは、主に、第1のタスクから印刷処理指示を取得することに応じて、サーバ60からジョブを受信して当該ジョブに従った印刷を印刷実行部18に実行させるためのタスクである。
【0028】
(ケースA;図3
図3の初期状態では、プリンタ10は、記憶済みのAT(図2のT62参照)を利用して、サーバ60との常時接続を確立する。常時接続は、サーバ60が、プリンタ10が所属するLAN8のファイヤーウォールを超えて、サーバプッシュ型の通信をプリンタ10と実行するための接続である。本実施例では、プリンタ10は、HTTP(Hypertext Transfer Protocolの略)に従った常時接続を確立している。変形例では、プリンタ10は、XMPP(Extensible Messaging and Presence Protocolの略)に従った常時接続を確立してもよい。
【0029】
第1のタスクは、サーバ60との通信をブロッキングモードで行う。具体的には、第1のタスクは、要求を送信してから応答を受信するまでの間、処理を実行不可能な状態となる。以下では、この状態を「ブロッキング状態」と記載する。第1のタスクがブロッキング状態であることによって、プリンタ10のCPU32は、他の処理を迅速に実行することができる。第1のタスクは、当該要求に対する応答を受信すると、ブロッキング状態を解除し、処理を再開する。図3以降の各図では、第1のタスクがブロッキング状態である期間を太い実線で表現し、ブロッキング状態でない期間を細い破線で表現する。
【0030】
第1のタスクは、T70において、Get-Notification(Event Wait Mode)Request(以下「GN(EWM)Req」と記載する)をサーバ60に送信する。第1のタスクは、GN(EWM)Reqを送信することに応じて、ブロッキング状態に移行する。GN(EWM)Reqは、プリンタ10が実行すべきジョブが発生した際に、その旨の通知(即ちGN(EWM)Reqに対する応答)をプリンタ10に送信することをサーバ60に要求するための信号である。これにより、プリンタ10は、Event Wait Mode(以下「EWM」と記載する)で動作する。EWMでは、サーバプッシュ型の通信(即ち上記の通知の通信)が実行されるので、プリンタ10とサーバ60との間に常時接続が確立される必要がある。
【0031】
EWMとは異なるモードとしてPolling Mode(以下「PM」と記載する)が存在する。PMは、プリンタ10がGet-Notification(Polling Mode)Request(以下「GN(PM)Req」と記載する)をサーバ60に定期的に送信し、その際にプリンタ10が実行すべきジョブが存在する場合に、サーバ60から当該ジョブが存在することを示す通知(即ちGN(PM)Reqに対する応答)を受信するためのモードである。PMでは、サーバプッシュ型の通信が実行されないので、プリンタ10とサーバ60との間に常時接続が確立される必要がない。EWMでは、プリンタ10は、プリンタ10が実行すべきジョブが発生すると、サーバ60から即座に通知を受信することができる。このために、プリンタ10は、PMで動作する場合と比べて、ジョブを迅速に実行することができる。
【0032】
サーバ60は、T70において、第1のタスクからGN(EMW)Reqを受信すると、T72~T76及びT86において、常時接続を利用して、Get-Notification(Event Wait Mode)Response(以下「GN(EMW)Res」と記載する)をプリンタ10に定期的に送信する。本実施例では、サーバ60は、プリンタ10が印刷を実行すべき画像を表わす画像データを受信する前の期間において、ジョブIDを含まないGN(EMW)Resをプリンタ10に1分毎に送信する(T72~T76参照)。サーバ60は、端末50から、プリンタ10が印刷を実行すべき画像を表わす画像データを受信すると(即ちプリンタ10が実行すべきジョブが発生すると)、ジョブIDを含むGN(EMW)Resをプリンタ10に送信する(T86参照)。
【0033】
第1のタスクは、T72において、サーバ60からジョブIDを含まないGN(EMW)Resを受信すると、ブロッキング状態を解除する。そして、第1のタスクは、当該Resを受信することに応じた処理(例えば当該Res内の情報を確認したり当該Resを破棄したりする処理)を実行した後に、ブロッキング状態に戻る。第1のタスクは、T74及びT76において、サーバ60からジョブIDを含まないGN(EMW)Resを受信する毎に、T72と同様に、ブロッキング状態を解除する処理を実行した後に、ブロッキング状態に戻る。換言すると、第1のタスクは、サーバ60からジョブIDを含まないGN(EMW)Resを受信する間隔である1分間に亘ってブロッキング状態で動作することを繰り返す。なお、変形例では、上記の1分に代えて、1分よりも長い又は短い時間が採用されてもよい。
【0034】
ユーザは、T80において、印刷を実行すべきプリンタ(本実施例ではプリンタ10)の指定と、印刷対象の画像の指定と、を含む印刷指示操作を端末50に実行する。この場合、端末50は、T82において、ユーザによって指定されたプリンタ10を識別するプリンタID(図示省略)と、印刷対象の画像を表わす画像データX1と、をサーバ60に送信する。
【0035】
サーバ60は、T82において、端末50からプリンタIDと画像データX1とを受信すると、T84において、ジョブID「AAA」によって識別されるジョブを生成する。具体的には、サーバ60は、まず、端末50から受信済みの画像データX1を変換して、プリンタ10が解釈可能なデータ形式を有する印刷データ(即ち後述のドキュメント)を生成する。そして、サーバ60は、プリンタIDとジョブID「AAA」と印刷データとを対応付けて記憶する。その後、サーバ60は、T86において、ジョブID「AAA」を含むGN(EMW)Resをプリンタ10に送信する。
【0036】
第1のタスクは、T86において、サーバ60からジョブID「AAA」を含むGN(EMW)Resを受信すると、ブロッキング状態を解除する。そして、第1のタスクは、T88において、受信済みのジョブID「AAA」を含む印刷処理指示を第2のタスクに供給する。その後、第1のタスクは、ブロッキング状態に戻る。
【0037】
第2のタスクは、T88において、第1のタスクからジョブID「AAA」を含む印刷処理指示を取得すると、T90において、Fetch-job Requestをサーバ60に送信し、T92において、サーバ60からジョブ情報を含むResponseを受信する。当該ジョブ情報は、印刷色数、印刷用紙のサイズ、印刷部数等の印刷設定を示す設定情報を含む。そして、第2のタスクは、T94において、Fetch-Document Requestをサーバ60に送信し、T96において、サーバ60から印刷データX1(即ちドキュメント)を含むResponseを受信する。
【0038】
図3の続き:図4(ケースA))
図4に示されるように、第2のタスクは、T100において、印刷データX1を印刷実行部18に供給する。これにより、印刷データX1によって表わされる画像の印刷が印刷実行部18によって開始される。第2のタスクは、さらに、T100において、メモリ34内の印刷ステータスを「待機」から「処理中」に変更する。図4以降の図面では、印刷データが印刷実行部18に供給される状態、即ち、印刷ステータスが「処理中」である状態の第2のタスクをハッチング入りの太い実線で表現する。
【0039】
第1のタスクは、図3のT88において、印刷指示処理を第2のタスクに供給すると、T110において、常時接続の切断を要求する切断信号をサーバ60に送信する。これにより、T112において、常時接続がサーバ60によって切断される。この場合、プリンタ10は、EWMでの動作を停止することになる。この結果、プリンタ10は、EWMでもPMでも動作しない状態になる。
【0040】
上述したように、プリンタ10は、サーバ60との常時接続を切断するので、ジョブID「AAA」に従ったジョブを実行する間(即ちT112から後述のT140までの間)に、サーバ60との常時接続を維持するための処理を実行せずに済む。当該処理は、例えば、常時接続を維持するための信号をサーバ60に定期的に送信すること、及び、常時接続を維持するための信号をサーバ60から定期的に受信すること、の少なくとも一方を含む。これにより、CPU32の処理負荷が削減できるとともに、通信I/F12の通信負荷が削減される。また、プリンタ10は、常時接続を維持するために必要なメモリ34内の領域を開放することができる。このために、メモリ34の使用容量を節約することができる。
【0041】
また、プリンタ10がEWMを停止すると、第1のタスクは、略1分間に亘ってブロッキング状態で動作することを繰り返さずに済む。このために、第1のタスクは、他の処理を実行することができる。具体的には、第1のタスクは、T120において、印刷状況を確認するための処理を実行することができる。即ち、第1のタスクは、メモリ34内の印刷ステータスを確認することによって、ジョブが終了することを監視する処理を実行することができる。T120の段階では、印刷ステータスが「処理中」であるため、第1のタスクは、ジョブが終了していないと判断する。第1のタスクは、印刷ステータスを確認する処理を実行した後、5秒間スリープする。そして、スリープが5秒間維持されると、第1のタスクは、スリープを解除するとともに、再び印刷ステータスを確認する。その後、第1のタスクは、再び5秒間スリープする。即ち、第1のタスクは、5秒毎に印刷ステータスを確認する処理とスリープとを繰り返し実行する。なお、変形例では、上記の5秒に代えて、5秒よりも長い又は短い時間が採用されてもよい。
【0042】
次いで、端末50は、T130及びT132において、図3のT80及びT82と同様の処理を実行する。ここで、端末50は、T132において、プリンタ10を識別するプリンタIDと、印刷対象の画像を表わす画像データX2と、をサーバ60に送信する。
【0043】
サーバ60は、T132において、端末50からプリンタIDと画像データX2とを受信すると、T134において、ジョブID「BBB」によって識別されるジョブを生成する。本ケースでは、サーバ60とプリンタ10との間の常時接続が既に切断されている(T112参照)。このために、サーバ60は、ジョブID「BBB」を含むGN(EMW)Resをプリンタ10に送信することができない。
【0044】
その後、第2のタスクは、ジョブが終了すると、即ち、印刷実行部18への全ての印刷データの供給が終了すると、T140において、メモリ34内の印刷ステータスを「処理中」から「待機」に変更する。
【0045】
第1のタスクは、T142において、印刷ステータスを確認する処理を実行して、印刷ステータスが「待機」であることを認識する。即ち、第1のタスクは、ジョブが終了したと判断する。この場合、第1のタスクは、T144において、Get-Jobs Request(以下「GJReq」と記載する)をサーバ60に送信する。GJReqは、新たなジョブが存在するのか否かを問い合わせるための信号である。
【0046】
プリンタ10は、サーバ60との常時接続を再び確立することなく、GJReqをサーバ60に送信する。このために、プリンタ10は、サーバ60との常時接続を再び確立した後に、GJReqをサーバ60に送信する構成と比べて、ジョブが存在するのか否かを早く知ることができる。
【0047】
サーバ60は、T144において、プリンタ10からGJReqを受信すると、T146において、ジョブID「BBB」を含むGet-Jobs Response(以下「GJRes」と記載する)をプリンタ10に送信する。
【0048】
第1のタスクは、T146において、サーバ60からGJResを受信すると、T148において、GJRes内のジョブID「BBB」を含む印刷処理指示を第2のタスクに供給する。
【0049】
次いで、第2のタスクは、ジョブID「BBB」を利用して、図3のT90~T96と同様の処理を実行する。そして、第2のタスクは、T150において、印刷データX2を印刷実行部18に供給するとともに、メモリ34内の印刷ステータスを「待機」から「処理中」に変更する。
【0050】
第1のタスクは、T160等において、T120と同様に、印刷ステータスを確認する処理を5秒毎に実行する。第1のタスクは、T162において、ジョブが終了することに応じて、メモリ34内の印刷ステータスが「印刷中」から「待機」に変更された後に、T170において、印刷ステータスが「待機」であることを認識する。そして、第1のタスクは、T142と同様に、GJReqをサーバ60に送信する。
【0051】
サーバ60は、T174において、プリンタ10からGJReqを受信すると、T176において、ジョブIDを含まないGJResをプリンタ10に送信する。
【0052】
第1のタスクは、T176において、サーバ60からジョブIDを含まないGJResを受信すると、T180において、サーバ60との常時接続を再確立する。そして、第1のタスクは、T182において、GN(EWM)Reqをサーバ60に送信する。これにより、プリンタ10は、EWMで再び動作する。そして、第1のタスクは、T184等において、サーバ60から、ジョブIDを含まないGN(EWM)Resを1分毎に受信する。
【0053】
図3の続き;図5(ケースB))
続いて、図5を参照して、ケースBを説明する。図5図4と同様に図3の続きである。ただし、図5のケースBでは、ジョブID「AAA」によって識別されるジョブが実行されている間に、新たなジョブが発生しない。T190~T210の処理は、図4のT100~T120と同様である。
【0054】
サーバ60は、ジョブID「AAA」によって識別されるジョブが実行されている間に、端末50から画像データX2を受信しない。このため、サーバ60は、図4のT140~T144と同様であるT220~T224がプリンタ10によって実行されることに応じて、プリンタ10からGJReqを受信すると、T226において、ジョブIDを含まないGJResをプリンタ10に送信する。
【0055】
第1のタスクは、T226において、サーバ60からジョブIDを含まないGJResを受信することに応じて、T230において、サーバ60との常時接続を再確立し、T232において、GN(EWM)Reqをサーバ60に送信する。これにより、プリンタ10は、EWMで再び動作する。そして、第1のタスクは、T234等において、サーバ60から、ジョブIDを含まないGN(EWM)Resを1分毎に受信する。
【0056】
上述したように、プリンタ10は、EWMで再び動作する。このために、プリンタ10は、プリンタ10が実行すべきジョブが発生すると、サーバ60から即座に通知を受信することができ、ジョブを迅速に実行することができる。
【0057】
(比較例;図6
上述したように、本実施例では、プリンタ10は、サーバ60からジョブIDを含むGN(EWM)Resを受信することに応じて、サーバ60との常時接続を切断してEWMを停止する(図4のT110、図5のT200参照)。ここで、図6を参照して、常時接続が切断されない比較例を説明する。比較例のプリンタ10Aの第1のタスクは、サーバ60からジョブIDを含むGN(EWM)Resを受信しても、サーバ60との常時接続を切断せず、EWMを継続する。このために、第1のタスクは、T250において、ジョブIDを含まないGN(EMW)Resを受信することに応じて、ブロッキング状態を解除する。そして、第1のタスクは、T252において、印刷ステータスが「処理中」であることを確認し、その後、ブロッキング状態に戻る。
【0058】
第1のタスクは、T254において、ジョブIDを含まないGN(EMW)Resを再び受信することに応じて、ブロッキング状態を解除し、T256において、印刷ステータスが「処理中」であることを確認する。
【0059】
端末50は、T260~T262において、図4のT130~T132と同様の処理を実行する。サーバ60は、T264~T266において、図3のT84~T86と同様の処理を実行する。ただし、ここで利用されるジョブIDは「BBB」である。
【0060】
第1のタスクは、T266において、サーバ60からジョブID「BBB」を含むGN(EMW)Resを受信すると、ブロッキング状態を解除する。ここで、第1のタスクは、T268において、ジョブID「BBB」をメモリ34に記憶しておく。その後、第1のタスクは、T270において、印刷ステータスが「処理中」であることを確認し、ブロッキング状態に戻る。
【0061】
第2のタスクは、ジョブが終了すると、T280において、メモリ34内の印刷ステータスを「印刷中」から「待機」に変更する。この時、第1のタスクは、ブロッキング状態であるため、サーバ60から次のGN(EMW)Resを受信するまで、印刷ステータスを確認する処理を実行することができない。第1のタスクは、T290において、サーバ60からジョブIDを含まないGN(EMW)Resを受信することに応じて、ブロッキング状態を解除し、T292において、印刷ステータスが「待機」であることを確認する。そして、第1のタスクは、T294において、記憶済みのジョブID「BBB」を含む印刷処理指示を第2のタスクに供給する。T300~T310の処理は、図3のT90~T96及び図4のT100と同様の処理である。
【0062】
本比較例において、第1のタスクは、サーバ60からジョブIDを含まないGN(EMW)Resを受信する間隔である1分間に亘ってブロッキング状態で動作することを繰り返す。即ち、第1のタスクは、印刷ステータスを確認する処理を1分毎にしか実行できない。このために、第2のタスクがジョブを終了してから(T280参照)、第1のタスクがジョブの終了を認識するまでに(T292参照)、比較的に長い時間を要してしまう。このため、第1のタスクが印刷処理指示を第2のタスクに供給するまでに比較的に長い時間を要するので、第2のタスクが印刷実行部18に印刷を実行させるのが遅くなる。これに対して、本実施例の構成によれば、プリンタ10が常時接続を切断してEWMを停止するので、第1のタスクは、1分間に亘ってブロッキング状態で動作することを繰り返さずに済む。第1のタスクは、印刷ステータスを確認する処理と、5秒間のスリープとを繰り返し実行する。このために、第1のタスクは、比較例と比べて、ジョブが終了したことを迅速に認識することができ、印刷処理指示を第2のタスクに迅速に供給することができる。このために、第2のタスクは、印刷実行部18に印刷を迅速に実行させることができる。
【0063】
(対応関係)
プリンタ10、サーバ60が、それぞれ、「通信装置」、「サーバ」の一例である。EWMが、「第1のモード」の一例である。ジョブIDを含むGN(EMW)Res及びジョブIDを含まないGN(EMW)Resが、「ジョブ通知」の一例である。図3のT86のジョブIDを含むGN(EMW)Resが、「第1のジョブ通知」及び「存在ジョブ通知」の一例である。図3のT72~T76のジョブIDを含まないGN(EMW)Resが、「不存在ジョブ通知」の一例である。図4のT144のGJReq及び図5のT224のGJReqが、「問合信号」である「所定信号」の一例である。図4のT146のジョブIDを含むGJResが、「関係情報」及び「第1の応答信号」の一例である。図5のT226のジョブIDを含まないGJResが「第2の応答信号」の一例である。1分、5秒が、それぞれ、「第1の所定時間」、「第2の所定時間」の一例である。
【0064】
図3の常時接続の確立とT70とが、「第1のモード設定部」によって実行される処理の一例である。図4のT110及び図5のT200が、「切断部」及び「停止部」によって実行される処理の一例である。図4で引用する図3のT90、図4のT100、及び、図5のT190が、「第1のジョブ実行部」によって実行される処理の一例である。図4のT120、T142、図5のT210、及び、T222が、「監視部」によって実行される処理の一例である。図4のT144及び図5のT224が、「所定信号送信部」によって実行される処理の一例である。図4で引用する図3のT94、及び、図4のT150が、「第2のジョブ実行部」によって実行される処理の一例である。図5のT230及びT232が、「第2のモード設定部」によって実行される処理の一例である。
【0065】
(第2実施例;図7及び図8
続いて、第2実施例を説明する。本実施例は、常時接続が切断される場合に、プリンタ10がEWMに代えてPMで動作する点において、第1実施例とは異なる。先ず、図7を参照して、常時接続が切断され、かつ、プリンタ10がPMで動作している間に新たなジョブが発生するケースAを説明する。次いで、図8を参照して、新たなジョブが発生しないケースBを説明する。
【0066】
(ケースA;図7
図7は、図3の続きである。T400~T412の処理は、図4のT100~T112の処理と同様である。第1実施例と同様に、プリンタ10は、サーバ60との常時接続を切断するので、ジョブID「AAA」に従ったジョブを実行する間(即ちT412から後述のT470までの間)に、サーバ60との常時接続を維持するための処理を実行せずに済む。
【0067】
また、プリンタ10がEWMを停止するので、第1のタスクは、略1分間に亘ってブロッキング状態で動作することを繰り返さずに済む。このために、第1のタスクは、他の処理を実行することができる。具体的には、第1のタスクは、T420において、プリンタ10が実行すべき新たなジョブが存在するのか否かを問合せるための処理を実行することができる。より具体的には、プリンタ10がPMで動作することにより、第1のタスクは、GN(PM)Reqをサーバ60に送信する。第1のタスクは、GN(PM)Reqを送信することに応じて、ブロッキング状態に移行する。
【0068】
サーバ60は、T420において、第1のタスクからGN(PM)Reqを受信すると、T422において、ジョブIDを含まないGet-Notification(PM)Response(以下「GN(PM)Res」と記載する)をプリンタ10に送信する。
【0069】
本実施例では、プリンタ10は、30秒毎にGN(PM)Reqをサーバ60に送信する(T420、T430、T440、及びT456参照)。そして、サーバ60は、端末50から、プリンタ10が印刷を実行すべき画像を表わす画像データを受信する前の期間において、ジョブIDを含まないGN(PM)Resをプリンタ10に送信する(T422、T432、及びT442)。サーバ60は、端末50からプリンタ10が実行すべき画像を表わす画像データを受信すると(即ちプリンタ10が実行すべきジョブが発生すると)、ジョブIDを含むGN(PM)Resをプリンタ10に送信する(T458参照)。
【0070】
第1のタスクは、T422において、サーバ60からジョブIDを含まないGN(PM)Resを受信すると、ブロッキング状態を解除する。そして、第1のタスクは、T424において、印刷状況を確認するための処理を実行する。T424の段階では、印刷ステータスが「処理中」であるため、第1のタスクは、印刷が終了していないと判断する。第1のタスクは、印刷ステータスを確認する処理を実行すると5秒間スリープする。即ち、第1のタスクは、図4のT120と同様に、5秒毎に印刷ステータスを確認する処理とスリープとを繰り返し実行する。第1のタスクは、T432及びT442において、サーバ60からジョブIDを含まないGN(PM)Resを受信する毎に、T434及びT444において、T424と同様に、ブロッキング状態を解除して印刷ステータスを確認する処理を実行する。
【0071】
次いで、端末50は、T450及びT452において、図3のT80及びT82と同様の処理を実行する。ここで、端末50は、T132において、プリンタ10を識別するプリンタIDと、印刷対象の画像を表わす画像データX3と、をサーバ60に送信する。
【0072】
サーバ60は、T452において、端末50からプリンタIDと画像データX3とを受信すると、T454において、ジョブID「CCC」によって識別されるジョブを生成する。サーバ60は、T456において、プリンタ10からGN(PM)Reqを受信することに応じて、T458において、ジョブID「CCC」を含むGN(PM)Resをプリンタ10に送信する。
【0073】
第1のタスクは、T458において、サーバ60からジョブID「CCC」を含むGN(PM)Resを受信すると、ブロッキング状態を解除する。ここで、第1のタスクは、T460において、ジョブID「CCC」をメモリ34に記憶しておく。その後、第1のタスクは、T462において、印刷ステータスが「処理中」であることを確認する。
【0074】
その後、第2のタスクは、ジョブが終了すると、T470において、メモリ34内の印刷ステータスを「印刷中」から「待機」に変更する。
【0075】
第1のタスクは、T472において、印刷ステータスを確認する処理を実行して、印刷ステータスが「待機」であることを認識する。即ち、第1のタスクは、ジョブが終了したと判断する。この場合、第1のタスクは、T474において、記憶済みのジョブID「CCC」を含む印刷処理指示を第2のタスクに供給する。T480~T490の処理は、図3のT90~T96及び図4のT100と同様である。即ち、プリンタ10は、ジョブID「CCC」をメモリ34に予め記憶しておくので、ジョブが終了した後に、GJReqをサーバ60に送信することなく、Fetch-job Requestをサーバ60に送信することができる。このために、プリンタ10は、ジョブが終了した後に、GJReqをサーバ60に送信する構成と比べて、比較的に早くジョブを実行することができる。その後、図4のT160~T184と同様の処理が実行される。
【0076】
(ケースB;図8
続いて、図8を参照して、ケースBを説明する。図8図7と同様に図3の続きである。ただし、図8のケースBでは、ジョブID「AAA」によって識別されるジョブが実行されている間に、新たなジョブが発生しない。T500~T544の処理は、図7のT400~T444と同様である。
【0077】
図7のT470~T472と同様のT550~T552がプリンタ10によって実行されることに応じて、第1のタスクは、T560において、サーバ60との常時接続を再確立する。そして、第1のタスクは、T562において、GN(EMW)Reqをサーバ60に送信する。これにより、プリンタ10は、EWMで再び動作する。そして、第1のタスクは、T564等において、サーバ60から、ジョブIDを含まないGN(EWM)Resを1分毎に受信する。
【0078】
上述したように、プリンタ10は、EWMで再び動作する。このために、プリンタ10は、プリンタ10が実行すべきジョブが発生すると、サーバ60から即座に通知を受信することができ、ジョブを迅速に実行することができる。
【0079】
(対応関係)
PMが、「第2のモード」の一例である。図7のT480(Fetch-Job Req)が、「所定信号」の一例である。図7のT482のResが、「関係情報」の一例である。図7のT378のジョブIDを含むGN(PM)Resが、「第2のジョブ通知」の一例である。ジョブ情報が、「設定情報」である。
【0080】
図7のT410、図8のT510が、「切断部」によって実行される処理の一例である。図7のT480、図7のT400、及び、図8のT500が、「第1のジョブ実行部」によって実行される処理の一例である。図7のT424,T434,T444,T460,T472、図8のT524,T534,T544,T552が、「監視部」によって実行される処理の一例である。図7のT480が、「所定信号送信部」によって実行される処理の一例である。図7のT484及びT490が、「第2のジョブ実行部」によって実行される処理の一例である。図7のT420、図8のT520が、「第3のモード設定部」によって実行される処理の一例である。図7のT460が、「記憶制御部」によって実行される処理の一例である。図8のT560及びT562が、「第4のモード設定部」によって実行される処理の一例である。図7のT410及び図8のT510が、「停止部」及び「切断部」によって実行される処理の一例である。
【0081】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0082】
(変形例1)プリンタ10は、電話回線に従った通信を実行可能である複合機であってもよい。複合機は、端末50からサーバ60に画像データが送信される場合に、サーバ60から画像データを受信し、電話回線を利用して画像データを他の複合機に送信してもよい。この場合、ジョブは、電話回線を利用して画像データを送信する処理である。一般的に言うと、「ジョブ」は、印刷に限られず、本変形例のように、電話回線を利用して画像データを送信することであってもよいし、他の処理であってもよい。
【0083】
(変形例2)第1のタスクは、メモリ34内の印刷ステータスを確認することに代えて、ジョブが終了したのか否かを第2のタスクに問い合わせることによって、ジョブが終了することを監視してもよい。本変形例では、第2のタスクに問い合わせることが、「監視部」によって実行される処理の一例である。
【0084】
(変形例3)第1のタスクは、ジョブが終了したのか否かを監視しなくてもよい。この場合、第1のタスクは、監視とは異なる他の処理を実行可能である。本変形例では、「監視部」を省略可能である。
【0085】
(変形例4)第1のタスクは、図4のT142において、ジョブが終了したと判断される場合に、常時接続を再び接続した後に、T144において、Get-Jobs Reqをサーバ60に送信してもよい。一般的に言うと、「所定信号送信部」は、接続を再確立した後に、所定信号をサーバに送信してもよい。
【0086】
(変形例5)図5のT230が省略されてもよい。即ち、第1のタスクは、T226において、サーバ60からジョブIDを含まないGJResを受信することに応じて、常時接続を再確立することなく、T232において、GN(EMW)Reqに代えて、GN(PM)Reqをサーバ60に送信してもよい。即ち、プリンタ10は、EWMではなくPMで動作してもよい。本変形例では、「第2のモード設定部」が省略可能である。
【0087】
(変形例6)図8のT560が省略されてもよい。即ち、第1のタスクは、プリンタ10が実行すべきジョブが存在しないと判断される場合に、常時接続を再確立することなく、T562において、GN(EMW)Reqに代えて、GN(PM)Reqをサーバ60に送信してもよい。即ち、プリンタ10は、PMで動作することを維持してもよい。本変形例では、「第4のモード設定部」が省略可能である。
【0088】
(変形例7)プリンタ10は、印刷ステータスを5秒毎に確認することに代えて、印刷ステータスを1分以上の所定時間毎に確認してもよい。一般的に言うと、「第2の所定時間」は、「第1の所定時間」より短くなくてよい。別の変形例では、プリンタ10は、印刷ステータスを5秒毎に確認することに代えて、印刷ステータスを1分未満の所定時間毎に確認してもよい。
【0089】
(変形例8)図4のT110,T112、図5のT200,T202、図7のT410,T412、図8のT510,T512が、省略されてもよい。即ち、プリンタ10は、常時接続を切断しなくてもよい。
【0090】
(変形例9)図7のT460の処理が省略されてもよい。この場合、T462~T472の処理が実行されると、第1のタスクは、GJReq(図4のT144参照)をサーバ60に送信する。GJReqは、新たなジョブが存在するのか否かを問い合わせるための信号である。これによって、サーバ60は、ジョブID「CCC」を含むGJResをプリンタ10に送信する。第1のタスクは、サーバ60からGJResを受信すると、T474において、GJRes内のジョブID「CCC」を含む印刷処理指示を第2のタスクに供給する。そして、T480~T490の処理、及び、図7で引用される図4のT160~T184の処理が実行される。
【0091】
(変形例10)「通信装置」は、プリンタ10でなくてもよく、スキャナ、複合機、携帯端末、PC、サーバ等の他のデバイスであってもよい。
【0092】
(変形例11)上記の実施例では、図2図8の各処理がソフトウェアによって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0093】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0094】
2:通信システム、6:インターネット、8:LAN、10:プリンタ、12:通信I/F、14:表示部、18:印刷実行部、30:制御部、32:CPU、34:メモリ、36:プログラム、50:端末、60:印刷仲介サーバ
図1
図2
図3
図4
図5
図6
図7
図8