(57)【要約】【課題】  複数人のユーザが通信装置を共用する状況において、通信装置の通信負荷を低減させることができる技術を開示する。【解決手段】  通信装置は、メモリと、Ｎ個の認証情報をメモリに記憶させる第１の記憶制御部と、特定の接続を利用して、サーバから、特定の通知を受信する通知受信部と、サーバから特定の通知が受信される場合に、特定の認証情報を利用して、サーバから、対象データを受信するデータ受信部と、Ｎが２以上であり、かつ、Ｎが上限数Ｍより大きい場合に、接続変更処理を繰り返し実行する接続制御部と、を備える。接続変更処理は、Ｎ個の認証情報のうちのＭ個の認証情報に対応するＭ個の接続がサーバと確立されている状態で所定のタイミングが到来する場合に、Ｍ個の接続のうちの第１の接続を切断する切断処理と、Ｎ個の認証情報のうち、Ｍ個の認証情報とは異なる認証情報を利用して、第２の接続をサーバと確立する確立処理と、を含む。【選択図】図５
2020126547.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
メモリと、
Ｎ人（前記Ｎは１以上の整数）のユーザに対応するＮ個の認証情報を前記メモリに記憶させる第１の記憶制御部であって、前記Ｎ個の認証情報は、インターネットを介してＮ個の接続をサーバと確立するための情報であり、前記サーバは、前記Ｎ人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第１の記憶制御部と、
前記Ｎ個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、
前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、
前記Ｎが２以上であり、かつ、前記Ｎが上限数Ｍ（前記Ｍは１以上の整数）より大きい場合に、接続変更処理を繰り返し実行することによって前記Ｎ個の接続を順次確立する接続制御部と、を備え、
前記接続変更処理は、
前記Ｎ個の認証情報のうちのＭ個の認証情報に対応するＭ個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記Ｍ個の接続のうちの第１の接続を切断する切断処理と、
前記第１の接続が切断された後に、前記Ｎ個の認証情報のうち、前記Ｍ個の認証情報とは異なる認証情報を利用して、第２の接続を前記サーバと確立する確立処理と、
を含む、通信装置。
【請求項２】
前記接続変更処理は、さらに、
前記Ｎ個の認証情報のうちの前記Ｍ個の認証情報に対応する前記Ｍ個の接続が前記サーバと確立されている状態で前記所定のタイミングが到来する場合に、選択順序に従って、前記Ｎ個の認証情報のうちの１個の認証情報を選択する選択処理であって、前記選択順序は、前記Ｎが２以上であり、かつ、前記Ｎが前記Ｍより大きい場合に、前記Ｎ個の認証情報を順次選択するための順序である、前記選択処理と、
選択済みの前記１個の認証情報に対応する１個の接続が現在確立されているのか否かを判断処理と、を含み、
前記接続制御部は、
選択済みの前記１個の認証情報に対応する前記１個の接続が現在確立されていないと判断される場合に、前記第１の接続が切断された後に、選択済みの前記１個の認証情報を前記異なる認証情報として利用して、前記第２の接続を前記サーバと確立する前記確立処理を実行し、
選択済みの前記１個の認証情報に対応する前記１個の接続が現在確立されていると判断される場合に、前記選択処理と前記判断処理とを再び実行する、請求項１に記載の通信装置。
【請求項３】
前記通信装置は、さらに、
前記Ｍとして第１の値が設定されている状態で所定の条件が満たされる場合に、前記Ｍとして、前記第１の値に代えて、前記第１の値とは異なる第２の値を設定する上限数設定部を備える、請求項１又は２に記載の通信装置。
【請求項４】
前記Ｍに対する前記Ｎの値が所定値以上になる場合に、前記所定の条件が満たされ、
前記第２の値は、前記第１の値よりも大きい、請求項３に記載の通信装置。
【請求項５】
前記通信装置は、さらに、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間を前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第２の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうち、前記第１の接続に対応する接続時間に到達することを含み、
前記Ｎ個の認証情報のうちのいずれか１個の認証情報に関連付けられている接続時間に対する非接続時間の割合が所定値以上になる場合に、前記所定の条件が満たされ、
前記非接続時間は、前記いずれか１個の認証情報に対応する接続が切断されてから当該接続が再び確立されるまでの時間であり、
前記第２の値は、前記第１の値よりも大きい、請求項３に記載の通信装置。
【請求項６】
前記通信装置は、さらに、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間を前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第２の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうち、前記第１の接続に対応する接続時間に到達することを含み、
前記Ｎ個の認証情報のうちのいずれか１個の認証情報に対応する接続が切断されてから当該接続が再び確立されるまでの時間である非接続時間が所定時間以上になる場合に、前記所定の条件が満たされ、
前記第２の値は、前記第１の値よりも大きい、請求項３に記載の通信装置。
【請求項７】
前記通信装置は、さらに、
前記Ｎ個の接続のそれぞれが維持される時間である接続時間として同じ値を前記メモリに記憶させる第３の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が前記接続時間に到達することを含み、
前記第３の記憶制御部は、前記Ｎが大きくなる場合に、前記メモリ内の前記接続時間を現在の値よりも小さい値に変更する、請求項１から４のいずれか一項に記載の通信装置。
【請求項８】
前記通信装置は、さらに、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間を前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第２の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうちの前記第１の接続に対応する接続時間に到達することを含み、
前記第２の記憶制御部は、前記Ｎ人のユーザのうちのいずれかのユーザが前記通信装置にログインする場合に、当該ユーザに対応する接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記Ｎ個の接続時間のいずれかの値を変更する、請求項１から６のいずれか一項に記載の通信装置。
【請求項９】
前記通信装置は、さらに、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間を前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第２の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうち、前記第１の接続に対応する接続時間に到達することを含み、
前記第２の記憶制御部は、前記Ｎ個の接続時間のうち、最新の前記対象データを受信するために利用された認証情報に関連付けられている接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記Ｎ個の接続時間のいずれかの値を変更する、請求項１から６のいずれか一項に記載の通信装置。
【請求項１０】
前記通信装置は、さらに、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間とＮ個の受信回数とを前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間であり、前記Ｎ個の受信回数のそれぞれは、当該受信回数に関連付けられている認証情報を利用して前記対象データを受信した回数である、前記第２の記憶制御部を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうち、前記第１の接続に対応する接続時間に到達することを含み、
前記第２の記憶制御部は、前記Ｎ個の接続時間のうち、最大の前記受信回数に関連付けられている接続時間が他の接続時間よりも長くなるように、前記メモリ内の前記Ｎ個の接続時間のいずれかの値を変更する、請求項１から６のいずれか一項に記載の通信装置。
【請求項１１】
前記通信装置は、さらに、
印刷実行部と、
前記Ｎ個の認証情報に関連付けてＮ個の接続時間を前記メモリに記憶させる第２の記憶制御部であって、前記Ｎ個の接続時間のそれぞれは、当該接続時間に関連付けられている認証情報に対応する接続が維持される時間である、前記第２の記憶制御部と、
前記サーバから前記対象データが受信される場合に、前記対象データを利用した印刷を前記印刷実行部に実行させる印刷制御部と、
前記Ｎ個の認証情報に関連付けてＮ個の許容枚数とＮ個の実行枚数とを前記メモリに記憶させる第４の記憶制御部であって、前記Ｎ個の許容枚数のそれぞれは、当該許容枚数に関連付けられている認証情報に対応するユーザに印刷が許容されている印刷用紙の枚数であり、前記Ｎ個の実行枚数のそれぞれは、当該実行枚数に関連付けられている認証情報に対応する接続を利用して前記対象データを受信することに起因して、前記印刷実行部によって印刷が実行された印刷用紙の枚数である、前記第４の記憶制御部と、を備え、
前記所定のタイミングは、前記Ｍ個の接続のうちの前記第１の接続が確立されてからの経過時間が、前記メモリ内の前記Ｎ個の接続時間のうち、前記第１の接続に対応する接続時間に到達することを含み、
前記第２の記憶制御部は、前記実行枚数が前記許容枚数に達していないユーザに対応する接続時間が、前記実行枚数が前記許容枚数に達しているユーザに対応する接続時間よりも長くなるように、前記メモリ内の前記Ｎ個の接続時間のいずれかの値を変更する、請求項１から６のいずれか一項に記載の通信装置。
【請求項１２】
通信装置のためのコンピュータプログラムであって、
前記通信装置のコンピュータを、以下の各部、即ち、
Ｎ人（前記Ｎは１以上の整数）のユーザに対応するＮ個の認証情報を前記通信装置のメモリに記憶させる第１の記憶制御部であって、前記Ｎ個の認証情報は、インターネットを介してＮ個の接続をサーバと確立するための情報であり、前記サーバは、前記Ｎ人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第１の記憶制御部と、
前記Ｎ個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、
前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、
前記Ｎが２以上であり、かつ、前記Ｎが上限数Ｍ（前記Ｍは１以上の整数）より大きい場合に、接続変更処理を繰り返し実行することによって前記Ｎ個の接続を順次確立する接続制御部と、
として機能させ、
前記接続変更処理は、
前記Ｎ個の認証情報のうちのＭ個の認証情報に対応するＭ個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記Ｍ個の接続のうちの第１の接続を切断する切断処理と、
前記第１の接続が切断された後に、前記Ｎ個の認証情報のうち、前記Ｍ個の認証情報とは異なる認証情報を利用して、第２の接続を前記サーバと確立する確立処理と、を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、サーバとの接続を確立可能な通信装置を開示する。
【背景技術】
【０００２】
特許文献１には、サーバを利用してプリンタに印刷を実行させる技術が開示されている。この技術では、複数人のユーザが１台のプリンタを共用することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０５６３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書では、複数人のユーザが通信装置を共用する状況において、通信装置の通信負荷を低減させることができる技術を開示する。
【課題を解決するための手段】
【０００５】
本明細書によって開示される通信装置は、メモリと、Ｎ人（前記Ｎは１以上の整数）のユーザに対応するＮ個の認証情報を前記メモリに記憶させる第１の記憶制御部であって、前記Ｎ個の認証情報は、インターネットを介してＮ個の接続をサーバと確立するための情報であり、前記サーバは、前記Ｎ人のユーザのそれぞれについて、当該ユーザを識別するユーザ情報と、当該ユーザに対応する認証情報と、を関連付けて記憶する、前記第１の記憶制御部と、前記Ｎ個の接続のうちの特定の接続を利用して、前記サーバから、前記インターネットを介して、特定の通知を受信する通知受信部であって、前記特定の通知は、前記サーバが通信対象の対象データを特定のユーザ情報に関連付けて記憶する場合に、前記特定のユーザ情報に関連付けられている特定の認証情報に対応する前記特定の接続を利用して、前記サーバから前記通信装置に送信される、前記通知受信部と、前記サーバから前記特定の通知が受信される場合に、前記特定の認証情報を利用して、前記サーバから、前記インターネットを介して、前記対象データを受信するデータ受信部と、前記Ｎが２以上であり、かつ、前記Ｎが上限数Ｍ（前記Ｍは１以上の整数）より大きい場合に、接続変更処理を繰り返し実行することによって前記Ｎ個の接続を順次確立する接続制御部と、を備え、前記接続変更処理は、前記Ｎ個の認証情報のうちのＭ個の認証情報に対応するＭ個の接続が前記サーバと確立されている状態で所定のタイミングが到来する場合に、前記Ｍ個の接続のうちの第１の接続を切断する切断処理と、前記第１の接続が切断された後に、前記Ｎ個の認証情報のうち、前記Ｍ個の認証情報とは異なる認証情報を利用して、第２の接続を前記サーバと確立する確立処理と、を含む。
【０００６】
上記の構成によると、メモリに記憶されている認証情報の数Ｎが２以上である場合には、複数人（即ちＮ人）が通信装置を共用することができる。そして、通信装置は、Ｎが２以上であり、かつ、Ｎが上限数Ｍより大きい場合に、接続変更処理を繰り返し実行する。これにより、通信装置は、上限数Ｍを超える個数の接続をサーバと確立することなくＮ個の接続を順次確立することができる。従って、通信装置がメモリ内の認証情報の数Ｎと同じ個数の接続を常時確立する構成と比べると、通信装置の通信負荷を低減させることができる。
【０００７】
上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。また、上記の通信装置とサーバとを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【０００８】
【図１】通信システムの構成を示す。
【図２】ユーザテーブルを示す。
【図３】登録プロセスのシーケンス図を示す。
【図４】図３の続きのシーケンス図を示す。
【図５】第１実施例〜第５実施例に係る接続関係処理のフローチャートを示す。
【図６】接続処理のフローチャートを示す。
【図７】第１実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図８】サーバ印刷プロセスのシーケンス図を示す。
【図９】図３の続きのシーケンス図を示す。
【図１０】第２実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図１１】第３実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図１２】第４実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図１３】第５実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図１４】第６実施例、第７実施例に係る接続関係処理のフローチャートを示す。
【図１５】第６実施例、第７実施例に係る切断処理のフローチャートを示す。
【図１６】第６実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【図１７】第７実施例に係るＸＭＰＰ接続の接続状態を説明する図である。
【発明を実施するための形態】
【０００９】
（第１実施例）
（通信システム２の構成；図１）
図１に示すように、通信システム２は、プリンタ１０と、複数個のＰＣ９０−１、９０−２、９０−３と、画像処理サーバ（以下では、単に「サーバ」と呼ぶ）１００と、を備える。プリンタ１０及び各ＰＣ９０−１等は、ＬＡＮ６を介して、インターネット４に接続されている。サーバ１００は、インターネット４に接続されている。従って、プリンタ１０及び各ＰＣ９０−１等は、インターネット４を介して、サーバ１００と通信可能である。以下では、複数個のＰＣ９０−１、９０−２を総称して、「ＰＣ９０」と記載することがある。
【００１０】
（プリンタ１０の構成）
プリンタ１０は、印刷機能を実行可能な周辺装置（即ちＰＣ９０等の周辺装置）である。印刷機能は、カラー印刷とモノクロ印刷とを含む。なお、プリンタ１０は、印刷機能に加えて、スキャン機能、ＦＡＸ機能等を実行可能な多機能機であってもよい。プリンタ１０は、操作部１２と、表示部１４と、ネットワークインターフェース（以下ではインタフェースを「Ｉ／Ｆ」と記載する）１６と、印刷実行部１８と、制御部３０と、を備える。プリンタ１０には、プリンタ名「ｐｒ１」が割当てられている。
【００１１】
操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示をプリンタ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ネットワークＩ／Ｆ１６は、ＬＡＮ６に接続されている。印刷実行部１８は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１２】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。ＣＰＵ３２は、メモリ３４に格納されているプログラム３６に従って、様々な処理を実行する。メモリ３４は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ３４は、さらに、ユーザテーブル３８（図２参照）を記憶する。
【００１３】
図２は、ユーザテーブル３８の一例を示す。図２の上側は、後述する登録プロセス（図３及び図４）が実行される前のテーブルを示し、下側は、登録プロセスが実行された後のテーブルを示す。ユーザテーブル３８では、プリンタ１０を利用する１以上のユーザのそれぞれについて、当該ユーザに対応する関連情報が登録される。即ち、ユーザテーブル３８に複数人のユーザに対応する複数個の関連情報が登録された状態では、複数人のユーザがプリンタ１０を共用することができる。関連情報は、Ｎｏ．と、登録状態情報と、ログイン状態情報と、ユーザＩＤと、パスワードと、アカウント情報と、登録ＩＤと、管理ＩＤと、アクセストークンと、接続時間と、実行枚数と、許容枚数と、印刷回数と、印刷時刻と、制限情報と、が関連付けられた情報である。以下では、１個の関連情報に対応する１人のユーザのことを「対応ユーザ」と記載する。
【００１４】
Ｎｏ．は、関連情報のうちのアカウント情報等が登録される際に昇順で割り当てられる数字（即ち、１、２、３・・・）である。登録状態情報は、「登録」及び「未登録」のどちらかを示す情報であり、「登録」は、対応ユーザがサーバ１００を利用するための情報（アカウント情報、登録ＩＤ等）がサーバ１００に登録済みであることを示し、「未登録」は、当該情報がサーバ１００にまだ登録されていないことを示す。ログイン状態情報は、「ログイン」及び「ログアウト」のどちらかを示す情報であり、「ログイン」は、対応ユーザがプリンタ１０にログインしていることを示し、「ログアウト」は、対応ユーザがプリンタ１０にログインしていないことを示す。
【００１５】
ユーザＩＤ及びパスワードは、対応ユーザがプリンタ１０にログインするために利用される情報である。例えば、プリンタ１０の管理者は、ユーザ毎に、ユーザＩＤ及びパスワードをテーブル３８に記憶させる。アカウント情報は、対応ユーザがサーバ１００にログインするために利用される情報である。登録ＩＤは、サーバ１００がプリンタ１０を識別するための情報であり、後述の登録プロセス（図３及び図４）においてプリンタ１０からサーバ１００に送信される。管理ＩＤは、サーバ１００がプリンタ１０を管理するためにプリンタ１０を識別する情報であり、後述の登録プロセス（図３及び図４）においてサーバ１００からプリンタ１０に送信される。管理ＩＤは、登録ＩＤとは異なる。アクセストークンは、プリンタ１０がサーバ１００との通信を実行するために利用される認証情報である。
【００１６】
接続時間は、サーバ１００とのＸＭＰＰ（eXtensible Messaging and Presence Protocolの略）接続が確立される時間を示す。実行枚数は、対応ユーザからの指示に起因して印刷が実行された印刷用紙の枚数を示す。許容枚数は、対応ユーザに印刷が許容されている印刷用紙の枚数を示す。許容枚数は、プリンタ１０の管理者によって設定される。印刷回数は、対応ユーザからの指示に起因して印刷データが受信された回数である。印刷時刻は、対応ユーザからの指示に起因して最新の印刷データが受信された時刻を示す。
【００１７】
制限情報は、プリンタ１０が実行可能なモノクロ印刷及びカラー印刷のうち、ユーザに利用が許可されている１個以上の印刷機能を特定する情報である。「ＯＫ」は利用が許可されていることを示し、「ＮＧ」は利用が許可されていないことを示す。例えば、ユーザＩＤ「Ｕ１」によって識別されるユーザは、モノクロ印刷の利用が許可されているが、カラー印刷の利用が許可されていない。また、ユーザＩＤ「Ｕ２」によって識別されるユーザは、モノクロ印刷及びカラー印刷の利用が許可されている。プリンタ１０の管理者は、ユーザ毎に、制限情報をユーザテーブル３８に記憶させる。なお、制限情報は、ユーザに利用が許可されている印刷の種類のみならず、ユーザに利用が許可されている印刷用紙のサイズ（例えばＡ４）等に関する情報をさらに含んでいてもよい。
【００１８】
プリンタ１０は、ユーザテーブル３８内のアクセストークンを利用して、サーバ１００とのＸＭＰＰ接続を確立することができる。プリンタ１０は、ユーザテーブル３８に複数個の関連情報が登録されている場合、即ち、複数個のアクセストークンが記憶されている場合には、複数個のＸＭＰＰ接続を同時的に確立可能である。プリンタ１０が同時的に確立可能なＸＭＰＰ接続の上限数は、プリンタ１０のスペック等によって予め決められており、本実施例では「１」である。
【００１９】
（ＰＣ９０−１等の構成）
ＰＣ９０は、プリンタ１０に印刷を実行させるためのプリンタドライバを備えていない。また、ＰＣ９０は、例えば、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）等のブラウザプログラム（図示省略）を備えている。ＰＣ９０は、本実施例では、据置型の端末装置（例えばデスクトップＰＣ等）であるが、変形例では、携帯電話（例えばスマートフォン）、ＰＤＡ、ノートＰＣ、タブレットＰＣ等の可搬型の端末装置であってもよい。
【００２０】
（画像処理サーバ１００の構成）
サーバ１００は、インターネット上に設置されるサーバであり、例えば、Ｇｏｏｇｌｅ（登録商標）によって提供されるＧＣＰ（Google Cloud Printの略）サーバである。なお、変形例では、サーバ１００は、例えば、プリンタ１０のベンダによって提供されるサーバであってもよい。サーバ１００は、プリンタ１０とＰＣ９０との間で印刷の仲介を実行するためのサーバである。即ち、サーバ１００は、ＰＣ９０からサブミットされる画像ファイルを変換して、プリンタ１０が解釈可能なデータ形式を有する印刷データを生成し、当該印刷データをプリンタ１０に送信する。従って、ＰＣ９０は、画像ファイルを印刷データに変換するためのプリンタドライバを備えていなくても、サーバ１００に画像ファイルをサブミットすれば、プリンタ１０に印刷を実行させることができる。プリンタ１０の各ユーザは、当該ユーザのアカウント情報（例えばGoogle Account）をサーバ１００に予め登録しておく。
【００２１】
サーバ１００は、アカウントテーブル１３８が記憶されているメモリ１３４を備える。アカウントテーブル１３８では、アカウント情報と、登録ＩＤと、管理ＩＤと、制限情報と、アクセストークンと、が関連付けて記憶されている。
【００２２】
（登録プロセス：図３及び図４）
続いて、図３及び図４を参照して、プリンタ１０をサーバ１００に登録する登録プロセスについて説明する。図中の「ｋ」は１、２、又は、３である。例えば、ｋ＝１である場合には、アカウント情報「ＡＩｋ」、ユーザＩＤ「Ｕｋ」、パスワード「Ｐｋ」、ＰＣ９０−ｋは、それぞれ、「ＡＩ１」、「Ｕ１」、「Ｐ１」、ＰＣ９０−１を意味する。また、以下では、ユーザＩＤ「Ｕｋ」に対応するユーザのことを「第ｋのユーザ」と呼ぶ。なお、以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばプリンタ１０のＣＰＵ３２）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばプリンタ１０）を主体として記載することがある。また、プリンタ１０によって実行される全ての通信は、ネットワークＩ／Ｆを介して実行される。従って、以下では、「ネットワークＩ／Ｆ１６を介して」という説明を省略する。また、ＰＣ９０−ｋによって実行される以下の各処理は、ブラウザプログラムに従って実行される。従って、以下では、「ブラウザプログラムに従って」という記載を省略する。
【００２３】
ＰＣ９０−ｋは、アカウント情報ＡＩｋの入力とサーバ１００へのログインの指示とを第ｋのユーザから受け付けると、Ｔ１０において、アカウント情報ＡＩｋを含むログイン要求をサーバ１００に送信する。
【００２４】
サーバ１００は、Ｔ１０において、ＰＣ９０−ｋからログイン要求を受信すると、当該ログイン要求に含まれるアカウント情報「ＡＩｋ」が登録済みであると判断し、Ｔ１２において、所定画面データをＰＣ９０−ｋに送信する。
【００２５】
ＰＣ９０−ｋは、Ｔ１２において、サーバ１００から所定画面データを受信すると、Ｔ１４において、所定画面を表示する。当該画面は、ＰＣ９０−ｋの周囲に存在するプリンタを検索して登録することを確認するためのメッセージと、検索ボタンと、を含む。ＰＣ９０−ｋは、Ｔ１６において、所定画面内の検索ボタンの選択を第ｋのユーザから受け付けると、Ｔ３０において、検索信号をブロードキャストによってＬＡＮ６に送信する。検索信号は、所定期間に亘って繰り返し送信される。
【００２６】
一方、Ｔ２０において、プリンタ１０は、操作部１２へのユーザＩＤ「Ｕｋ」及びパスワード「Ｐｋ」の入力を含むログイン操作を第ｋのユーザから受け付ける。この場合、Ｔ２２において、プリンタ１０は、ユーザテーブル３８において、ユーザＩＤ「Ｕｋ」及びパスワード「Ｐｋ」に関連付けられているログイン状態情報を、「ログアウト」から「ログイン」に変更する。これにより、第ｋのユーザによるプリンタ１０へのログインが完了する。
【００２７】
プリンタ１０は、Ｔ３０において、ＰＣ９０−ｋから検索信号を受信すると、プリンタ１０に現在ログインしている第ｋのユーザの登録状態情報が「未登録」であると判断し、Ｔ３２において、検索信号の送信元であるＰＣ９０−ｋにプリンタ名「ｐｒ１」を送信する。
【００２８】
ＰＣ９０−ｋは、Ｔ３２において、プリンタ１０からプリンタ名「ｐｒ１」を受信すると、Ｔ３４において、プリンタ名「ｐｒ１」を含む検索結果を表示する。ＰＣ９０−ｋは、Ｔ４０において、検索結果に含まれるプリンタ名「ｐｒ１」の選択を第ｋのユーザから受け付けると、Ｔ４２において、サーバ１００に現在ログインしているアカウント情報ＡＩｋ（Ｔ１０参照）であるログイン済みアカウント情報ＡＩｋを含む登録指示をプリンタ１０に送信する。登録指示は、サーバ１００への登録をプリンタ１０に指示するコマンドである。
【００２９】
プリンタ１０は、Ｔ４２において、ＰＣ９０−ｋから登録指示を受信すると、Ｔ５０において、確認画面を表示部１４に表示させる。当該画面は、サーバ１００へのプリンタ１０の登録を実行するのか否かを確認するメッセージと、ＹＥＳボタンと、ＮＯボタンと、を含む。プリンタ１０は、Ｔ５２において、確認画面内のＹＥＳボタンの選択を第ｋのユーザから受け付けると、Ｔ５４において、登録ＩＤ「Ｒｋ」を生成する。プリンタ１０、過去に生成された登録ＩＤに重複しないように、ユニークな登録ＩＤを生成する。なお、登録ＩＤは、プリンタ１０のＭＡＣアドレスと現在日時との組み合わせ等であってもよい。
【００３０】
Ｔ６０において、プリンタ１０は、Ｔ５４で生成された登録ＩＤ「Ｒｋ」と、プリンタ１０にログイン中の第ｋのユーザの制限情報「Ｌｋ」と、を含む登録要求をサーバ１００に送信する。当該要求は、プリンタ１０の登録をサーバ１００に要求するコマンドである。制限情報「Ｌｋ」は、第ｋのユーザの制限情報のうち、第ｋのユーザに利用が許可されている印刷に関係する情報（例えばユーザＩＤ「Ｕ１」に対応する制限情報であれば、モノクロ印刷を示す情報（図２参照））である。
【００３１】
サーバ１００は、Ｔ６０において、プリンタ１０から登録要求を受信すると、当該要求に含まれる登録ＩＤ「Ｒｋ」がサーバ１００のアカウントテーブル１３８に登録されていないと判断し、Ｔ７０において、管理ＩＤ「Ｍｋ」及び登録トークンＸｋを生成する。サーバ１００は、過去に生成された管理ＩＤ及び登録トークンに重複しないように、ユニークな管理ＩＤ「Ｍｋ」及び登録トークンＸｋを生成する。Ｔ７２において、サーバ１００は、Ｔ６０の登録要求に含まれる各情報（即ち、登録ＩＤ「Ｒｋ」及び制限情報「Ｌｋ」）と、生成済みの管理ＩＤ「Ｍｋ」と、生成済みの登録トークンＸｋと、を関連付けてアカウントテーブル１３８（図１参照）に記憶させる。なお、アカウントテーブル１３８では、登録トークン「Ｘｋ」が省略されている。そして、Ｔ８０において、サーバ１００は、管理ＩＤ「Ｍｋ」及び登録トークンＸｋをプリンタ１０に送信する。
【００３２】
プリンタ１０は、Ｔ８０において、サーバ１００から管理ＩＤ「Ｍｋ」及び登録トークンＸｋを受信すると、図６のＴ９０において、登録トークンＸｋをＰＣ９０−ｋに送信する。なお、プリンタ１０は、Ｔ８０でサーバ１００から管理ＩＤ「Ｍｋ」及び登録トークンＸｋを受信することに応じて、アカウント情報ＡＩｋの登録が完了したのかを確認するための登録確認（後述のＴ１０４参照）をサーバ１００に定期的に送信する。
【００３３】
ＰＣ９０−ｋは、Ｔ９０において、プリンタ１０から登録トークンＸｋを受信すると、Ｔ１００において、アカウント情報ＡＩｋ及び登録トークンＸｋを含む登録要求をサーバ１００に送信する。当該要求は、アカウント情報ＡＩｋの登録をサーバ１００に要求するコマンドである。
【００３４】
サーバ１００は、Ｔ１００において、ＰＣ９０−ｋから登録要求を受信すると、当該要求に含まれる登録トークンＸｋと、Ｔ７２でアカウントテーブル１３８に記憶された登録トークンＸｋと、が一致すると判断し（即ち認証が成功し）、Ｔ１０２において、Ｔ７２でアカウントテーブル１３８に記憶された各情報に関連付けて、登録要求に含まれるアカウント情報ＡＩｋをさらに記憶させる。そして、Ｔ１１０において、サーバ１００は、プリンタ１０から受信される登録確認（Ｔ１０４参照）に対する応答として、アカウント情報ＡＩｋを含む登録通知をプリンタ１０に送信する。登録通知は、アカウント情報ＡＩｋの登録が完了したことをプリンタ１０に通知するための情報である。
【００３５】
プリンタ１０は、Ｔ１１０において、サーバ１００から登録通知を受信すると、Ｔ１２０において、トークン要求をサーバ１００に送信する。トークン要求は、アクセストークンの送信をサーバ１００に要求するコマンドである。
【００３６】
サーバ１００は、Ｔ１２０において、プリンタ１０からトークン要求を受信すると、Ｔ１３０において、ユニークな文字列であるアクセストークンＡＴｋを生成し、Ｔ１３２において、Ｔ１０２でアカウントテーブル１３８に記憶された各情報に関連付けて、生成済みのアクセストークンＡＴｋをさらに記憶させる。そして、Ｔ１４０において、サーバ１００は、アクセストークンＡＴｋをプリンタ１０に送信する。
【００３７】
プリンタ１０は、Ｔ１４０において、サーバ１００からアクセストークンＡＴｋを受信すると、Ｔ１４２において、各情報をユーザテーブル３８に記憶させる。具体的には、プリンタ１０にログイン中のユーザＩＤ「Ｕｋ」（図３のＴ２０参照）に関連付けて、図４のＴ１１０で受信されたアカウント情報ＡＩｋと、図３のＴ５４で生成された登録ＩＤ「Ｒｋ」と、図３のＴ８０で受信された管理ＩＤ「Ｍｋ」と、図４のＴ１４０で受信されたアクセストークンＡＴｋと、が記憶される。また、プリンタ１０は、ユーザＩＤ「Ｕｋ」に関連付けられている登録状態情報を「未登録」から「登録」に変更する。また、プリンタ１０は、ユーザＩＤ「Ｕｋ」に関連付けてＮｏ．を記憶する。１回目のＴ１４２の処理ではＮｏ．として「１」が記憶され、２回目のＴ１４２の処理ではＮｏ．として「２」が記憶される。３回目以降のＴ１４２の処理でもＮｏ．が昇順で記憶される。Ｔ１４４において、プリンタ１０は、登録完了通知をＰＣ９０−ｋに送信する。登録完了通知は、サーバ１００へのプリンタ１０の登録が完了したことを示す情報である。
【００３８】
プリンタ１０は、Ｔ１４２でユーザテーブル３８にアカウント情報が初めて登録された場合（即ち１個目のアカウント情報登録の場合）には、Ｔ１５０において、Ｔ１４０で受信されたアクセストークンＡＴｋを含む接続要求をサーバ１００に送信する。接続要求は、ＸＭＰＰ接続の確立をサーバ１００に要求するコマンドである。サーバ１００は、Ｔ１５２において、プリンタ１０から接続要求を受信すると、接続要求に含まれるアクセストークンＡＴｋが登録済みであると判断し（Ｔ１３２参照、即ち認証が成功し）、ＸＭＰＰ接続を確立する。このようにＸＭＰＰ接続が確立されると、サーバ１００は、プリンタ１０から信号を受信しなくても、ＸＭＰＰ接続を利用して、ＬＡＮ６のファイヤウォールを越えて信号（例えば後述の図９のＴ２８２のジョブ通知）をプリンタ１０に送信することができる。
【００３９】
一方、プリンタ１０は、ユーザテーブル３８内に１個以上のアカウント情報が記憶されている状態で、Ｔ１４２でユーザテーブル３８に新たなアカウント情報が登録された場合（即ち２個目以降のアカウント情報登録の場合）には、Ｔ１５０、Ｔ１５２を実行することなく、図５の接続関係処理を実行する。上述のように、プリンタ１０が同時的に確立可能なＸＭＰＰ接続の上限数は「１」である。接続関係処理は、ユーザテーブル３８内に記憶されているアカウント情報の数が上限数「１」よりも大きい状況において、複数個のＸＭＰＰ接続を順次確立させることを実現させるための処理である。
【００４０】
例えば、第１のユーザがＰＣ９０−１を利用して上記の登録プロセスを実行する場合（即ちｋ＝１の場合）には、ユーザテーブル３８において、ユーザＩＤ「Ｕ１」に関連付けて、アカウント情報ＡＩ１と、登録ＩＤ「Ｒ１」と、管理ＩＤ「Ｍ１」と、アクセストークンＡＴ１と、Ｎｏ．１が登録される。また、サーバ１００では、アカウントテーブル１３８において、アカウント情報ＡＩ１と、登録ＩＤ「Ｒ１」と、管理ＩＤ「Ｍ１」と、制限情報「Ｌ１」と、アクセストークンＡＴ１と、が関連付けて登録される。そして、プリンタ１０は、Ｔ１４２でユーザテーブル３８に登録されるアカウント情報ＡＩ１が１個目であると判断し、Ｔ１５０において、アクセストークンＡＴ１を含む接続要求をサーバ１００に送信する。これにより、Ｔ１５２において、プリンタ１０とサーバ１００との間にＸＭＰＰ接続が確立される。
【００４１】
その後、第２のユーザがＰＣ９０−２を利用して上記の登録プロセスを実行する場合（即ちｋ＝２の場合）には、ユーザテーブル３８において、ユーザＩＤ「Ｕ２」に関連付けて、アカウント情報ＡＩ２と、登録ＩＤ「Ｒ２」と、管理ＩＤ「Ｍ２」と、アクセストークンＡＴ２と、Ｎｏ．２とが登録される。また、サーバ１００では、アカウント情報ＡＩ２と、登録ＩＤ「Ｒ２」と、管理ＩＤ「Ｍ２」と、制限情報「Ｌ２」と、アクセストークンＡＴ２と、が関連付けて登録される。そして、プリンタ１０は、Ｔ１４２でユーザテーブル３８に登録されるアカウント情報ＡＩ２が２個目であると判断し、Ｔ１５０を実行することなく、図５の接続関係処理を実行する。
【００４２】
その後、第３のユーザがＰＣ９０−３を利用して上記の登録プロセスを実行する場合（即ちｋ＝３の場合）には、ユーザテーブル３８において、ユーザＩＤ「Ｕ３」に関連付けて、アカウント情報ＡＩ３と、登録ＩＤ「Ｒ３」と、管理ＩＤ「Ｍ３」と、アクセストークンＡＴ３と、Ｎｏ．３が登録される。また、サーバ１００では、アカウント情報ＡＩ３と、登録ＩＤ「Ｒ３」と、管理ＩＤ「Ｍ３」と、制限情報「Ｌ３」と、アクセストークンＡＴ３と、が関連付けて登録される。これにより、図２の下側のユーザテーブル３８が完成する。そして、プリンタ１０は、Ｔ１４２でユーザテーブル３８に登録されるアカウント情報ＡＩ３が３個目であると判断し、Ｔ１５０を実行することなく、図５の接続関係処理を実行する。
【００４３】
上述したように、プリンタ１０は、第１のユーザのために登録ＩＤ「Ｒ１」を含む登録要求をサーバ１００に送信し（図３のＴ６０）、第２のユーザのために登録ＩＤ「Ｒ２」を含む登録要求をサーバ１００に送信し、第３のユーザのために登録ＩＤ「Ｒ３」を含む登録要求をサーバ１００に送信する。このために、サーバ１００において、第１のユーザのための各情報と、第２のユーザのための各情報と、第３のユーザのための各情報と、が記憶される（図４のＴ１３２）。即ち、サーバ１００は、プリンタ１０が１台のプリンタであるにも関わらず、第１のユーザのための各情報を、管理ＩＤ「Ｍ１」によって識別される情報として記憶し（Ｔ１３２）、第２のユーザのための各情報を、管理ＩＤ「Ｍ２」によって識別される情報として登録し（Ｔ１３２）、第２のユーザのための各情報を、管理ＩＤ「Ｍ３」によって識別される情報として登録する。これにより、複数人のユーザが、１台のプリンタ１０を共用することができる。
【００４４】
（接続関係処理：図５）
続いて、図５を参照して、プリンタ１０のＣＰＵ３２によって実行される接続関係処理について説明する。ＣＰＵ３２は、ユーザテーブル３８内のアカウント情報の数（以下では、「登録アカウント数」と記載する）が「２」になる場合に、図５の処理を開始する。
【００４５】
Ｓ１０において、ＣＰＵ３２は、ユーザテーブル３８内の各接続時間を変更する。ＣＰＵ３２は、予め決められている１サイクル時間（本実施例では６０秒）内に、ユーザテーブル３８内の全てのアクセストークンを利用した各ＸＭＰＰ接続が同じ時間に亘って確立されるように、各接続時間を変更する。具体的には、ＣＰＵ３２は、ユーザテーブル３８内の登録アカウント数を特定し、１サイクル時間６０秒を特定済みの登録アカウント数で除算することによって、接続時間を算出する。そして、ＣＰＵ３２は、ユーザテーブル３８内の各接続時間として算出済みの接続時間を記憶させる。例えば、ユーザテーブル３８内に２個のアカウント情報のみが記憶されている場合には、ＣＰＵ３２は、当該２個のアカウント情報に関連付けられている２個の接続時間のそれぞれとして３０秒を記憶させる。
【００４６】
Ｓ１２において、ＣＰＵ３２は、現在確立されているサーバ１００とのＸＭＰＰ接続を切断する。
【００４７】
Ｓ２０において、ＣＰＵ３２は、ポインタＺの値を「ゼロ」に設定する。ポインタＺは、ユーザテーブル３８内のＮｏ．を特定するための情報である。そして、Ｓ２２において、ＣＰＵ３２は、ポインタＺの値を「１」だけインクリメントする。例えば、ＣＰＵ３２は、ポインタＺの現在の値が「０」である場合には、ポインタＺの値を「１」に変更し、ポインタＺの現在の値が「１」である場合には、ポインタＺの値を「２」に変更する。
【００４８】
Ｓ２４において、ＣＰＵ３２は、ユーザテーブル３８からＮｏ．Ｚに関連付けられているアクセストークンを特定する。
【００４９】
Ｓ２６において、ＣＰＵ３２は、接続処理（図６）を実行する。接続処理は、Ｓ２４で特定されたアクセストークンを利用して、サーバ１００とのＸＭＰＰ接続を確立する処理である。
【００５０】
Ｓ３０において、ＣＰＵ３２は、ポインタＺの値がＭＡＸ値に一致するのか否かを判断する。ＭＡＸ値は、登録アカウント数である。例えば、登録アカウント数が「３」である場合、ＭＡＸ値は「３」である。ＣＰＵ３２は、ポインタＺの値がＭＡＸ値に一致すると判断する場合（Ｓ３０でＹＥＳ）に、Ｓ２０に戻り、ポインタＺの値がＭＡＸ値に一致しないと判断する場合（Ｓ３０でＮＯ）に、Ｓ２２に戻る。
【００５１】
（接続処理；図６）
続いて、図５のＳ２６で実行される接続処理について説明する。Ｓ５０において、ＣＵＰ３２は、図５のＳ２４で特定されたアクセストークンを含む接続要求をサーバ１００に送信し、サーバ１００とのＸＭＰＰ接続を確立する。
【００５２】
Ｓ５２において、ＣＰＵ３２は、Ｎｏ．Ｚに関連付けられている管理ＩＤを特定し、特定済みの管理ＩＤを含むジョブ要求をサーバ１００に送信する。ジョブ要求は、特定済みの管理ＩＤに対応する印刷ジョブの送信を要求する信号である。なお、ジョブ要求は、Ｓ５０で確立されたＸＭＰＰ接続を利用して送信される信号ではなく、ＨＴＴＰ（Hyper Text Transfer Protocolの略）に従って送信される信号である。なお、変形例では、Ｓ５２を省略可能である。
【００５３】
Ｓ６０において、ＣＰＵ３２は、サーバ１００から、Ｓ５０で確立されたＸＭＰＰ接続を利用してジョブ通知を受信したのか否かを判断する。ジョブ通知は、印刷ジョブが登録されたことを通知するための信号である。ＣＰＵ３２は、サーバ１００からジョブ通知を受信したと判断する場合（Ｓ６０でＹＥＳ）に、Ｓ６２に進む。Ｓ６２は、Ｓ５２と同様である。
【００５４】
一方、ＣＰＵ３２は、サーバ１００からジョブ通知を受信しなかったと判断する場合（Ｓ６０でＮＯ）に、Ｓ７０に進む。Ｓ７０において、ＣＰＵ３２は、ユーザテーブル３８内のＮｏ．Ｚに関連付けられている接続時間を特定し、Ｓ５０でＸＭＰＰ接続が確立されてからの経過時間が特定済みの接続時間に到達したのか否かを判断する。ＣＰＵ３２は、経過時間が特定済みの接続時間に到達していないと判断する場合に、Ｓ７０でＮＯと判断し、Ｓ６０に戻る。即ち、ＣＰＵ３２は、Ｓ６０及びＳ７０の処理を繰り返し実行することによって、接続時間の間にジョブ通知の受信を監視する。
【００５５】
一方、ＣＰＵ３２は、経過時間が特定済みの接続時間に到達していると判断する場合に、Ｓ７０でＹＥＳと判断し、Ｓ７２に進む。Ｓ７２において、ＣＰＵ３２は、切断要求をサーバ１００に送信し、サーバ１００とのＸＭＰＰ接続を切断する。ＣＰＵ３２は、Ｓ７２が終了すると、図６の処理を終了する。
【００５６】
なお、ＣＰＵ３２は、接続関係処理の実行中に、登録アカウント数が「２」以上の範囲で変化する場合に、Ｓ１０に戻る。
【００５７】
（ＸＭＰＰ接続の接続状態のタイムチャート；図７）
続いて、図７を参照して、図５及び図６の処理によって実現されるＸＭＰＰ接続の接続状態のタイムチャートを説明する。タイムチャートは、ユーザテーブル３８において各アカウント情報（例えばＡＩ１）に関連付けられているアクセストークンを利用したＸＭＰＰ接続が確立されている状態であるのか（図中の「接続」）、当該ＸＭＰＰ接続が確立されていない状態であるのか（図中の「非接続」）を示す。
【００５８】
上側のタイムチャートは、第１のユーザがＰＣ９０−１を利用して図３及び図４の登録プロセスを実行した後の時刻ｔ０において、第２のユーザによってＰＣ９０−２を利用した登録プロセスが実行される場合のタイムチャートである。即ち、上側のタイムチャートは、登録アカウント数が「２」である場合のタイムチャートである。下側のタイムチャートは、時刻ｔ０よりも後の時刻ｔ１０において、第３のユーザによってＰＣ９０−３を利用した登録プロセスが実行される場合のタイムチャートである。即ち、下側のタイムチャートは、登録アカウント数が「３」である場合のタイムチャートである。
【００５９】
まず、上側のタイムチャートについて説明する。なお、第２のユーザによってＰＣ９０−２を利用した登録プロセスが実行される際に、プリンタ１０とサーバ１００との間には、アクセストークンＡＴ１を利用したＸＭＰＰ接続（以下では、「第１のＸＭＰＰ接続」と記載する）が確立されている（図４のＴ１５２参照）。プリンタ１０は、時刻ｔ０において、登録アカウント数が「２」に変化すると、図５の接続関係処理を実行する。
【００６０】
まず、プリンタ１０は、ユーザテーブル３８内の各接続時間を変更する（Ｓ１０）。具体的には、プリンタ１０は、１サイクル時間６０秒を登録アカウント数「２」で除算することによって、接続時間３０秒を算出する。プリンタ１０は、各アカウント情報ＡＩ１、ＡＩ２に対応する接続時間として算出済みの接続時間３０秒をユーザテーブル３８に記憶させる（Ｓ１０）。そして、プリンタ１０は、第１のＸＭＰＰ接続を切断し、ポインタＺの値を「０」に設定し（Ｓ２０）、ポインタＺの値を「０」から「１」に変更する（Ｓ２２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に対応するアクセストークンＡＴ１を特定し、特定済みのアクセストークンＡＴ１を利用して第１のＸＭＰＰ接続を確立する（図６のＳ５０）。
【００６１】
プリンタ１０は、現在時刻が時刻ｔ１に到達すると、第１のＸＭＰＰ接続が確立されてからの経過時間が、ユーザテーブル３８内のＮｏ．１に関連付けられている接続時間３０秒に到達したと判断し（Ｓ７０でＹＥＳ）、第１のＸＭＰＰ接続を切断する（Ｓ７２）。そして、プリンタ１０は、ポインタＺの値「１」がＭＡＸ値「２」に到達していないと判断し（Ｓ３０でＮＯ）、ポインタＺの値を「１」から「２」に変更する（Ｓ２２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．２に関連付けられているアクセストークンＡＴ２を特定し、特定済みのアクセストークンＡＴ２を利用してサーバ１００とのＸＭＰＰ接続（以下では、「第２のＸＭＰＰ接続」と記載する）を確立する（Ｓ５０）。
【００６２】
プリンタ１０は、現在時刻が時刻ｔ２に到達すると、第２のＸＭＰＰ接続が確立されてからの経過時間が、ユーザテーブル３８内のＮｏ．２に関連付けられている接続時間３０秒に到達したと判断し（Ｓ７０でＹＥＳ）、第２のＸＭＰＰ接続を切断する（Ｓ７２）。そして、プリンタ１０は、ポインタＺの値「２」がＭＡＸ値「２」に到達したと判断し（Ｓ３０でＹＥＳ）、ポインタＺの値を「０」に戻し（Ｓ２０）、ポインタＺの値を「０」から「１」に変更する（Ｓ２２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に関連付けられているアクセストークンＡＴ１を特定し（Ｓ２４）、第１のＸＭＰＰ接続を再び確立する（Ｓ５０）。その後の時刻ｔ３では、時刻ｔ１において実行される処理と同様の処理が実行され、時刻ｔ４では、時刻ｔ２において実行される処理と同様の処理が実行される。このように、プリンタ１０は、上限数「１」を超える数のＸＭＰＰ接続を同時的に確立することなく、２個のＸＭＰＰ接続を順次確立する。
【００６３】
続いて、下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ１０において、登録アカウント数が「２」から「３」に増加すると、図５のＳ１０に戻る。時刻ｔ１０で実行される処理は、ユーザテーブル３８内に記憶される接続時間が異なる点を除いて、時刻ｔ０で実行される処理と同様である。時刻ｔ１０において、ユーザテーブル３８に記憶される接続時間について説明する。プリンタ１０は、ユーザテーブル３８内の登録アカウント数が「３」であることを特定し、１サイクル時間６０秒をアカウント数「３」で除算して、接続時間２０秒を算出する。そして、プリンタ１０は、アカウント情報ＡＩ１〜ＡＩ３に対応する接続時間として算出済みの接続時間２０秒をユーザテーブル３８に記憶させる（Ｓ１０）。このように、アカウント数「３」に対応する接続時間は、アカウント数「２」に対応する接続時間よりも短い。本実施例では、登録アカウント数が大きい程、接続時間が短くなる。
【００６４】
時刻ｔ１１（即ち時刻ｔ１０から接続時間２０秒が経過した時刻）で実行される処理は、時刻ｔ１で実行される処理と同様である。従って、時刻ｔ１１では、第１のＸＭＰＰ接続が切断され、第２のＸＭＰＰ接続が確立される。
【００６５】
時刻ｔ１２（即ち時刻ｔ１１から接続時間２０秒が経過した時刻）で実行される処理は、ポインタＺの値「２」がＭＡＸ値「３」に到達したと判断されない点（Ｓ３０でＮＯ）、及び、アクセストークンＡＴ３を利用したサーバ１００とのＸＭＰＰ接続（以下では、「第３のＸＭＰＰ接続」と記載する）が確立される点を除いて、時刻ｔ２で実行される処理と同様である。
【００６６】
プリンタ１０は、現在時刻が時刻ｔ１３（即ち時刻ｔ１２から接続時間２０秒が経過した時刻）に到達すると、第３のＸＭＰＰ接続が確立されてからの経過時間が、ユーザテーブル３８内のＮｏ．３に関連付けられている接続時間２０秒に到達したと判断し（Ｓ７０でＹＥＳ）、第３のＸＭＰＰ接続を切断する（Ｓ７２）。そして、プリンタ１０は、ポインタＺの値「３」がＭＡＸ値「３」に到達したと判断し（Ｓ３０でＹＥＳ）、ポインタＺの値を「０」に戻し（Ｓ２０）、ポインタＺの値を「０」から「１」に変更する（Ｓ２２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に対応するアクセストークンＡＴ１を特定し、特定済みのアクセストークンＡＴ１を利用して第１のＸＭＰＰ接続を再び確立する（Ｓ５０）。その後の時刻ｔ１４、ｔ１５、ｔ１６では、それぞれ、時刻ｔ１１、ｔ１２、ｔ１３で実行される処理と同様の処理が実行される。このように、プリンタ１０は、上限数「１」を超える個数のＸＭＰＰ接続を同時的に確立することなく、３個のＸＭＰＰ接続を順次確立する。
【００６７】
（サーバ印刷プロセス；図８）
続いて、図８及び図９を参照して、サーバ１００を利用してプリンタ１０に印刷を実行させるサーバ印刷プロセスを説明する。図８の初期状態では、プリンタ１０のユーザテーブル３８には、アカウント情報ＡＩ１に対応する関連情報と、ＡＩ２に対応する関連情報と、が記憶されている。また、サーバ１００のアカウントテーブル１３８には、アカウント情報ＡＩ１に対応する各情報と、アカウント情報ＡＩ２に対応する各情報と、が記憶される。図８の初期状態は、図７の上側のタイムチャートの時刻ｔ０から時刻１の間、即ち、第１のＸＭＰＰ接続が確立されており、第２のＸＭＰＰ接続が確立されていない。
【００６８】
プリンタ１０は、現在時刻が時刻ｔ１に到達すると、第１のＸＭＰＰ接続が確立されてからの経過時間が接続時間３０秒に到達したと判断し（図６のＳ７０でＹＥＳ）、Ｔ２００において、切断要求をサーバ１００に送信し、第１のＸＭＰＰ接続を切断する（図６のＳ７２）。そして、プリンタ１０は、Ｔ２０２において、アクセストークンＡＴ２を含む接続要求をサーバ１００に送信し、第２のＸＭＰＰ接続を確立する（Ｓ５０）。
【００６９】
Ｔ２１０において、プリンタ１０は、ユーザＩＤ「Ｕ１」及びパスワード「Ｐ１」の入力を含むログイン操作を第１のユーザから受け付ける。この場合、プリンタ１０は、ユーザテーブル３８内のユーザＩＤ「Ｕ１」に関連付けられているログイン状態情報を「ログアウト」から「ログイン」に変更する。
【００７０】
ＰＣ９０−１は、アカウント情報ＡＩ１の入力を第１のユーザから受け付けると、Ｔ２２０において、アカウント情報ＡＩ１を含むログイン要求をサーバ１００に送信し、Ｔ２２２において、デバイス選択画面要求をサーバ１００に送信する。当該要求は、アカウント情報ＡＩ１に関連付けられているプリンタを選択する画面に対応するデータの送信をサーバ１００に要求するコマンドである。
【００７１】
サーバ１００は、Ｔ２２２において、ＰＣ９０−１からデバイス選択画面要求を受信すると、アカウントテーブル１３８内のアカウント情報ＡＩ１に対応する管理ＩＤ「Ｍ１」を特定し、Ｔ２２４において、特定済みの管理ＩＤ「Ｍ１」を含むデバイス選択画面データをＰＣ９０−１に送信する。なお、第１のユーザがプリンタ１０とは異なるプリンタをサーバ１００に登録済みである場合には、デバイス選択画面データは、さらに、当該異なるプリンタの管理ＩＤを含む。
【００７２】
ＰＣ９０−１は、Ｔ２２４において、サーバ１００からデバイス選択画面データを受信すると、Ｔ２２６において、デバイス選択画面を表示する。ＰＣ９０−１は、Ｔ２３０において、デバイス選択画面内の管理ＩＤ「Ｍ１」の選択を第１のユーザから受け付けると、Ｔ２３２において、管理ＩＤ「Ｍ１」を含む設定画面要求をサーバ１００に送信する。当該要求は、印刷設定を選択する画面に対応するデータの送信をサーバ１００に要求するコマンドである。
【００７３】
サーバ１００は、Ｔ２３２において、ＰＣ９０−１から設定画面要求を受信する場合に、アカウントテーブル１３８内の管理ＩＤ「Ｍ１」に関連付けられている制限情報「Ｌ１」を特定する。サーバ１００は、特定済みの制限情報「Ｌ１」で許可されている画像処理（即ちモノクロ印刷）を選択可能な設定画面に対応する設定画面データを生成する。そして、サーバ１００は、Ｔ２３４において、生成済みの設定画面データをＰＣ９０−１に送信する。
【００７４】
ＰＣ９０−１は、Ｔ２３４において、サーバ１００から設定画面データを受信すると、Ｔ２３６において、設定画面を表示する。当該画面は、モノクロ印刷を示すボタンを含み、カラー印刷を示すボタンを含まない。Ｔ２４０において、ＰＣ９０−１は、設定画面内のモノクロを示すボタンの選択、及び、画像ファイルＦ１の選択を第１のユーザから受け付ける。そして、Ｔ２４２において、ＰＣ９０−１は、画像ファイルＦ１と、モノクロ印刷を示す印刷設定「モノクロ」と、をサーバ１００に送信する。
【００７５】
サーバ１００は、Ｔ２４２において、ＰＣ９０−１から画像ファイルＦ１及び印刷設定「モノクロ」を受信すると、印刷設定「モノクロ」に従って画像ファイルＦ１を変換して、印刷データＰＤ１を生成する。そして、サーバ１００は、Ｔ２４４において、Ｔ２３２で受信された管理ＩＤ「Ｍ１」と、生成済みの印刷データＰＤ１と、Ｔ２３２で受信された印刷設定「モノクロ」と、を含む印刷ジョブＪ１をメモリ１３４に記憶させる。この場合、サーバ１００は、第１のＸＭＰＰ接続が確立されていないと判断し、管理ＩＤ「Ｍ１」を含むジョブ通知をプリンタ１０に送信しない。
【００７６】
図９において、プリンタ１０は、現在時刻が時刻ｔ２に到達すると、第２のＸＭＰＰ接続が確立されてからの経過時間が接続時間３０秒に到達したと判断し（図６のＳ７０でＹＥＳ）、Ｔ２５０において、切断要求をサーバ１００に送信し、第２のＸＭＰＰ接続を切断する（Ｓ７２）。そして、プリンタ１０は、Ｔ２５２において、アクセストークンＡＴ１を含む接続要求をサーバ１００に送信し、第１のＸＭＰＰ接続を確立する（Ｓ５０）。
【００７７】
プリンタ１０は、ユーザテーブル３８内のアクセストークンＡＴ１に関連付けられている管理ＩＤ「Ｍ１」を特定し、Ｔ２５４において、管理ＩＤ「Ｍ１」を含むジョブ要求をサーバ１００に送信する（Ｓ５２）。ジョブ要求は、印刷ジョブの送信をサーバ１００に要求するためのコマンドである。
【００７８】
サーバ１００は、Ｔ２５４において、プリンタ１０からジョブ要求を受信すると、ジョブ要求内の管理ＩＤ「Ｍ１」を特定し、Ｔ２５６において、メモリ１３４内の管理ＩＤ「Ｍ１」を含む印刷ジョブＪ１をプリンタ１０に送信する。
【００７９】
プリンタ１０は、Ｔ２５６において、サーバ１００から印刷ジョブＪ１を受信すると、Ｔ２５８において、印刷ジョブＪ１に従った印刷を実行する。具体的には、プリンタ１０は、印刷ジョブＪ１内の印刷データＰＤ１を印刷実行部１８に供給すると共に、印刷設定「モノクロ」を印刷実行部１８に指示する。これにより、印刷データに対応するモノクロ印刷が印刷実行部１８によって実行される。そして、プリンタ１０は、Ｔ２６０において、ユーザテーブル３８内の管理ＩＤ「Ｍ１」に関連付けられている印刷時刻に現在時刻を記憶させるとともに、印刷回数を「７」から「８」に変更する。
【００８０】
続いて、時刻ｔ２から時刻ｔ３の間、即ち、第１のＸＭＰＰ接続が確立されている間に、ＰＣ９０−１及びサーバ１００の間で、図８のＴ２２０〜Ｔ２４０と同様の処理が実行される状況を想定する。なお、第１のユーザは、図８のＴ２４０において、設定画面内のモノクロを示すボタンを選択し、画像ファイルＦ２を選択する。この場合、サーバ１００は、Ｔ２７２において、ＰＣ９０−１から画像ファイルＦ２及び印刷設定「モノクロ」を受信し、印刷設定「モノクロ」に従って画像ファイルＦ２を変換して、印刷データＰＤ２を生成する。そして、サーバ１００は、Ｔ２８０において、受信済みの管理ＩＤ「Ｍ１」（Ｔ２３２参照）と、生成済みの印刷データＰＤ２と、Ｔ２７２で受信された印刷設定「モノクロ」と、を含む印刷ジョブＪ２を記憶する。この時点では、第１のＸＭＰＰ接続が確立されている。このため、サーバ１００は、Ｔ２８２において、第１のＸＭＰＰ接続を利用して、管理ＩＤ「Ｍ１」を含むジョブ通知をプリンタ１０に送信する。
【００８１】
プリンタ１０は、Ｔ２８２において、サーバ１００からジョブ通知を受信すると（Ｓ６０でＹＥＳ）、当該通知内の管理ＩＤ「Ｍ１」を特定し、管理ＩＤ「Ｍ１」を含むジョブ要求をサーバ１００に送信する（Ｓ６２）。プリンタ１０は、ジョブ要求がサーバ１００に送信されることに応じて、Ｔ２８６において、印刷ジョブＪ２をサーバ１００から受信する。Ｔ２８８は、Ｔ２５８と同様である。そして、プリンタ１０は、Ｔ２９０において、ユーザテーブル３８内の管理ＩＤ「Ｍ１」に関連付けられている印刷時刻に現在時刻を記憶させるとともに、印刷回数を「８」から「９」に変更する。Ｔ３００、Ｔ３０２は、それぞれ、図８のＴ２００、Ｔ２０２と同様である。これにより、時刻ｔ３（即ち時刻ｔ２から接続時間３０秒が経過した時刻）において、第１のＸＭＰＰ接続が切断され、第２のＸＭＰＰ接続が確立される。
【００８２】
上述のように、プリンタ１０は、第１のＸＭＰＰ接続が確立される場合に、ジョブ要求をサーバ１００に送信する。このため、第１のＸＭＰＰ接続が確立されていない間（例えば時刻ｔ１〜時刻ｔ２の間）に、管理ＩＤ「Ｍ１」に対応する印刷ジョブがサーバ１００に記憶されても、当該印刷ジョブをサーバ１００から受信することができる（Ｔ２５６参照）。また、プリンタ１０は、第１のＸＭＰＰ接続が確立されている状態において、管理ＩＤ「Ｍ１」に対応する印刷ジョブがサーバ１００に記憶される場合に、ジョブ通知をサーバ１００から受信する（Ｔ２８２参照）。この場合、プリンタ１０は、ジョブ要求をサーバ１００に送信することに応じて、印刷ジョブをサーバ１００から受信する。従って、プリンタ１０は、管理ＩＤ「Ｍ１」に対応する印刷ジョブがサーバ１００に記憶されれば、当該印刷ジョブを受信し、当該印刷ジョブ内の印刷データを利用した印刷を実行することができる。管理ＩＤ「Ｍ２」に対応する印刷ジョブについても同様である。
【００８３】
（本実施例の効果）
本実施例では、プリンタ１０が複数人のユーザ（即ち第１のユーザ〜第３のユーザ）によって共用されることを想定しており、当該複数人のユーザのそれぞれについて、同じプリンタ１０をサーバ１００に登録することができる。このような状況において、図８及び図９のサーバ印刷プロセスを実現させるために、ユーザテーブル３８内の複数個のアクセストークンを利用して、複数個のＸＭＰＰ接続を常時確立する構成が考えられる。しかしながら、プリンタ１０は、サーバ１００とのＸＭＰＰ接続を維持するために、生存確認信号をサーバ１００に定期的に送信する必要がある。また、プリンタ１０は、サーバ１００から、サーバ１００が起動状態であることを示す生存確認信号を定期的に受信する。このため、複数個のＸＭＰＰ接続を常時確立する構成の場合、当該複数個のＸＭＰＰ接続を維持するために、複数個の生存確認信号の送受信が必要となり、プリンタ１０の通信負荷が高くなる。そこで、本実施例では、プリンタ１０は、登録アカウント数が「２」以上の場合に、ＸＭＰＰ接続数が上限数「１」を超えないように、接続処理を繰り返し実行する。これにより、プリンタは、上限数「１」を超えるＸＭＰＰ接続をサーバ１００と確立することなく複数個のＸＭＰＰ接続を順次確立することができる。この場合、プリンタ１０は、上限数を超えない数の生存確認信号を送信する。従って、プリンタ１０が登録アカウント数のＸＭＰＰ接続を常時確立する構成と比べると、プリンタ１０の通信負荷を低減させることができる。
【００８４】
（対応関係）
プリンタ１０が、「通信装置」の一例である。アクセストークンが、「認証情報」の一例である。ＸＭＰＰ接続が、「接続」の一例である。アカウント情報が、「ユーザ情報」の一例である。ジョブ通知が、「特定の通知」の一例である。印刷データが、「対象データ」の一例である。アクセストークンＡＴ２が、「特定の認証情報」の一例である。ユーザテーブル３８内のＮｏ．が、「選択順序」の一例である。ユーザテーブル３８内の印刷回数が、「受信回数」の一例である。
【００８５】
図４のＴ１４２が、「第１の記憶制御部」によって実行される処理の一例である。図９のＴ２８２、Ｔ２８６が、それぞれ、「通知受信部」、「データ受信部」によって実行される処理の一例である。図６のＳ５０、Ｓ７２が、「接続制御部」によって実行される処理の一例である。
【００８６】
（第２〜第５実施例）
続いて、第２実施例〜第５実施例について説明する。これらの実施例では、図５のＳ１０で実行される処理が第１実施例とは異なる。
【００８７】
（第２実施例）
本実施例では、ＣＰＵ３２は、図５のＳ１０において、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間よりも長くなるように、ユーザテーブル３８内の各接続時間を変更する。本実施例では、ＣＰＵ３２は、ログイン状態情報「ログイン」に関連付けられている接続時間が、ログイン状態情報「ログアウト」に関連付けられている接続時間の２倍になるように接続時間を変更する。また、ＣＰＵ３２は、接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合、又は、ユーザテーブル３８内の登録状態情報「登録」に関連付けられているログイン状態情報が変化する場合に、Ｓ１０に戻る。
【００８８】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１０）
図１０を参照して、本実施例の図５及び図６の処理によって実現されるＸＭＰＰ接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「３」の状態において、全てのログイン状態情報が「ログアウト」である場合のタイムチャートである。上側のタイムチャートの各時刻ｔ２０〜ｔ２６で実行される処理は、図７の下側のタイムチャートの各時刻ｔ１０〜時刻ｔ１６で実行される処理と同様である。下側のタイムチャートは、時刻ｔ２０よりも後の時刻ｔ３０において、第１のユーザがプリンタ１０にログインした場合のタイムチャートである。
【００８９】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ３０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応するログイン状態情報が、それぞれ、「ログイン」、「ログアウト」、「ログアウト」であることを特定する。そして、プリンタ１０は、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に関連付けられている接続時間の比率が「２：１：１」となるように、１サイクル時間６０秒を分割する。この場合、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３の接続時間は、それぞれ、３０秒、１５秒、１５秒と算出される。そして、プリンタ１０は、算出済みの各接続時間をユーザテーブル３８に記憶させる（Ｓ１０）。その後の時刻ｔ３１〜ｔ３６で実行される処理は、上側のタイムチャートのｔ２１〜ｔ２６で実行される処理と同様である。
【００９０】
（本実施例の効果）
ユーザテーブル３８内のログイン状態情報が「ログイン」に対応するユーザは、ログイン状態情報が「ログアウト」であるユーザよりも、画像ファイルをサーバ１００にサブミットする可能性が高い。プリンタ１０は、ログイン状態情報「ログイン」に対応する接続時間を長くすることで、当該ログイン状態情報に対応するユーザによって画像ファイルがサーバ１００にサブミットされる場合に、ジョブ通知をサーバ１００から受信する可能性を高めることができる。
【００９１】
（第３実施例）
本実施例では、ＣＰＵ３２は、図５の接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合、又は、更新時間が経過する毎（例えば１２時間毎）に、Ｓ１０に戻る。そして、ＣＰＵ３２は、更新時間が経過することに応じてＳ１０に戻る場合に、Ｓ１０において、ユーザテーブル３８内の各印刷時刻を特定し、印刷時刻が新しい順に、当該印刷時刻に対応する接続時間が長くなるように、ユーザテーブル３８内の各接続時間を変更する。
【００９２】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１１）
図１１を参照して、本実施例の図５及び図６の処理によって実現されるＸＭＰＰ接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「３」の状態において、ユーザテーブル３８内の全ての印刷時刻が空の状態である場合のタイムチャートである。上側のタイムチャートの各時刻ｔ４０〜ｔ４６で実行される処理は、図７の下側のタイムチャートの各時刻ｔ１０〜時刻ｔ１６で実行される処理と同様である。下側のタイムチャートは、時刻ｔ５０において、更新時間したと判断される場合のタイムチャートである。なお、時刻ｔ５０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する印刷時刻は、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に新しい。
【００９３】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ５０において、ユーザテーブル３８内の各印刷時刻を特定する。そして、プリンタ１０は、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する印刷時刻が、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に新しいことを特定し、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する接続時間の比率が「３：２：１」となるように、１サイクル時間６０秒を分割する。この場合、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３の接続時間は、それぞれ、３０秒、２０秒、１０秒と算出される。そして、プリンタ１０は、算出済みの各接続時間をユーザテーブル３８に記憶させる（Ｓ１０）。その後の時刻ｔ５１〜ｔ５６で実行される処理は、上側のタイムチャートの時刻ｔ４１〜ｔ４６で実行される処理と同様である。
【００９４】
（本実施例の効果）
上記の構成によると、ユーザテーブル３８内の最新の印刷時刻に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル３８内の最新の印刷時刻に対応するユーザは、再度、画像ファイルをサーバ１００にサブミットする可能性が高い。プリンタ１０は、最新の印刷時刻に対応する接続時間を最も長くすることで、当該印刷時刻に対応するユーザによって画像ファイルがサーバ１００にサブミットされる場合に、ジョブ通知をサーバ１００から受信する可能性を高めることができる。
【００９５】
（第４実施例）
本実施例では、ＣＰＵ３２は、図５の接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合、又は、更新時間が経過する毎（例えば１２時間毎）に、Ｓ１０に戻る。そして、ＣＰＵ３２は、更新時間が経過することに応じてＳ１０に戻る場合に、Ｓ１０において、ユーザテーブル３８内の各印刷回数を特定し、印刷回数が多い順に接続時間が長くなるように、ユーザテーブル３８内の各接続時間を変更する。
【００９６】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１２）
図１２を参照して、本実施例の図５及び図６の処理によって実現されるＸＭＰＰ接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、時刻ｔ６０において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻ｔ６０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する印刷回数は同じである。上側のタイムチャートの各時刻ｔ６０〜ｔ６６で実行される処理は、図７の下側のタイムチャートの各時刻ｔ１０〜時刻ｔ１６で実行される処理と同様である。下側のタイムチャートは、時刻ｔ７０において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻ｔ７０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する印刷回数は、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に多い。
【００９７】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ７０において、ユーザテーブル３８内の各印刷回数を特定する。そして、プリンタ１０は、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する回数が、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に多いことを特定し、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する接続時間の比率が「３：２：１」となるように、１サイクル時間６０秒を分割する。この場合、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３の接続時間は、それぞれ、３０秒、２０秒、１０秒と算出される。そして、プリンタ１０は、算出済みの各接続時間をユーザテーブル３８に記憶させる（Ｓ１０）。その後の時刻ｔ７１〜ｔ７６で実行される処理は、上側のタイムチャートのｔ６１〜ｔ６６で実行される処理と同様である。
【００９８】
（本実施例の効果）
上記の構成によると、ユーザテーブル３８内の最も多い印刷回数に対応する接続時間が他の接続時間よりも長くなる。ユーザテーブル３８内の最も多い印刷回数に対応するユーザは、画像ファイルをサーバ１００にサブミットする可能性が高い。プリンタ１０は、最も多い印刷回数に対応する接続時間を最も長くすることで、当該印刷回数に対応するユーザによって画像ファイルがサーバ１００にサブミットされる場合に、ジョブ通知をサーバ１００から受信する可能性を高めることができる。
【００９９】
（第５実施例）
本実施例では、ＣＰＵ３２は、図５のＳ１０において、接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合、又は、ユーザテーブル３８内のいずれかの実行枚数が許容枚数に達する場合に、Ｓ１０に戻る。そして、ＣＰＵ３２は、Ｓ１０において、実行枚数が許容枚数に達していないユーザに対応する接続時間を、実行枚数が許容枚数に達しているユーザに対応する接続時間よりも長くなるように、ユーザテーブル３８内の接続時間を変更する。本実施例では、ＣＰＵ３２は、実行枚数が許容枚数に達していないユーザに対応する接続時間が、実行枚数が許容枚数に達しているユーザに対応する接続時間の２倍になるようにユーザテーブル３８内の接続時間を変更する。
【０１００】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１３）
図１３を参照して、本実施例の図５及び図６の処理によって実現されるＸＭＰＰ接続の接続状態のタイムチャートを説明する。上側のタイムチャートは、登録アカウント数が「３」の状態において、ユーザテーブル３８内の全ての実行枚数が許容枚数に達していない場合のタイムチャートである。上側のタイムチャートの各時刻ｔ８０〜ｔ８６で実行される処理は、図７の下側のタイムチャートの各時刻ｔ１０〜時刻ｔ１６で実行される処理と同様である。下側のタイムチャートは、時刻ｔ９０において、ユーザテーブル３８内のアカウント情報ＡＩ１に対応する実行枚数が許容枚数に達した場合のフローチャートである。
【０１０１】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ９０において、ユーザテーブル３８内の各印刷回数を特定する。そして、プリンタ１０は、ユーザテーブル３８内のアカウント情報ＡＩ１に対応する実行枚数が許容枚数に達しており、アカウント情報ＡＩ２、ＡＩ３に対応するに実行枚数が許容枚数に達していないことを特定する。そして、プリンタ１０は、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する接続時間の比率が「０．５：１：１」となるように、１サイクル時間６０秒を分割する。この場合、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３の接続時間は、それぞれ、１２秒、２４秒、２４秒と算出される。そして、プリンタ１０は、算出済みの各接続時間をユーザテーブル３８に記憶させる（Ｓ１０）。その後の時刻ｔ９１〜ｔ９６で実行される処理は、上側のタイムチャートのｔ８１〜ｔ８６で実行される処理と同様である。
【０１０２】
（本実施例の効果）
ユーザテーブル３８内の実行枚数が許容枚数に達していないユーザは、実行枚数が許容枚数に達しているユーザと比較して、画像ファイルをサーバ１００にサブミットする可能性が高い。プリンタ１０は、ユーザテーブル３８内の実行枚数が許容枚数に達していないユーザに対応する接続時間を長くすることで、当該ユーザによって画像ファイルがサーバ１００にサブミットされる場合に、ジョブ通知をサーバ１００から受信する可能性を高めることができる。
【０１０３】
（第６実施例）
続いて、第６実施例について説明する。本実施例では、プリンタ１０のＣＰＵ３２は、図５の接続関係処理に代えて、図１４の接続関係処理及び図１５の切断処理を実行する。本実施例では、ＣＰＵ３２は、サーバ１００と同時的に確立可能なＸＭＰＰ接続の上限数を変更可能である。
【０１０４】
（接続関係処理；図１４）
図１４を参照して、本実施例の接続関係処理について説明する。Ｓ１１０において、ＣＰＵ３２は、登録アカウント数を上限数で除算した第１の除算値が第１の所定値ｐ１以上であるのか否かを判断する。第１の所定値ｐ１は、上限数を変更するのか否かを判定するための閾値であり、本実施例では、「３」である。第１の所定値ｐ１は、上限数が登録アカウント数未満になるように設定される。ＣＰＵ３２は、第１の除算値が第１の所定値ｐ１以上である場合に、Ｓ１１０でＹＥＳと判断して、Ｓ１１２に進む。Ｓ１１２において、ＣＰＵ３２は、上限数を変更する。本実施例では、ＣＰＵ３２は、上限数を「１」だけインクリメントする。なお、ＣＰＵ３２は、接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合に、Ｓ１１０に戻る。
【０１０５】
一方、ＣＰＵ３２は、第１の除算値が第１の所定値ｐ１未満である場合に、Ｓ１１０でＮＯと判断し、Ｓ１１２をスキップし、Ｓ１２０に進む。即ち、ＣＰＵ３２は、上限数を変更しない。
【０１０６】
Ｓ１２０において、ＣＰＵ３２は、ユーザテーブル３８内の各接続時間を変更する。Ｓ１２２、Ｓ１３０〜Ｓ１３４は、それぞれ、図６のＳ１２、Ｓ２０〜Ｓ２４と同様である。
【０１０７】
Ｓ１４０において、ＣＰＵ３２は、Ｓ１３４で特定されたアクセストークンを利用したＸＭＰＰ接続が確立されているのか否かを判断する。ＣＰＵ３２は、特定済みのアクセストークンを利用したＸＭＰＰ接続が確立されていると判断する場合（Ｓ１４０でＹＥＳ）に、Ｓ１４２、Ｓ１４４をスキップして、Ｓ１５０に進む。一方、ＣＰＵ３２は、特定済みのアクセストークンを利用したＸＭＰＰ接続が確立されていないと判断する場合（Ｓ１４０でＮＯ）に、Ｓ１４２に進む。
【０１０８】
Ｓ１４２において、ＣＰＵ３２は、現在確立されているＸＭＰＰ接続の数（以下では、「ＸＭＰＰ接続数」と記載することがある）が上限数未満であるのか否かを判断する。ＣＰＵ３２は、ＸＭＰＰ接続数が上限数未満である場合に、Ｓ１４２でＹＥＳと判断し、Ｓ１４４に進む。一方、ＣＰＵ３２は、ＸＭＰＰ接続数が上限数に一致する場合に、Ｓ１４２でＮＯと判断し、ＸＭＰＰ接続数が上限数未満となることを監視する。Ｓ１４４は、図６のＳ５０と同様である。Ｓ１５０は、図５のＳ３０と同様である、ＣＰＵ３２は、Ｓ１５０でＹＥＳと判断される場合に、Ｓ１３０に進み、Ｓ１５０でＮＯと判断される場合に、Ｓ１３２に進む。
【０１０９】
（切断処理；図１５）
続いて、図１５を参照して、プリンタ１０のＣＰＵ３２によって実行される切断処理について説明する。ＣＰＵ３２は、図１４のＳ１４４でサーバ１００とのＸＭＰＰ接続が確立される場合に、図１５の処理を開始する。Ｓ１７２〜１９２は、図６のＳ５２〜Ｓ７２と同様である。なお、ＣＰＵ３２は、上限数が「２」以上である場合、複数個の切断処理を並行して実行し得る。
【０１１０】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１６）
続いて、図１６を参照して、図１４及び図１５の処理によって実現されるタイムチャートを説明する。上側のタイムチャートの各時刻ｔ１００〜時刻ｔ１０４で実行される処理は、図７の上側のタイムチャートの各時刻ｔ０〜時刻ｔ４で実行される処理同様である。と同様である。下側のタイムチャートは、時刻ｔ１１０において、登録アカウント数が「２」から「３」に変化する場合のタイムチャートである。
【０１１１】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ１１０において、登録アカウント数「３」を上限数「１」で除算した除算値「３」が、第１の所定値ｐ１（「３」）以上であると判断し（Ｓ１１０でＹＥＳ）、上限数を「１」から「２」に変更する（Ｓ１１２）。そして、プリンタ１０は、ユーザテーブル３８内の各接続時間を変更する（Ｓ１２０）。具体的には、プリンタ１０は、１サイクル時間６０秒に上限数「２」を乗算し、乗算値１２０秒を登録アカウント数「３」で除算することによって、接続時間４０秒を算出する。プリンタ１０は、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する接続時間として算出済みの接続時間４０秒をユーザテーブル３８に記憶させる（Ｓ１２０）。
【０１１２】
次いで、プリンタ１０は、現在確立されているサーバ１００とのＸＭＰＰ接続を切断し（Ｓ１２２）、ポインタＺの値を「０」に設定し（Ｓ１３０）、ポインタＺの値を「０」から「１」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に対応するアクセストークンＡＴ１を特定し（Ｓ１３４）、第１のＸＭＰＰ接続が確立されていないと判断し（Ｓ１４０でＹＥＳ）、ＸＭＰＰ接続数「０」が上限数「２」未満であると判断し（Ｓ１４２でＹＥＳ）、第１のＸＭＰＰ接続を確立する（Ｓ１４４）。
【０１１３】
また、ＣＰＵ３２は、ポインタＺの値「１」がＭＡＸ値「３」に到達していないと判断し（Ｓ１５０でＮＯ）、ポインタＺの値を「１」から「２」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．２に対応するアクセストークンＡＴ２を特定し、第２のＸＭＰＰ接続が確立されていないと判断し（Ｓ１４０でＹＥＳ）、ＸＭＰＰ接続数「１」が上限数「２」未満であると判断し（Ｓ１４２でＹＥＳ）、第２のＸＭＰＰ接続を確立する（Ｓ１４４）。このように、時刻ｔ１１１において、２個のＸＭＰＰ接続が同時的に確立される。
【０１１４】
また、ＣＰＵ３２は、ポインタＺの値「２」がＭＡＸ値「３」に到達していないと判断し（Ｓ１５０でＮＯ）、ポインタＺの値を「２」から「３」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．３に対応するアクセストークンＡＴ３を特定し、第３のＸＭＰＰ接続が確立されていないと判断し（Ｓ１４０でＹＥＳ）、ＸＭＰＰ接続数「２」が上限数「２」に一致すると判断し（Ｓ１４２でＮＯ）、ＸＭＰＰ接続数が上限数未満になることを監視する。
【０１１５】
プリンタ１０は、現在時刻が時刻ｔ１１１に到達すると、第１のＸＭＰＰ接続が確立されてからの経過時間が、ユーザテーブル３８内のＮｏ．１に対応する接続時間４０秒に到達したと判断し（図１５のＳ１９０でＹＥＳ）、第１のＸＭＰＰ接続を切断する（Ｓ１９２）。プリンタ１０は、同様に、第２のＸＭＰＰ接続も切断する。この場合、プリンタ１０は、ＸＭＰＰ接続数「０」が上限数「２」未満になったと判断し（Ｓ１４２でＹＥＳ）、第３のＸＭＰＰ接続を確立する。
【０１１６】
また、ＣＰＵ３２は、ポインタＺの値「３」がＭＡＸ値「３」に到達したと判断し（Ｓ１５０でＹＥＳ）、ポインタＺの値を「０」に戻し（Ｓ１３０）、ポインタＺの値を「０」から「１」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に対応するアクセストークンＡＴ１を特定し、第１のＸＭＰＰ接続が確立されていないと判断し（Ｓ１４０でＹＥＳ）、ＸＭＰＰ接続数「１」が上限数「２」未満であると判断し（Ｓ１４２でＹＥＳ）、第１のＸＭＰＰ接続を確立する（Ｓ１４４）。
【０１１７】
その後の時刻ｔ１１２では、第３のＸＭＰＰ接続及び第１のＸＭＰＰ接続が切断され、第２のＸＭＰＰ接続及び第３のＸＭＰＰ接続が確立される。また、時刻ｔ１１３では、第２のＸＭＰＰ接続及び第３のＸＭＰＰ接続が切断され、第１のＸＭＰＰ接続及び第１のＸＭＰＰ接続が確立される。時刻ｔ１１４で実行される処理は、時刻ｔ１１０で実行される処理と同様である。
【０１１８】
（本実施例の効果）
本実施例では、プリンタ１０は、第１の除算値（登録アカウント数／上限数）が第１の所定値ｐ１以上となる場合（Ｓ１１０でＹＥＳ）に、上限数を１だけインクリメントする（Ｓ１１２）。これにより、ユーザテーブル３８内の各接続時間を長くすることができる。従って、登録アカウント数が多くなっても、ユーザテーブル３８内の各接続時間が比較的に短くなることを抑制することができる。また、本実施例では、上限数は、登録アカウント数未満である。従って、登録アカウント数と同じ数のＸＭＰＰ接続が常時確立される構成と比べると、プリンタ１０の通信負荷を低減することができる。
【０１１９】
（第７実施例）
第７実施例では、図１４のＳ１１０で実行される処理が第６実施例とは異なる。また、ＣＰＵ３２は、Ｓ１１０の前にＳ１０８を実行する。また、本実施例では、ＣＰＵ３２は、ユーザテーブル３８内の印刷回数が多い順に接続時間が長くなるように、ユーザテーブル３８内の各接続時間を変更する。
【０１２０】
図１４のＳ１０８において、ＣＰＵ３２は、現在の上限数を利用して、接続時間を算出する。次いで、Ｓ１１０において、ＣＰＵ３２は、非接続時間を接続時間で除算した第２の除算値が第２の所定値ｐ２以上であるのか否かを判断する。第２の所定値ｐ２は、上限数を変更するのか否かを判定するための閾値であり、本実施例では、「４」である。なお、第２の所定値ｐ２は、上限数が登録アカウント数未満になるように設定される。ＣＰＵ３２は、Ｓ１０８で特定した接続時間の中から、最も短い接続時間を特定する。そして、ＣＰＵ３２は、１サイクル時間６０秒内における接続時間と、非接続時間と、を特定し、特定済みの接続時間を特定済みの非接続時間で除算することによって、第２の除算値を算出する。そして、ＣＰＵ３２は、算出済みの第２の除算値が第２の所定値ｐ２であるのか否かを判断する。ＣＰＵ３２は、第２の除算値が第２の所定値ｐ２以上であると判断する場合（Ｓ１１０でＹＥＳ）に、Ｓ１１２に進み、第２の除算値が第２の所定値ｐ２未満であると判断する場合（Ｓ１１０でＮＯ）に、Ｓ１１２をスキップして、Ｓ１２０に進む。なお、ＣＰＵ３２は、接続関係処理を実行中に、ユーザテーブル３８内の登録アカウント数が「２」以上の範囲で変化する場合、又は、更新時間が経過する毎（例えば１２時間毎）に、Ｓ１０８に戻る。
【０１２１】
（ＸＭＰＰ接続の接続状態のタイムチャート；図１７）
続いて、図１７を参照して、図１４及び図１５の処理によって実現されるタイムチャートを説明する。上側のタイムチャートは、時刻ｔ１２０において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻ｔ１２０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する印刷回数は同じである。上側のタイムチャートの各時刻ｔ１２０〜ｔ１２６で実行される処理は、図７の下側のタイムチャートの各時刻ｔ１０〜時刻ｔ１６で実行される処理と同様である。下側のタイムチャートは、時刻ｔ１３０において、更新時間が経過したと判断される場合のタイムチャートである。なお、時刻ｔ１３０において、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する各印刷回数は、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に多い。なお、図１７では、１個のアカウント情報ＡＩ（例えばアカウント情報ＡＩ１）に着目して、１サイクル時間６０秒における当該アカウント情報に対応するアクセストークンＡＴ１を利用したＸＭＰＰ接続の確立が維持されている時間を接続時間ＣＴと表し、当該ＸＭＰＰが切断されている時間を非接続時間ＮＣＴと表している。
【０１２２】
下側のタイムチャートについて説明する。プリンタ１０は、時刻ｔ１３０において、ユーザテーブル３８内の各印刷回数を特定する。そして、プリンタ１０は、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する各印刷回数が、アカウント情報ＡＩ１、アカウント情報ＡＩ２、アカウント情報ＡＩ３の順に多いことを特定し、ユーザテーブル３８内の各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３に対応する各接続時間の比率が「３：２：１」となるように、１サイクル時間６０秒を分割する。この場合、各アカウント情報ＡＩ１、ＡＩ２、ＡＩ３の接続時間は、それぞれ、３０秒、２０秒、１０秒と算出される（Ｓ１０８）。そして、プリンタ１０は、アカウント情報ＡＩ３に対応する接続時間が最も短いことを特定し、１サイクル時間６０秒内の非接続時間を５０秒と特定する。そして、プリンタ１０は、非接続時間５０秒を接続時間１０秒で除算した第２の除算値「５」が第２の所定値「４」以上であると判断し（Ｓ１１０でＹＥＳ）、上限数を「１」から「２」に変更する（Ｓ１１２）。そして、プリンタ１０は、算出済みの各接続時間をユーザテーブル３８に記憶させる（Ｓ１２０）。その後に実行される処理は、図１６の時刻ｔ１１０で実行される処理と同様である。即ち、第１のＸＭＰＰ接続及び第２のＸＭＰＰ接続が確立される。また、プリンタ１０は、ＸＭＰＰ接続数が上限数「２」未満になることを監視する。
【０１２３】
プリンタ１０は、現在時刻が時刻ｔ１３１に到達すると、第２のＸＭＰＰ接続が確立されてからの経過時間が、ユーザテーブル３８内のＮＯ．２に対応する接続時間２０秒に到達したと判断し（図１５のＳ１９０でＹＥＳ）、第２のＸＭＰＰ接続を切断する（Ｓ１９２）。この場合、プリンタ１０は、ＸＭＰＰ接続数「１」が上限数「２」未満になったと判断し（Ｓ１４２でＹＥＳ）、第３のＸＭＰＰ接続を確立する。
【０１２４】
また、ＣＰＵ３２は、ポインタＺの値「３」がＭＡＸ値「３」に到達したと判断し（Ｓ１５０でＹＥＳ）、ポインタＺの値を「０」に戻し（Ｓ１３０）、ポインタＺの値を「０」から「１」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．１に対応するアクセストークンＡＴ１を特定し、第１のＸＭＰＰ接続が確立されていると判断し（Ｓ１４０でＹＥＳ）、ポインタＺの値「１」がＭＡＸ値「３」に到達していないと判断し（Ｓ１５０でＮＯ）、ポインタＺの値を「１」から「２」に変更する（Ｓ１３２）。そして、プリンタ１０は、ユーザテーブル３８内のＮｏ．２に対応するアクセストークンＡＴ２を特定し、第２のＸＭＰＰ接続数が確立されていないと判断し（Ｓ１４０でＮＯ）、ＸＭＰＰ接続数「２」が上限数「２」に一致すると判断し（Ｓ１４２でＮＯ）、ＸＭＰＰ接続数が上限数「２」未満になることを監視する。その後の時刻ｔ１３２〜ｔ１４０では、第１のＸＭＰＰ接続〜第３のＸＭＰＰ接続が順次確立される。
【０１２５】
このような構成によっても、第６実施例と同様の効果を奏することができる。
【０１２６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１２７】
（変形例１）プリンタ１０のユーザテーブル３８内の接続時間が予め設定されていてもよい。本変形例では、図５のＳ１０を省略可能である。本変形例では、「第２の記憶制御部」、「第３の記憶制御部」を省略可能である。
【０１２８】
（変形例２）ＣＰＵ３２は、第７実施例における図１４のＳ１１０において、ＣＰＵ３２は、非接続時間を接続時間で除算した値が、第３の所定値以下であるのか否かを判断してもよい。また、別の変形例では、ＣＰＵ３２は、接続時間と非接続時間を加算し、非接続時間を当該加算値で除算した値が、第４の所定値以上であるのか否かを判断してもよい。また、別の変形例では、ＣＰＵ３２は、接続時間と非接続時間を加算し、接続時間を当該加算値で除算した値が、第５の所定値以下であるのか否かを判断してもよい。このような構成によっても、図６と同様の効果を奏することができる。
【０１２９】
（変形例３）ＣＰＵ３２は、図６のＳ１１０において、登録アカウント数を上限数で除算した第１の除算値が、第６の所定値以下であるのか否かを判断してもよい。本変形例では、ＣＰＵ３２は、第１の除算値が第６の所定値以下であると判断される場合に、Ｓ１１２において、上限数を「１」だけデクリメントする。例えば、第６の所定値が「２」である場合、ＣＰＵ３２は、登録アカウント数が「３」から「２」に変化すると、第１の除算値が第６の所定値以下であると判断し、上限数を「２」から「１」に変更する。
【０１３０】
（変形例４）ＣＰＵ３２は、第７実施例における図１４のＳ１１０において、非接続時間が所定時間以上であるのか否かを判断してもよい。このような構成によっても、図６と同様の効果を奏することができる。
【０１３１】
（変形例５）プリンタ１０のユーザテーブル３８に、実行枚数が記憶されていなくてもよい。本変形例では、プリンタ１０は、印刷が実行される毎に、当該印刷において使用した印刷用紙の枚数を、ユーザテーブル３８内の制限枚数から減算する。そして、プリンタ１０は、ユーザテーブル３８内の許容枚数が「０」になる場合に、実行枚数が許容枚数に達したと判断する。
【０１３２】
（変形例６）上記の各実施例では、図３〜図１７の処理がソフトウェア（即ちプログラム３６）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【０１３３】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１３４】
２：通信システム、４：インターネット、６：ＬＡＮ、１０：プリンタ、１２：操作部、１４：表示部、１６：ネットワークＩ／Ｆ、１８：印刷実行部、３０：制御部、３２：ＣＰＵ、３４：メモリ、３６：プログラム、３８：ユーザテーブル、９０−１、９０−２、９０−３：ＰＣ、１００：画像処理サーバ、１３４：メモリ、１３８：アカウントテーブル
【図１】
2020126547.tif 000003
【図２】
2020126547.tif 000004
【図３】
2020126547.tif 000005
【図４】
2020126547.tif 000006
【図５】
2020126547.tif 000007
【図６】
2020126547.tif 000008
【図７】
2020126547.tif 000009
【図８】
2020126547.tif 000010
【図９】
2020126547.tif 000011
【図１０】
2020126547.tif 000012
【図１１】
2020126547.tif 000013
【図１２】
2020126547.tif 000014
【図１３】
2020126547.tif 000015
【図１４】
2020126547.tif 000016
【図１５】
2020126547.tif 000017
【図１６】
2020126547.tif 000018
【図１７】
2020126547.tif 000019