Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7769295B2 - サーバシステム、および、コンピュータプログラム - Google Patents
[go: Go Back, main page]

JP7769295B2 - サーバシステム、および、コンピュータプログラム - Google Patents

サーバシステム、および、コンピュータプログラム

Info

Publication number
JP7769295B2
JP7769295B2 JP2021194236A JP2021194236A JP7769295B2 JP 7769295 B2 JP7769295 B2 JP 7769295B2 JP 2021194236 A JP2021194236 A JP 2021194236A JP 2021194236 A JP2021194236 A JP 2021194236A JP 7769295 B2 JP7769295 B2 JP 7769295B2
Authority
JP
Japan
Prior art keywords
printer
update
instruction
satisfied
condition
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.)
Active
Application number
JP2021194236A
Other languages
English (en)
Other versions
JP2023080737A (ja
Inventor
友大 稲垣
豊 瀧尻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2021194236A priority Critical patent/JP7769295B2/ja
Priority to CN202211279669.XA priority patent/CN116204139A/zh
Publication of JP2023080737A publication Critical patent/JP2023080737A/ja
Priority to JP2025181568A priority patent/JP2026012277A/ja
Application granted granted Critical
Publication of JP7769295B2 publication Critical patent/JP7769295B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/1219Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to consumables, e.g. ink, toner, paper
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本明細書は、プリンタを制御する技術に関する。
ユーザによって印刷可能枚数に対して課金されたことに応じて、プリンタによる印刷可能枚数の印刷をユーザに許容するシステムが提案されている(特許文献1参照)。印刷可能枚数を超えて印刷を行いたい場合は、ユーザは、追加の費用を支払って追加の印刷可能枚数を購入することにより、プリンタを継続して利用可能である。
特開2021-18621号公報
印刷可能枚数などの印刷に関する情報を示すデータの更新をプリンタに反映させることは容易ではなく、工夫の余地があった。
本明細書は、データの更新をプリンタに反映させる技術を開示する。
本明細書に開示された技術は、以下の適用例として実現することが可能である。
[適用例1]サーバシステムであって、プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、を備え、前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されている、サーバシステム。
この構成によれば、更新指示がプリンタによって受信されない第1の場合に、サーバシステムは、適切に、プリンタ宛の更新指示を再送できる。
[適用例2]
適用例1に記載のサーバシステムであって、
前記第1の場合は、
前記サーバシステムが、前記プリンタから、前記更新指示に対する応答を受信しない場合と、
前記サーバシステムが、前記プリンタから、前記更新指示に基づく前記使用可能量の更新が完了したことを示すデータを受信しない場合と、
のいずれかである、サーバシステム。
[適用例3]
適用例1または2に記載のサーバシステムであって、
前記再送条件は、前記サーバシステムと前記プリンタとの間の通信に関連する条件である通信特定条件が満たされる場合に、満たされ、
前記通信特定条件が満たされる場合は、前記通信特定条件が満たされない場合と比べて、前記サーバシステムと前記プリンタとの間の通信が可能である可能性が高い、
サーバシステム。
[適用例4]
適用例1から3のいずれかに記載のサーバシステムであって、
前記再送条件は、前記プリンタの前記記憶装置に格納される前記制御データによって示される前記使用可能量の更新履歴に関連する条件である更新特定条件が満たされる場合に、満たされる、
サーバシステム。
[適用例5]
適用例1から4のいずれかに記載のサーバシステムであって、
前記再送条件は、前記使用可能量によって示される印刷可能枚数に関連する条件である枚数特定条件が満たされる場合に、満たされる、
サーバシステム。
[適用例6]
適用例5に記載のサーバシステムであって、
前記枚数特定条件は、
前記プリンタの使用可能量であって未更新の使用可能量の推定値によって示される印刷可能枚数が、枚数閾値以下であることを示す印刷可能枚数条件と、
前記プリンタの使用履歴を使用して推定される日数であって、前記印刷可能枚数の印刷が行われると推定される日数が、日数閾値以下であることを示す日数条件と、
の一方、または、両方を使用して構成されている、
サーバシステム。
[適用例7]
適用例1から6のいずれかに記載のサーバシステムであって、さらに、
前記第1の場合に、前記更新指示が前記プリンタによって受信されないことを示す前記端末装置宛の通知を送信するように構成された第2送信部を有する、サーバシステム。
[適用例8]
適用例1から7のいずれかに記載のサーバシステムであって、さらに、
前記更新指示が前記プリンタによって受信されない状態で、前記第1取得部が前記プリンタの前記使用可能量の新たな追加要求を前記端末装置から取得する場合に、前記新たな追加要求に応じて前記プリンタ宛の前記使用可能量の新たな更新指示を送信すべきか否かを示すユーザ指示を前記端末装置から取得するように構成された第2取得部を有する、
サーバシステム。
[適用例9]
適用例1から8のいずれかに記載のサーバシステムであって、
前記第1取得部は、N個(Nは2以上の整数)のプリンタのためのN個の追加要求を取得するように構成され、
前記第1送信部は、前記N個の追加要求に応じて前記N個のプリンタのそれぞれ宛のN個の更新指示を送信するように構成され、
前記第1送信部は、前記N個の更新指示が前記N個のプリンタによって受信されない場合に、前記N個のプリンタにそれぞれ関連するN個の再送条件に従って、前記N個の更新指示をそれぞれ再送するように構成され、
前記N個の再送条件のそれぞれは、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされ、
前記K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられ、
前記第1送信部は、前記N個の更新指示のうちのM個(Mは、2以上、N以下の整数)の更新指示に対応するM個の再送条件が満たされる場合に、前記更新指示に対応する特定条件であって満たされる特定条件に対応付けられる優先度の順に、前記M個の更新指示を再送するように構成されている、
サーバシステム。
[適用例10]
適用例1から8のいずれかに記載のサーバシステムであって、
前記再送条件は、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされ、
前記K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられ、
前記第1送信部は、前記第1の場合に、前記再送条件が満たされることに応じて、満たされる特定条件に対応付けられる優先度に基づいて決まる待ち時間の経過後に、前記プリンタ宛の前記更新指示を再送するように、構成されている、
サーバシステム。
[適用例11]
コンピュータプログラムであって、
プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得機能と、
前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信機能と、
をコンピュータに実現させ、
前記第1送信機能は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されている、
コンピュータプログラム。
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、データ処理方法およびデータ処理装置、データを処理するように構成されたサーバシステム、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
本実施例のシステムの例を示す概略図である。 (A)-(C)は、データ131、531、532の例をそれぞれ示す概略図である。 印刷処理の例を示すシーケンス図である。 印刷可能枚数の購入処理の例を示すシーケンス図である。 累積チャージ枚数の反映処理の例を示すシーケンス図である。 反映処理の例を示すシーケンス図である。 再送処理の例を示すフローチャートである。 再送判断処理の例を示すフローチャートである。 優先順再送処理の例を示すフローチャートである。 再送処理の別の実施例を示すフローチャートである。 反映処理の別の実施例を示すフローチャートである。
A.第1実施例:
A1.装置構成:
図1は、本実施例のシステムの例を示す概略図である。このシステム1000は、プリンタ100と、端末装置200と、サービスサーバ500と、接続サーバ600と、決済サーバ700と、を含んでいる。本実施例では、サービスサーバ500と接続サーバ600とは、印刷サービス事業者によって提供される。決済サーバ700は、決済事業者によって提供される。印刷サービス事業者は、印刷サービスを申し込んだユーザに、プリンタ100を提供する。サービスサーバ500は、プリンタ100に、印刷可能枚数を付与する。プリンタ100は、印刷可能枚数の印刷をユーザに許容する。ユーザは、印刷可能枚数を購入することが可能である。印刷可能枚数が購入される場合、サービスサーバ500は、購入によって更新された印刷可能枚数を、プリンタ100に付与する。決済サーバ700は、印刷可能枚数の購入のための決済を、処理する。接続サーバ600は、プリンタ100との常時接続を確立する。常時接続を維持する方法は、任意の方法であってよい。例えば、接続サーバ600とプリンタ100とは、XMPP(Extensible Messaging and Presence Protocol)に従って、常時接続のための通信セッションを確立する。接続サーバ600とプリンタ100とは、定期的なKeepAlive通信を行うことによって、常時接続を維持する。プリンタ100とサービスサーバ500との間の通信は、接続サーバ600を介して行われる。これらの装置100、200、500、600、700は、ネットワークNTに接続されている。ネットワークNTは、いわゆるインターネットを含んでよい。また、ネットワークNTは、いわゆるローカルネットワークを含んでよい。
プリンタ100は、プロセッサ110と、記憶装置115と、表示部140と、操作部150と、印刷実行部160と、通信インタフェース180と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置115は、揮発性記憶装置120と、不揮発性記憶装置130と、を含んでいる。プロセッサ110は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置120は、例えば、DRAMであり、不揮発性記憶装置130は、例えば、フラッシュメモリである。
表示部140は、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイなどの、画像を表示する装置である。操作部150は、ボタン、レバー、表示部140上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取る装置である。通信インタフェース180は、他の装置と通信するためのインタフェースである(例えば、通信インタフェース180は、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェースのうちの1種以上を含む)。本実施例では、通信インタフェース180は、ネットワークNTに接続されている。
印刷実行部160は、所定の方式(例えば、レーザ方式、または、インクジェット方式)で、用紙(印刷媒体の一例)などのシート上に印刷材(例えば、トナー、または、インク)を使用して画像を印刷する装置である。
不揮発性記憶装置130は、プログラムPG1と制御データ131とを格納している。プログラムPG1は、プリンタ100の製造者によって、ファームウェアとして、不揮発性記憶装置130に予め格納されている。プロセッサ110は、プログラムPG1を実行することによって、後述する種々の処理を実行する。制御データ131の詳細については、後述する。
端末装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース280と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。プロセッサ210は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。
表示部240は、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイなどの、画像を表示する装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取る装置である。通信インタフェース280は、他の装置と通信するためのインタフェースである(例えば、通信インタフェース280は、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェースのうちの1種以上を含む)。本実施例では、通信インタフェース280は、ネットワークNTに接続されている。
不揮発性記憶装置230は、プログラムPG2とアカウントデータ231とを格納している。図示を省略するが、端末装置200上では、オペレーティングシステム(例えば、ANDROID(登録商標)、iOS(登録商標)など)が動作している。オペレーティングシステム上では、種々のアプリケーションが動作し得る。プログラムPG2は、オペレーティングシステム上で動作するアプリケーションのプログラムである。これに代えて、プログラムPG2は、他のアプリケーション上で動作するアプリケーションのプログラムであってよい(このようなプログラムは、ミニプログラムとも呼ばれる)。プログラムPG2は、図示しないサーバから端末装置200にダウンロードされる。これに代えて、プログラムPG2は、携帯型記憶装置(例えば、CD-ROM、USBフラッシュドライブなど)に格納された状態で、提供されてよい。プロセッサ210は、プログラムPG2を実行することによって、後述する種々の処理を実行する。アカウントデータ231の詳細については、後述する。
サーバ500、600、700は、プロセッサ510、610、710と、記憶装置515、615、715と、通信インタフェース580、680、780とを、それぞれ、有している。これらの要素は、バスを介して互いに接続されている。記憶装置515、615、715は、揮発性記憶装置520、620、720と、不揮発性記憶装置530、630、730とを、それぞれ、含んでいる。プロセッサ510、610、710は、データ処理を行う装置であり、例えば、CPUである。揮発性記憶装置520、620、720は、例えば、DRAMであり、不揮発性記憶装置530、630、730は、例えば、フラッシュメモリである。通信インタフェース580、680、780は、他の装置と通信するためのインタフェースである(例えば、通信インタフェース580、680、780のそれぞれは、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェースのうちの1種以上を含む)。本実施例では、通信インタフェース580、680、780は、それぞれ、ネットワークNTに接続されている。
不揮発性記憶装置530、630、730は、対応するサーバ500、600、700の動作のためのプログラムPG5、PG6、PG7を、それぞれ、予め格納している。プロセッサ510、610、710は、プログラムPG5、PG6、PG7に従って、後述する種々の処理を実行する。
サービスサーバ500の不揮発性記憶装置530は、さらに、ユーザデータ531と、サービスデータ532と、履歴データ533と、を格納している。接続サーバ600の不揮発性記憶装置630は、さらに、接続データ631を格納している。決済サーバ700の不揮発性記憶装置730は、さらに、決済データ731を格納している。これらのデータの詳細については、後述する。
図示を省略するが、サーバ500、600、700上では、サーバ用のオペレーティングシステムが動作している。プログラムPG5、PG6、PG7は、オペレーティングシステム上で動作するアプリケーションのプログラムであってよい。これに代えて、プログラムPG5、PG6、PG7は、オペレーティングシステムに組み込まれたプログラムであってよい。
図2(A)-図2(C)は、データ131、531、532の例をそれぞれ示す概略図である。図2(A)は、プリンタ100(図1)の不揮発性記憶装置130に格納される制御データ131を示している。制御データ131は、累積チャージ枚数D11と、累積印刷枚数D12とを、示している。以下、累積チャージ枚数D11を、単に、累積チャージ数D11とも呼ぶ。また、累積印刷枚数D12を、単に、累積印刷数D12とも呼ぶ。累積チャージ枚数D11は、プリンタ100に対して付与された印刷可能枚数の累積値である。チャージ枚数は、プリンタ100に対して付与された印刷可能枚数を示している。累積印刷枚数D12は、プリンタ100によって印刷されたシートの数の累積値である。詳細については後述するが、プリンタ100のプロセッサ110は、サービスサーバ500からの指示に応じて累積チャージ数D11を更新し、印刷の実行に応じて累積印刷数D12を更新する。プリンタ100には、種々の枚数NP(NPは、1以上の整数)の印刷が要求される。プロセッサ110は、「NP+D12」が「D11」以下である場合に、印刷を実行する。
図2(B)は、サービスサーバ500(図1)の不揮発性記憶装置530に格納されるユーザデータ531を示している。ユーザデータ531は、ユーザ識別子UIDと、プリンタ識別子PIDと、の対応関係を示している。ユーザ識別子UIDは、プリンタ(例えば、プリンタ100)を使用するユーザの識別子である。プリンタ識別子PIDは、プリンタ(例えば、プリンタ100)の識別子である。ユーザ識別子UIDとプリンタ識別子PIDとの対応関係は、ユーザが印刷サービス事業者に申請することによって、ユーザデータ531に登録される。詳細については後述するが、印刷可能枚数の管理(例えば、購入)は、ユーザ識別子UIDに関連付けられて行われる。
図2(C)は、サービスサーバ500(図1)の不揮発性記憶装置530に格納されるサービスデータ532を示している。サービスデータ532は、累積チャージ枚数D51と、反映済累積チャージ枚数D52と、累積チャージ追加タイムスタンプD53と、累積チャージ反映タイムスタンプD54と、累積印刷枚数D55と、を示している。以下、累積チャージ枚数D51を、単に、累積チャージ数D51とも呼ぶ。反映済累積チャージ枚数D52を、単に、反映済累積チャージ数D52とも呼ぶ。累積印刷枚数D55を、単に、累積印刷数D55とも呼ぶ。5個の情報D51-D55を含む情報セットDSは、1個のプリンタ識別子PIDに対応付けられる情報セットを示している。サービスデータ532は、複数のプリンタ識別子PIDのための複数の情報セットDSを示している。
累積チャージ数D51は、チャージ枚数の累積値であり、印刷可能枚数の購入によって増加する。詳細については後述するが、サービスサーバ500(図1)のプロセッサ510は、印刷可能枚数の購入に応じて、累積チャージ数D51を更新する。プロセッサ510は、累積チャージ数D51の更新に応じて、累積チャージ数D11(図2(A))の更新指示をプリンタ100に送信する。プリンタ100のプロセッサ110は、累積チャージ数D11を、累積チャージ数D51と同じ値に更新する。
反映済累積チャージ数D52は、プリンタ100(図1)の制御データ131(図2(A))の累積チャージ数D11に反映済の累積チャージ枚数である。詳細については後述するが、プリンタ100のプロセッサ110は、累積チャージ数D11の更新の結果をサービスサーバ500に通知する。サービスサーバ500のプロセッサ510は、通知が更新成功を示す場合に、反映済累積チャージ数D52を、累積チャージ数D11と同じ値に更新する(D52=D11=D51)。プリンタ100の累積チャージ数D11の更新が完了していない場合、反映済累積チャージ数D52は、累積チャージ数D51と異なり得る。
累積チャージ追加タイムスタンプD53は、累積チャージ数D51が更新された年月日と時刻とを示している。累積チャージ反映タイムスタンプD54は、反映済累積チャージ数D52が更新された年月日と時刻とを示している。プロセッサ510は、サービスサーバ500に設けられている図示しないタイマを参照して、現在の年月日と時刻とを取得できる。
累積印刷数D55は、プリンタ100(図1)によって印刷されたシートの数の累積値である。詳細については後述するが、プリンタ100のプロセッサ110は、印刷の実行に応じて、累積印刷数D55の更新をサービスサーバ500に要求する。サービスサーバ500のプロセッサ510は、要求に応じて、累積印刷数D55を、累積印刷数D12と同じ値に更新する。
図示を省略するが、サービスサーバ500(図1)の履歴データ533は、各プリンタの使用履歴を示している。履歴データ533によって示される使用履歴は、プリンタの使用開始日を含んでいる。使用開始日の決定方法は、種々の方法であってよい。例えば、使用開始日は、ユーザデータ531(図2(B))にプリンタが登録された日であってよい。これに代えて、使用開始日は、プリンタからの通信が初めてサービスサーバ500に届いた日であってよい。プロセッサ510は、プリンタの使用が開始される場合に、プリンタの使用開始日を示すデータを、履歴データ533に追加する。
A2.印刷処理:
図3は、印刷処理の例を示すシーケンス図である。図3は、プリンタ100が印刷を実行する場合の処理の例を示している。図中の上部には、印刷前のサービスデータ532と制御データ131との例が示されている。ここでは、D51=D52=D11=1000であり、D55=D12=943である。
S110では、プリンタ100は、外部装置から印刷要求を受信する。印刷要求の送信装置は、プリンタ100と通信可能な任意の装置であってよい。例えば、プリンタ100(図1)の通信インタフェース180がUSBインタフェースを含む場合、印刷要求の送信装置は、USBインタフェースに有線で接続される外部装置(例えば、パーソナルコンピュータ)であってよい。通信インタフェース180がIEEE802.11の無線インタフェースを含む場合、印刷要求の送信装置は、無線インタフェースに無線で接続される外部装置(例えば、スマートフォン、タブレットコンピュータなど)であってよい。また、プリンタ100は、サービスサーバ500から、印刷要求を受信してよい。サービスサーバ500は、ユーザの端末装置(例えば、端末装置200)からの指示に応じて、プリンタ100に印刷要求を送信してよい。
印刷要求は、種々のデータを含み得る。本実施例では、印刷要求は、印刷すべき画像の画像データを含んでいる(対象画像データと呼ぶ)。対象画像データのデータ形式は、任意のデータ形式であってよい。対象画像データは、例えば、ビットマップデータ(JPG(Joint Photographic Experts Group)、PNG(Portable Network Graphics)など)、または、ページ記述言語で記述された画像データ(PDF(Portable Document Format),XPS(XML Paper Specification)など)であってよい。以下、対象画像データが、NP枚(NPは1以上の整数)のシートに印刷されるべきNP個の画像を示していることとする。数NPを、印刷枚数NPと呼ぶ。
S115では、プロセッサ110は、制御データ131(図2(A))を参照し、累積チャージ数D11と累積印刷数D12とを取得する。
S120では、プロセッサ110は、累積印刷数D12と印刷枚数NPとの和が、累積チャージ数D11以下であるか否かを判断する。D11<D12+NPは、NP枚の印刷によって累積印刷数D12が累積チャージ数D11を超えることを示している。この場合(S120:No)、プロセッサ110は、印刷を実行せずに、処理を終了する。なお、プロセッサ110は、印刷を実行しなかったことをユーザに通知する処理を実行してよい。例えば、プロセッサ110は、累積チャージ数D11の不足を示す情報を、表示部140に表示してよい。
D12+NPがD11以下である場合(S120:Yes)、S125で、プロセッサ110は、対象画像データを使用して、印刷実行部160に、NP枚のシートの印刷を実行させる。例えば、プロセッサ110は、対象画像データを使用して印刷データを生成する。プロセッサ110は、印刷データを印刷実行部160に供給する。印刷実行部160は、印刷データに従って、印刷を実行する。印刷データのデータ形式は、印刷実行部160に適する任意のデータ形式であってよい。これに代えて、プロセッサ110は、対象画像データを印刷実行部160に供給してよい(すなわち、印刷実行部160は、対象画像データを使用して画像を印刷するように、構成されてよい)。
このように、印刷枚数NPが「D11-D12」以下である場合に、印刷が許容される。累積チャージ数D11と累積印刷数D12との間の差(D11-D12)は、印刷可能枚数を示している。
S130では、プロセッサ110は、制御データ131を更新する。具体的には、プロセッサ110は、累積印刷数D12に、印刷枚数NPを加算する。例えば、更新前の累積印刷数D12が943であり、印刷枚数NPが10である場合、更新後の累積印刷数D12は、953(=943+10)である。
S135では、プロセッサ110は、サービスサーバ500宛の更新要求を、接続サーバ600に送信する。更新要求は、プリンタ100に対応付けられるプリンタ識別子PIDを示すデータと、更新済の累積印刷数D12を示すデータと、を含んでいる。
S140では、接続サーバ600のプロセッサ610は、プリンタ100からの更新要求を、サービスサーバ500に送信する。
S145では、サービスサーバ500のプロセッサ510は、更新要求に応じて、サービスデータ532を更新する。本実施例では、プロセッサ510は、更新要求によって示されるプリンタ識別子PIDに対応する情報セットDSの累積印刷数D55を、更新要求によって示される累積印刷数D12と同じ値に設定する。例えば、D12=953である場合、累積印刷数D55は953に設定される。そして、図3の処理は、終了する。
A3.購入処理:
図4は、印刷可能枚数の購入処理の例を示すシーケンス図である。本実施例では、複数のプリンタのそれぞれに対して、印刷可能枚数の購入が可能である。以下、プリンタ100のための印刷可能枚数が購入されることとする。図中の上部には、購入前のサービスデータ532の例が示されている。ここでは、D51=D52=1000である。
S210では、ユーザは、端末装置200(図1)の操作部250を操作することによって、購入枚数を示す購入指示を入力する。端末装置200のプロセッサ210は、購入指示に応じて、印刷可能枚数の追加要求を、サービスサーバ500に送信する。追加要求は、ユーザ識別子UIDを示すデータと、プリンタ識別子PIDを示すデータと、購入枚数を示すデータと、を含んでいる。本実施例では、ユーザ識別子UIDとプリンタ識別子PIDとは、予め、ユーザによって端末装置200に入力されている。アカウントデータ231(図1)は、入力された情報UID、PIDを示している。プロセッサ210は、アカウントデータ231を参照して、情報UID、PIDを取得する。これに代えて、ユーザは、ユーザ識別子UIDとプリンタ識別子PIDとの一方、または、両方を指定する情報を示す購入指示を、入力してよい。以下、プリンタ識別子PIDが、プリンタ100を示していることとする。
S215では、サービスサーバ500のプロセッサ510は、決済サーバ700と通信することによって、追加要求のための決済処理を実行する。決済処理は、追加要求によって示されるユーザ識別子UIDと購入枚数とに基づいて、行われる。決済処理により、ユーザ識別子UIDに対応するユーザから印刷サービス事業者へ、購入枚数に相当する金額が支払われる。決済処理は、決済サーバ700に適する種々の処理であってよい。例えば、サービスサーバ500のプロセッサ510は、ユーザ識別子UIDと購入枚数に相当する金額とを示すデータを含む決済要求を、決済サーバ700に送信する。決済サーバ700のプロセッサ710は、決済要求に応じて、支払いの処理を実行する。決済データ731は、支払いの処理に使用される情報(例えば、ユーザ識別子UIDと振替口座との対応関係)を示している。なお、サービスサーバ500のプロセッサ510は、決済サーバ700に加えて端末装置200とも連携して、決済処理を進行してよい。
S220では、サービスサーバ500のプロセッサ510は、サービスデータ532(図2(C))のうちのプリンタ識別子PIDに対応付けられる情報セットDSを更新する。具体的には、プロセッサ510は、累積チャージ数D51に、購入枚数を加算する。図4の例では、更新前の累積チャージ数D51が1000であり、購入枚数が100である。この場合、更新後の累積チャージ数D51は、1100(1000+100)である。また、プロセッサ510は、累積チャージ追加タイムスタンプD53を、現在の年月日と時刻に、更新する。そして、購入処理は、終了する。
このように、購入処理によって、累積チャージ数D51は、増大する。反映済累積チャージ数D52は、後述する反映処理によって更新される。購入処理の後、反映済累積チャージ数D52が更新されるまでは、累積チャージ数D51は、反映済累積チャージ数D52と異なっている。
A4.反映処理:
図5は、累積チャージ枚数の反映処理の例を示すシーケンス図である。図中の上部には、更新前の制御データ131の例が示されている。ここでは、D11=1000である。
S310では、サービスサーバ500のプロセッサ510は、サービスデータ532(図2(C))を参照する。図2(C)で説明したように、サービスデータ532は、複数のプリンタ識別子PIDのための複数の情報セットDSを示している。図5は、1個のプリンタ識別子PID(ここでは、プリンタ100のプリンタ識別子PID)のための処理を示している。図示を省略するが、プロセッサ510は、複数のプリンタ識別子PIDのそれぞれに関して、図5の処理を実行する。
S310では、プロセッサ510は、累積チャージ数D51が反映済累積チャージ数D52と同じであるか否かを判断する。D51=D52である場合(S310:Yes)、プロセッサ510は、図5の反映処理を終了する。
累積チャージ数D51が反映済累積チャージ数D52と異なる場合(S310:No)、S320で、プロセッサ510は、プリンタ100宛の更新指示を、接続サーバ600に送信する。更新指示は、累積チャージ数D51を示すデータと、宛先のプリンタ100のプリンタ識別子PIDを示すデータと、を含んでいる。以下、D51=1100であることとする。
S325では、接続サーバ600のプロセッサ610は、サービスサーバ500から受信した更新指示を、プリンタ100に送信する。接続データ631(図1)は、プリンタ識別子PIDと、常時接続によって接続サーバ600に接続されたプリンタのネットワーク上の位置を示す情報(例えば、IPアドレス)と、の対応関係を示している。プロセッサ610は、接続データ631を参照して、更新指示によって示されるプリンタ識別子PIDに対応付けられるプリンタに、更新指示を送信する。
S330では、プリンタ100のプロセッサ110は、更新指示に応じて、制御データ131の累積チャージ枚数D11を、更新指示によって示される累積チャージ数D51と同じ値に更新する(ここでは、累積チャージ数D11が1000から1100に更新される)。
S335では、プロセッサ110は、サービスサーバ500宛の更新結果通知を、接続サーバ600に送信する。更新結果通知は、更新済の累積チャージ数D11を示すデータを含んでいる(以下、更新結果通知を、単に結果通知とも呼ぶ)。
S340では、接続サーバ600のプロセッサ610は、プリンタ100から受信した結果通知を、サービスサーバ500に送信する。
S350では、サービスサーバ500のプロセッサ510は、プリンタ100の制御データ131に対する累積チャージ数D51の反映が成功したか否かを判断する。本実施例では、プロセッサ510は、サービスサーバ500がプリンタ100からの結果通知を受信する場合に、反映が成功したと判断する。反映に成功しなかったと判断される場合の処理については、後述する。
反映が成功したと判断される場合(S350:Yes)、S370で、プロセッサ510は、反映済累積チャージ数D52を、結果通知によって示される累積チャージ数D11と同じ値に更新する。図5の例では、累積チャージ数D11は1100である。この場合、更新後の反映済累積チャージ数D52は、1100である。また、プロセッサ510は、累積チャージ反映タイムスタンプD54を、現在の年月日と時刻に、更新する。
S380では、プロセッサ510は、反映の完了通知を、端末装置200に送信する。そして、図5の反映処理は、終了する。
なお、サービスサーバ500のプロセッサ510は、反映処理を、繰り返し実行する。これにより、プロセッサ510は、購入処理による累積チャージ数D51の増大に応じて、累積チャージ数D51をプリンタ100の累積チャージ数D11に反映させることができる。プロセッサ510は、他のプリンタに関しても、同様に、反映処理を繰り返し実行する。
図6は、反映処理の例を示すシーケンス図である。図6は、累積チャージ数D51の反映が成功しない場合の例を示している。累積チャージ数D51の反映は、種々の原因に起因して、失敗し得る。例えば、プリンタ100の電源の状態がオフ状態である場合、プリンタ100の累積チャージ数D11は更新されない。また、プリンタ100と接続サーバ600とを接続するネットワークが不具合を有する場合、プリンタ100は、更新指示を受信できない。図中のS310、S320、S325は、図5のS310、S320、S325と、それぞれ同じである。ただし、図6のS325では、プリンタ100は、接続サーバ600からの更新指示を受信できないこととする。
接続サーバ600のプロセッサ610は、更新指示の送信(S325)の後、プリンタ100から結果通知を受信できない。この場合、S345で、プロセッサ610は、エラー通知を、サービスサーバ500に送信する。エラー通知を送信するためのエラー送信条件は、更新指示がプリンタ100によって受信されないことを示す種々の条件であってよい。例えば、エラー送信条件は、更新指示の送信後、所定の第1待時間が経過する前に、接続サーバ600がプリンタ100からの結果通知を受信しないことであってよい。
S350では、サービスサーバ500のプロセッサ510は、累積チャージ数D51の反映が成功したか否かを判断する。本実施例では、プロセッサ510は、サービスサーバ500が接続サーバ600からのエラー通知を受信する場合に、反映が成功しなかったと判断する。なお、本実施例では、接続サーバ600は、プリンタからの結果通知(図5:S340)と、エラー通知(図6:S345)と、のいずれかをサービスサーバ500に送信する。従って、反映が成功しなかったと判断するための条件は、サービスサーバ500がプリンタ100からの結果通知を受信しないことと、同じである。なお、プロセッサ510は、更新指示の送信(S320)の後、所定の第2待時間が経過する前に、プリンタ100からの結果通知を受信しない場合に、反映が成功しなかったと判断してよい。なお、サービスサーバ500がプリンタ100からの結果通知を受信しないという条件は、更新指示がプリンタ100によって受信されないことを示す条件の例である。
反映が成功しなかったと判断される場合(S350:No)、S410で、プロセッサ510は、端末装置200にエラー通知を送信する。S420では、端末装置200のプロセッサ210は、エラーを示すエラー情報を、表示部140に表示する。エラー情報は、例えば、プリンタ100の累積チャージ数D11が更新されないことを示すメッセージを含んでよい。エラー情報を観察したユーザは、エラーを解消するための作業を行ってよい(例えば、プリンタ100の電源の状態の切り替え、プリンタ100に接続されるネットワーク装置の再起動、など)。
なお、エラー通知(S410)は、エラーの原因、累積チャージ数D51、反映済累積チャージ数D52などの種々の情報を示すデータを含んでよい。そして、S420では、プロセッサ210は、エラー通知に含まれるデータによって示される情報を、表示部140に表示してよい。
S410の後、S430では、サービスサーバ500のプロセッサ510は、更新指示を再送対象に追加する。例えば、プロセッサ510は、再送対象の更新指示を示す更新指示データを、記憶装置515(例えば、不揮発性記憶装置530)に格納する。更新指示データは、累積チャージ数D51を示すデータと、宛先のプリンタのプリンタ識別子PIDを示すデータと、を含んでよい。そして、プロセッサ510は、反映処理を終了する。本実施例では、プロセッサ510は、複数のプリンタ識別子PIDのそれぞれに関して、反映処理(図5、または、図6)を実行し得る。従って、複数のプリンタのための複数の更新指示が、再送対象であり得る。なお、再送対象の更新指示は、後述する再送処理によって、再送される。
A5.再送処理:
図7は、再送処理の例を示すフローチャートである。サービスサーバ500(図1)のプロセッサ510は、再送処理を実行することによって、再送対象の更新指示(図6のS430参照)をプリンタに再送する。
S530では、プロセッサ510は、再送判断処理を実行する。再送判断処理は、再送するための条件である再送条件を更新指示が満たすか否かを判断する処理である。図8は、再送判断処理の例を示すフローチャートである。図8は、1個の更新指示のための処理を示している。複数の更新指示が再送対象である場合、プロセッサ510は、更新指示毎に、図8の処理を実行する。
本実施例では、予め決められた複数の特定条件のうちのいずれかが満たされる場合に、再送条件は満たされる。複数の特定条件は、予め決められた優先度順に判断される。全ての特定条件が満たされない場合、再送条件は満たされない。ここで、再送判断処理の対象の更新指示を、注目更新指示とも呼ぶ。また、注目更新指示の宛先のプリンタを、注目プリンタとも呼ぶ。以下、注目プリンタがプリンタ100であることとして、説明を行う(プリンタ100を、注目プリンタ100とも呼ぶ)。
S615では、プロセッサ510は、第1特定条件が満たされるか否かを判断する。第1特定条件は、種々の条件であってよい。本実施例では、第1特定条件は、注目プリンタ100からの通信の最新のタイムスタンプと、現在と、の間の時間差が、予め決められた時間閾値(例えば、30分)以下であることである。この条件は、注目プリンタ100がオンラインである可能性が高いこと、すなわち、サービスサーバ500と注目プリンタ100との間の通信が可能である可能性が高いこと、を示している。この条件は、サービスサーバ500とプリンタ100との間の通信に関連する通信特定条件の例である。最新のタイムスタンプは、累積チャージ反映タイムスタンプD54(図2(C))とは異なるタイムスタンプであり、注目プリンタからの任意の通信のタイムスタンプである。プリンタ(例えば、プリンタ100)は、サービスサーバ500と、種々の通信を行い得る。例えば、プリンタ100のプロセッサ110は、プリンタ100の電源がオフからオンに切り替えられる場合に、通信可能であることをサービスサーバ500に通知し得る。サービスサーバ500のプロセッサ510は、プリンタ100からの通信の最新のタイムスタンプを示すタイムスタンプデータを、履歴データ533(図1)に追加する。S615では、プロセッサ510は、履歴データ533を参照して、第1特定条件が満たされるか否かを判断する。
第1特定条件が満たされる場合(S615:Yes)、S618で、プロセッサ510は、注目更新指示を第1優先度で再送すべきと決定し、図8の処理を終了する。
第1特定条件が満たされない場合(S615:No)、S625で、プロセッサ510は、第2特定条件が満たされるか否かを判断する。第2特定条件は、種々の条件であってよい。本実施例では、第2特定条件は、累積印刷数D55(図2(C))の遷移履歴から推定される注目プリンタ100の使用可能日数が、予め決められた日数閾値(例えば、7日)以下であることである。使用可能日数は、累積チャージ数D51が注目プリンタ100の累積チャージ数D11に反映されない状態で、注目プリンタ100による印刷が可能な日数の推定値である。すなわち、使用可能日数は、注目プリンタ100の累積チャージ数D11が更新されずに注目プリンタ100の過去の使用頻度が将来に継続する場合に、累積印刷数D12が累積チャージ数D11に到達するまでの日数の推定値である。使用可能日数が少ない場合、累積チャージ数D11の早い更新が好ましい。
本実施例では、使用可能日数は、以下のように推定される。プロセッサ510は、プリンタ100の使用開始日から現在までの日数である使用日数を算出する。プロセッサ510は、履歴データ533(図1)を参照して、注目プリンタ100の使用開始日を取得する。プロセッサ510は、累積印刷数D55を使用日数で除算することによって、1日当りの印刷枚数を算出する。プロセッサ510は、反映済累積チャージ枚数D52から累積印刷枚数D55を減算することによって、未更新の印刷可能枚数の推定値を算出する。プロセッサ510は、算出された印刷可能枚数を1日当りの印刷枚数で除算することによって、使用可能日数を算出する。
このように、使用可能日数は、プリンタ100の使用履歴(ここでは、累積印刷数D55と使用日数)を使用して推定される日数である。具体的には、使用可能日数は、反映済累積チャージ枚数D52(すなわち、未更新の累積チャージ枚数D11)と累積印刷枚数D55とによって示される印刷可能枚数(D52-D55)の印刷が行われると推定される日数である。そして、本実施例の第2特定条件は、使用可能日数が日数閾値以下であることを示す日数条件の例である。
第2特定条件が満たされる場合(S625:Yes)、S628で、プロセッサ510は、注目更新指示を第2優先度で再送すべきと決定し、図8の処理を終了する。
第2特定条件が満たされない場合(S625:No)、S633で、プロセッサ510は、注目プリンタ100の接続履歴を取得する。接続履歴は、注目プリンタ100がオンラインである時間とオフラインである時間との履歴を示している。接続履歴の取得方法は、任意の方法であってよい。本実施例では、プロセッサ510は、サービスサーバ500と注目プリンタ100との通信履歴を示す通信履歴データを記憶装置515(例えば、不揮発性記憶装置530)に格納する(図示省略)。プロセッサ510は、注目プリンタ100と通信する毎に、通信履歴データを更新する。プロセッサ510は、通信履歴データを参照することによって、接続履歴を取得する。これに代えて、プロセッサ510は、接続サーバ600に、注目プリンタ100との常時接続が維持された時間の履歴を問い合わせてよい。そして、プロセッサ510は、常時接続が維持された時間を参照して、接続履歴を取得してよい。
S635では、プロセッサ510は、第3特定条件が満たされるか否かを判断する。第3特定条件は、種々の条件であってよい。本実施例では、第3特定条件は、現在が推定オンライン時間内であることである。推定オンライン時間は、注目プリンタ100がオンラインである可能性の高い時間である。
プリンタの電源の状態の切り替えのスケジュールは、日にちによらず、おおよそ同じであり得る。例えば、朝の9時にプリンタの電源がオフからオンに切り替えられ、夕方の17時にプリンタの電源がオンからオフに切り替えられる。このような切り替えが、毎日繰り返され得る。この場合、9時から17時までの時間内は、注目プリンタ100がオンラインである可能性が高い、すなわち、サービスサーバ500と注目プリンタ100との間の通信が可能である可能性が高い。本実施例の第3特定条件は、サービスサーバ500とプリンタ100との間の通信に関連する通信特定条件の例である。プロセッサ510が推定オンライン時間内に注目更新指示を再送すれば、注目プリンタが注目更新指示を受信できる可能性が高い。
プロセッサ510は、S633で取得した接続履歴を使用して、推定オンライン時間を推定する。推定オンライン時間の推定方法は、任意の方法であってよい。例えば、プロセッサ510は、1日を複数の時間区分に分割し、各時間区分のオンライン率を、接続履歴を使用して算出する。複数の時間区分は、例えば、1時間幅の24個の区分であってよい。オンライン率は、例えば、注目プリンタ100の使用期間中の全時間のうちのオンライン時間の割合である。10時から11時までの1時間幅の1個の時間区分のオンライン率は、例えば、以下のように算出される。注目プリンタ100の使用開始から現在まで、100日が経過したと仮定する。この場合、1個の時間区分の全時間は、1時間*100日=100時間である。プロセッサ510は、10時から11時までの時間区分の合計のオンライン時間を算出する。例えば、10時から11時までの1時間の間に1回以上の通信が行われる場合、プロセッサ510は、その1時間の全体をオンライン時間と見なしてよい。全時間(ここでは、100時間)のうち、10時から11時までの時間区分のオンライン時間の合計が80時間である場合、オンライン率は、80%(=80時間/100時間)である。プロセッサ510は、予め決められたオンライン閾値(例えば、70%)以上のオンライン率を有する時間区分の全体を、推定オンライン時間として採用する。
第3特定条件が満たされる場合(S635:Yes)、S638で、プロセッサ510は、注目更新指示を第3優先度で再送すべきと決定し、図8の処理を終了する。
第3特定条件が満たされない場合(S635:No)、S645で、プロセッサ510は、第4特定条件が満たされるか否かを判断する。第4特定条件は、種々の条件であってよい。本実施例では、第4特定条件は、累積チャージ追加タイムスタンプD53(図2(C))と累積チャージ反映タイムスタンプD54との間の時間差が、予め決められた時間差閾値(例えば、1日)以上であることである。この時間差は、プリンタ100の累積チャージ数D11が最後に更新されてから、購入処理によって累積チャージ数D51が増大するまでの経過時間を示している。この時間差が大きいことは、プリンタ100の累積チャージ数D11の更新が長時間に亘って行われていないことを示している。従って、時間差が大きい場合、累積チャージ数D11の早い更新が好ましい。なお、累積チャージ反映タイムスタンプD54は、プリンタ100の記憶装置115(ここでは、不揮発性記憶装置130)に格納される制御データ131によって示される累積チャージ数D11の更新履歴の例である。本実施例の第4特定条件は、累積チャージ数D11の更新履歴に関連する条件である更新特定条件の例である。
第4特定条件が満たされる場合(S645:Yes)、S648で、プロセッサ510は、注目更新指示を第4優先度で再送すべきと決定し、図8の処理を終了する。
第4特定条件が満たされない場合(S645:No)、プロセッサ510は、S658で再送条件は満たされないと判断し、図8の処理を終了する。この場合、注目更新指示の優先度は、決定されない。
図8の処理、すなわち、図7のS530の後、S540で、プロセッサ510は、優先順再送処理を実行する。図9は、優先順再送処理の例を示すフローチャートである。S710では、プロセッサ510は、第1優先度の更新指示を送信する。S720では、プロセッサ510は、第2優先度の更新指示を送信する。S730では、プロセッサ510は、第3優先度の更新指示を送信する。S740では、プロセッサ510は、第4優先度の更新指示を送信する。そして、プロセッサ510は、図9の処理、すなわち、図7のS540を、終了する。このように、プロセッサ510は、再送条件を満たす更新指示を、優先度の順に、再送する。なお、プロセッサ510は、再送された更新指示を、再送対象から除く。
このように、プロセッサ510は、複数の更新指示が再送対象である場合、優先度の順に更新指示を送信する。更新指示の送信の後は、送信された更新指示に関して、図5、または、図6のS320に続く処理が実行される。再送された更新指示が、再び、プリンタによって受信されない場合(図6:S350:No)、プロセッサ510は、更新指示を、改めて、再送対象に追加する(S430)。
S540(図7)の後、プロセッサ510は、S530へ移行する。そして、プロセッサ510は、図7の処理を繰り返し実行する。これにより、プロセッサ510は、注目プリンタ100に関連する再送条件が満たされることに応じて、注目プリンタ100宛の注目更新指示を再送できる。
なお、1回の優先順再送処理(S540(図7)、図9)で送信可能な更新指示の総数には、上限が設けられてよい。例えば、プロセッサ510は、S540で、再送条件を満たす複数の更新指示の中から、ND個(NDは、1以上の整数)の更新指示を優先度順に選択してよい。そして、プロセッサ510は、ND個の更新指示に対して、図9の処理を実行してよい。プロセッサ510は、S540を実行する毎に、更新指示の数NDを調整してよい。例えば、プロセッサ510は、S540を実行する毎に、数NDを、1回のS540で送信可能な更新指示の数(例えば、送信可能な最大数)に決定してよい。この場合、サービスサーバ500の負荷が高い場合には、数NDが低減してよい。これに代えて、数NDは、予め決められてよい。また、プロセッサ510は、S530とS540とを、並列に繰り返してよい。この場合も、S540では、プロセッサ510は、ND個の更新指示を優先度順に選択し、選択したND個の更新指示を優先度順に送信してよい。いずれの場合も、低い優先度の更新指示が再送を待っている間に、別の更新指示が高い優先度の再送条件を満たす場合には、プロセッサ510は、高い優先度の更新指示を先に再送する。また、プロセッサ510は、待ち時間を追加せずに、更新指示を再送することが好ましい。この構成によれば、プロセッサ510は、累積チャージ数D51の更新をプリンタ100の累積チャージ数D11に早くに反映させることができる。
以上のように、本実施例では、サービスサーバ500(図1)のプロセッサ510は、以下の処理を実行する。S210(図4)では、プロセッサ510は、プリンタ100の印刷可能枚数の追加要求を端末装置200から取得する。印刷可能枚数は、プリンタ100の使用可能量の例である。S220では、プロセッサ510は、追加要求に応じて、サービスデータ532の累積チャージ数D51を更新する。累積チャージ数D51の更新に応じて、S310(図5、図6)の判断結果がNoになり、プロセッサ510は、S320を実行する。このように、プロセッサ510は、追加要求に応じて、S320を実行する。S320では、プロセッサ510は、プリンタ100宛の更新指示を送信する。この更新指示は、プリンタ100の記憶装置115(ここでは、不揮発性記憶装置130)に格納される制御データ131によって示される累積チャージ数D11の更新指示である。図3のS120で説明したように、累積チャージ数D11と累積印刷数D12との間の差は、印刷可能枚数を示している。このように、累積チャージ数D11の更新指示は、印刷可能枚数の更新指示の例である。
図6のS350で説明したように、サービスサーバ500がプリンタ100からの結果通知を受信しない場合、すなわち、S320の更新指示がプリンタ100によって受信されない場合、S430で、プロセッサ510は、更新指示を再送対象に追加する。図7で説明したように、プロセッサ510は、S530で注目プリンタ100に関連する再送条件が満たされることに応じて、S540で注目プリンタ100宛の更新指示を再送する。このように、本実施例では、プロセッサ510は、更新指示がプリンタによって受信されない場合に、適切に、プリンタ宛の更新指示を再送できる。
S335、S340(図5)の結果通知は、更新済の累積チャージ数D11を示すデータを含んでいる。更新済の累積チャージ数D11を示すデータは、更新指示に基づく累積チャージ数D11の更新(すなわち、印刷可能枚数(D11-D12)の更新)が完了したことを示すデータの例である。そして、S350(図6)で説明したように、サービスサーバ500がプリンタ100からの結果通知を受信しない場合(S350:No)、プロセッサ510は、S430で、更新指示を再送対象に追加する。このように、本実施例では、プリンタ100の累積チャージ数D11の更新が完了していない場合に、プロセッサ510は、プリンタ100宛の更新指示を再送できる。
図8に示すように、第1特定条件が満たされる場合(S615:Yes)、再送条件は満たされる。上述したように、本実施例の第1特定条件は、サービスサーバ500とプリンタ100との間の通信に関連する通信特定条件の例である。そして、第1特定条件は、サービスサーバ500と注目プリンタ100との間の通信が可能である可能性が高いこと、を示している。すなわち、第1特定条件が満たされる場合は、第1特定条件が満たされない場合と比べて、サービスサーバ500とプリンタ100との間の通信が可能である可能性が高いように、第1特定条件は構成されている。従って、プロセッサ510は、第1特定条件が満たされる場合、すなわち、プリンタ100と通信できる可能性が高い場合に、プリンタ100宛の更新指示を再送できる。
図8に示すように、第3特定条件が満たされる場合(S635:Yes)、再送条件は満たされる。上述したように、本実施例の第3特定条件は、サービスサーバ500とプリンタ100との間の通信に関連する通信特定条件の例である。そして、第3特定条件は、サービスサーバ500と注目プリンタ100との間の通信が可能である可能性が高いこと、を示している。すなわち、第3特定条件が満たされる場合は、第3特定条件が満たされない場合と比べて、サービスサーバ500とプリンタ100との間の通信が可能である可能性が高いように、第3特定条件は構成されている。従って、プロセッサ510は、第3特定条件が満たされる場合、すなわち、プリンタ100と通信できる可能性が高い場合に、プリンタ100宛の更新指示を再送できる。
図8に示すように、第4特定条件が満たされる場合(S645:Yes)、再送条件は満たされる。上述したように、本実施例の第4特定条件は、プリンタ100の累積チャージ数D11の更新履歴(本実施例では、累積チャージ反映タイムスタンプD54)に関連する更新特定条件の例である。本実施例では、第4特定条件は、プリンタ100の累積チャージ数D11の更新が長時間に亘って行われていないことを示している。第4特定条件が満たされる場合、累積チャージ数D11の早い更新が好ましい。プロセッサ510は、このような場合に、プリンタ100宛の更新指示を再送できる。
図8に示すように、第2特定条件が満たされる場合(S625:Yes)、再送条件は満たされる。上述したように、本実施例の第2特定条件は、プリンタ100の使用履歴(ここでは、累積印刷数D55と使用日数)を使用して推定される使用可能日数が、日数閾値以下であることを示す日数条件の例である。使用可能日数は、反映済累積チャージ枚数D52(すなわち、プリンタ100の制御データ131によって示される累積チャージ枚数D11)と累積印刷枚数D55(通常は、プリンタ100の累積印刷数D12と同じ)とによって示される印刷可能枚数の印刷が行われると推定される日数である。第2特定条件は、プリンタ100の累積チャージ数D11が更新されない場合に、プリンタ100を使用し続けることができると推定される期間が、短いことを示している。すなわち、第2特定条件が満たされる場合、プリンタ100の累積チャージ数D11の早い更新が好ましい。プロセッサ510は、このような場合に、プリンタ100宛の更新指示を再送できる。なお、第2特定条件は、印刷可能枚数に関連する枚数特定条件の例である。
また、図6に示すように、更新指示がプリンタ100によって受信されない場合(S350:No)、S410で、プロセッサ510は、端末装置200宛のエラー通知を送信する。エラー通知は、更新指示がプリンタ100によって受信されないことを示している。このように、プロセッサ510は、更新指示がプリンタ100によって受信されないことを、端末装置200に通知できる。
また、本実施例では、購入処理(図4)と反映処理(図5、図6)とは、複数のプリンタのそれぞれに関して、実行され得る。ここで、N個(Nは2以上の整数)のプリンタのそれぞれのために購入処理が実行されると仮定する。この場合、プロセッサ510は、N回の購入処理(図4)のN回のS210で、N個の追加要求を取得する。プロセッサ510は、N個の追加要求に応じて、N回の反映処理を実行する。プロセッサ510は、N回の反映処理(図5、図6)のN回のS320で、N個のプリンタのそれぞれ宛のN個の更新指示を送信する。更新指示がプリンタによって受信されない場合(図6:S350:No)、図7で説明したように、プロセッサ510は、再送条件(S530)に従って、更新指示を再送する(S540)。再送条件は、更新指示の宛先のプリンタに関連している。ここで、N個の更新指示がN個のプリンタによって受信されない場合、プロセッサ510は、N個のプリンタにそれぞれ関連するN個の再送条件に従って(S530)、N個の更新指示をそれぞれ再送する(S540)。図8に示すように、N個の再送条件のそれぞれは、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされる(本実施例では、K=4)。K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられている。本実施例では、L=4であり、4個の特定条件の間で、優先度は互いに異なっている。図7-図9で説明したように、プロセッサ510は、更新指示に対応する再送条件が満たされる場合、満たされる特定条件に対応付けられる優先度の順に、更新指示を再送する。ここで、N個の更新指示のうちのM個(Mは、2以上、N以下の整数)の更新指示に対応するM個の再送条件が満たされると仮定する。この場合、プロセッサ510は、更新指示に対応する特定条件であって満たされる特定条件に対応付けられる優先度の順に、M個の更新指示を再送する。従って、プロセッサ510は、M個の更新指示に対応するM個の再送条件が満たされる場合に、適切な順に、M個の更新指示を再送できる。
B.第2実施例:
図10は、再送処理の別の実施例を示すフローチャートである。サービスサーバ500(図1)のプロセッサ510は、図7の再送処理に代えて、図10の再送処理を実行する。本実施例では、プロセッサ510は、再送条件を満たす更新指示を、優先度に対応付けられる待ち時間の経過後に、再送する。以下、再送処理の詳細について説明する。
S510では、プロセッサ510は、再送対象の更新指示の中から、待ち時間が決定されていない更新指示を検索する。待ち時間が未決定の更新指示が存在する場合(S510:Yes)、S520で、プロセッサ510は、待ち時間が未決定の更新指示を選択する。S530では、プロセッサ510は、S520で選択された更新指示に対する再送判断処理を実行する。1個の更新指示のための処理は、図8の処理と同じである。
S550では、プロセッサ510は、待ち時間が未決定の更新指示のうち再送条件を満たす更新指示の待ち時間を決定する。本実施例では、プロセッサ510は、更新指示の待ち時間を、S530で決定された優先度に予め対応付けられる待ち時間に決定する。待ち時間は、優先度が高いほど、短い。優先度と待ち時間との対応関係は、例えば、以下の通りである。
第1優先度:ゼロ
第2優先度:1時間
第3優先度:12時間
第4優先度:1日
S560では、プロセッサ510は、S550で待ち時間が決定された更新指示のそれぞれの時間の測定を開始する。測定される時間は、再送条件が満たされてからの経過時間と実質的に同じである(以下、測定される時間を、経過時間とも呼ぶ)。S560の後、プロセッサ510は、S570へ移行する。
S510で、待ち時間が未決定の更新指示が存在しない場合(S510:No)、プロセッサ510は、S520-S560をスキップして、S570へ移行する。
S570では、プロセッサ510は、待ち時間が経過した更新指示を送信する。具体的には、プロセッサ510は、更新指示毎に、経過時間と待ち時間とを比較する。そして、経過時間が待ち時間以上である場合に、プロセッサ510は、更新指示を送信する。プロセッサ510は、再送された更新指示を、再送対象から除く。そして、プロセッサ510は、S510へ移行する。以後、プロセッサ510は、図10の処理を繰り返す。
なお、更新指示の送信の後は、送信された更新指示に関して、図5、または、図6のS320に続く処理が実行される。再送された更新指示が、再び、プリンタによって受信されない場合(図6:S350:No)、プロセッサ510は、更新指示を、改めて、再送対象に追加する(S430)。
以上のように、本実施例では、再送条件が満たされるか否かは、図8の処理によって、判断される。図8に示すように、再送条件は、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされる(本実施例では、K=4)。K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられている。本実施例では、L=4であり、4個の特定条件の間で、優先度は互いに異なっている。更新指示がプリンタ100によって受信されない場合(図6:S350:No)、プロセッサ510は、その更新指示を、図10の再送処理によって、再送する。具体的には、プロセッサ510は、再送条件が満たされることに応じて、満たされる特定条件に対応付けられる優先度に基づいて待ち時間を決定する(S530、S550)。そして、プロセッサ510は、待ち時間の経過後に、プリンタ宛の更新指示を再送する(S560、S570)。従って、プロセッサ510は、優先度に基づく適切な時間に、プリンタ宛の更新指示を再送できる。また、複数の更新指示のそれぞれの送信日時は、幅広い時間範囲に分散される。このように、複数の更新指示の再送に起因するネットワーク上の通信負荷の短時間内の集中は、軽減される。
C.第3実施例:
図11は、反映処理の別の実施例を示すフローチャートである。図11は、S350(図6)の判断結果がNoである場合のS350の続きの処理の例を示している。S410、S420、S430は、図6のS410、S420、S430と、それぞれ同じである。プリンタ100の累積チャージ数D11(図2(A))が更新されない場合、累積チャージ数D11の不足に起因してプリンタ100による印刷ができなくなり得る。この場合、S420の後に、ユーザは、新たな購入指示を端末装置200に入力し得る(S440)。端末装置200のプロセッサ210は、購入指示に応じて、新たな追加要求を、サービスサーバ500に送信する。サービスサーバ500のプロセッサ510は、この追加要求に対して、図4のS215、S220を実行してよい。しかし、プリンタ100の累積チャージ数D11に反映されていない更新指示(すなわち、再送対象の更新指示)が残っている場合、S440の追加要求は、過剰な要求であり得る。本実施例では、サービスサーバ500のプロセッサ510は、S440の追加要求に応じてプリンタ100宛の新たな更新指示を送信すべきか否かを、ユーザに問い合わせる。
S440の後、S445で、サービスサーバ500のプロセッサ510は、S440の追加要求に関連する再送対象の更新指示が残っているか否かを判断する。追加要求に関連する再送対象の更新指示は、追加要求によって示されるプリンタ識別子PIDに対応付けられる再送対象の更新指示である。
再送対象の更新指示が残っている場合、すなわち、更新指示が未反映である場合(図11:S445:No)、S450で、プロセッサ510は、端末装置200に、プリンタ100宛の新たな更新指示を送信すべきか否かを示すユーザ指示を要求する。
S455では、端末装置200(図1)のプロセッサ210は、表示部240に、確認画面を表示する。図示を省略するが、確認画面は、S440の追加要求に基づく印刷可能枚数の追加とキャンセルとのいずれを採用すべきかを問うメッセージを含んでいる。
S460では、ユーザは、操作部250を操作することによって、印刷可能枚数の追加とキャンセルとのいずれを採用すべきかを示すユーザ指示を入力する。プロセッサ210は、入力されたユーザ指示を取得する。
S465では、プロセッサ210は、ユーザ指示を示すデータを、サービスサーバ500に送信する。
S470では、サービスサーバ500のプロセッサ510は、ユーザ指示が印刷可能枚数の追加を示すか否かを判断する。ユーザ指示がキャンセルを示す場合(S470:No)、プロセッサ510は、処理を終了する。
ユーザ指示が印刷可能枚数の追加を示す場合(S470:Yes)、プロセッサ510は、図4のS215へ移行する。同様に、S445の判断結果がYesである場合(すなわち、更新指示が反映済である場合)、プロセッサ510は、図4のS215へ移行する。プロセッサ510は、決済処理(S215)とサービスデータ532の更新処理(S220)とを、実行する。その後、上記各実施例と同様に、プロセッサ510は、反映処理(図5、または、図6)を実行する。S320(図5、または、図6)では、プロセッサ510は、S440(図11)の追加要求に応じて、プリンタ100宛の新たな更新指示を送信する。
以上のように、サービスサーバ500のプロセッサ510は、更新指示がプリンタによって受信されない状態で、プリンタの印刷可能枚数の新たな追加要求を端末装置から取得し得る(S440)。この場合、S450、S465で、プロセッサ510は、新たな追加要求に応じてプリンタ宛の新たな更新指示を送信すべきか否かを示すユーザ指示を端末装置から取得する。従って、プロセッサ510は、ユーザ指示に適する処理を実行できる。本実施例では、ユーザが新たな更新指示の送信を望む場合(S470:Yes)、プロセッサ510は、新たな更新指示を送信する(S320(図5、または、図6))。ユーザが新たな更新指示の送信を望まない場合(S470:No)、プロセッサ510は、新たな更新指示の送信をキャンセルする。
D.変形例:
(1)再送条件は、図8で説明した実施例の条件に限らず、種々の条件であってよい。再送条件は、S615の条件とS635の条件とに限らず、種々の通信特定条件が満たされる場合に、満たされてよい。通信特定条件は、サービスサーバ500とプリンタとの間の通信に関連する種々の条件であってよい。通信特定条件は、サービスサーバ500とプリンタとの間の通信が可能である可能性が高いことを示す条件であってよい。例えば、通信特定条件は、プリンタとの常時接続が現在に確立していることであってよい。サービスサーバ500のプロセッサ510は、接続サーバ600に、注目プリンタ100との常時接続が現在に確立しているか否かを問い合わせる。そして、常時接続が現在に確立している場合に、プロセッサ510は、注目プリンタ100のための更新指示が通信特定条件を満たすと判断してよい。この通信特定条件が採用される場合、プロセッサ510は、プリンタの状態がオフラインからオンラインに変化したことに応じて、直ぐに、更新指示をプリンタに送信できる。
また、プリンタ100のプロセッサ110は、プリンタ100がオンラインである場合に、定期的に、プリンタ100に関する情報(例えば、累積チャージ数D11と累積印刷数D12)をサービスサーバ500に通知するように構成されてよい。この通知の頻度は、1回/1時間など、種々の頻度であってよい。プリンタ100が定期的な通知をサービスサーバ500に送信する場合、図8のS615で説明した条件とS635で説明した条件とは、いずれも、サービスサーバ500とプリンタ100との間の通信が可能である可能性が高いことを適切に示すことができる。例えば、S635では、プロセッサ510は、定期的な通知の履歴を使用して、適切な推定オンライン時間を推定できる。なお、推定オンライン時間の推定方法は、1日のうちのプリンタがオンラインである可能性の高い時間を推定する任意の方法であってよい。
(2)再送条件は、S645(図8)の条件に限らず、種々の更新特定条件が満たされる場合に、満たされてよい。更新特定条件は、プリンタの記憶装置に格納される制御データ(例えば、制御データ131(図2(A)))によって示される印刷可能枚数(上記実施例では、D11-D12)の更新履歴に関連する種々の条件であってよい。例えば、更新特定条件は、累積チャージ追加タイムスタンプD53(図2(C))と累積チャージ反映タイムスタンプD54との間の時間差(D53-D54)が、予め決められた時間差閾値(例えば、1日)以下であることであってよい。この時間差が大きい場合には、ユーザは、プリンタ100の累積チャージ数D11の更新の遅れを許容している可能性がある。従って、プロセッサ510は、時間差が大きい場合には、更新指示の再送を促さずに、時間差が小さい場合には、更新指示の再送を促してよい。
更新特定条件の判断に使用される時間差は、累積チャージ反映タイムスタンプD54(図2(C))と現在との間の時間差(現在-D54)であってよい。そして、更新特定条件は、この時間差が、予め決められた時間差閾値(例えば、1日)以上であることであってよい。この時間差は、プリンタ100の累積チャージ数D11が更新されてからの経過時間を示している。この時間差が大きいことは、長時間に亘ってプリンタ100の累積チャージ数D11が更新されていないことを示している。従って、時間差が大きい場合、累積チャージ数D11の早い更新が好ましい。なお、この時間差(現在-D54)が大きい場合、ユーザは、プリンタ100の累積チャージ数D11の更新の遅れを許容している可能性がある。従って、更新特定条件は、時間差(現在-D54)が予め決められた時間差閾値(例えば、1日)以下であることであってよい。
更新特定条件の判断に使用される時間差は、累積チャージ追加タイムスタンプD53(図2(C))と現在との間の時間差(現在-D53)であってよい。そして、更新特定条件は、この時間差が、予め決められた時間差閾値(例えば、1日)以上であることであってよい。この時間差は、購入処理によってサービスサーバ500の累積チャージ数D51が増大してからの経過時間を示している。この時間差が大きいことは、購入処理による累積チャージ数D51の増大から長時間に亘ってプリンタ100の累積チャージ数D11が更新されていないことを示している。従って、時間差が大きい場合、累積チャージ数D11の早い更新が好ましい。なお、更新指示が再送対象である場合、累積チャージ反映タイムスタンプD54(すなわち、プリンタの累積チャージ数D11の更新のタイムスタンプ)は、累積チャージ追加タイムスタンプD53よりも前である。このように、累積チャージ追加タイムスタンプD53は、プリンタ100の累積チャージ数D11の更新履歴に関連している。従って、累積チャージ追加タイムスタンプD53と現在との時間差を使用する条件は、プリンタ100の制御データ131によって示される印刷可能枚数(D11-D12)の更新履歴に関連する更新特定条件の例である。なお、この時間差(現在-D53)が大きい場合、ユーザは、プリンタ100の累積チャージ数D11の更新の遅れを許容している可能性がある。従って、更新特定条件は、時間差(現在-D53)が予め決められた時間差閾値(例えば、1日)以下であることであってよい。
(3)再送条件は、S625(図8)の条件に限らず、種々の枚数特定条件が満たされる場合に、満たされてよい。枚数特定条件は、印刷可能枚数に関連する種々の条件であってよい。例えば、枚数特定条件は、未更新の印刷可能枚数の推定値が、予め決められる枚数閾値(例えば、20枚)以下であることであってよい。プロセッサ510は、未更新の印刷可能枚数を、サービスデータ532(図2(C))を使用して推定する。具体的には、プロセッサ510は、反映済累積チャージ枚数D52から累積印刷枚数D55を減算することによって、印刷可能枚数を算出する。算出される印刷可能枚数(D52-D55)は、累積チャージ枚数D51の更新を反映していない未更新の印刷可能枚数の推定値である。印刷可能枚数の推定値が少ない場合、プリンタ100の累積チャージ数D11の早い更新が好ましい。なお、プロセッサ510は、情報D52、D55を、プリンタ100からの通知を参照して更新する(図3、図5)。従って、プロセッサ510は、プリンタ100からの通知を参照して印刷可能枚数(D52-D55)を算出している、といえる。
未更新の印刷可能枚数の推定方法は、任意の方法であってよい。例えば、プリンタ100のプロセッサ110は、プリンタ100がオンラインである場合に、定期的に、プリンタ100に関する情報(例えば、累積チャージ数D11と累積印刷数D12)をサービスサーバ500に通知するように構成されてよい。この場合、プロセッサ510は、最新の通知を参照して未更新の印刷可能枚数を推定してよい。例えば、プロセッサ510は、累積チャージ枚数D11から累積印刷枚数D12を減算することによって、未更新の印刷可能枚数を算出してよい。このように、プロセッサ510は、プリンタからの受信済の通知を参照して、未更新の印刷可能枚数を推定してよい。
なお、枚数特定条件は、S625(図8)で説明した日数条件と、未更新の印刷可能枚数の推定値が枚数閾値以下であるという印刷可能枚数条件と、の一方、または、両方を使用して、構成されてよい。例えば、枚数特定条件は、日数条件が満たされる場合に満たされてよい。枚数特定条件は、印刷可能枚数条件が満たされる場合に満たされてよい。枚数特定条件は、日数条件と印刷可能枚数条件との一方、または、両方が満たされる場合に満たされてよい。枚数特定条件は、日数条件と印刷可能枚数条件との一方のみが満たされる場合には満たされず、両方が満たされる場合に満たされてよい。
(4)再送条件は、1以上の任意の数の特定条件を使用して構成されてよい。そして、1以上の任意の特定条件が満たされる場合に、再送条件が満たされてよい。例えば、再送条件は、1以上の通信特定条件と、1以上の更新特定条件と、1以上の枚数特定条件と、を使用して構成されてよい。再送条件は、通信特定条件と更新特定条件と枚数特定条件とのいずれとも異なる他の種類の条件を使用して構成されてよい。再送条件からは、通信特定条件と更新特定条件と枚数特定条件とのうちの1種類以上の条件が、省略されてよい。
また、再送条件は、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされてよい。ここで、K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられてよい。2以上の特定条件に、同じ優先度が対応付けられてよい(この場合、L<K)。いずれの場合も、特定条件と優先度との対応関係は、図8の対応関係に限らず、任意に決定されてよい。そして、プロセッサ510は、図7の処理、または、図10の処理を実行することによって、再送条件を満たす更新指示を再送してよい。なお、優先度は省略されてよい。例えば、プロセッサ510は、再送条件を満たした順番に、更新指示を再送してよい。
(5)サービスサーバ500によって実行される処理は、上記の処理に限らず、種々の処理であってよい。例えば、プロセッサ510は、図2(C)の情報D51、D52、D55の組み合わせに限らず、プリンタ100による印刷可能な枚数を示す種々の情報を示すデータを記憶装置515(例えば、不揮発性記憶装置530)に格納してよい。例えば、プロセッサ510は、購入処理(図4)毎の購入枚数を示すデータを記憶装置515に格納してよい。そして、購入枚数がプリンタ100の制御データ(例えば、累積チャージ枚数D11(図2(A)))に反映されたことに応じて、プロセッサ510は、反映された購入枚数のデータを記憶装置515から削除してよい。また、プロセッサ510は、反映済か否かを示すフラグデータと、購入枚数を示すデータと、の組み合わせを、記憶装置515に格納してよい。そして、購入枚数がプリンタ100の累積チャージ枚数D11に反映されたことに応じて、プロセッサ510は、反映された購入枚数のフラグを「未反映」から「反映済」に変更してよい。
(6)プリンタ(例えば、プリンタ100)によって実行される処理は、上記の処理に限らず、種々の処理であってよい。例えば、図5の反映処理では、プリンタ100のプロセッサ110は、更新指示に対する応答として、更新結果通知を送信する。これに代えて、プロセッサ110は、更新指示に対する応答とは別に、サービスサーバ500宛の更新結果通知を送信してよい。また、プリンタ100によって送信される更新結果通知は、更新済の累積チャージ数D11など、更新された印刷可能枚数に関連するデータを含むことが好ましい。ただし、更新結果通知は、更新された印刷可能枚数に関連するデータを含まずに、更新が完了したことを示す通知であってよい。更新された印刷可能枚数に関連するデータは、更新された累積チャージ枚数D11、または、累積印刷枚数D12のように、更新された印刷可能枚数の算出に使用可能な種々のデータであってよい。
また、プロセッサ110は、図2(A)の情報D11、D12の組み合わせに限らず、プリンタ100による印刷可能な枚数を示す種々の情報を示すデータを記憶装置115(例えば、不揮発性記憶装置130)に格納してよい。例えば、プロセッサ110は、情報D11、D12の組み合わせではなく、印刷可能枚数を示す制御データを記憶装置115に格納してよい。プロセッサ110は、サービスサーバ500からの更新指示に応じて、制御データを更新してよい。
(7)図6の実施例では、サービスサーバ500のプロセッサ510は、更新指示がプリンタによって受信されない場合に(S350:No)、更新指示を再送対象に追加する(S430)。ここで、更新指示がプリンタによって受信されないと判断するための条件(エラー条件とも呼ぶ)は、サービスサーバ500がプリンタからの更新結果通知を受信しないことに限らず、他の種々の条件であってよい。例えば、エラー条件は、サービスサーバ500がプリンタから更新指示に対する応答を受信しないことであってよい。なお、更新指示に対する応答は、必ずしもプリンタ100での更新完了を示していない場合がある。従って、サービスサーバ500のプロセッサ510は、プリンタでの更新完了を明示的に示すデータ(例えば、更新済の累積チャージ枚数D11を示すデータ)をプリンタから受信する場合に、更新指示がプリンタによって受信されたと判断することが好ましい。この場合、エラー条件は、サービスサーバ500が更新完了を示すデータをプリンタから受信しないことである。
(8)更新指示がプリンタによって受信されない場合(図6:S350:No)に、ユーザにエラーを通知する処理は、S410の処理に代えて、任意の処理であってよい。例えば、ユーザの電子メールアドレス宛の電子メールの送信、ユーザの電話番号宛のSMS(Short Message Service)のメッセージの送信、ユーザの端末宛のMMS(Multimedia Messaging Service)のメッセージの送信、などの処理が採用されてよい。なお、このような通知(例えば、図6のS410)は、省略されてよい。
(9)上記の各実施例では、サービスサーバ500は、プリンタの使用可能量の例である印刷可能枚数を使用して、プリンタを管理する。プリンタが片面印刷を実行する場合、印刷可能枚数は、印刷可能頁数と同じである。プリンタが両面印刷を実行する場合、印刷可能枚数は、印刷可能頁数の半分である。サービスサーバ500は、印刷可能枚数に代えて、他の種類の使用可能量を使用して、プリンタを管理してよい。例えば、使用可能量は、印刷可能頁数、色材(インク、トナーなど)の使用可能量など、画像の印刷に応じて変化する任意のパラメータを示してよい。いずれの場合も、購入処理(図4)は、使用可能量を追加する種々の処理であってよい。プリンタは、使用可能量の範囲内で、印刷を許容してよい。
(10)ユーザ識別子UID(図2(B))には、複数のプリンタ(すなわち、複数のプリンタ識別子PID)が、対応付けられてよい。また、プリンタは、実際のプリンタを示す物理デバイスと、物理デバイスに対応付けられる論理デバイスと、を使用して管理されてよい。例えば、ユーザデータ531(図2(B))によってユーザ識別子UIDに対応付けられるプリンタ識別子PIDは、論理デバイスの識別子であってよい。そして、論理識別子に、物理デバイスの識別子が対応付けられてよい。使用可能量(例えば、印刷可能枚数)は、論理デバイスに対して付与されてよい。故障などの原因に起因してプリンタを交換する場合、論理デバイスは変更されずに、論理デバイスに対応付けられる物理デバイスの識別子が、変更されてよい。そして、新しいプリンタは、論理デバイスに対して付与された使用可能量を引き継いでよい。
(11)上記の各実施例では、サービスサーバ500(図1)が、プリンタの使用可能量の追加要求を取得し(図4)、そして、プリンタ宛の更新指示を送信する(図5、図6)。このような処理を実行するサーバシステムの構成は、サービスサーバ500の構成に代えて、他の種々の構成であってよい。例えば、サービスサーバ500は、接続サーバ600の代わりに、プリンタとの常時接続を確立してよい(接続サーバ600は、省略されてよい)。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、サーバシステムによる処理の機能を一部ずつ分担して、全体として、サーバシステムの機能を提供してもよい(これらの装置を備えるシステムがサーバシステムに対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図4のS220の機能を、専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
100…プリンタ、110…プロセッサ、115…記憶装置、120…揮発性記憶装置、130…不揮発性記憶装置、PG1…プログラム、131…制御データ、140…表示部、150…操作部、160…印刷実行部、180…通信インタフェース、200…端末装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、PG2…プログラム、231…アカウントデータ、240…表示部、250…操作部、280…通信インタフェース、500…サービスサーバ、510…プロセッサ、515…記憶装置、520…揮発性記憶装置、530…不揮発性記憶装置、PG5…プログラム、531…ユーザデータ、532…サービスデータ、533…履歴データ、580…通信インタフェース、600…接続サーバ、610…プロセッサ、615…記憶装置、620…揮発性記憶装置、630…不揮発性記憶装置、PG6…プログラム、631…接続データ、680…通信インタフェース、700…決済サーバ、710…プロセッサ、715…記憶装置、720…揮発性記憶装置、730…不揮発性記憶装置、PG7…プログラム、731…決済データ、780…通信インタフェース、1000…システム、NT…ネットワーク

Claims (11)

  1. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記第1の場合は、
    前記サーバシステムが、前記プリンタから、前記更新指示に対する応答を受信しない場合と、
    前記サーバシステムが、前記プリンタから、前記更新指示に基づく前記使用可能量の更新が完了したことを示すデータを受信しない場合と、
    のいずれかである、
    サーバシステム。
  2. 請求項に記載のサーバシステムであって、
    前記再送条件は、前記サーバシステムと前記プリンタとの間の通信に関連する条件である通信特定条件が満たされる場合に、満たされ、
    前記通信特定条件が満たされる場合は、前記通信特定条件が満たされない場合と比べて、前記サーバシステムと前記プリンタとの間の通信が可能である可能性が高い、
    サーバシステム。
  3. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記再送条件は、前記サーバシステムと前記プリンタとの間の通信に関連する条件である通信特定条件が満たされる場合に、満たされ、
    前記通信特定条件が満たされる場合は、前記通信特定条件が満たされない場合と比べて、前記サーバシステムと前記プリンタとの間の通信が可能である可能性が高い、
    サーバシステム。
  4. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記再送条件は、前記プリンタの前記記憶装置に格納される前記制御データによって示される前記使用可能量の更新履歴に関連する条件である更新特定条件が満たされる場合に、満たされる、
    サーバシステム。
  5. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記再送条件は、前記使用可能量によって示される印刷可能枚数に関連する条件である枚数特定条件が満たされる場合に、満たされる、
    サーバシステム。
  6. 請求項に記載のサーバシステムであって、
    前記枚数特定条件は、
    前記プリンタの使用可能量であって未更新の使用可能量の推定値によって示される印刷可能枚数が、枚数閾値以下であることを示す印刷可能枚数条件と、
    前記プリンタの使用履歴を使用して推定される日数であって、前記印刷可能枚数の印刷が行われると推定される日数が、日数閾値以下であることを示す日数条件と、
    の一方、または、両方を使用して構成されている、
    サーバシステム。
  7. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記サーバシステムは、さらに、
    前記第1の場合に、前記更新指示が前記プリンタによって受信されないことを示す前記端末装置宛の通知を送信するように構成された第2送信部を有する、サーバシステム。
  8. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記サーバシステムは、さらに、
    前記更新指示が前記プリンタによって受信されない状態で、前記第1取得部が前記プリンタの前記使用可能量の新たな追加要求を前記端末装置から取得する場合に、前記新たな追加要求に応じて前記プリンタ宛の前記使用可能量の新たな更新指示を送信すべきか否かを示すユーザ指示を前記端末装置から取得するように構成された第2取得部を有する、
    サーバシステム。
  9. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記第1取得部は、N個(Nは2以上の整数)のプリンタのためのN個の追加要求を取得するように構成され、
    前記第1送信部は、前記N個の追加要求に応じて前記N個のプリンタのそれぞれ宛のN個の更新指示を送信するように構成され、
    前記第1送信部は、前記N個の更新指示が前記N個のプリンタによって受信されない場合に、前記N個のプリンタにそれぞれ関連するN個の再送条件に従って、前記N個の更新指示をそれぞれ再送するように構成され、
    前記N個の再送条件のそれぞれは、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされ、
    前記K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられ、
    前記第1送信部は、前記N個の更新指示のうちのM個(Mは、2以上、N以下の整数)の更新指示に対応するM個の再送条件が満たされる場合に、前記更新指示に対応する特定条件であって満たされる特定条件に対応付けられる優先度の順に、前記M個の更新指示を再送するように構成されている、
    サーバシステム。
  10. サーバシステムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得部と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信部と、
    を備え、
    前記第1送信部は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記再送条件は、K個(Kは2以上の整数)の特定条件のうちのいずれかが満たされる場合に、満たされ、
    前記K個の特定条件のそれぞれには、L個(Lは、2以上、K以下の整数)の優先度のいずれかが予め対応付けられ、
    前記第1送信部は、前記第1の場合に、前記再送条件が満たされることに応じて、満たされる特定条件に対応付けられる優先度に基づいて決まる待ち時間の経過後に、前記プリンタ宛の前記更新指示を再送するように、構成されている、
    サーバシステム。
  11. コンピュータプログラムであって、
    プリンタの使用可能量の追加要求を端末装置から取得するように構成された第1取得機能と、
    前記追加要求に応じて、前記プリンタの記憶装置に格納される制御データによって示される使用可能量の更新指示であって前記プリンタ宛の前記更新指示を送信するように構成された第1送信機能と、
    をコンピュータに実現させ、
    前記第1送信機能は、前記更新指示が前記プリンタによって受信されない第1の場合に、前記プリンタに関連する再送条件が満たされることに応じて、前記プリンタ宛の前記更新指示を再送するように、構成されており
    前記第1の場合は、
    前記コンピュータが、前記プリンタから、前記更新指示に対する応答を受信しない場合と、
    前記コンピュータが、前記プリンタから、前記更新指示に基づく前記使用可能量の更新が完了したことを示すデータを受信しない場合と、
    のいずれかである、
    コンピュータプログラム。
JP2021194236A 2021-11-30 2021-11-30 サーバシステム、および、コンピュータプログラム Active JP7769295B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021194236A JP7769295B2 (ja) 2021-11-30 2021-11-30 サーバシステム、および、コンピュータプログラム
CN202211279669.XA CN116204139A (zh) 2021-11-30 2022-10-19 服务器系统及记录有计算机程序的记录介质
JP2025181568A JP2026012277A (ja) 2021-11-30 2025-10-28 サーバシステム、および、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021194236A JP7769295B2 (ja) 2021-11-30 2021-11-30 サーバシステム、および、コンピュータプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2025181568A Division JP2026012277A (ja) 2021-11-30 2025-10-28 サーバシステム、および、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2023080737A JP2023080737A (ja) 2023-06-09
JP7769295B2 true JP7769295B2 (ja) 2025-11-13

Family

ID=86513621

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021194236A Active JP7769295B2 (ja) 2021-11-30 2021-11-30 サーバシステム、および、コンピュータプログラム
JP2025181568A Pending JP2026012277A (ja) 2021-11-30 2025-10-28 サーバシステム、および、コンピュータプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2025181568A Pending JP2026012277A (ja) 2021-11-30 2025-10-28 サーバシステム、および、コンピュータプログラム

Country Status (2)

Country Link
JP (2) JP7769295B2 (ja)
CN (1) CN116204139A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308181A (ja) 2002-04-18 2003-10-31 Konica Minolta Holdings Inc 自動プリントシステム、自動プリント方法、サーバ及びプリンタ
JP2009267938A (ja) 2008-04-28 2009-11-12 Canon Inc 画像処理装置及びその制御方法、プログラム、記憶媒体
JP2011028668A (ja) 2009-07-29 2011-02-10 Canon It Solutions Inc 印刷管理システム、印刷装置、印刷管理方法およびプログラム
JP2013056515A (ja) 2011-09-09 2013-03-28 Ricoh Co Ltd 利用量制限装置、機器システム、プログラム
JP2016015535A (ja) 2014-06-30 2016-01-28 ブラザー工業株式会社 デバイス管理システムおよびデバイス
JP2021068372A (ja) 2019-10-28 2021-04-30 ブラザー工業株式会社 プログラムおよび印刷システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308181A (ja) 2002-04-18 2003-10-31 Konica Minolta Holdings Inc 自動プリントシステム、自動プリント方法、サーバ及びプリンタ
JP2009267938A (ja) 2008-04-28 2009-11-12 Canon Inc 画像処理装置及びその制御方法、プログラム、記憶媒体
JP2011028668A (ja) 2009-07-29 2011-02-10 Canon It Solutions Inc 印刷管理システム、印刷装置、印刷管理方法およびプログラム
JP2013056515A (ja) 2011-09-09 2013-03-28 Ricoh Co Ltd 利用量制限装置、機器システム、プログラム
JP2016015535A (ja) 2014-06-30 2016-01-28 ブラザー工業株式会社 デバイス管理システムおよびデバイス
JP2021068372A (ja) 2019-10-28 2021-04-30 ブラザー工業株式会社 プログラムおよび印刷システム

Also Published As

Publication number Publication date
JP2023080737A (ja) 2023-06-09
CN116204139A (zh) 2023-06-02
JP2026012277A (ja) 2026-01-23

Similar Documents

Publication Publication Date Title
CN103067634B (zh) 图像形成系统、图像形成装置及图像形成方法
CN102215220B (zh) 图像形成系统以及协作装置
US8543677B2 (en) Communication control device, method, and computer readable medium allowing an information processing device to be in a power saving mode for an extended period and allowing an application part to continue functioning
US11422762B2 (en) Method and server for providing cloud print service
US20030035140A1 (en) Image processing apparatus, management unit, and program
JP2014172394A (ja) 印刷装置、プログラム及び印刷システム
JP2020170287A (ja) 装置、制御方法、およびプログラム
JP6903965B2 (ja) 印刷装置および情報収集送信方法
JP7769295B2 (ja) サーバシステム、および、コンピュータプログラム
JP7784062B2 (ja) サーバシステム及び情報処理プログラム
JP7779154B2 (ja) 通信システム、サーバのためのコンピュータプログラム、及び、端末装置のためのアプリケーションプログラム
CN117234439A (zh) 打印装置、打印装置的控制方法、以及存储介质
JP7193774B2 (ja) 端末装置、システム、および、コンピュータプログラム
JP7535234B2 (ja) 画像形成装置
JP6702073B2 (ja) 通信システム及び端末装置
JP2022156520A (ja) 管理プログラム、管理装置、管理システムおよび管理方法
US20250341995A1 (en) Storage medium storing program, electronic device, method performed in electronic device, and print system
JP7810945B2 (ja) システム、サーバ、および、コンピュータプログラム
JP7839447B2 (ja) サーバ、および、コンピュータプログラム
JP2017019162A (ja) ジョブ実行装置、エラー通知方法、及びエラー通知プログラム
US20250390259A1 (en) Server, non-transitory computer-readable recording medium storing computer-readable instructions for server and control method for server
JP6249114B2 (ja) 画像形成システム及びプログラム
US20250037172A1 (en) Delivery information provision server including controller configured to determine specific piece of delivery information and transmit the same to printer
US20210142131A1 (en) Server, non-transitory computer-readable recording medium storing computer-readable instructions for server, and method executed by server
JP2013256065A (ja) 画像形成装置、ネットワークプリントシステム、省電力制御方法及び省電力制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250909

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251014

R150 Certificate of patent or registration of utility model

Ref document number: 7769295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150