JP2020126547A - 通信装置、及び、通信装置のためのコンピュータプログラム - Google Patents
通信装置、及び、通信装置のためのコンピュータプログラム Download PDFInfo
- Publication number
- JP2020126547A JP2020126547A JP2019020002A JP2019020002A JP2020126547A JP 2020126547 A JP2020126547 A JP 2020126547A JP 2019020002 A JP2019020002 A JP 2019020002A JP 2019020002 A JP2019020002 A JP 2019020002A JP 2020126547 A JP2020126547 A JP 2020126547A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- time
- authentication information
- server
- 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 58
- 238000004590 computer program Methods 0.000 title claims description 5
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000008569 process Effects 0.000 claims abstract description 97
- 230000008859 change Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 45
- 238000007639 printing Methods 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 abstract description 5
- 230000004048 modification Effects 0.000 description 16
- 238000012986 modification Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 108010025037 T140 peptide Proteins 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Computer And Data Communications (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】 複数人のユーザが通信装置を共用する状況において、通信装置の通信負荷を低減させることができる技術を開示する。【解決手段】 通信装置は、メモリと、N個の認証情報をメモリに記憶させる第1の記憶制御部と、特定の接続を利用して、サーバから、特定の通知を受信する通知受信部と、サーバから特定の通知が受信される場合に、特定の認証情報を利用して、サーバから、対象データを受信するデータ受信部と、Nが2以上であり、かつ、Nが上限数Mより大きい場合に、接続変更処理を繰り返し実行する接続制御部と、を備える。接続変更処理は、N個の認証情報のうちのM個の認証情報に対応するM個の接続がサーバと確立されている状態で所定のタイミングが到来する場合に、M個の接続のうちの第1の接続を切断する切断処理と、N個の認証情報のうち、M個の認証情報とは異なる認証情報を利用して、第2の接続をサーバと確立する確立処理と、を含む。【選択図】図5
Description
本明細書では、サーバとの接続を確立可能な通信装置を開示する。
特許文献1には、サーバを利用してプリンタに印刷を実行させる技術が開示されている。この技術では、複数人のユーザが1台のプリンタを共用することができる。
本明細書では、複数人のユーザが通信装置を共用する状況において、通信装置の通信負荷を低減させることができる技術を開示する。
本明細書によって開示される通信装置は、メモリと、N人(前記Nは1以上の整数)のユーザに対応するN個の認証情報を前記メモリに記憶させる第1の記憶制御部であって、前記N個の認証情報は、インターネットを介してN個の接続をサーバと確立するための情報であり、前記サーバは、前記N人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第1の記憶制御部と、前記N個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、前記Nが2以上であり、かつ、前記Nが上限数M(前記Mは1以上の整数)より大きい場合に、接続変更処理を繰り返し実行することによって前記N個の接続を順次確立する接続制御部と、を備え、前記接続変更処理は、前記N個の認証情報のうちのM個の認証情報に対応するM個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記M個の接続のうちの第1の接続を切断する切断処理と、前記第1の接続が切断された後に、前記N個の認証情報のうち、前記M個の認証情報とは異なる認証情報を利用して、第2の接続を前記サーバと確立する確立処理と、を含む。
上記の構成によると、メモリに記憶されている認証情報の数Nが2以上である場合には、複数人(即ちN人)が通信装置を共用することができる。そして、通信装置は、Nが2以上であり、かつ、Nが上限数Mより大きい場合に、接続変更処理を繰り返し実行する。これにより、通信装置は、上限数Mを超える個数の接続をサーバと確立することなくN個の接続を順次確立することができる。従って、通信装置がメモリ内の認証情報の数Nと同じ個数の接続を常時確立する構成と比べると、通信装置の通信負荷を低減させることができる。
上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記の通信装置とサーバとを備える通信システムも、新規で有用である。
(第1実施例)
(通信システム2の構成;図1)
図1に示すように、通信システム2は、プリンタ10と、複数個のPC90−1、90−2、90−3と、画像処理サーバ(以下では、単に「サーバ」と呼ぶ)100と、を備える。プリンタ10及び各PC90−1等は、LAN6を介して、インターネット4に接続されている。サーバ100は、インターネット4に接続されている。従って、プリンタ10及び各PC90−1等は、インターネット4を介して、サーバ100と通信可能である。以下では、複数個のPC90−1、90−2を総称して、「PC90」と記載することがある。
(通信システム2の構成;図1)
図1に示すように、通信システム2は、プリンタ10と、複数個のPC90−1、90−2、90−3と、画像処理サーバ(以下では、単に「サーバ」と呼ぶ)100と、を備える。プリンタ10及び各PC90−1等は、LAN6を介して、インターネット4に接続されている。サーバ100は、インターネット4に接続されている。従って、プリンタ10及び各PC90−1等は、インターネット4を介して、サーバ100と通信可能である。以下では、複数個のPC90−1、90−2を総称して、「PC90」と記載することがある。
(プリンタ10の構成)
プリンタ10は、印刷機能を実行可能な周辺装置(即ちPC90等の周辺装置)である。印刷機能は、カラー印刷とモノクロ印刷とを含む。なお、プリンタ10は、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ10は、操作部12と、表示部14と、ネットワークインターフェース(以下ではインタフェースを「I/F」と記載する)16と、印刷実行部18と、制御部30と、を備える。プリンタ10には、プリンタ名「pr1」が割当てられている。
プリンタ10は、印刷機能を実行可能な周辺装置(即ちPC90等の周辺装置)である。印刷機能は、カラー印刷とモノクロ印刷とを含む。なお、プリンタ10は、印刷機能に加えて、スキャン機能、FAX機能等を実行可能な多機能機であってもよい。プリンタ10は、操作部12と、表示部14と、ネットワークインターフェース(以下ではインタフェースを「I/F」と記載する)16と、印刷実行部18と、制御部30と、を備える。プリンタ10には、プリンタ名「pr1」が割当てられている。
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。ネットワークI/F16は、LAN6に接続されている。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構を備える。
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34に格納されているプログラム36に従って、様々な処理を実行する。メモリ34は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ34は、さらに、ユーザテーブル38(図2参照)を記憶する。
図2は、ユーザテーブル38の一例を示す。図2の上側は、後述する登録プロセス(図3及び図4)が実行される前のテーブルを示し、下側は、登録プロセスが実行された後のテーブルを示す。ユーザテーブル38では、プリンタ10を利用する1以上のユーザのそれぞれについて、当該ユーザに対応する関連情報が登録される。即ち、ユーザテーブル38に複数人のユーザに対応する複数個の関連情報が登録された状態では、複数人のユーザがプリンタ10を共用することができる。関連情報は、No.と、登録状態情報と、ログイン状態情報と、ユーザIDと、パスワードと、アカウント情報と、登録IDと、管理IDと、アクセストークンと、接続時間と、実行枚数と、許容枚数と、印刷回数と、印刷時刻と、制限情報と、が関連付けられた情報である。以下では、1個の関連情報に対応する1人のユーザのことを「対応ユーザ」と記載する。
No.は、関連情報のうちのアカウント情報等が登録される際に昇順で割り当てられる数字(即ち、1、2、3・・・)である。登録状態情報は、「登録」及び「未登録」のどちらかを示す情報であり、「登録」は、対応ユーザがサーバ100を利用するための情報(アカウント情報、登録ID等)がサーバ100に登録済みであることを示し、「未登録」は、当該情報がサーバ100にまだ登録されていないことを示す。ログイン状態情報は、「ログイン」及び「ログアウト」のどちらかを示す情報であり、「ログイン」は、対応ユーザがプリンタ10にログインしていることを示し、「ログアウト」は、対応ユーザがプリンタ10にログインしていないことを示す。
ユーザID及びパスワードは、対応ユーザがプリンタ10にログインするために利用される情報である。例えば、プリンタ10の管理者は、ユーザ毎に、ユーザID及びパスワードをテーブル38に記憶させる。アカウント情報は、対応ユーザがサーバ100にログインするために利用される情報である。登録IDは、サーバ100がプリンタ10を識別するための情報であり、後述の登録プロセス(図3及び図4)においてプリンタ10からサーバ100に送信される。管理IDは、サーバ100がプリンタ10を管理するためにプリンタ10を識別する情報であり、後述の登録プロセス(図3及び図4)においてサーバ100からプリンタ10に送信される。管理IDは、登録IDとは異なる。アクセストークンは、プリンタ10がサーバ100との通信を実行するために利用される認証情報である。
接続時間は、サーバ100とのXMPP(eXtensible Messaging and Presence Protocolの略)接続が確立される時間を示す。実行枚数は、対応ユーザからの指示に起因して印刷が実行された印刷用紙の枚数を示す。許容枚数は、対応ユーザに印刷が許容されている印刷用紙の枚数を示す。許容枚数は、プリンタ10の管理者によって設定される。印刷回数は、対応ユーザからの指示に起因して印刷データが受信された回数である。印刷時刻は、対応ユーザからの指示に起因して最新の印刷データが受信された時刻を示す。
制限情報は、プリンタ10が実行可能なモノクロ印刷及びカラー印刷のうち、ユーザに利用が許可されている1個以上の印刷機能を特定する情報である。「OK」は利用が許可されていることを示し、「NG」は利用が許可されていないことを示す。例えば、ユーザID「U1」によって識別されるユーザは、モノクロ印刷の利用が許可されているが、カラー印刷の利用が許可されていない。また、ユーザID「U2」によって識別されるユーザは、モノクロ印刷及びカラー印刷の利用が許可されている。プリンタ10の管理者は、ユーザ毎に、制限情報をユーザテーブル38に記憶させる。なお、制限情報は、ユーザに利用が許可されている印刷の種類のみならず、ユーザに利用が許可されている印刷用紙のサイズ(例えばA4)等に関する情報をさらに含んでいてもよい。
プリンタ10は、ユーザテーブル38内のアクセストークンを利用して、サーバ100とのXMPP接続を確立することができる。プリンタ10は、ユーザテーブル38に複数個の関連情報が登録されている場合、即ち、複数個のアクセストークンが記憶されている場合には、複数個のXMPP接続を同時的に確立可能である。プリンタ10が同時的に確立可能なXMPP接続の上限数は、プリンタ10のスペック等によって予め決められており、本実施例では「1」である。
(PC90−1等の構成)
PC90は、プリンタ10に印刷を実行させるためのプリンタドライバを備えていない。また、PC90は、例えば、Google Chrome(登録商標)等のブラウザプログラム(図示省略)を備えている。PC90は、本実施例では、据置型の端末装置(例えばデスクトップPC等)であるが、変形例では、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC等の可搬型の端末装置であってもよい。
PC90は、プリンタ10に印刷を実行させるためのプリンタドライバを備えていない。また、PC90は、例えば、Google Chrome(登録商標)等のブラウザプログラム(図示省略)を備えている。PC90は、本実施例では、据置型の端末装置(例えばデスクトップPC等)であるが、変形例では、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC等の可搬型の端末装置であってもよい。
(画像処理サーバ100の構成)
サーバ100は、インターネット上に設置されるサーバであり、例えば、Google(登録商標)によって提供されるGCP(Google Cloud Printの略)サーバである。なお、変形例では、サーバ100は、例えば、プリンタ10のベンダによって提供されるサーバであってもよい。サーバ100は、プリンタ10とPC90との間で印刷の仲介を実行するためのサーバである。即ち、サーバ100は、PC90からサブミットされる画像ファイルを変換して、プリンタ10が解釈可能なデータ形式を有する印刷データを生成し、当該印刷データをプリンタ10に送信する。従って、PC90は、画像ファイルを印刷データに変換するためのプリンタドライバを備えていなくても、サーバ100に画像ファイルをサブミットすれば、プリンタ10に印刷を実行させることができる。プリンタ10の各ユーザは、当該ユーザのアカウント情報(例えばGoogle Account)をサーバ100に予め登録しておく。
サーバ100は、インターネット上に設置されるサーバであり、例えば、Google(登録商標)によって提供されるGCP(Google Cloud Printの略)サーバである。なお、変形例では、サーバ100は、例えば、プリンタ10のベンダによって提供されるサーバであってもよい。サーバ100は、プリンタ10とPC90との間で印刷の仲介を実行するためのサーバである。即ち、サーバ100は、PC90からサブミットされる画像ファイルを変換して、プリンタ10が解釈可能なデータ形式を有する印刷データを生成し、当該印刷データをプリンタ10に送信する。従って、PC90は、画像ファイルを印刷データに変換するためのプリンタドライバを備えていなくても、サーバ100に画像ファイルをサブミットすれば、プリンタ10に印刷を実行させることができる。プリンタ10の各ユーザは、当該ユーザのアカウント情報(例えばGoogle Account)をサーバ100に予め登録しておく。
サーバ100は、アカウントテーブル138が記憶されているメモリ134を備える。アカウントテーブル138では、アカウント情報と、登録IDと、管理IDと、制限情報と、アクセストークンと、が関連付けて記憶されている。
(登録プロセス:図3及び図4)
続いて、図3及び図4を参照して、プリンタ10をサーバ100に登録する登録プロセスについて説明する。図中の「k」は1、2、又は、3である。例えば、k=1である場合には、アカウント情報「AIk」、ユーザID「Uk」、パスワード「Pk」、PC90−kは、それぞれ、「AI1」、「U1」、「P1」、PC90−1を意味する。また、以下では、ユーザID「Uk」に対応するユーザのことを「第kのユーザ」と呼ぶ。なお、以下では、理解の容易化のために、各デバイスのCPU(例えばプリンタ10のCPU32)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えばプリンタ10)を主体として記載することがある。また、プリンタ10によって実行される全ての通信は、ネットワークI/Fを介して実行される。従って、以下では、「ネットワークI/F16を介して」という説明を省略する。また、PC90−kによって実行される以下の各処理は、ブラウザプログラムに従って実行される。従って、以下では、「ブラウザプログラムに従って」という記載を省略する。
続いて、図3及び図4を参照して、プリンタ10をサーバ100に登録する登録プロセスについて説明する。図中の「k」は1、2、又は、3である。例えば、k=1である場合には、アカウント情報「AIk」、ユーザID「Uk」、パスワード「Pk」、PC90−kは、それぞれ、「AI1」、「U1」、「P1」、PC90−1を意味する。また、以下では、ユーザID「Uk」に対応するユーザのことを「第kのユーザ」と呼ぶ。なお、以下では、理解の容易化のために、各デバイスのCPU(例えばプリンタ10のCPU32)が実行する動作を、CPUを主体として記載せずに、各デバイス(例えばプリンタ10)を主体として記載することがある。また、プリンタ10によって実行される全ての通信は、ネットワークI/Fを介して実行される。従って、以下では、「ネットワークI/F16を介して」という説明を省略する。また、PC90−kによって実行される以下の各処理は、ブラウザプログラムに従って実行される。従って、以下では、「ブラウザプログラムに従って」という記載を省略する。
PC90−kは、アカウント情報AIkの入力とサーバ100へのログインの指示とを第kのユーザから受け付けると、T10において、アカウント情報AIkを含むログイン要求をサーバ100に送信する。
サーバ100は、T10において、PC90−kからログイン要求を受信すると、当該ログイン要求に含まれるアカウント情報「AIk」が登録済みであると判断し、T12において、所定画面データをPC90−kに送信する。
PC90−kは、T12において、サーバ100から所定画面データを受信すると、T14において、所定画面を表示する。当該画面は、PC90−kの周囲に存在するプリンタを検索して登録することを確認するためのメッセージと、検索ボタンと、を含む。PC90−kは、T16において、所定画面内の検索ボタンの選択を第kのユーザから受け付けると、T30において、検索信号をブロードキャストによってLAN6に送信する。検索信号は、所定期間に亘って繰り返し送信される。
一方、T20において、プリンタ10は、操作部12へのユーザID「Uk」及びパスワード「Pk」の入力を含むログイン操作を第kのユーザから受け付ける。この場合、T22において、プリンタ10は、ユーザテーブル38において、ユーザID「Uk」及びパスワード「Pk」に関連付けられているログイン状態情報を、「ログアウト」から「ログイン」に変更する。これにより、第kのユーザによるプリンタ10へのログインが完了する。
プリンタ10は、T30において、PC90−kから検索信号を受信すると、プリンタ10に現在ログインしている第kのユーザの登録状態情報が「未登録」であると判断し、T32において、検索信号の送信元であるPC90−kにプリンタ名「pr1」を送信する。
PC90−kは、T32において、プリンタ10からプリンタ名「pr1」を受信すると、T34において、プリンタ名「pr1」を含む検索結果を表示する。PC90−kは、T40において、検索結果に含まれるプリンタ名「pr1」の選択を第kのユーザから受け付けると、T42において、サーバ100に現在ログインしているアカウント情報AIk(T10参照)であるログイン済みアカウント情報AIkを含む登録指示をプリンタ10に送信する。登録指示は、サーバ100への登録をプリンタ10に指示するコマンドである。
プリンタ10は、T42において、PC90−kから登録指示を受信すると、T50において、確認画面を表示部14に表示させる。当該画面は、サーバ100へのプリンタ10の登録を実行するのか否かを確認するメッセージと、YESボタンと、NOボタンと、を含む。プリンタ10は、T52において、確認画面内のYESボタンの選択を第kのユーザから受け付けると、T54において、登録ID「Rk」を生成する。プリンタ10、過去に生成された登録IDに重複しないように、ユニークな登録IDを生成する。なお、登録IDは、プリンタ10のMACアドレスと現在日時との組み合わせ等であってもよい。
T60において、プリンタ10は、T54で生成された登録ID「Rk」と、プリンタ10にログイン中の第kのユーザの制限情報「Lk」と、を含む登録要求をサーバ100に送信する。当該要求は、プリンタ10の登録をサーバ100に要求するコマンドである。制限情報「Lk」は、第kのユーザの制限情報のうち、第kのユーザに利用が許可されている印刷に関係する情報(例えばユーザID「U1」に対応する制限情報であれば、モノクロ印刷を示す情報(図2参照))である。
サーバ100は、T60において、プリンタ10から登録要求を受信すると、当該要求に含まれる登録ID「Rk」がサーバ100のアカウントテーブル138に登録されていないと判断し、T70において、管理ID「Mk」及び登録トークンXkを生成する。サーバ100は、過去に生成された管理ID及び登録トークンに重複しないように、ユニークな管理ID「Mk」及び登録トークンXkを生成する。T72において、サーバ100は、T60の登録要求に含まれる各情報(即ち、登録ID「Rk」及び制限情報「Lk」)と、生成済みの管理ID「Mk」と、生成済みの登録トークンXkと、を関連付けてアカウントテーブル138(図1参照)に記憶させる。なお、アカウントテーブル138では、登録トークン「Xk」が省略されている。そして、T80において、サーバ100は、管理ID「Mk」及び登録トークンXkをプリンタ10に送信する。
プリンタ10は、T80において、サーバ100から管理ID「Mk」及び登録トークンXkを受信すると、図6のT90において、登録トークンXkをPC90−kに送信する。なお、プリンタ10は、T80でサーバ100から管理ID「Mk」及び登録トークンXkを受信することに応じて、アカウント情報AIkの登録が完了したのかを確認するための登録確認(後述のT104参照)をサーバ100に定期的に送信する。
PC90−kは、T90において、プリンタ10から登録トークンXkを受信すると、T100において、アカウント情報AIk及び登録トークンXkを含む登録要求をサーバ100に送信する。当該要求は、アカウント情報AIkの登録をサーバ100に要求するコマンドである。
サーバ100は、T100において、PC90−kから登録要求を受信すると、当該要求に含まれる登録トークンXkと、T72でアカウントテーブル138に記憶された登録トークンXkと、が一致すると判断し(即ち認証が成功し)、T102において、T72でアカウントテーブル138に記憶された各情報に関連付けて、登録要求に含まれるアカウント情報AIkをさらに記憶させる。そして、T110において、サーバ100は、プリンタ10から受信される登録確認(T104参照)に対する応答として、アカウント情報AIkを含む登録通知をプリンタ10に送信する。登録通知は、アカウント情報AIkの登録が完了したことをプリンタ10に通知するための情報である。
プリンタ10は、T110において、サーバ100から登録通知を受信すると、T120において、トークン要求をサーバ100に送信する。トークン要求は、アクセストークンの送信をサーバ100に要求するコマンドである。
サーバ100は、T120において、プリンタ10からトークン要求を受信すると、T130において、ユニークな文字列であるアクセストークンATkを生成し、T132において、T102でアカウントテーブル138に記憶された各情報に関連付けて、生成済みのアクセストークンATkをさらに記憶させる。そして、T140において、サーバ100は、アクセストークンATkをプリンタ10に送信する。
プリンタ10は、T140において、サーバ100からアクセストークンATkを受信すると、T142において、各情報をユーザテーブル38に記憶させる。具体的には、プリンタ10にログイン中のユーザID「Uk」(図3のT20参照)に関連付けて、図4のT110で受信されたアカウント情報AIkと、図3のT54で生成された登録ID「Rk」と、図3のT80で受信された管理ID「Mk」と、図4のT140で受信されたアクセストークンATkと、が記憶される。また、プリンタ10は、ユーザID「Uk」に関連付けられている登録状態情報を「未登録」から「登録」に変更する。また、プリンタ10は、ユーザID「Uk」に関連付けてNo.を記憶する。1回目のT142の処理ではNo.として「1」が記憶され、2回目のT142の処理ではNo.として「2」が記憶される。3回目以降のT142の処理でもNo.が昇順で記憶される。T144において、プリンタ10は、登録完了通知をPC90−kに送信する。登録完了通知は、サーバ100へのプリンタ10の登録が完了したことを示す情報である。
プリンタ10は、T142でユーザテーブル38にアカウント情報が初めて登録された場合(即ち1個目のアカウント情報登録の場合)には、T150において、T140で受信されたアクセストークンATkを含む接続要求をサーバ100に送信する。接続要求は、XMPP接続の確立をサーバ100に要求するコマンドである。サーバ100は、T152において、プリンタ10から接続要求を受信すると、接続要求に含まれるアクセストークンATkが登録済みであると判断し(T132参照、即ち認証が成功し)、XMPP接続を確立する。このようにXMPP接続が確立されると、サーバ100は、プリンタ10から信号を受信しなくても、XMPP接続を利用して、LAN6のファイヤウォールを越えて信号(例えば後述の図9のT282のジョブ通知)をプリンタ10に送信することができる。
一方、プリンタ10は、ユーザテーブル38内に1個以上のアカウント情報が記憶されている状態で、T142でユーザテーブル38に新たなアカウント情報が登録された場合(即ち2個目以降のアカウント情報登録の場合)には、T150、T152を実行することなく、図5の接続関係処理を実行する。上述のように、プリンタ10が同時的に確立可能なXMPP接続の上限数は「1」である。接続関係処理は、ユーザテーブル38内に記憶されているアカウント情報の数が上限数「1」よりも大きい状況において、複数個のXMPP接続を順次確立させることを実現させるための処理である。
例えば、第1のユーザがPC90−1を利用して上記の登録プロセスを実行する場合(即ちk=1の場合)には、ユーザテーブル38において、ユーザID「U1」に関連付けて、アカウント情報AI1と、登録ID「R1」と、管理ID「M1」と、アクセストークンAT1と、No.1が登録される。また、サーバ100では、アカウントテーブル138において、アカウント情報AI1と、登録ID「R1」と、管理ID「M1」と、制限情報「L1」と、アクセストークンAT1と、が関連付けて登録される。そして、プリンタ10は、T142でユーザテーブル38に登録されるアカウント情報AI1が1個目であると判断し、T150において、アクセストークンAT1を含む接続要求をサーバ100に送信する。これにより、T152において、プリンタ10とサーバ100との間にXMPP接続が確立される。
その後、第2のユーザがPC90−2を利用して上記の登録プロセスを実行する場合(即ちk=2の場合)には、ユーザテーブル38において、ユーザID「U2」に関連付けて、アカウント情報AI2と、登録ID「R2」と、管理ID「M2」と、アクセストークンAT2と、No.2とが登録される。また、サーバ100では、アカウント情報AI2と、登録ID「R2」と、管理ID「M2」と、制限情報「L2」と、アクセストークンAT2と、が関連付けて登録される。そして、プリンタ10は、T142でユーザテーブル38に登録されるアカウント情報AI2が2個目であると判断し、T150を実行することなく、図5の接続関係処理を実行する。
その後、第3のユーザがPC90−3を利用して上記の登録プロセスを実行する場合(即ちk=3の場合)には、ユーザテーブル38において、ユーザID「U3」に関連付けて、アカウント情報AI3と、登録ID「R3」と、管理ID「M3」と、アクセストークンAT3と、No.3が登録される。また、サーバ100では、アカウント情報AI3と、登録ID「R3」と、管理ID「M3」と、制限情報「L3」と、アクセストークンAT3と、が関連付けて登録される。これにより、図2の下側のユーザテーブル38が完成する。そして、プリンタ10は、T142でユーザテーブル38に登録されるアカウント情報AI3が3個目であると判断し、T150を実行することなく、図5の接続関係処理を実行する。
上述したように、プリンタ10は、第1のユーザのために登録ID「R1」を含む登録要求をサーバ100に送信し(図3のT60)、第2のユーザのために登録ID「R2」を含む登録要求をサーバ100に送信し、第3のユーザのために登録ID「R3」を含む登録要求をサーバ100に送信する。このために、サーバ100において、第1のユーザのための各情報と、第2のユーザのための各情報と、第3のユーザのための各情報と、が記憶される(図4のT132)。即ち、サーバ100は、プリンタ10が1台のプリンタであるにも関わらず、第1のユーザのための各情報を、管理ID「M1」によって識別される情報として記憶し(T132)、第2のユーザのための各情報を、管理ID「M2」によって識別される情報として登録し(T132)、第2のユーザのための各情報を、管理ID「M3」によって識別される情報として登録する。これにより、複数人のユーザが、1台のプリンタ10を共用することができる。
(接続関係処理:図5)
続いて、図5を参照して、プリンタ10のCPU32によって実行される接続関係処理について説明する。CPU32は、ユーザテーブル38内のアカウント情報の数(以下では、「登録アカウント数」と記載する)が「2」になる場合に、図5の処理を開始する。
続いて、図5を参照して、プリンタ10のCPU32によって実行される接続関係処理について説明する。CPU32は、ユーザテーブル38内のアカウント情報の数(以下では、「登録アカウント数」と記載する)が「2」になる場合に、図5の処理を開始する。
S10において、CPU32は、ユーザテーブル38内の各接続時間を変更する。CPU32は、予め決められている1サイクル時間(本実施例では60秒)内に、ユーザテーブル38内の全てのアクセストークンを利用した各XMPP接続が同じ時間に亘って確立されるように、各接続時間を変更する。具体的には、CPU32は、ユーザテーブル38内の登録アカウント数を特定し、1サイクル時間60秒を特定済みの登録アカウント数で除算することによって、接続時間を算出する。そして、CPU32は、ユーザテーブル38内の各接続時間として算出済みの接続時間を記憶させる。例えば、ユーザテーブル38内に2個のアカウント情報のみが記憶されている場合には、CPU32は、当該2個のアカウント情報に関連付けられている2個の接続時間のそれぞれとして30秒を記憶させる。
S12において、CPU32は、現在確立されているサーバ100とのXMPP接続を切断する。
S20において、CPU32は、ポインタZの値を「ゼロ」に設定する。ポインタZは、ユーザテーブル38内のNo.を特定するための情報である。そして、S22において、CPU32は、ポインタZの値を「1」だけインクリメントする。例えば、CPU32は、ポインタZの現在の値が「0」である場合には、ポインタZの値を「1」に変更し、ポインタZの現在の値が「1」である場合には、ポインタZの値を「2」に変更する。
S24において、CPU32は、ユーザテーブル38からNo.Zに関連付けられているアクセストークンを特定する。
S26において、CPU32は、接続処理(図6)を実行する。接続処理は、S24で特定されたアクセストークンを利用して、サーバ100とのXMPP接続を確立する処理である。
S30において、CPU32は、ポインタZの値がMAX値に一致するのか否かを判断する。MAX値は、登録アカウント数である。例えば、登録アカウント数が「3」である場合、MAX値は「3」である。CPU32は、ポインタZの値がMAX値に一致すると判断する場合(S30でYES)に、S20に戻り、ポインタZの値がMAX値に一致しないと判断する場合(S30でNO)に、S22に戻る。
(接続処理;図6)
続いて、図5のS26で実行される接続処理について説明する。S50において、CUP32は、図5のS24で特定されたアクセストークンを含む接続要求をサーバ100に送信し、サーバ100とのXMPP接続を確立する。
続いて、図5のS26で実行される接続処理について説明する。S50において、CUP32は、図5のS24で特定されたアクセストークンを含む接続要求をサーバ100に送信し、サーバ100とのXMPP接続を確立する。
S52において、CPU32は、No.Zに関連付けられている管理IDを特定し、特定済みの管理IDを含むジョブ要求をサーバ100に送信する。ジョブ要求は、特定済みの管理IDに対応する印刷ジョブの送信を要求する信号である。なお、ジョブ要求は、S50で確立されたXMPP接続を利用して送信される信号ではなく、HTTP(Hyper Text Transfer Protocolの略)に従って送信される信号である。なお、変形例では、S52を省略可能である。
S60において、CPU32は、サーバ100から、S50で確立されたXMPP接続を利用してジョブ通知を受信したのか否かを判断する。ジョブ通知は、印刷ジョブが登録されたことを通知するための信号である。CPU32は、サーバ100からジョブ通知を受信したと判断する場合(S60でYES)に、S62に進む。S62は、S52と同様である。
一方、CPU32は、サーバ100からジョブ通知を受信しなかったと判断する場合(S60でNO)に、S70に進む。S70において、CPU32は、ユーザテーブル38内のNo.Zに関連付けられている接続時間を特定し、S50でXMPP接続が確立されてからの経過時間が特定済みの接続時間に到達したのか否かを判断する。CPU32は、経過時間が特定済みの接続時間に到達していないと判断する場合に、S70でNOと判断し、S60に戻る。即ち、CPU32は、S60及びS70の処理を繰り返し実行することによって、接続時間の間にジョブ通知の受信を監視する。
一方、CPU32は、経過時間が特定済みの接続時間に到達していると判断する場合に、S70でYESと判断し、S72に進む。S72において、CPU32は、切断要求をサーバ100に送信し、サーバ100とのXMPP接続を切断する。CPU32は、S72が終了すると、図6の処理を終了する。
なお、CPU32は、接続関係処理の実行中に、登録アカウント数が「2」以上の範囲で変化する場合に、S10に戻る。
(XMPP接続の接続状態のタイムチャート;図7)
続いて、図7を参照して、図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。タイムチャートは、ユーザテーブル38において各アカウント情報(例えばAI1)に関連付けられているアクセストークンを利用したXMPP接続が確立されている状態であるのか(図中の「接続」)、当該XMPP接続が確立されていない状態であるのか(図中の「非接続」)を示す。
続いて、図7を参照して、図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。タイムチャートは、ユーザテーブル38において各アカウント情報(例えばAI1)に関連付けられているアクセストークンを利用したXMPP接続が確立されている状態であるのか(図中の「接続」)、当該XMPP接続が確立されていない状態であるのか(図中の「非接続」)を示す。
上側のタイムチャートは、第1のユーザがPC90−1を利用して図3及び図4の登録プロセスを実行した後の時刻t0において、第2のユーザによってPC90−2を利用した登録プロセスが実行される場合のタイムチャートである。即ち、上側のタイムチャートは、登録アカウント数が「2」である場合のタイムチャートである。下側のタイムチャートは、時刻t0よりも後の時刻t10において、第3のユーザによってPC90−3を利用した登録プロセスが実行される場合のタイムチャートである。即ち、下側のタイムチャートは、登録アカウント数が「3」である場合のタイムチャートである。
まず、上側のタイムチャートについて説明する。なお、第2のユーザによってPC90−2を利用した登録プロセスが実行される際に、プリンタ10とサーバ100との間には、アクセストークンAT1を利用したXMPP接続(以下では、「第1のXMPP接続」と記載する)が確立されている(図4のT152参照)。プリンタ10は、時刻t0において、登録アカウント数が「2」に変化すると、図5の接続関係処理を実行する。
まず、プリンタ10は、ユーザテーブル38内の各接続時間を変更する(S10)。具体的には、プリンタ10は、1サイクル時間60秒を登録アカウント数「2」で除算することによって、接続時間30秒を算出する。プリンタ10は、各アカウント情報AI1、AI2に対応する接続時間として算出済みの接続時間30秒をユーザテーブル38に記憶させる(S10)。そして、プリンタ10は、第1のXMPP接続を切断し、ポインタZの値を「0」に設定し(S20)、ポインタZの値を「0」から「1」に変更する(S22)。そして、プリンタ10は、ユーザテーブル38内のNo.1に対応するアクセストークンAT1を特定し、特定済みのアクセストークンAT1を利用して第1のXMPP接続を確立する(図6のS50)。
プリンタ10は、現在時刻が時刻t1に到達すると、第1のXMPP接続が確立されてからの経過時間が、ユーザテーブル38内のNo.1に関連付けられている接続時間30秒に到達したと判断し(S70でYES)、第1のXMPP接続を切断する(S72)。そして、プリンタ10は、ポインタZの値「1」がMAX値「2」に到達していないと判断し(S30でNO)、ポインタZの値を「1」から「2」に変更する(S22)。そして、プリンタ10は、ユーザテーブル38内のNo.2に関連付けられているアクセストークンAT2を特定し、特定済みのアクセストークンAT2を利用してサーバ100とのXMPP接続(以下では、「第2のXMPP接続」と記載する)を確立する(S50)。
プリンタ10は、現在時刻が時刻t2に到達すると、第2のXMPP接続が確立されてからの経過時間が、ユーザテーブル38内のNo.2に関連付けられている接続時間30秒に到達したと判断し(S70でYES)、第2のXMPP接続を切断する(S72)。そして、プリンタ10は、ポインタZの値「2」がMAX値「2」に到達したと判断し(S30でYES)、ポインタZの値を「0」に戻し(S20)、ポインタZの値を「0」から「1」に変更する(S22)。そして、プリンタ10は、ユーザテーブル38内のNo.1に関連付けられているアクセストークンAT1を特定し(S24)、第1のXMPP接続を再び確立する(S50)。その後の時刻t3では、時刻t1において実行される処理と同様の処理が実行され、時刻t4では、時刻t2において実行される処理と同様の処理が実行される。このように、プリンタ10は、上限数「1」を超える数のXMPP接続を同時的に確立することなく、2個のXMPP接続を順次確立する。
続いて、下側のタイムチャートについて説明する。プリンタ10は、時刻t10において、登録アカウント数が「2」から「3」に増加すると、図5のS10に戻る。時刻t10で実行される処理は、ユーザテーブル38内に記憶される接続時間が異なる点を除いて、時刻t0で実行される処理と同様である。時刻t10において、ユーザテーブル38に記憶される接続時間について説明する。プリンタ10は、ユーザテーブル38内の登録アカウント数が「3」であることを特定し、1サイクル時間60秒をアカウント数「3」で除算して、接続時間20秒を算出する。そして、プリンタ10は、アカウント情報AI1〜AI3に対応する接続時間として算出済みの接続時間20秒をユーザテーブル38に記憶させる(S10)。このように、アカウント数「3」に対応する接続時間は、アカウント数「2」に対応する接続時間よりも短い。本実施例では、登録アカウント数が大きい程、接続時間が短くなる。
時刻t11(即ち時刻t10から接続時間20秒が経過した時刻)で実行される処理は、時刻t1で実行される処理と同様である。従って、時刻t11では、第1のXMPP接続が切断され、第2のXMPP接続が確立される。
時刻t12(即ち時刻t11から接続時間20秒が経過した時刻)で実行される処理は、ポインタZの値「2」がMAX値「3」に到達したと判断されない点(S30でNO)、及び、アクセストークンAT3を利用したサーバ100とのXMPP接続(以下では、「第3のXMPP接続」と記載する)が確立される点を除いて、時刻t2で実行される処理と同様である。
プリンタ10は、現在時刻が時刻t13(即ち時刻t12から接続時間20秒が経過した時刻)に到達すると、第3のXMPP接続が確立されてからの経過時間が、ユーザテーブル38内のNo.3に関連付けられている接続時間20秒に到達したと判断し(S70でYES)、第3のXMPP接続を切断する(S72)。そして、プリンタ10は、ポインタZの値「3」がMAX値「3」に到達したと判断し(S30でYES)、ポインタZの値を「0」に戻し(S20)、ポインタZの値を「0」から「1」に変更する(S22)。そして、プリンタ10は、ユーザテーブル38内のNo.1に対応するアクセストークンAT1を特定し、特定済みのアクセストークンAT1を利用して第1のXMPP接続を再び確立する(S50)。その後の時刻t14、t15、t16では、それぞれ、時刻t11、t12、t13で実行される処理と同様の処理が実行される。このように、プリンタ10は、上限数「1」を超える個数のXMPP接続を同時的に確立することなく、3個のXMPP接続を順次確立する。
(サーバ印刷プロセス;図8)
続いて、図8及び図9を参照して、サーバ100を利用してプリンタ10に印刷を実行させるサーバ印刷プロセスを説明する。図8の初期状態では、プリンタ10のユーザテーブル38には、アカウント情報AI1に対応する関連情報と、AI2に対応する関連情報と、が記憶されている。また、サーバ100のアカウントテーブル138には、アカウント情報AI1に対応する各情報と、アカウント情報AI2に対応する各情報と、が記憶される。図8の初期状態は、図7の上側のタイムチャートの時刻t0から時刻1の間、即ち、第1のXMPP接続が確立されており、第2のXMPP接続が確立されていない。
続いて、図8及び図9を参照して、サーバ100を利用してプリンタ10に印刷を実行させるサーバ印刷プロセスを説明する。図8の初期状態では、プリンタ10のユーザテーブル38には、アカウント情報AI1に対応する関連情報と、AI2に対応する関連情報と、が記憶されている。また、サーバ100のアカウントテーブル138には、アカウント情報AI1に対応する各情報と、アカウント情報AI2に対応する各情報と、が記憶される。図8の初期状態は、図7の上側のタイムチャートの時刻t0から時刻1の間、即ち、第1のXMPP接続が確立されており、第2のXMPP接続が確立されていない。
プリンタ10は、現在時刻が時刻t1に到達すると、第1のXMPP接続が確立されてからの経過時間が接続時間30秒に到達したと判断し(図6のS70でYES)、T200において、切断要求をサーバ100に送信し、第1のXMPP接続を切断する(図6のS72)。そして、プリンタ10は、T202において、アクセストークンAT2を含む接続要求をサーバ100に送信し、第2のXMPP接続を確立する(S50)。
T210において、プリンタ10は、ユーザID「U1」及びパスワード「P1」の入力を含むログイン操作を第1のユーザから受け付ける。この場合、プリンタ10は、ユーザテーブル38内のユーザID「U1」に関連付けられているログイン状態情報を「ログアウト」から「ログイン」に変更する。
PC90−1は、アカウント情報AI1の入力を第1のユーザから受け付けると、T220において、アカウント情報AI1を含むログイン要求をサーバ100に送信し、T222において、デバイス選択画面要求をサーバ100に送信する。当該要求は、アカウント情報AI1に関連付けられているプリンタを選択する画面に対応するデータの送信をサーバ100に要求するコマンドである。
サーバ100は、T222において、PC90−1からデバイス選択画面要求を受信すると、アカウントテーブル138内のアカウント情報AI1に対応する管理ID「M1」を特定し、T224において、特定済みの管理ID「M1」を含むデバイス選択画面データをPC90−1に送信する。なお、第1のユーザがプリンタ10とは異なるプリンタをサーバ100に登録済みである場合には、デバイス選択画面データは、さらに、当該異なるプリンタの管理IDを含む。
PC90−1は、T224において、サーバ100からデバイス選択画面データを受信すると、T226において、デバイス選択画面を表示する。PC90−1は、T230において、デバイス選択画面内の管理ID「M1」の選択を第1のユーザから受け付けると、T232において、管理ID「M1」を含む設定画面要求をサーバ100に送信する。当該要求は、印刷設定を選択する画面に対応するデータの送信をサーバ100に要求するコマンドである。
サーバ100は、T232において、PC90−1から設定画面要求を受信する場合に、アカウントテーブル138内の管理ID「M1」に関連付けられている制限情報「L1」を特定する。サーバ100は、特定済みの制限情報「L1」で許可されている画像処理(即ちモノクロ印刷)を選択可能な設定画面に対応する設定画面データを生成する。そして、サーバ100は、T234において、生成済みの設定画面データをPC90−1に送信する。
PC90−1は、T234において、サーバ100から設定画面データを受信すると、T236において、設定画面を表示する。当該画面は、モノクロ印刷を示すボタンを含み、カラー印刷を示すボタンを含まない。T240において、PC90−1は、設定画面内のモノクロを示すボタンの選択、及び、画像ファイルF1の選択を第1のユーザから受け付ける。そして、T242において、PC90−1は、画像ファイルF1と、モノクロ印刷を示す印刷設定「モノクロ」と、をサーバ100に送信する。
サーバ100は、T242において、PC90−1から画像ファイルF1及び印刷設定「モノクロ」を受信すると、印刷設定「モノクロ」に従って画像ファイルF1を変換して、印刷データPD1を生成する。そして、サーバ100は、T244において、T232で受信された管理ID「M1」と、生成済みの印刷データPD1と、T232で受信された印刷設定「モノクロ」と、を含む印刷ジョブJ1をメモリ134に記憶させる。この場合、サーバ100は、第1のXMPP接続が確立されていないと判断し、管理ID「M1」を含むジョブ通知をプリンタ10に送信しない。
図9において、プリンタ10は、現在時刻が時刻t2に到達すると、第2のXMPP接続が確立されてからの経過時間が接続時間30秒に到達したと判断し(図6のS70でYES)、T250において、切断要求をサーバ100に送信し、第2のXMPP接続を切断する(S72)。そして、プリンタ10は、T252において、アクセストークンAT1を含む接続要求をサーバ100に送信し、第1のXMPP接続を確立する(S50)。
プリンタ10は、ユーザテーブル38内のアクセストークンAT1に関連付けられている管理ID「M1」を特定し、T254において、管理ID「M1」を含むジョブ要求をサーバ100に送信する(S52)。ジョブ要求は、印刷ジョブの送信をサーバ100に要求するためのコマンドである。
サーバ100は、T254において、プリンタ10からジョブ要求を受信すると、ジョブ要求内の管理ID「M1」を特定し、T256において、メモリ134内の管理ID「M1」を含む印刷ジョブJ1をプリンタ10に送信する。
プリンタ10は、T256において、サーバ100から印刷ジョブJ1を受信すると、T258において、印刷ジョブJ1に従った印刷を実行する。具体的には、プリンタ10は、印刷ジョブJ1内の印刷データPD1を印刷実行部18に供給すると共に、印刷設定「モノクロ」を印刷実行部18に指示する。これにより、印刷データに対応するモノクロ印刷が印刷実行部18によって実行される。そして、プリンタ10は、T260において、ユーザテーブル38内の管理ID「M1」に関連付けられている印刷時刻に現在時刻を記憶させるとともに、印刷回数を「7」から「8」に変更する。
続いて、時刻t2から時刻t3の間、即ち、第1のXMPP接続が確立されている間に、PC90−1及びサーバ100の間で、図8のT220〜T240と同様の処理が実行される状況を想定する。なお、第1のユーザは、図8のT240において、設定画面内のモノクロを示すボタンを選択し、画像ファイルF2を選択する。この場合、サーバ100は、T272において、PC90−1から画像ファイルF2及び印刷設定「モノクロ」を受信し、印刷設定「モノクロ」に従って画像ファイルF2を変換して、印刷データPD2を生成する。そして、サーバ100は、T280において、受信済みの管理ID「M1」(T232参照)と、生成済みの印刷データPD2と、T272で受信された印刷設定「モノクロ」と、を含む印刷ジョブJ2を記憶する。この時点では、第1のXMPP接続が確立されている。このため、サーバ100は、T282において、第1のXMPP接続を利用して、管理ID「M1」を含むジョブ通知をプリンタ10に送信する。
プリンタ10は、T282において、サーバ100からジョブ通知を受信すると(S60でYES)、当該通知内の管理ID「M1」を特定し、管理ID「M1」を含むジョブ要求をサーバ100に送信する(S62)。プリンタ10は、ジョブ要求がサーバ100に送信されることに応じて、T286において、印刷ジョブJ2をサーバ100から受信する。T288は、T258と同様である。そして、プリンタ10は、T290において、ユーザテーブル38内の管理ID「M1」に関連付けられている印刷時刻に現在時刻を記憶させるとともに、印刷回数を「8」から「9」に変更する。T300、T302は、それぞれ、図8のT200、T202と同様である。これにより、時刻t3(即ち時刻t2から接続時間30秒が経過した時刻)において、第1のXMPP接続が切断され、第2のXMPP接続が確立される。
上述のように、プリンタ10は、第1のXMPP接続が確立される場合に、ジョブ要求をサーバ100に送信する。このため、第1のXMPP接続が確立されていない間(例えば時刻t1〜時刻t2の間)に、管理ID「M1」に対応する印刷ジョブがサーバ100に記憶されても、当該印刷ジョブをサーバ100から受信することができる(T256参照)。また、プリンタ10は、第1のXMPP接続が確立されている状態において、管理ID「M1」に対応する印刷ジョブがサーバ100に記憶される場合に、ジョブ通知をサーバ100から受信する(T282参照)。この場合、プリンタ10は、ジョブ要求をサーバ100に送信することに応じて、印刷ジョブをサーバ100から受信する。従って、プリンタ10は、管理ID「M1」に対応する印刷ジョブがサーバ100に記憶されれば、当該印刷ジョブを受信し、当該印刷ジョブ内の印刷データを利用した印刷を実行することができる。管理ID「M2」に対応する印刷ジョブについても同様である。
(本実施例の効果)
本実施例では、プリンタ10が複数人のユーザ(即ち第1のユーザ〜第3のユーザ)によって共用されることを想定しており、当該複数人のユーザのそれぞれについて、同じプリンタ10をサーバ100に登録することができる。このような状況において、図8及び図9のサーバ印刷プロセスを実現させるために、ユーザテーブル38内の複数個のアクセストークンを利用して、複数個のXMPP接続を常時確立する構成が考えられる。しかしながら、プリンタ10は、サーバ100とのXMPP接続を維持するために、生存確認信号をサーバ100に定期的に送信する必要がある。また、プリンタ10は、サーバ100から、サーバ100が起動状態であることを示す生存確認信号を定期的に受信する。このため、複数個のXMPP接続を常時確立する構成の場合、当該複数個のXMPP接続を維持するために、複数個の生存確認信号の送受信が必要となり、プリンタ10の通信負荷が高くなる。そこで、本実施例では、プリンタ10は、登録アカウント数が「2」以上の場合に、XMPP接続数が上限数「1」を超えないように、接続処理を繰り返し実行する。これにより、プリンタは、上限数「1」を超えるXMPP接続をサーバ100と確立することなく複数個のXMPP接続を順次確立することができる。この場合、プリンタ10は、上限数を超えない数の生存確認信号を送信する。従って、プリンタ10が登録アカウント数のXMPP接続を常時確立する構成と比べると、プリンタ10の通信負荷を低減させることができる。
本実施例では、プリンタ10が複数人のユーザ(即ち第1のユーザ〜第3のユーザ)によって共用されることを想定しており、当該複数人のユーザのそれぞれについて、同じプリンタ10をサーバ100に登録することができる。このような状況において、図8及び図9のサーバ印刷プロセスを実現させるために、ユーザテーブル38内の複数個のアクセストークンを利用して、複数個のXMPP接続を常時確立する構成が考えられる。しかしながら、プリンタ10は、サーバ100とのXMPP接続を維持するために、生存確認信号をサーバ100に定期的に送信する必要がある。また、プリンタ10は、サーバ100から、サーバ100が起動状態であることを示す生存確認信号を定期的に受信する。このため、複数個のXMPP接続を常時確立する構成の場合、当該複数個のXMPP接続を維持するために、複数個の生存確認信号の送受信が必要となり、プリンタ10の通信負荷が高くなる。そこで、本実施例では、プリンタ10は、登録アカウント数が「2」以上の場合に、XMPP接続数が上限数「1」を超えないように、接続処理を繰り返し実行する。これにより、プリンタは、上限数「1」を超えるXMPP接続をサーバ100と確立することなく複数個のXMPP接続を順次確立することができる。この場合、プリンタ10は、上限数を超えない数の生存確認信号を送信する。従って、プリンタ10が登録アカウント数のXMPP接続を常時確立する構成と比べると、プリンタ10の通信負荷を低減させることができる。
(対応関係)
プリンタ10が、「通信装置」の一例である。アクセストークンが、「認証情報」の一例である。XMPP接続が、「接続」の一例である。アカウント情報が、「ユーザ情報」の一例である。ジョブ通知が、「特定の通知」の一例である。印刷データが、「対象データ」の一例である。アクセストークンAT2が、「特定の認証情報」の一例である。ユーザテーブル38内のNo.が、「選択順序」の一例である。ユーザテーブル38内の印刷回数が、「受信回数」の一例である。
プリンタ10が、「通信装置」の一例である。アクセストークンが、「認証情報」の一例である。XMPP接続が、「接続」の一例である。アカウント情報が、「ユーザ情報」の一例である。ジョブ通知が、「特定の通知」の一例である。印刷データが、「対象データ」の一例である。アクセストークンAT2が、「特定の認証情報」の一例である。ユーザテーブル38内のNo.が、「選択順序」の一例である。ユーザテーブル38内の印刷回数が、「受信回数」の一例である。
図4のT142が、「第1の記憶制御部」によって実行される処理の一例である。図9のT282、T286が、それぞれ、「通知受信部」、「データ受信部」によって実行される処理の一例である。図6のS50、S72が、「接続制御部」によって実行される処理の一例である。
(第2〜第5実施例)
続いて、第2実施例〜第5実施例について説明する。これらの実施例では、図5のS10で実行される処理が第1実施例とは異なる。
続いて、第2実施例〜第5実施例について説明する。これらの実施例では、図5のS10で実行される処理が第1実施例とは異なる。
(第2実施例)
本実施例では、CPU32は、図5のS10において、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間よりも長くなるように、ユーザテーブル38内の各接続時間を変更する。本実施例では、CPU32は、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間の2倍になるように接続時間を変更する。また、CPU32は、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、ユーザテーブル38内の登録状態情報「登録」に関連付けられているログイン状態情報が変化する場合に、S10に戻る。
本実施例では、CPU32は、図5のS10において、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間よりも長くなるように、ユーザテーブル38内の各接続時間を変更する。本実施例では、CPU32は、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間の2倍になるように接続時間を変更する。また、CPU32は、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、ユーザテーブル38内の登録状態情報「登録」に関連付けられているログイン状態情報が変化する場合に、S10に戻る。
(XMPP接続の接続状態のタイムチャート;図10)
図10を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、全てのログイン状態情報が「ログアウト」である場合のタイムチャートである。上側のタイムチャートの各時刻t20〜t26で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t20よりも後の時刻t30において、第1のユーザがプリンタ10にログインした場合のタイムチャートである。
図10を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、全てのログイン状態情報が「ログアウト」である場合のタイムチャートである。上側のタイムチャートの各時刻t20〜t26で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t20よりも後の時刻t30において、第1のユーザがプリンタ10にログインした場合のタイムチャートである。
下側のタイムチャートについて説明する。プリンタ10は、時刻t30において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応するログイン状態情報が、それぞれ、「ログイン」、「ログアウト」、「ログアウト」であることを特定する。そして、プリンタ10は、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に関連付けられている接続時間の比率が「2:1:1」となるように、1サイクル時間60秒を分割する。この場合、各アカウント情報AI1、AI2、AI3の接続時間は、それぞれ、30秒、15秒、15秒と算出される。そして、プリンタ10は、算出済みの各接続時間をユーザテーブル38に記憶させる(S10)。その後の時刻t31〜t36で実行される処理は、上側のタイムチャートのt21〜t26で実行される処理と同様である。
(本実施例の効果)
ユーザテーブル38内のログイン状態情報が「ログイン」に対応するユーザは、ログイン状態情報が「ログアウト」であるユーザよりも、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、ログイン状態情報「ログイン」に対応する接続時間を長くすることで、当該ログイン状態情報に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
ユーザテーブル38内のログイン状態情報が「ログイン」に対応するユーザは、ログイン状態情報が「ログアウト」であるユーザよりも、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、ログイン状態情報「ログイン」に対応する接続時間を長くすることで、当該ログイン状態情報に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
(第3実施例)
本実施例では、CPU32は、図5の接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、更新時間が経過する毎(例えば12時間毎)に、S10に戻る。そして、CPU32は、更新時間が経過することに応じてS10に戻る場合に、S10において、ユーザテーブル38内の各印刷時刻を特定し、印刷時刻が新しい順に、当該印刷時刻に対応する接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
本実施例では、CPU32は、図5の接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、更新時間が経過する毎(例えば12時間毎)に、S10に戻る。そして、CPU32は、更新時間が経過することに応じてS10に戻る場合に、S10において、ユーザテーブル38内の各印刷時刻を特定し、印刷時刻が新しい順に、当該印刷時刻に対応する接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
(XMPP接続の接続状態のタイムチャート;図11)
図11を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、ユーザテーブル38内の全ての印刷時刻が空の状態である場合のタイムチャートである。上側のタイムチャートの各時刻t40〜t46で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t50において、更新時間したと判断される場合のタイムチャートである。なお、時刻t50において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷時刻は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に新しい。
図11を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、ユーザテーブル38内の全ての印刷時刻が空の状態である場合のタイムチャートである。上側のタイムチャートの各時刻t40〜t46で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t50において、更新時間したと判断される場合のタイムチャートである。なお、時刻t50において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷時刻は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に新しい。
下側のタイムチャートについて説明する。プリンタ10は、時刻t50において、ユーザテーブル38内の各印刷時刻を特定する。そして、プリンタ10は、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷時刻が、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に新しいことを特定し、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する接続時間の比率が「3:2:1」となるように、1サイクル時間60秒を分割する。この場合、各アカウント情報AI1、AI2、AI3の接続時間は、それぞれ、30秒、20秒、10秒と算出される。そして、プリンタ10は、算出済みの各接続時間をユーザテーブル38に記憶させる(S10)。その後の時刻t51〜t56で実行される処理は、上側のタイムチャートの時刻t41〜t46で実行される処理と同様である。
(本実施例の効果)
上記の構成によると、ユーザテーブル38内の最新の印刷時刻に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル38内の最新の印刷時刻に対応するユーザは、再度、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、最新の印刷時刻に対応する接続時間を最も長くすることで、当該印刷時刻に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
上記の構成によると、ユーザテーブル38内の最新の印刷時刻に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル38内の最新の印刷時刻に対応するユーザは、再度、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、最新の印刷時刻に対応する接続時間を最も長くすることで、当該印刷時刻に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
(第4実施例)
本実施例では、CPU32は、図5の接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、更新時間が経過する毎(例えば12時間毎)に、S10に戻る。そして、CPU32は、更新時間が経過することに応じてS10に戻る場合に、S10において、ユーザテーブル38内の各印刷回数を特定し、印刷回数が多い順に接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
本実施例では、CPU32は、図5の接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、更新時間が経過する毎(例えば12時間毎)に、S10に戻る。そして、CPU32は、更新時間が経過することに応じてS10に戻る場合に、S10において、ユーザテーブル38内の各印刷回数を特定し、印刷回数が多い順に接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
(XMPP接続の接続状態のタイムチャート;図12)
図12を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、時刻t60において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t60において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は同じである。上側のタイムチャートの各時刻t60〜t66で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t70において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t70において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多い。
図12を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、時刻t60において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t60において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は同じである。上側のタイムチャートの各時刻t60〜t66で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t70において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t70において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多い。
下側のタイムチャートについて説明する。プリンタ10は、時刻t70において、ユーザテーブル38内の各印刷回数を特定する。そして、プリンタ10は、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する回数が、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多いことを特定し、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する接続時間の比率が「3:2:1」となるように、1サイクル時間60秒を分割する。この場合、各アカウント情報AI1、AI2、AI3の接続時間は、それぞれ、30秒、20秒、10秒と算出される。そして、プリンタ10は、算出済みの各接続時間をユーザテーブル38に記憶させる(S10)。その後の時刻t71〜t76で実行される処理は、上側のタイムチャートのt61〜t66で実行される処理と同様である。
(本実施例の効果)
上記の構成によると、ユーザテーブル38内の最も多い印刷回数に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル38内の最も多い印刷回数に対応するユーザは、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、最も多い印刷回数に対応する接続時間を最も長くすることで、当該印刷回数に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
上記の構成によると、ユーザテーブル38内の最も多い印刷回数に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル38内の最も多い印刷回数に対応するユーザは、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、最も多い印刷回数に対応する接続時間を最も長くすることで、当該印刷回数に対応するユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
(第5実施例)
本実施例では、CPU32は、図5のS10において、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、ユーザテーブル38内のいずれかの実行枚数が許容枚数に達する場合に、S10に戻る。そして、CPU32は、S10において、実行枚数が許容枚数に達していないユーザに対応する接続時間を、実行枚数が許容枚数に達しているユーザに対応する接続時間よりも長くなるように、ユーザテーブル38内の接続時間を変更する。本実施例では、CPU32は、実行枚数が許容枚数に達していないユーザに対応する接続時間が、実行枚数が許容枚数に達しているユーザに対応する接続時間の2倍になるようにユーザテーブル38内の接続時間を変更する。
本実施例では、CPU32は、図5のS10において、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、ユーザテーブル38内のいずれかの実行枚数が許容枚数に達する場合に、S10に戻る。そして、CPU32は、S10において、実行枚数が許容枚数に達していないユーザに対応する接続時間を、実行枚数が許容枚数に達しているユーザに対応する接続時間よりも長くなるように、ユーザテーブル38内の接続時間を変更する。本実施例では、CPU32は、実行枚数が許容枚数に達していないユーザに対応する接続時間が、実行枚数が許容枚数に達しているユーザに対応する接続時間の2倍になるようにユーザテーブル38内の接続時間を変更する。
(XMPP接続の接続状態のタイムチャート;図13)
図13を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、ユーザテーブル38内の全ての実行枚数が許容枚数に達していない場合のタイムチャートである。上側のタイムチャートの各時刻t80〜t86で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t90において、ユーザテーブル38内のアカウント情報AI1に対応する実行枚数が許容枚数に達した場合のフローチャートである。
図13を参照して、本実施例の図5及び図6の処理によって実現されるXMPP接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「3」の状態において、ユーザテーブル38内の全ての実行枚数が許容枚数に達していない場合のタイムチャートである。上側のタイムチャートの各時刻t80〜t86で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t90において、ユーザテーブル38内のアカウント情報AI1に対応する実行枚数が許容枚数に達した場合のフローチャートである。
下側のタイムチャートについて説明する。プリンタ10は、時刻t90において、ユーザテーブル38内の各印刷回数を特定する。そして、プリンタ10は、ユーザテーブル38内のアカウント情報AI1に対応する実行枚数が許容枚数に達しており、アカウント情報AI2、AI3に対応するに実行枚数が許容枚数に達していないことを特定する。そして、プリンタ10は、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する接続時間の比率が「0.5:1:1」となるように、1サイクル時間60秒を分割する。この場合、各アカウント情報AI1、AI2、AI3の接続時間は、それぞれ、12秒、24秒、24秒と算出される。そして、プリンタ10は、算出済みの各接続時間をユーザテーブル38に記憶させる(S10)。その後の時刻t91〜t96で実行される処理は、上側のタイムチャートのt81〜t86で実行される処理と同様である。
(本実施例の効果)
ユーザテーブル38内の実行枚数が許容枚数に達していないユーザは、実行枚数が許容枚数に達しているユーザと比較して、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、ユーザテーブル38内の実行枚数が許容枚数に達していないユーザに対応する接続時間を長くすることで、当該ユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
ユーザテーブル38内の実行枚数が許容枚数に達していないユーザは、実行枚数が許容枚数に達しているユーザと比較して、画像ファイルをサーバ100にサブミットする可能性が高い。プリンタ10は、ユーザテーブル38内の実行枚数が許容枚数に達していないユーザに対応する接続時間を長くすることで、当該ユーザによって画像ファイルがサーバ100にサブミットされる場合に、ジョブ通知をサーバ100から受信する可能性を高めることができる。
(第6実施例)
続いて、第6実施例について説明する。本実施例では、プリンタ10のCPU32は、図5の接続関係処理に代えて、図14の接続関係処理及び図15の切断処理を実行する。本実施例では、CPU32は、サーバ100と同時的に確立可能なXMPP接続の上限数を変更可能である。
続いて、第6実施例について説明する。本実施例では、プリンタ10のCPU32は、図5の接続関係処理に代えて、図14の接続関係処理及び図15の切断処理を実行する。本実施例では、CPU32は、サーバ100と同時的に確立可能なXMPP接続の上限数を変更可能である。
(接続関係処理;図14)
図14を参照して、本実施例の接続関係処理について説明する。S110において、CPU32は、登録アカウント数を上限数で除算した第1の除算値が第1の所定値p1以上であるのか否かを判断する。第1の所定値p1は、上限数を変更するのか否かを判定するための閾値であり、本実施例では、「3」である。第1の所定値p1は、上限数が登録アカウント数未満になるように設定される。CPU32は、第1の除算値が第1の所定値p1以上である場合に、S110でYESと判断して、S112に進む。S112において、CPU32は、上限数を変更する。本実施例では、CPU32は、上限数を「1」だけインクリメントする。なお、CPU32は、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合に、S110に戻る。
図14を参照して、本実施例の接続関係処理について説明する。S110において、CPU32は、登録アカウント数を上限数で除算した第1の除算値が第1の所定値p1以上であるのか否かを判断する。第1の所定値p1は、上限数を変更するのか否かを判定するための閾値であり、本実施例では、「3」である。第1の所定値p1は、上限数が登録アカウント数未満になるように設定される。CPU32は、第1の除算値が第1の所定値p1以上である場合に、S110でYESと判断して、S112に進む。S112において、CPU32は、上限数を変更する。本実施例では、CPU32は、上限数を「1」だけインクリメントする。なお、CPU32は、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合に、S110に戻る。
一方、CPU32は、第1の除算値が第1の所定値p1未満である場合に、S110でNOと判断し、S112をスキップし、S120に進む。即ち、CPU32は、上限数を変更しない。
S120において、CPU32は、ユーザテーブル38内の各接続時間を変更する。S122、S130〜S134は、それぞれ、図6のS12、S20〜S24と同様である。
S140において、CPU32は、S134で特定されたアクセストークンを利用したXMPP接続が確立されているのか否かを判断する。CPU32は、特定済みのアクセストークンを利用したXMPP接続が確立されていると判断する場合(S140でYES)に、S142、S144をスキップして、S150に進む。一方、CPU32は、特定済みのアクセストークンを利用したXMPP接続が確立されていないと判断する場合(S140でNO)に、S142に進む。
S142において、CPU32は、現在確立されているXMPP接続の数(以下では、「XMPP接続数」と記載することがある)が上限数未満であるのか否かを判断する。CPU32は、XMPP接続数が上限数未満である場合に、S142でYESと判断し、S144に進む。一方、CPU32は、XMPP接続数が上限数に一致する場合に、S142でNOと判断し、XMPP接続数が上限数未満となることを監視する。S144は、図6のS50と同様である。S150は、図5のS30と同様である、CPU32は、S150でYESと判断される場合に、S130に進み、S150でNOと判断される場合に、S132に進む。
(切断処理;図15)
続いて、図15を参照して、プリンタ10のCPU32によって実行される切断処理について説明する。CPU32は、図14のS144でサーバ100とのXMPP接続が確立される場合に、図15の処理を開始する。S172〜192は、図6のS52〜S72と同様である。なお、CPU32は、上限数が「2」以上である場合、複数個の切断処理を並行して実行し得る。
続いて、図15を参照して、プリンタ10のCPU32によって実行される切断処理について説明する。CPU32は、図14のS144でサーバ100とのXMPP接続が確立される場合に、図15の処理を開始する。S172〜192は、図6のS52〜S72と同様である。なお、CPU32は、上限数が「2」以上である場合、複数個の切断処理を並行して実行し得る。
(XMPP接続の接続状態のタイムチャート;図16)
続いて、図16を参照して、図14及び図15の処理によって実現されるタイムチャートを説明する。上側のタイムチャートの各時刻t100〜時刻t104で実行される処理は、図7の上側のタイムチャートの各時刻t0〜時刻t4で実行される処理同様である。と同様である。下側のタイムチャートは、時刻t110において、登録アカウント数が「2」から「3」に変化する場合のタイムチャートである。
続いて、図16を参照して、図14及び図15の処理によって実現されるタイムチャートを説明する。上側のタイムチャートの各時刻t100〜時刻t104で実行される処理は、図7の上側のタイムチャートの各時刻t0〜時刻t4で実行される処理同様である。と同様である。下側のタイムチャートは、時刻t110において、登録アカウント数が「2」から「3」に変化する場合のタイムチャートである。
下側のタイムチャートについて説明する。プリンタ10は、時刻t110において、登録アカウント数「3」を上限数「1」で除算した除算値「3」が、第1の所定値p1(「3」)以上であると判断し(S110でYES)、上限数を「1」から「2」に変更する(S112)。そして、プリンタ10は、ユーザテーブル38内の各接続時間を変更する(S120)。具体的には、プリンタ10は、1サイクル時間60秒に上限数「2」を乗算し、乗算値120秒を登録アカウント数「3」で除算することによって、接続時間40秒を算出する。プリンタ10は、各アカウント情報AI1、AI2、AI3に対応する接続時間として算出済みの接続時間40秒をユーザテーブル38に記憶させる(S120)。
次いで、プリンタ10は、現在確立されているサーバ100とのXMPP接続を切断し(S122)、ポインタZの値を「0」に設定し(S130)、ポインタZの値を「0」から「1」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.1に対応するアクセストークンAT1を特定し(S134)、第1のXMPP接続が確立されていないと判断し(S140でYES)、XMPP接続数「0」が上限数「2」未満であると判断し(S142でYES)、第1のXMPP接続を確立する(S144)。
また、CPU32は、ポインタZの値「1」がMAX値「3」に到達していないと判断し(S150でNO)、ポインタZの値を「1」から「2」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.2に対応するアクセストークンAT2を特定し、第2のXMPP接続が確立されていないと判断し(S140でYES)、XMPP接続数「1」が上限数「2」未満であると判断し(S142でYES)、第2のXMPP接続を確立する(S144)。このように、時刻t111において、2個のXMPP接続が同時的に確立される。
また、CPU32は、ポインタZの値「2」がMAX値「3」に到達していないと判断し(S150でNO)、ポインタZの値を「2」から「3」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.3に対応するアクセストークンAT3を特定し、第3のXMPP接続が確立されていないと判断し(S140でYES)、XMPP接続数「2」が上限数「2」に一致すると判断し(S142でNO)、XMPP接続数が上限数未満になることを監視する。
プリンタ10は、現在時刻が時刻t111に到達すると、第1のXMPP接続が確立されてからの経過時間が、ユーザテーブル38内のNo.1に対応する接続時間40秒に到達したと判断し(図15のS190でYES)、第1のXMPP接続を切断する(S192)。プリンタ10は、同様に、第2のXMPP接続も切断する。この場合、プリンタ10は、XMPP接続数「0」が上限数「2」未満になったと判断し(S142でYES)、第3のXMPP接続を確立する。
また、CPU32は、ポインタZの値「3」がMAX値「3」に到達したと判断し(S150でYES)、ポインタZの値を「0」に戻し(S130)、ポインタZの値を「0」から「1」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.1に対応するアクセストークンAT1を特定し、第1のXMPP接続が確立されていないと判断し(S140でYES)、XMPP接続数「1」が上限数「2」未満であると判断し(S142でYES)、第1のXMPP接続を確立する(S144)。
その後の時刻t112では、第3のXMPP接続及び第1のXMPP接続が切断され、第2のXMPP接続及び第3のXMPP接続が確立される。また、時刻t113では、第2のXMPP接続及び第3のXMPP接続が切断され、第1のXMPP接続及び第1のXMPP接続が確立される。時刻t114で実行される処理は、時刻t110で実行される処理と同様である。
(本実施例の効果)
本実施例では、プリンタ10は、第1の除算値(登録アカウント数/上限数)が第1の所定値p1以上となる場合(S110でYES)に、上限数を1だけインクリメントする(S112)。これにより、ユーザテーブル38内の各接続時間を長くすることができる。従って、登録アカウント数が多くなっても、ユーザテーブル38内の各接続時間が比較的に短くなることを抑制することができる。また、本実施例では、上限数は、登録アカウント数未満である。従って、登録アカウント数と同じ数のXMPP接続が常時確立される構成と比べると、プリンタ10の通信負荷を低減することができる。
本実施例では、プリンタ10は、第1の除算値(登録アカウント数/上限数)が第1の所定値p1以上となる場合(S110でYES)に、上限数を1だけインクリメントする(S112)。これにより、ユーザテーブル38内の各接続時間を長くすることができる。従って、登録アカウント数が多くなっても、ユーザテーブル38内の各接続時間が比較的に短くなることを抑制することができる。また、本実施例では、上限数は、登録アカウント数未満である。従って、登録アカウント数と同じ数のXMPP接続が常時確立される構成と比べると、プリンタ10の通信負荷を低減することができる。
(第7実施例)
第7実施例では、図14のS110で実行される処理が第6実施例とは異なる。また、CPU32は、S110の前にS108を実行する。また、本実施例では、CPU32は、ユーザテーブル38内の印刷回数が多い順に接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
第7実施例では、図14のS110で実行される処理が第6実施例とは異なる。また、CPU32は、S110の前にS108を実行する。また、本実施例では、CPU32は、ユーザテーブル38内の印刷回数が多い順に接続時間が長くなるように、ユーザテーブル38内の各接続時間を変更する。
図14のS108において、CPU32は、現在の上限数を利用して、接続時間を算出する。次いで、S110において、CPU32は、非接続時間を接続時間で除算した第2の除算値が第2の所定値p2以上であるのか否かを判断する。第2の所定値p2は、上限数を変更するのか否かを判定するための閾値であり、本実施例では、「4」である。なお、第2の所定値p2は、上限数が登録アカウント数未満になるように設定される。CPU32は、S108で特定した接続時間の中から、最も短い接続時間を特定する。そして、CPU32は、1サイクル時間60秒内における接続時間と、非接続時間と、を特定し、特定済みの接続時間を特定済みの非接続時間で除算することによって、第2の除算値を算出する。そして、CPU32は、算出済みの第2の除算値が第2の所定値p2であるのか否かを判断する。CPU32は、第2の除算値が第2の所定値p2以上であると判断する場合(S110でYES)に、S112に進み、第2の除算値が第2の所定値p2未満であると判断する場合(S110でNO)に、S112をスキップして、S120に進む。なお、CPU32は、接続関係処理を実行中に、ユーザテーブル38内の登録アカウント数が「2」以上の範囲で変化する場合、又は、更新時間が経過する毎(例えば12時間毎)に、S108に戻る。
(XMPP接続の接続状態のタイムチャート;図17)
続いて、図17を参照して、図14及び図15の処理によって実現されるタイムチャートを説明する。上側のタイムチャートは、時刻t120において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t120において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は同じである。上側のタイムチャートの各時刻t120〜t126で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t130において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t130において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する各印刷回数は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多い。なお、図17では、1個のアカウント情報AI(例えばアカウント情報AI1)に着目して、1サイクル時間60秒における当該アカウント情報に対応するアクセストークンAT1を利用したXMPP接続の確立が維持されている時間を接続時間CTと表し、当該XMPPが切断されている時間を非接続時間NCTと表している。
続いて、図17を参照して、図14及び図15の処理によって実現されるタイムチャートを説明する。上側のタイムチャートは、時刻t120において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t120において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する印刷回数は同じである。上側のタイムチャートの各時刻t120〜t126で実行される処理は、図7の下側のタイムチャートの各時刻t10〜時刻t16で実行される処理と同様である。下側のタイムチャートは、時刻t130において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻t130において、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する各印刷回数は、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多い。なお、図17では、1個のアカウント情報AI(例えばアカウント情報AI1)に着目して、1サイクル時間60秒における当該アカウント情報に対応するアクセストークンAT1を利用したXMPP接続の確立が維持されている時間を接続時間CTと表し、当該XMPPが切断されている時間を非接続時間NCTと表している。
下側のタイムチャートについて説明する。プリンタ10は、時刻t130において、ユーザテーブル38内の各印刷回数を特定する。そして、プリンタ10は、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する各印刷回数が、アカウント情報AI1、アカウント情報AI2、アカウント情報AI3の順に多いことを特定し、ユーザテーブル38内の各アカウント情報AI1、AI2、AI3に対応する各接続時間の比率が「3:2:1」となるように、1サイクル時間60秒を分割する。この場合、各アカウント情報AI1、AI2、AI3の接続時間は、それぞれ、30秒、20秒、10秒と算出される(S108)。そして、プリンタ10は、アカウント情報AI3に対応する接続時間が最も短いことを特定し、1サイクル時間60秒内の非接続時間を50秒と特定する。そして、プリンタ10は、非接続時間50秒を接続時間10秒で除算した第2の除算値「5」が第2の所定値「4」以上であると判断し(S110でYES)、上限数を「1」から「2」に変更する(S112)。そして、プリンタ10は、算出済みの各接続時間をユーザテーブル38に記憶させる(S120)。その後に実行される処理は、図16の時刻t110で実行される処理と同様である。即ち、第1のXMPP接続及び第2のXMPP接続が確立される。また、プリンタ10は、XMPP接続数が上限数「2」未満になることを監視する。
プリンタ10は、現在時刻が時刻t131に到達すると、第2のXMPP接続が確立されてからの経過時間が、ユーザテーブル38内のNO.2に対応する接続時間20秒に到達したと判断し(図15のS190でYES)、第2のXMPP接続を切断する(S192)。この場合、プリンタ10は、XMPP接続数「1」が上限数「2」未満になったと判断し(S142でYES)、第3のXMPP接続を確立する。
また、CPU32は、ポインタZの値「3」がMAX値「3」に到達したと判断し(S150でYES)、ポインタZの値を「0」に戻し(S130)、ポインタZの値を「0」から「1」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.1に対応するアクセストークンAT1を特定し、第1のXMPP接続が確立されていると判断し(S140でYES)、ポインタZの値「1」がMAX値「3」に到達していないと判断し(S150でNO)、ポインタZの値を「1」から「2」に変更する(S132)。そして、プリンタ10は、ユーザテーブル38内のNo.2に対応するアクセストークンAT2を特定し、第2のXMPP接続数が確立されていないと判断し(S140でNO)、XMPP接続数「2」が上限数「2」に一致すると判断し(S142でNO)、XMPP接続数が上限数「2」未満になることを監視する。その後の時刻t132〜t140では、第1のXMPP接続〜第3のXMPP接続が順次確立される。
このような構成によっても、第6実施例と同様の効果を奏することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(変形例1)プリンタ10のユーザテーブル38内の接続時間が予め設定されていてもよい。本変形例では、図5のS10を省略可能である。本変形例では、「第2の記憶制御部」、「第3の記憶制御部」を省略可能である。
(変形例2)CPU32は、第7実施例における図14のS110において、CPU32は、非接続時間を接続時間で除算した値が、第3の所定値以下であるのか否かを判断してもよい。また、別の変形例では、CPU32は、接続時間と非接続時間を加算し、非接続時間を当該加算値で除算した値が、第4の所定値以上であるのか否かを判断してもよい。また、別の変形例では、CPU32は、接続時間と非接続時間を加算し、接続時間を当該加算値で除算した値が、第5の所定値以下であるのか否かを判断してもよい。このような構成によっても、図6と同様の効果を奏することができる。
(変形例3)CPU32は、図6のS110において、登録アカウント数を上限数で除算した第1の除算値が、第6の所定値以下であるのか否かを判断してもよい。本変形例では、CPU32は、第1の除算値が第6の所定値以下であると判断される場合に、S112において、上限数を「1」だけデクリメントする。例えば、第6の所定値が「2」である場合、CPU32は、登録アカウント数が「3」から「2」に変化すると、第1の除算値が第6の所定値以下であると判断し、上限数を「2」から「1」に変更する。
(変形例4)CPU32は、第7実施例における図14のS110において、非接続時間が所定時間以上であるのか否かを判断してもよい。このような構成によっても、図6と同様の効果を奏することができる。
(変形例5)プリンタ10のユーザテーブル38に、実行枚数が記憶されていなくてもよい。本変形例では、プリンタ10は、印刷が実行される毎に、当該印刷において使用した印刷用紙の枚数を、ユーザテーブル38内の制限枚数から減算する。そして、プリンタ10は、ユーザテーブル38内の許容枚数が「0」になる場合に、実行枚数が許容枚数に達したと判断する。
(変形例6)上記の各実施例では、図3〜図17の処理がソフトウェア(即ちプログラム36)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
2:通信システム、4:インターネット、6:LAN、10:プリンタ、12:操作部、14:表示部、16:ネットワークI/F、18:印刷実行部、30:制御部、32:CPU、34:メモリ、36:プログラム、38:ユーザテーブル、90−1、90−2、90−3:PC、100:画像処理サーバ、134:メモリ、138:アカウントテーブル
Claims (12)
- 通信装置であって、
メモリと、
N人(前記Nは1以上の整数)のユーザに対応するN個の認証情報を前記メモリに記憶させる第1の記憶制御部であって、前記N個の認証情報は、インターネットを介してN個の接続をサーバと確立するための情報であり、前記サーバは、前記N人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第1の記憶制御部と、
前記N個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、
前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、
前記Nが2以上であり、かつ、前記Nが上限数M(前記Mは1以上の整数)より大きい場合に、接続変更処理を繰り返し実行することによって前記N個の接続を順次確立する接続制御部と、を備え、
前記接続変更処理は、
前記N個の認証情報のうちのM個の認証情報に対応するM個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記M個の接続のうちの第1の接続を切断する切断処理と、
前記第1の接続が切断された後に、前記N個の認証情報のうち、前記M個の認証情報とは異なる認証情報を利用して、第2の接続を前記サーバと確立する確立処理と、
を含む、通信装置。 - 前記接続変更処理は、さらに、
前記N個の認証情報のうちの前記M個の認証情報に対応する前記M個の接続が前記サーバと確立されている状態で前記所定のタイミングが到来する場合に、選択順序に従って、前記N個の認証情報のうちの1個の認証情報を選択する選択処理であって、前記選択順序は、前記Nが2以上であり、かつ、前記Nが前記Mより大きい場合に、前記N個の認証情報を順次選択するための順序である、前記選択処理と、
選択済みの前記1個の認証情報に対応する1個の接続が現在確立されているのか否かを判断処理と、を含み、
前記接続制御部は、
選択済みの前記1個の認証情報に対応する前記1個の接続が現在確立されていないと判断される場合に、前記第1の接続が切断された後に、選択済みの前記1個の認証情報を前記異なる認証情報として利用して、前記第2の接続を前記サーバと確立する前記確立処理を実行し、
選択済みの前記1個の認証情報に対応する前記1個の接続が現在確立されていると判断される場合に、前記選択処理と前記判断処理とを再び実行する、請求項1に記載の通信装置。 - 前記通信装置は、さらに、
前記Mとして第1の値が設定されている状態で所定の条件が満たされる場合に、前記Mとして、前記第1の値に代えて、前記第1の値とは異なる第2の値を設定する上限数設定部を備える、請求項1又は2に記載の通信装置。 - 前記Mに対する前記Nの値が所定値以上になる場合に、前記所定の条件が満たされ、
前記第2の値は、前記第1の値よりも大きい、請求項3に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の認証情報に関連付けてN個の接続時間を前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第2の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうち、前記第1の接続に対応する接続時間に到達することを含み、
前記N個の認証情報のうちのいずれか1個の認証情報に関連付けられている接続時間に対する非接続時間の割合が所定値以上になる場合に、前記所定の条件が満たされ、
前記非接続時間は、前記いずれか1個の認証情報に対応する接続が切断されてから当該接続が再び確立されるまでの時間であり、
前記第2の値は、前記第1の値よりも大きい、請求項3に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の認証情報に関連付けてN個の接続時間を前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第2の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうち、前記第1の接続に対応する接続時間に到達することを含み、
前記N個の認証情報のうちのいずれか1個の認証情報に対応する接続が切断されてから当該接続が再び確立されるまでの時間である非接続時間が所定時間以上になる場合に、前記所定の条件が満たされ、
前記第2の値は、前記第1の値よりも大きい、請求項3に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の接続のそれぞれが維持される時間である接続時間として同じ値を前記メモリに記憶させる第3の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が前記接続時間に到達することを含み、
前記第3の記憶制御部は、前記Nが大きくなる場合に、前記メモリ内の前記接続時間を現在の値よりも小さい値に変更する、請求項1から4のいずれか一項に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の認証情報に関連付けてN個の接続時間を前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第2の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうちの前記第1の接続に対応する接続時間に到達することを含み、
前記第2の記憶制御部は、前記N人のユーザのうちのいずれかのユーザが前記通信装置にログインする場合に、当該ユーザに対応する接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記N個の接続時間のいずれかの値を変更する、請求項1から6のいずれか一項に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の認証情報に関連付けてN個の接続時間を前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第2の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうち、前記第1の接続に対応する接続時間に到達することを含み、
前記第2の記憶制御部は、前記N個の接続時間のうち、最新の前記対象データを受信するために利用された認証情報に関連付けられている接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記N個の接続時間のいずれかの値を変更する、請求項1から6のいずれか一項に記載の通信装置。 - 前記通信装置は、さらに、
前記N個の認証情報に関連付けてN個の接続時間とN個の受信回数とを前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間であり、前記N個の受信回数のそれぞれは、当該受信回数に関連付けられている認証情報を利用して前記対象データを受信した回数である、前記第2の記憶制御部を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうち、前記第1の接続に対応する接続時間に到達することを含み、
前記第2の記憶制御部は、前記N個の接続時間のうち、最大の前記受信回数に関連付けられている接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記N個の接続時間のいずれかの値を変更する、請求項1から6のいずれか一項に記載の通信装置。 - 前記通信装置は、さらに、
印刷実行部と、
前記N個の認証情報に関連付けてN個の接続時間を前記メモリに記憶させる第2の記憶制御部であって、前記N個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第2の記憶制御部と、
前記サーバから前記対象データが受信される場合に、前記対象データを利用した印刷を前記印刷実行部に実行させる印刷制御部と、
前記N個の認証情報に関連付けてN個の許容枚数とN個の実行枚数とを前記メモリに記憶させる第4の記憶制御部であって、前記N個の許容枚数のそれぞれは、当該許容枚数に関連付けられている認証情報に対応するユーザに印刷が許容されている印刷用紙の枚数であり、前記N個の実行枚数のそれぞれは、当該実行枚数に関連付けられている認証情報に対応する接続を利用して前記対象データを受信することに起因して、前記印刷実行部によって印刷が実行された印刷用紙の枚数である、前記第4の記憶制御部と、を備え、
前記所定のタイミングは、前記M個の接続のうちの前記第1の接続が確立されてからの経過時間が、前記メモリ内の前記N個の接続時間のうち、前記第1の接続に対応する接続時間に到達することを含み、
前記第2の記憶制御部は、前記実行枚数が前記許容枚数に達していないユーザに対応する接続時間が、前記実行枚数が前記許容枚数に達しているユーザに対応する接続時間よりも長くなるように、前記メモリ内の前記N個の接続時間のいずれかの値を変更する、請求項1から6のいずれか一項に記載の通信装置。 - 通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
N人(前記Nは1以上の整数)のユーザに対応するN個の認証情報を前記通信装置のメモリに記憶させる第1の記憶制御部であって、前記N個の認証情報は、インターネットを介してN個の接続をサーバと確立するための情報であり、前記サーバは、前記N人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第1の記憶制御部と、
前記N個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、
前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、
前記Nが2以上であり、かつ、前記Nが上限数M(前記Mは1以上の整数)より大きい場合に、接続変更処理を繰り返し実行することによって前記N個の接続を順次確立する接続制御部と、
として機能させ、
前記接続変更処理は、
前記N個の認証情報のうちのM個の認証情報に対応するM個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記M個の接続のうちの第1の接続を切断する切断処理と、
前記第1の接続が切断された後に、前記N個の認証情報のうち、前記M個の認証情報とは異なる認証情報を利用して、第2の接続を前記サーバと確立する確立処理と、を含む、コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019020002A JP2020126547A (ja) | 2019-02-06 | 2019-02-06 | 通信装置、及び、通信装置のためのコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019020002A JP2020126547A (ja) | 2019-02-06 | 2019-02-06 | 通信装置、及び、通信装置のためのコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020126547A true JP2020126547A (ja) | 2020-08-20 |
Family
ID=72084063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019020002A Pending JP2020126547A (ja) | 2019-02-06 | 2019-02-06 | 通信装置、及び、通信装置のためのコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020126547A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7619130B2 (ja) | 2021-03-31 | 2025-01-22 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
-
2019
- 2019-02-06 JP JP2019020002A patent/JP2020126547A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7619130B2 (ja) | 2021-03-31 | 2025-01-22 | ブラザー工業株式会社 | 通信装置及び通信装置のためのコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6891718B2 (ja) | 通信装置 | |
US10664205B2 (en) | Image processing apparatus transmitting registration request including incapability information indicating that any setting is incapable of being designated | |
JP2013129148A (ja) | プリンタ | |
JP2012098816A (ja) | 情報処理装置、その情報処理装置における印刷データ処理方法およびプログラム | |
JP6273853B2 (ja) | 端末装置 | |
US20120236359A1 (en) | Information processing apparatus, control method for information processing apparatus, and storage medium | |
JP2015153225A (ja) | 印刷指示支援装置、印刷システム及びプログラム | |
JP2016134901A (ja) | 画像形成システム、画像形成装置、画像形成方法およびプログラム | |
JP2024161242A (ja) | 画像処理装置及び画像処理装置のためのコンピュータプログラム | |
US9128645B2 (en) | System including image forming apparatus and information processing apparatus, method performed under the system, image forming apparatus and information processing apparatus directed to the system, and non-transitory storage medium encoded with program directed to the apparatuses | |
JP6828637B2 (ja) | 画像処理装置 | |
JP6380138B2 (ja) | 通信装置 | |
JP2020126547A (ja) | 通信装置、及び、通信装置のためのコンピュータプログラム | |
JP7070095B2 (ja) | 通信装置のためのコンピュータプログラムと通信装置とサーバのためのコンピュータプログラム | |
US10558404B2 (en) | Printing apparatus, control method, and storage medium | |
JP2020166372A (ja) | プリンタ、及び、プリンタのためのコンピュータプログラム | |
JP2018173778A (ja) | 通信装置 | |
JP2022055072A (ja) | 通信装置と通信装置のためのコンピュータプログラム | |
JP2020046915A (ja) | プリンタとプリンタのためのコンピュータプログラム | |
JP2019207479A (ja) | 通信装置のためのコンピュータプログラムと通信装置 | |
JP2012252411A (ja) | 選択プログラム、画像処理装置、及び、コンピュータ | |
JP4946555B2 (ja) | 画像処理システム、画像処理装置及び画像処理方法 | |
JP2019145961A (ja) | 通信装置 | |
JP2024161243A (ja) | 画像処理装置及び画像処理装置のためのコンピュータプログラム | |
JP2018173779A (ja) | 通信装置 |