JP2023124559A - サーバ、その制御方法及びプログラム - Google Patents

サーバ、その制御方法及びプログラム Download PDF

Info

Publication number
JP2023124559A
JP2023124559A JP2022028380A JP2022028380A JP2023124559A JP 2023124559 A JP2023124559 A JP 2023124559A JP 2022028380 A JP2022028380 A JP 2022028380A JP 2022028380 A JP2022028380 A JP 2022028380A JP 2023124559 A JP2023124559 A JP 2023124559A
Authority
JP
Japan
Prior art keywords
print
access
service
print service
printing
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
Application number
JP2022028380A
Other languages
English (en)
Inventor
幸安 岩崎
Yukiyasu Iwasaki
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022028380A priority Critical patent/JP2023124559A/ja
Priority to US18/103,586 priority patent/US20230273757A1/en
Priority to KR1020230020480A priority patent/KR20230127897A/ko
Priority to CN202310159837.XA priority patent/CN116661710A/zh
Publication of JP2023124559A publication Critical patent/JP2023124559A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/129Remote printer device, e.g. being remote from client or server in server-printer device-client configuration, e.g. print flow goes from server to printer and then bidirectional from printer to client, i.e. the client does not communicate with the server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1211Improving printing performance
    • G06F3/1215Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1238Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1273Print job history, e.g. logging, accounting, tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1222Increasing security of the print job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/1267Job repository, e.g. non-scheduled jobs, delay printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal 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)

Abstract

【課題】印刷サービスに対して適切にアクセスするための技術を提供する。【解決手段】情報処理装置から印刷ジョブを受信する印刷サービスから印刷ジョブを受信するサーバは、印刷サービスにアクセスするアクセス部と、印刷サービスへのアクセスに関する条件を管理する条件管理部と、印刷サービスへの過去のアクセス状況を管理するアクセス管理部と、過去のアクセス状況に基づいて、印刷サービスに新たにアクセスすることによって条件が満たされなくなるかどうかを判定する判定部と、を備え、アクセス部は、条件が満たされなくなると判定された場合に、印刷サービスへの新たなアクセスを行わない。【選択図】図7

Description

本発明は、サーバ、その制御方法及びプログラムに関する。
クラウド上に構成された印刷サービスに対して情報処理装置から印刷を要求し、印刷サービスに関連付けられた印刷装置で印刷を実行する技術が知られている。情報処理装置から利用可能な印刷サービスが所望の印刷装置に対応していない場合でも印刷を実行できるようにするために、印刷サービスと印刷装置とを仲介するサービスも検討されている。特許文献1には、ウェブサーバに送信されてくるリクエストに対して、擬似的なリクエストを加えることによって、リクエストによるサーバへの負荷を調整する技術が記載されている。
特許第4472944号公報
印刷サービスを利用するシステムの規模が大きくなると、印刷サービスに対する単位時間当たりのアクセス数が増加する。これによって、印刷サービスに対する負荷が増加する。また、印刷サービスに対する単位時間当たりのアクセス数が増加すると、サービス拒否(DoS)攻撃のような不正アクセスとみなされ、印刷サービスへのアクセスが遮断されてしまう恐れがある。本発明の一部の側面は、印刷サービスに対して適切にアクセスするための技術を提供することを目的とする。
一部の実施形態では、情報処理装置から印刷ジョブを受信する印刷サービスから前記印刷ジョブを受信するサーバであって、前記印刷サービスにアクセスするアクセス手段と、前記印刷サービスへのアクセスに関する条件を管理する条件管理手段と、前記印刷サービスへの過去のアクセス状況を管理するアクセス管理手段と、前記過去のアクセス状況に基づいて、前記印刷サービスに新たにアクセスすることによって前記条件が満たされなくなるかどうかを判定する判定手段と、を備え、前記アクセス手段は、前記条件が満たされなくなると判定された場合に、前記印刷サービスへの新たなアクセスを行わないことを特徴とするサーバが提供される。
上記手段により、印刷サービスに対して適切にアクセスするための技術が提供される。
第1実施形態に係る印刷システムの構成例を説明する図。 第1実施形態に係る装置のハードウェア構成例を説明する図。 第1実施形態に係る仲介サービスの機能構成例を説明する図。 第1実施形態に係るテーブルの例を説明する図。 第1実施形態に係る印刷システムの動作例を説明する図。 第1実施形態に係る仲介サービスの動作例を説明する図。 第1実施形態に係る仲介サービスの動作例を説明する図。 第2実施形態に係る仲介サービスの動作例を説明する図。 第3実施形態に係る仲介サービスの動作例を説明する図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
<第1実施形態>
図1を参照して、第1実施形態に係る印刷システムの構成例について説明する。印刷システムは、例えば、情報処理装置110、120と、印刷装置130、140、150と、印刷サービス160、170、180と、仲介サービス190とを含む。印刷システムの各構成要素の個数は図1の例に限られない。また、印刷システムは、図1に示されていない構成要素を有していてもよい。
情報処理装置110及び印刷装置130は、ローカルエリアネットワーク(LAN)101に接続されており、LAN101を通じて広域ネットワーク100(例えば、インターネット)に接続されている。情報処理装置120及び印刷装置140、150は、LAN102に接続されており、LAN102を通じて広域ネットワーク100に接続されている。LAN101、102は、有線LANであってもよいし、無線LANであってもよいし、両者の組み合わせであってもよい。印刷サービス160、170、180及び仲介サービス190も広域ネットワーク100に接続されている。印刷システムの各構成要素は、広域ネットワーク100を通じて相互に通信可能であってもよい。
情報処理装置110は、アプリケーション111と、印刷制御部112と、通信制御部113とを有する。情報処理装置120も情報処理装置110と同様の構成を有していてもよいため、重複する説明を省略する。アプリケーション111は、情報処理装置110のユーザに印刷機能を提供する。アプリケーション111は、ユーザからの入力に従って、印刷制御部112に対して印刷を指示する。印刷制御部112は、情報処理装置110のオペレーティングシステム(OS)によって複数のアプリケーションに対して共通に提供される機能である。印刷制御部112は、通信制御部113を介して、印刷ジョブをLAN101へ送信する。印刷ジョブの最終的な送信先は、アプリケーション111によって指定された印刷装置である。アプリケーション111は、同一のLAN101に接続された印刷装置130を出力先として指定してもよいし、広域ネットワーク100を介して接続された印刷装置140、150を出力先として指定してもよい。印刷ジョブは、指示された印刷装置に直接に送信されてもよいし、後述するように印刷サービスに対して送信されてもよい。
印刷装置130、140、150はそれぞれ、印刷指示に応じて印刷を行う。印刷装置130、140、150は、すべて同じ機種であってもよいし、異なる機種であってもよい。印刷装置130は、印刷機能以外に、スキャナ機能とファクス機能との少なくとも一方を含んでもよい。このように複数の機能を有する印刷装置130は、複合機(MFP:multifunction printer)とも呼ばれうる。
印刷サービス160、170、180はそれぞれ、情報処理装置110によって生成された印刷ジョブに従って、印刷装置(例えば、印刷装置130)に印刷指示を送信する。以下、印刷サービス160について代表的に説明するが、別段の説明がない限り、印刷サービス170、180も同様の構成を有してもよい。印刷サービス160は、上述のように、情報処理装置に対して印刷サービスを提供する。例えば、情報処理装置120のユーザは、自身が所属している会社が契約している印刷サービス(例えば、印刷サービス160)を利用可能であってもよい。印刷サービス160は、仮想的な論理印刷装置161を提供する。論理印刷装置161は、情報処理装置(具体的に、印刷制御部112)から印刷装置として認識される。情報処理装置は、通常の印刷装置と同様に、論理印刷装置161についても印刷キューを生成できる。
情報処理装置120から印刷サービス160にログインしたユーザは、印刷装置140から印刷物を出力するために、印刷サービス160の論理印刷装置161に印刷物を送信することを指示してもよい。これに応じて、情報処理装置120は、論理印刷装置161を制御するための指示、印刷データ、設定コマンド等を印刷ジョブとして送信する。印刷サービス160は、情報処理装置120から受信した印刷ジョブに従って、印刷装置140に印刷を指示する。
印刷サービス160は、広域ネットワーク100に接続されたオンプレミスのサーバによって提供されてもよいし、クラウドコンピューティング(以下、単にクラウドと表す)を構成する複数のサーバによって提供されてもよい。クラウドによって提供される印刷サービスはクラウド印刷サービスと呼ばれてもよい。クラウド印刷サービスの一例として、Microsoft(登録商標)社の提供するUniversal Print(登録商標)がある。印刷サービス160、170、180は、互いに異なる印刷サービスを提供してもよい。
印刷サービス160、170、180は、一部の印刷装置のみに対応可能でありうる。印刷サービスが印刷装置に対応しているとは、印刷サービスが印刷装置に向けて印刷データを送信し、印刷を実行させることが可能であることであってもよい。図1の例で、印刷サービス160、170は、印刷装置140、150に対応しているが、印刷装置130に対応していないとする。また、印刷サービス180は、印刷装置130に対応しているが、印刷装置140、150に対応していないとする。このような場合に、印刷サービス160は印刷装置130へ印刷を行うことの印刷ジョブを受信したとしても、この印刷ジョブに応じて印刷装置130に印刷指示を行うことができない。
仲介サービス190は、2つの印刷サービス間の仲介を行う。具体的に、仲介サービス190は、情報処理装置から印刷ジョブを受信する印刷サービスからこの印刷ジョブを受信し、印刷装置へ印刷データを送信可能な別の印刷サービスへ印刷データを送信する。上述の例で、印刷サービス160が、情報処理装置110から、印刷装置130を出力先とした印刷ジョブを受信したとする。印刷サービス160は、このジョブを仲介サービス190へ送信する。仲介サービス190は、印刷装置130に対応している印刷サービス180に印刷ジョブを送信し、印刷装置130での印刷を行わせる。このように、仲介サービス190を利用することによって、情報処理装置110のユーザは、自身が契約している印刷サービス160に対して印刷ジョブを送信するだけで、所望の印刷装置130で印刷を実行できる。そのため、情報処理装置110のユーザが印刷データを社外に持ち出して漏洩するリスクが低減する。
仲介サービス190は、広域ネットワーク100に接続されたオンプレミスのサーバによって提供されてもよいし、クラウドを構成するサーバによって提供されてもよい。
以下の説明において、情報処理装置110から印刷ジョブを受信し、これを仲介サービス190に送信する印刷サービス(例えば、印刷サービス160)を上流印刷サービスと呼ぶ。また、仲介サービス190から印刷データを受信し、これを印刷装置に送信する印刷サービス(例えば、印刷サービス180)を下流印刷サービスと呼ぶ。1つの印刷サービスは、上流印刷サービスと下流印刷サービスとの両方として機能してもよい。例えば、印刷サービス180は、印刷装置130に対応し、印刷装置140に対応しない。そのため、印刷サービス180は、印刷装置130からの印刷を指示する印刷ジョブに対して下流印刷サービスとして機能し、印刷装置140からの印刷を指示する印刷ジョブに対して上流印刷サービスとして機能してもよい。
クラウドを構成する複数のサーバは、複数の地域に分散して配置される。情報処理装置のユーザは、自身の所在地域に応じて、印刷サービス160を提供するサーバの物理的な地域を選択してもよい。これに代えて、クラウドは、情報処理装置のユーザの所在地域に応じて、サービス(例えば、印刷サービス160)を提供するサーバを自動的に選択してもよい。
図2を参照して、図1の印刷システムで使用される装置のハードウェア構成例について説明する。図2(a)は、コンピュータ200の構成例について説明する。コンピュータ200は、図1の情報処理装置110、120として使用されてもよい。また、コンピュータ200は、印刷サービス160、170、180、仲介サービス190を提供するために使用されてもよい。印刷サービス160、170、180、仲介サービス190は、別個のコンピュータによって提供されてもよいし、同一のコンピュータによって提供されてもよい。クライアントに対してサービスを提供するコンピュータは、サーバと呼ばれてもよい。印刷サービスを提供するサーバは、印刷サーバと呼ばれてもよい。仲介サービスを提供するサーバは、仲介サーバと呼ばれてもよい。
コンピュータ200は、中央演算装置(CPU)201と、リードオンリメモリ(ROM)202と、ランダムアクセスメモリ(RAM)203と、表示装置204と、入力装置205と、外部記憶装置206と、インタフェース(I/F)装置207とを含む。コンピュータ200が情報処理装置110として使用される場合に、コンピュータ200は、デスクトップ型やノード型のパーソナルコンピュータ(PC)であってもよいし、タブレットやスマートフォンのような携帯装置であってもよい。
CPU201は、汎用プロセッサであり、コンピュータ200の各構成要素を制御する。例えば、CPU201は、ROM202に記憶されているプログラムに従って動作する。RAM203は、揮発性メモリであり、CPU201がプログラムを実行する際の作業領域を提供する。外部記憶装置206は、例えばハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)で構成され、不揮発にデータを記憶する。外部記憶装置206は、アプリケーションソフトウェアや様々な制御プログラムを記憶する。
表示装置204は、コンピュータ200のユーザに向けて情報(例えば、ユーザインタフェースの画面、メッセージなど)を表示するための装置である。表示装置204は、ドットマトリクス型ディスプレイや、インジケータなどによって構成される。入力装置205は、コンピュータ200のユーザから入力を受け取るための装置である。入力装置205は、例えばキーボード、マウス、タッチパネル、ボタンなどで構成される。I/F装置207は、コンピュータ200が外部のネットワークに接続するための装置である。I/F装置207は、有線接続を行う場合にネットワークカードによって構成され、無線接続を行う場合にベースバンドプロセッサ及びアンテナによって構成されてもよい。
印刷装置210は、CPU211と、ROM212と、RAM213と、表示装置214と、入力装置215と、印刷エンジン216と、I/F装置217とを含む。印刷装置210は、図1の印刷装置130、140、150の何れとして使用されてもよい。印刷装置210は、例えばインクジェットプリンタである。印刷装置210のCPU211、ROM212、RAM213、表示装置214、入力装置215、及びI/F装置217は、コンピュータ200の同じ名称の構成要素と同様であってもよいため、重複する説明を省略する。RAM203には、印刷エンジン216の動作に必要なプログラムや、情報処理装置から受信した設定値などを一時的に記憶する。
印刷エンジン216は、情報処理装置から受信した印刷データに基づいて記録媒体に印刷を行う。CPU211は、I/F装置217を通じて、情報処理装置から印刷データを受信し、情報処理装置へ印刷装置210の現在のステータス情報を送信する。ステータス情報とは、情報処理装置からの要求に応じて、印刷装置210が返却することのできる、印刷装置210の状態を表すステータスデータである。ステータスデータとは、「印刷中」、「待機状態」などの印刷装置210の動作の状態や、「用紙切れ」、「カバーが開いている」、「インク残量無し」などの印刷装置210のエラーの状態を知らせるための情報である。
図3を参照して、仲介サービス190の機能ブロック例について説明する。仲介サービス190は、印刷サービス管理部301と、仲介処理部302と、アクセス制御部303とを有する。
印刷サービス管理部301は、仲介サービス190を利用する印刷サービスに関する情報を管理する。例えば、印刷サービス管理部301は、仲介サービス190のユーザ(例えば、印刷サービス160の管理者)から、印刷サービスの登録指示を受け付け、この指示に従ってデータベースに印刷サービスの論理印刷装置を登録する。登録される印刷サービスは、上流印刷サービスであってもよいし、下流印刷サービスであってもよい。
また、印刷サービス管理部301は、ユーザからの指示に従って、上流印刷サービスと下流印刷サービスとを関連付ける。印刷サービス管理部301は、印刷サービスに関する情報を取得するために、ユーザが使用するウェブブラウザ操作画面を提供してもよい。
仲介処理部302は、仲介サービス190に関する処理を行う。具体的に、仲介処理部302は、上流印刷サービス(例えば、印刷サービス160)から印刷ジョブを受信し、この印刷ジョブを下流印刷サービス(例えば、印刷サービス180)が処理可能な形式に変換し、下流印刷サービスへ送信する。仲介処理部302は、プッシュ印刷とプル印刷との少なくとも一方を実行可能であってもよい。プッシュ印刷とは、印刷サービス160が情報処理装置110から印刷ジョブを受信したことに応じて、印刷ジョブの仲介が必要であることを印刷サービス160が仲介サービス190に通知する方式のことである。通知を受信した仲介サービス190は、印刷サービス160に、印刷ジョブに関する情報を要求する。プル印刷とは、印刷サービス160が、仲介サービス190からの問い合わせ(要求)に応じて、印刷ジョブに関する情報を仲介サービス190に送信する方式のことである。プル印刷は、一度に複数の印刷ジョブを処理するために実行されてもよい。
仲介処理部302は、印刷ジョブに関する情報をデータベースに格納する。印刷ジョブに関する情報は、例えば、印刷ジョブの印刷設定や印刷開始時刻(情報処理装置110が印刷を指示した時刻)を含む。印刷ジョブに関する情報は、印刷終了時や、保存期間が経過した後にデータベースから削除される。印刷ジョブの含まれる印刷データは、印刷データストレージに格納される。印刷データは、印刷終了時や、保存期間が経過した後に印刷データストレージから削除される。
アクセス制御部303は、印刷サービスへのアクセスを制御する。例えば、仲介処理部302によって行われる処理が印刷サービスへのアクセスを必要とする場合に、このアクセスを行ってもよいかを判定する。アクセス制御部303は、この判定を行うために、印刷サービスへの過去のアクセス状況を管理する(すなわち、アクセス管理を行う)。アクセス状況は、仲介サービス190が印刷サービスへ過去に行った時刻によって管理されてもよい。
また、アクセス制御部303は、印刷サービスへのアクセスに関する条件を管理する(すなわち、条件管理を行う)。アクセスに関する条件のことを、以下ではアクセス条件と呼ぶ。アクセス条件は、具体的に、アクセスの回数に関する条件であってもよく、例えば、単位時間当たり(例えば、1秒当たり)の印刷サービスへのアクセスの回数が上限(例えば、5回)を超えないことであってもよい。
図4を参照して、仲介サービス190のデータベースに格納されるテーブルの例について説明する。仲介サービス190のデータベースには、例えば、印刷装置情報テーブル400と、印刷ジョブ情報テーブル420と、アクセス情報テーブル440とが格納される。これ以外に、仲介サービス190の設定を管理するためのテーブルが格納されてもよい。
印刷装置情報テーブル400は、仲介サービス190によって仲介される上流論理印刷装置と下流論理印刷装置との組み合わせに関する情報を格納する。印刷装置情報テーブル400では、上流論理印刷装置と下流論理印刷装置との組み合わせごとにレコードが生成される。印刷サービス管理部301は、印刷装置情報テーブル400に、ユーザからの指示に応じたレコードを作成する。印刷装置情報テーブル400に格納された情報は、仲介サービス190が印刷ジョブの仲介を行う際に参照される。
印刷装置情報テーブル400の各レコードは、図4に示される複数のカラム401~408を有する。上流印刷装置ID401は、上流印刷サービスによって提供される論理印刷装置の識別情報を示す。上流印刷サービスID402は、上流印刷サービスの識別情報を示す。下流印刷装置ID403は、下流印刷サービスによって提供される論理印刷装置の識別情報を示す。下流印刷サービスID404は、下流印刷サービスの識別情報を示す。
テナント405は、印刷サービスを契約しているユーザが所属する会社又は団体を示す。印刷装置名406は、出力先の印刷装置(例えば、印刷装置130)に任意に対して設定された表示名称を示す。印刷装置モデル名407は、出力先の印刷装置の製品名を示す。アクセストークン408は、上流印刷サービスや下流印刷サービスにアクセスするための認証に使用されるトークンを示す。
印刷ジョブ情報テーブル420は、仲介サービス190によって仲介される印刷ジョブに関する情報を格納する。印刷ジョブ情報テーブル420では、仲介される印刷ジョブごとにレコードが生成される。仲介処理部302は、上流印刷サービスから印刷ジョブを受信することに、その印刷ジョブを表すレコードを印刷ジョブ情報テーブル420に作成する。仲介処理部302は、印刷ジョブによる印刷が完了したことに応じて、印刷ジョブ情報テーブル420から対応するレコードを削除する。
印刷ジョブ情報テーブル420の各レコードは、図4に示される複数のカラム421~432を有する。印刷ジョブID421は、印刷ジョブの識別情報を示す。カラム422~426は、カラム401~405と同様であるため、重複する説明を省略する。ユーザ427は、印刷を実行したユーザを表す。印刷ジョブ名428は、印刷ジョブの名称を表す。印刷ジョブステータス429は、印刷ジョブのステータスを表す。印刷データID430は、上流印刷サービスが印刷データを管理するための識別情報を表す。印刷設定431は、印刷ジョブに対する印刷設定を表す。例えば、印刷設定431は、印刷ファイル名、ファイル形式、ファイルサイズ、用紙サイズ、用紙種類、カラー設定、印刷開始時刻、印刷を指示したユーザの所在地域などを含んでもよい。印刷データアドレス432は、仲介サービス190が使用する印刷データストレージ内の印刷データのアドレス(例えば、ユニフォームリソースロケータ(URL))を示す。
アクセス情報テーブル440は、仲介サービス190による印刷サービスへのアクセスに関する情報を格納する。アクセス情報テーブル440では、仲介サービス190に登録されている印刷サービスごとにレコードが生成される。図1の印刷システムの例で、仲介サービス190に印刷サービス160、170、180が登録されている場合に、アクセス情報テーブル440は、印刷サービス160、170、180のそれぞれについてレコードを有する。アクセス制御部303は、仲介サービス190に印刷サービスが登録されるごとに、アクセス情報テーブル440にレコードを生成する。
アクセス情報テーブル440の各レコードは、図4に示される複数のカラム441~444を有する。印刷サービスID441は、印刷サービスの識別情報を示す。アクセス条件442は、印刷サービスへのアクセスに関する条件(上述のアクセス条件)を示す。アクセス待機リスト443は、印刷サービスへのアクセスを待機している処理のリストを示す。アクセス待機リスト443は、キューによって実現されてもよい。アクセス状況444は、印刷サービスへの過去のアクセス状況を示す。例えば、アクセス状況444は、印刷サービスに対してアクセスを過去に行った時刻を示す。
アクセス条件442は、印刷サービスごとに異なってもよい。例えば、印刷サービス160についてのアクセス条件は、単位時間当たり(例えば、1秒間)のアクセス回数が5回以下であることであってもよい。印刷サービス180についてのアクセス条件は、所定の時間(例えば、1秒間)におけるアクセス回数が10回以下であることであってもよい。
図5を参照して、図1に示される印刷システムの動作例について説明する。図5では、情報処理装置110が印刷装置130を指定して印刷を指示し、印刷サービス160が上流印刷サービスであり、印刷サービス180が下流印刷サービスである例について説明する。また、図5では、情報処理装置110が仲介サービス190に対してプル印刷を指示する例について説明する。図5の動作は、情報処理装置110がユーザから印刷指示を受けたことに応じて開始される。図5の動作の開始時点で、情報処理装置110が印刷サービス160(具体的に、その論理印刷装置161)に対して印刷ジョブを投入可能な状態になっているとする。また、図5の動作の開始時点で、印刷サービス160と印刷サービス180とが関連付けられているとする。図5における仲介サービス190による動作は、仲介処理部302によって行われる。以下では、印刷サービス160への論理印刷装置11への印刷ジョブの送信を単に印刷サービス160への印刷ジョブの送信と表す。
S501で、情報処理装置110は、印刷サービス160へ複数の印刷ジョブを送信する。S502で、情報処理装置110は、仲介サービス190へ、印刷サービス160へのプル印刷の指示を送信する。S503で、仲介サービス190は、印刷サービス160に対して、印刷ジョブのリストを要求する。S504で、印刷サービス160は、その論理印刷装置161が保持している印刷ジョブのリストを仲介サービス190へ送信する。リストに記載される印刷ジョブの情報は、印刷ジョブの一部の情報のみ、例えば印刷ジョブID421及び印刷データID430のみであってもよい。
S505で、仲介サービス190は、受信されたリストに記載された印刷ジョブに対応するレコードを印刷ジョブ情報テーブル420に作成する。複数の印刷ジョブに関する情報がリストに含まれている場合に、仲介サービス190は、複数の印刷ジョブのそれぞれについて後続の処理を並列に実行してもよい。
S506で、仲介サービス190は、印刷サービス160に、処理中の印刷ジョブの詳細を要求する。S507で、印刷サービス160は、この要求に応答して、印刷ジョブの詳細を仲介サービス190へ送信する。印刷ジョブの詳細には、印刷ジョブ名428、印刷ジョブステータス429、印刷設定431のような、S504で受信されなかった情報が含まれる。S508で、仲介サービス190は、受信した印刷ジョブの詳細を含めるように、処理中の印刷ジョブに対応する印刷ジョブ情報テーブル420のレコードを更新する。
S509で、仲介サービス190は、下流印刷サービス(すなわち、印刷サービス180)が処理可能な形式に、処理中の印刷ジョブを変換する。S510で、仲介サービス190は、印刷サービス160に、処理中の印刷ジョブに関する印刷データを要求する。S511で、印刷サービス160は、この要求に応答して、印刷データを仲介サービス190へ送信する。印刷データのデータ量が大きいほど、印刷データの受信に時間を要する。印刷データの受信が終了すると、S512で、仲介サービス190は、印刷データストレージに格納した印刷データのアドレスを含めるように、処理中の印刷ジョブに対応する印刷ジョブ情報テーブル420のレコードを更新する。
S513で、仲介サービス190は、印刷サービス180へ、処理中の印刷ジョブに関する印刷指示を送信する。この印刷指示には、印刷データアドレス432と、S509で変換された印刷ジョブの詳細情報が含まれる。S514で、印刷サービス180は、この印刷指示に応答して、仲介サービス190に、印刷データを要求する。印刷サービス180は、宛先アドレスとして、印刷指示に含まれる印刷データアドレス432を使用する。S515で、仲介サービス190は、この要求に応答して、印刷サービス180に、印刷データを送信する。
S516で、印刷サービス180は、印刷装置130へ、処理中の印刷ジョブに関する印刷データを送信する。印刷データには、印刷コマンドが含まれる。S517で、印刷装置130は、受信した印刷データを印刷する。S518で、印刷装置130は、印刷が完了したことに応じて、印刷完了を印刷サービス180に通知する。S519で、印刷サービス180は、印刷完了の通知を受信したことに応じて、仲介サービス190に、印刷完了を通知する。S520で、仲介サービス190は、印刷完了の通知を受信したことに応じて、印刷サービス160に、印刷完了を通知する。この通知後に、仲介サービス190は、印刷ジョブ情報テーブル420から、処理中の印刷ジョブに対応するレコードを削除する。S521で、印刷サービス160は、印刷完了の通知を受信したことに応じて、情報処理装置110に、印刷完了を通知する。
図6を参照して、仲介サービス190を提供するためにコンピュータ200によって実行される制御方法の例について説明する。この方法は、仲介サービス190のアクセス制御部303によって実行される。アクセス制御部303による動作は、メモリ(例えば、RAM203)に読み出されたプログラムをCPU201が実行することによって行われてもよい。図6の方法は、仲介サービス190が処理を実行しようとするごとに開始される。例えば、仲介サービス190は、図5のS503、S505、S506、S508、S509、S512、S513、S515、S520の処理を実行しようとするごとに図6の方法を開始してもよい。
S601で、仲介サービス190は、実行すべき処理が、印刷サービスへのアクセスを必要とするかどうかを判定する。仲介サービス190は、印刷サービスへのアクセスを必要とすると判定された場合(S601で「YES」)に処理をS602に遷移し、それ以外の場合(S601で「NO」)に処理とS603に遷移する。例えば、図5の例では、S503、S506、S513、S515、S520の処理は、印刷サービスへのアクセスを必要とし、S505、S508、S509、S512の処理は、印刷サービスへのアクセスを必要としない。
印刷サービスへのアクセスを必要としないと判定された場合に、S603で、仲介サービス190は、実行すべき処理を実行する。この処理では、印刷サービスへのアクセスは行われない。印刷サービスへのアクセスを必要とすると判定された場合に、S602で、仲介サービス190は、アクセスすべき印刷サービスを特定する。例えば、図5の例では、S503、S506、S520の処理について、印刷サービス160へアクセスすべきであることが特定され、S513、S515の処理について、印刷サービス180へアクセスすべきであることが特定される。
S604で、仲介サービス190は、特定された印刷サービスに対応するアクセス情報テーブル440のレコード内のアクセス待機リスト443の末尾に、実行すべき処理を追加する。
図7を参照して、仲介サービス190を提供するためにコンピュータ200によって実行される制御方法の例について説明する。この方法は、仲介サービス190のアクセス制御部303によって実行される。アクセス制御部303による動作は、メモリ(例えば、RAM203)に読み出されたプログラムをCPU201が実行することによって行われてもよい。図7の方法は、アクセス待機リスト443が空でない場合に開始される。仲介サービス190は、図7の方法を、アクセス情報テーブル440のレコードごとに並列に実行してもよい。言い換えると、仲介サービス190は、図7の方法を、印刷サービスごとに並列に実行してもよい。図5の例で、仲介サービス190は、印刷サービス160と印刷サービス180とのそれぞれに対して、図7の方法を実行する。
S701で、仲介サービス190は、アクセス待機リスト443の先頭の処理を選択する。S702で、仲介サービス190は、アクセス状況444に基づいて、印刷サービスへの過去のアクセス状況を取得する。
S703で、仲介サービス190は、過去のアクセス状況に基づいて、印刷サービスに新たにアクセスすることによって、アクセス条件を満たさなくなるかどうかを判定する。上述のように、印刷サービスへのアクセス条件は、アクセス条件442で管理されている。仲介サービス190は、アクセス条件を満たさなくなると判定された場合(S703で「YES」)に、処理をS706に遷移し、それ以外の場合(S703で「NO」)に、処理をS704に遷移する。
アクセス条件が、単位時間当たりのアクセス回数の上限を規定する場合に、現在時刻から単位時間前までの期間のアクセス回数が上限に到達していれば、新たなアクセスによってアクセス条件を満たさなくなると判定される。一方、この例で、現在時刻から単位時間前までの期間のアクセス回数が上限に到達していなければ、新たなアクセスを行ってもアクセス条件を満たすと判定される。
アクセス条件を満たさなくならないと判定された場合に、S704で、仲介サービス190は、アクセス状況444を更新する。具体的に、仲介サービス190は、S704を実行する時刻(現在時刻)をアクセス状況444に記録する。その後、S705で、仲介サービス190は、印刷サービスにアクセスすることによって、選択中の処理を実行する。例えば、選択中の処理が図5のS503の処理の場合に、仲介サービス190は、印刷サービス160へジョブ一覧を要求する。このように、アクセス状況444には、印刷サービスへのアクセスが行われるごとに、その時刻が記録される。
アクセス条件を満たさなくなると判定された場合に、S706で、仲介サービス190は、選択中の処理の実行を待機するためにタイマーを開始する。この時点で、印刷サービスへの新たなアクセスは行われない。タイマーの値は、選択中の処理の実行を待機する待機時間を規定する。一部の実施形態では、このタイマーの値は、選択中の処理によらず、同一の値(例えば、100ミリ秒)であってもよい。タイマーの値は事前に決定され、例えばROM202に記憶されていてもよい。
S707で、仲介サービス190は、S703の判定結果によらず、選択中の処理をアクセス待機リスト443から削除する。S703でNOと判定された場合には、S705で選択中の処理を実行したため、この処理をアクセス待機リスト443に残しておく必要はない。一方、S703でYESと判定された場合に実行されなかった処理は、アクセス待機リスト443ではなく、後述するように、タイマーによって再試行のタイミングが制御される。
S708で、仲介サービス190は、タイマーが満了した処理があるかどうかを判定する。仲介サービス190は、タイマーが満了した処理があると判定された場合(S708で「YES」)に、処理をS709に遷移し、それ以外の場合(S708で「NO」)に、処理をS710に遷移する。
S709で、仲介サービス190は、タイマーが満了した処理を選択して、S702以降の処理を繰り返す。これによって、タイマーが満了した処理が選択中の処理となる。仲介サービス190は、この個別の処理について印刷サービスへのアクセスを再び試みる。
S710で、仲介サービス190は、アクセス待機リスト443に処理が含まれているかどうかを判定する。仲介サービス190は、アクセス待機リスト443に処理が含まれていると判定された場合(S710で「YES」)に、処理をS701に遷移し、それ以外の場合(S710で「NO」)に、処理をS708に遷移する。アクセス待機リスト443に処理が含まれていると判定された場合に、アクセス待機リスト443の先頭の処理が選択され、S701以降の処理が繰り返させる。アクセス待機リスト443に処理が含まれていないと判定された場合に、タイマーを満了した処理があるかどうかが判定される。
上述の方法によれば、印刷サービスに新たなアクセスを行うことによってアクセス条件を満たさなくなる場合に、仲介サービス190は、印刷サービスに対してアクセスを行わない。そのため、印刷サービスに対して負荷が集中することを抑制でき、また、印刷サービスのファイアウォールによって仲介サービス190から印刷サービスへのアクセスが遮断されてしまうことを抑制できる。
上述の方法によれば、S707で選択中の処理がアクセス待機リスト443から削除された後、タイマーが満了した処理が、アクセス待機リスト443の先頭の処理よりも先に選択される。そのため、アクセス待機リスト443が空でなくても、個別の処理についてのアクセスの再試行が実行される。
上述の方法では、タイマーが満了した場合に、個別の処理についてのアクセスを再試行した。これに代えて、S703で印刷サービスに新たにアクセスすることによって、アクセス条件を満たさなくなると判定された場合に、選択中の処理をアクセス待機リスト443の末尾に戻してもよい。この方法では、タイマーに関するS708及びS709が省略される。
上述の実施形態では、上流印刷サービスと下流印刷サービスとが、仲介サービス190によって仲介される。これに代えて、上流印刷サービスから下流印刷サービスへ直接に(すなわち、仲介サービス190を介さずに)印刷ジョブを送信してもよい。この場合に、上流印刷サービスは、下流印刷サービスへアクセスするために、上述の図6及び図7の動作を行ってもよい。また、下流印刷サービスは、上流印刷サービスへアクセスするために、上述の図6及び図7の動作を行ってもよい。
仲介サービス190は、複数の上流印刷サービス(例えば、印刷サービス160、170)のそれぞれからの印刷ジョブを受信し、これに応じた印刷データを1つの下流印刷サービス(例えば、印刷サービス180)へ送信してもよい。この場合に、仲介サービス190は、複数の上流印刷サービスのそれぞれについて、個別の印刷サービスへの過去のアクセス状況と、個別の印刷サービスへのアクセスに関する条件とを管理してもよい。この場合に、仲介サービス190は、複数の上流印刷サービスのそれぞれについて、上述の図6及び図7の動作を行ってもよい。
<第2実施形態>
図8を参照して、第2実施形態について説明する。以下では第1実施形態との相違点について主に説明し、第1実施形態と同様であってもよい点については重複する説明を省略する。
第1実施形態では、図7のS706で、選択中の処理によらず、同一の値を待機時間に設定した。第2実施形態では、選択中の処理の優先度に基づいて、選択中の処理についての待機時間(すなわち、タイマーの値)を決定する。具体的に、仲介サービス190は、個別の処理の優先度を3段階(例えば、高・中・低)で評価し、優先度が高レベルの処理ほど、待機時間を短くしてもよい。例えば、仲介サービス190は、優先度が高レベルの処理についての待機時間を一番短い100ミリ秒としてもよい。仲介サービス190は、優先度が中レベルの処理についての待機時間を2番目に短い200ミリ秒としてもよい。仲介サービス190は、優先度が低レベルの処理についての待機時間を一番長い500ミリ秒としてもよい。この例で個別の処理は3段階の優先度を有するが、優先度は2段階や、4段階以上であってもよい。このように処理の優先度に基づいて待機時間を決定することによって、優先度が高い処理ほど頻繁にアクセスの再試行が行われることになり、先に実行される可能性が高くなる。
図8を参照して、第2実施形態における仲介サービス190を提供するためにコンピュータ200によって実行される制御方法の例について説明する。この方法は、仲介サービス190のアクセス制御部303によって実行される。アクセス制御部303による動作は、メモリ(例えば、RAM203)に読み出されたプログラムをCPU201が実行することによって行われてもよい。図8の方法は、図7の方法と比較して、S703でYESと判定された場合に、S706を実行する前に、S801を実行する点で異なり、他の点は同様であってもよい。そのため、図8では、図7と重複する動作のブロックの一部を省略する。
S801で、仲介サービス190は、選択中の処理について、タイマーの値を決定する。図8の例では、選択中の処理を行うために印刷サービスにアクセスすることによってアクセス条件が満たされなくなると判定された後に、選択中の処理についての待機時間を決定する。このように、待機時間の使用することが確定した時点で待機時間を決定することによって、決定された待機時間が使用されなくなることを回避できる。
以下、個別の処理の優先度を決定するための具体的な方法について説明する。図5のS510で、仲介サービス190が印刷サービス160に要求した印刷データの受信に要する時間は、様々な要因によって異なりうる。そこで、仲介サービス190は、印刷データの受信に要する時間を見積もり、この見積時間に基づいて個別の処理の優先度を決定してもよい。すなわち、仲介サービス190は、印刷サービス160からの印刷データの受信処理について、印刷データの受信に要する見積時間に基づいて、当該処理についての待機時間を決定する。仲介サービス190は、印刷データの受信に要する見積時間が長い印刷ジョブに関する処理ほど高い優先度を設定してもよい。
仲介サービス190は、印刷ジョブ情報テーブル420の印刷設定431(例えば、これに含まれるファイル形式、ファイルサイズ、ユーザの所在地域)に基づいて受信に要する時間を見積もってもよい。ファイル形式、ファイルサイズのような印刷データ量が大きいほど、受信に要する時間は長くなる。また、印刷サービス160がクラウドによって提供される場合に、ユーザの所在地域に近いサーバが印刷サービス160を提供する。そのため、ユーザの所在地域が、仲介サービス190を提供するサーバの所在地から遠い場合に、印刷サービス160を提供するサーバから、仲介サービス190を提供するサーバの所在地も遠くなる傾向にある。これらのサーバの距離が離れると、受信に要する時間は長くなりやすい。
複数の印刷ジョブについての図5のS510の処理(印刷データの要求)がアクセス待機リスト443に含まれており、これらの処理が実行できなかったとする。この場合に、印刷データの受信の見積時間が長い印刷ジョブほど、待機時間が短いため、先に実行される可能性が高い。そのため、複数の印刷ジョブに関する印刷完了時刻のばらつきを抑制でき、ユーザの操作性が向上する。
続いて、個別の処理の優先度を決定するための具体的な別の方法について説明する。仲介サービス190は、個別の処理の種類に基づいて個別の処理の優先度を決定してもよい。以下、印刷サービス160へのアクセスについて検討する。例えば、図5のS506、S510の処理は、印刷ジョブに関連して印刷の実行前に行われる。そのため、この処理が遅延するほど、印刷の完了時刻も遅くなる。一方、図5のS520の処理は、印刷ジョブに関連して印刷の実行後に行われる。そのため、この処理が遅延しても、印刷の完了時刻に影響しない。そこで、仲介サービス190は、印刷ジョブに関連して印刷の実行前に行われる処理に対して高い優先度を設定し、当該処理についての待機時間を、印刷ジョブに関連して印刷の実行前に行われる処理についての遅延時間よりも短くしてもよい。
また、仲介サービス190は、印刷ジョブに関連せず、印刷サービス160へのアクセスを行う処理(例えば、印刷サービス160の登録に関する処理)を実行する場合もある。このような処理も印刷時間に影響を与えないため、仲介サービス190は、このような処理を、印刷ジョブに関連して印刷の実行前に行われる処理よりも低い優先度に設定してもよい。したがって、仲介サービス190は、印刷ジョブに関連して印刷の実行前に行われる処理についての待機時間を、印刷ジョブに関連しない処理についての待機時間よりも短くしてもよい。
以上のように、印刷ジョブに関連して印刷の実行前に行われる処理についての待機時間を短くすることによって、この処理が早く再試行されるようになるため、印刷実行までの時間が短縮されうる。
上述の実施形態では、優先度が低い処理の待機時間が他の処理の待機時間に比べて長いため、優先度が低い処理についてのアクセスが何度も行われない可能性がある。そこで、仲介サービス190は、個別の処理を行うためのアクセスが、閾値時間(例えば、5秒間)又は閾値回数(例えば、10回)行われなかった場合に、この個別の処理について待機時間を短くしてもよい。例えば、仲介サービス190は、処理の優先度を低レベルから中レベルに上げてもよいし、処理の優先度を中レベルから高レベルに上げてもよい。これによって、連続してアクセスが行われなかった処理が実行されやすくなる。
上述の方法では、選択中の処理を行うために印刷サービスにアクセスすることによってアクセス条件が満たされなくなると判定された後に、選択中の処理についての待機時間を決定する。これに代えて、仲介サービス190は、他のタイミングで個別の処理について待機時間を決定してもよい。例えば、仲介サービス190は、例えば、アクセス待機リスト443に処理が追加された時点で当該処理について待機時間を決定し、メモリに記憶してもよい。これに代えて、仲介サービス190は、印刷サービスがサービスダウンやメンテナンスから復帰した場合に、アクセス待機リスト443内の各処理について待機時間を決定してもよい。また、仲介サービス190は、一定間隔で定期的に、アクセス待機リスト443内の各処理について待機時間を決定してもよい。
<第3実施形態>
図9を参照して、第3実施形態について説明する。第3実施形態において、仲介サービス190は、第1実施形態又は第2実施形態に追加して、図9の動作を実行する。図8の方法は、仲介サービス190のアクセス制御部303によって実行される。アクセス制御部303による動作は、メモリ(例えば、RAM203)に読み出されたプログラムをCPU201が実行することによって行われてもよい。仲介サービス190は、一定間隔で定期的に、図9の動作を開始してもよい。
S901で、仲介サービス190は、アクセス待機リスト443にアクセスを待機中の複数の処理が存在するかどうかを判定する。仲介サービス190は、複数の処理が存在すると判定された場合(S901で「YES」)に、処理をS902に遷移し、それ以外の場合(S901で「NO」)に、処理を終了する。
S902で、仲介サービス190は、過去のアクセス状況を取得する。S903で、仲介サービス190は、過去のアクセス状況に基づいて、印刷サービスへのアクセスに関する安全条件を満たすかどうかを判定する。仲介サービス190は、安全条件を満たさないと判定された場合(S903で「NO」)に、処理をS904に遷移し、それ以外の場合(S903で「YES」)に、処理を終了する。
安全条件とは、上述のアクセス条件が満たされなくなる可能性が低い状態であることを判定するための条件である。例えば、安全条件は、上述のアクセス条件の必要条件であるが、十分条件でない条件であってもよい。この場合に、安全条件が満たされれば、アクセス条件を満たす。
例えば、アクセス条件が、単位時間当たり(例えば、1秒当たり)の印刷サービスへのアクセスの回数が上限(例えば、5回)を超えないことであるとする。この場合に、安全条件は、単位時間当たり(例えば、1秒当たり)の印刷サービスへのアクセスの回数が上記の上限よりも低い上限(例えば、3回)を超えないことであってもよい。安全条件の上限は、アクセス条件の上限に対する比率(例えば、80%)で規定されてもよいし、アクセス条件の上限に対する差分(例えば、2回を引いた値)で規定されてもよい。安全条件は、印刷サービスごとに異なっていてもよい。
安全条件を満たさない場合に、もうすぐアクセス条件を満たさなくなる可能性がある。そこで、S904で、仲介サービス190は、アクセス待機リスト443内の個別の処理の優先度に基づいて、アクセス待機リスト443内の複数の処理の順序を並び替える。個別の処理の優先度の決定方法は、第2実施形態と同様であってもよい。例えば、仲介サービス190は、優先度が高い処理ほどアクセス待機リスト443の先頭に近くなるように並び替える。仲介サービス190は、優先度が同じ処理について、元の順序を維持してもよい。このように並び替えることによって、優先度が高い処理が先に図7のS701で選択されることになる。そのため、複数の処理のうち優先度が高い処理について先に印刷サービスへアクセスすることになる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
110 情報処理装置、130 印刷装置、160 印刷サービス、180 印刷サービス、190 仲介サービス

Claims (13)

  1. 情報処理装置から印刷ジョブを受信する印刷サービスから前記印刷ジョブを受信するサーバであって、
    前記印刷サービスにアクセスするアクセス手段と、
    前記印刷サービスへのアクセスに関する条件を管理する条件管理手段と、
    前記印刷サービスへの過去のアクセス状況を管理するアクセス管理手段と、
    前記過去のアクセス状況に基づいて、前記印刷サービスに新たにアクセスすることによって前記条件が満たされなくなるかどうかを判定する判定手段と、を備え、
    前記アクセス手段は、前記条件が満たされなくなると判定された場合に、前記印刷サービスへの新たなアクセスを行わないことを特徴とするサーバ。
  2. 前記アクセス手段は、前記条件が満たされなくなることによって個別の処理について前記印刷サービスへのアクセスを行わなかった場合に、前記個別の処理についての待機時間が経過した後に、前記個別の処理について前記印刷サービスへのアクセスを再び試みることを特徴とする請求項1に記載のサーバ。
  3. 前記アクセス手段は、前記個別の処理の優先度に基づいて、前記待機時間の長さを決定することを特徴とすることを特徴とする請求項2に記載のサーバ。
  4. 前記アクセス手段は、前記個別の処理が前記印刷サービスからの印刷データの受信である場合に、前記印刷データの受信に要する見積時間に基づいて、前記待機時間を決定することを特徴とする請求項2又は3に記載のサーバ。
  5. 前記アクセス手段は、印刷ジョブに関連して印刷の実行前に行われる処理についての前記待機時間を、印刷ジョブに関連して印刷の実行後に行われる処理についての前記待機時間よりも短くすることを特徴とする請求項2乃至4の何れか1項に記載のサーバ。
  6. 前記アクセス手段は、印刷ジョブに関連して印刷の実行前に行われる処理についての前記待機時間を、印刷ジョブに関連しない処理についての前記待機時間よりも短くすることを特徴とする請求項2乃至5の何れか1項に記載のサーバ。
  7. 前記アクセス手段は、個別の処理を行うために前記印刷サービスにアクセスすることによって前記条件が満たされなくなると判定された後に、前記個別の処理についての前記待機時間を決定することを特徴とする請求項2乃至6の何れか1項に記載のサーバ。
  8. 前記アクセス手段は、個別の処理を行うためのアクセスが、閾値時間又は閾値回数、行われなかった場合に、前記個別の処理について前記待機時間を短くすることを特徴とする請求項2乃至7の何れか1項に記載のサーバ。
  9. 前記サーバは、前記印刷サービスを含む複数の印刷サービスのそれぞれから印刷ジョブを受信し、
    前記条件管理手段は、前記複数の印刷サービスのそれぞれについて、個別の印刷サービスへの過去のアクセス状況を管理し、
    前記アクセス管理手段は、前記複数の印刷サービスのそれぞれについて、個別の印刷サービスへのアクセスに関する条件を管理することを特徴とする請求項1乃至8の何れか1項に記載のサーバ。
  10. 前記アクセス手段は、前記印刷サービスへのアクセスを待機中の複数の処理が存在し、前記印刷サービスへのアクセスに関する第2条件を満たさない場合に、前記複数の処理のうち優先度が高い処理について先に前記印刷サービスへアクセスすることを特徴とする請求項1乃至9の何れか1項に記載のサーバ。
  11. 前記条件は、単位時間当たりの前記印刷サービスへのアクセス回数が上限を超えないことを含むことを特徴とする、請求項1乃至10の何れか1項に記載のサーバ。
  12. コンピュータを、請求項1乃至11の何れか1項に記載のサーバの各手段として機能させるためのプログラム。
  13. 情報処理装置から印刷ジョブを受信する印刷サービスから前記印刷ジョブを受信するサーバの制御方法であって、
    アクセス手段が、前記印刷サービスにアクセスするアクセス工程と、
    条件管理手段が、前記印刷サービスへのアクセスに関する条件を管理する条件管理工程と、
    アクセス管理手段が、前記印刷サービスへの過去のアクセス状況を管理するアクセス管理工程と、
    判定手段が、前記過去のアクセス状況に基づいて、前記印刷サービスに新たにアクセスすることによって前記条件が満たされなくなるかどうかを判定する判定工程と、を有し、
    前記アクセス工程において、前記条件が満たされなくなると判定された場合に、前記印刷サービスへの新たなアクセスを行わないことを特徴とする制御方法。
JP2022028380A 2022-02-25 2022-02-25 サーバ、その制御方法及びプログラム Pending JP2023124559A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022028380A JP2023124559A (ja) 2022-02-25 2022-02-25 サーバ、その制御方法及びプログラム
US18/103,586 US20230273757A1 (en) 2022-02-25 2023-01-31 Server, control method therefor, and non-transitory storage medium
KR1020230020480A KR20230127897A (ko) 2022-02-25 2023-02-16 서버, 그 제어 방법, 및 컴퓨터 프로그램
CN202310159837.XA CN116661710A (zh) 2022-02-25 2023-02-23 服务器、其控制方法以及非暂时性存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022028380A JP2023124559A (ja) 2022-02-25 2022-02-25 サーバ、その制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2023124559A true JP2023124559A (ja) 2023-09-06

Family

ID=87726741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022028380A Pending JP2023124559A (ja) 2022-02-25 2022-02-25 サーバ、その制御方法及びプログラム

Country Status (4)

Country Link
US (1) US20230273757A1 (ja)
JP (1) JP2023124559A (ja)
KR (1) KR20230127897A (ja)
CN (1) CN116661710A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8199348B2 (en) * 2008-11-03 2012-06-12 Sharp Laboratories Of America, Inc. Methods and systems for handling files for MFPS utilizing external services
JP7130929B2 (ja) * 2017-09-11 2022-09-06 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法
JP7081099B2 (ja) * 2017-09-11 2022-06-07 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法

Also Published As

Publication number Publication date
CN116661710A (zh) 2023-08-29
US20230273757A1 (en) 2023-08-31
KR20230127897A (ko) 2023-09-01

Similar Documents

Publication Publication Date Title
US8355151B2 (en) Image processing apparatus and method for controlling provisional reservation
US8908220B2 (en) Information processing system, print system, and method and computer-readable storage medium for controlling information processing system
US8570574B2 (en) Processing system, control method, and storage medium therefor
JP6315450B2 (ja) セキュリティ要件に応じて印刷を行うシステム、コンピュータおよびプログラム
US10802779B2 (en) Print processing system and method having print server converts document data into print data and to store the print data into plural storage servers for printing at image processing apparatus
US9798504B2 (en) Image forming apparatus, control method, and storage medium
JP6771991B2 (ja) 印刷装置、印刷装置の制御方法、及びプログラム
JP6179083B2 (ja) 情報処理装置、出力システム及びプログラム
JP7175618B2 (ja) 印刷システム、印刷装置とその制御方法、及びプログラム
JP2011191945A (ja) プルプリントシステム、サーバ装置及び印刷ジョブ管理方法
JP6634744B2 (ja) 情報処理システム、情報処理装置、機器、情報処理方法、プログラム
US9026576B2 (en) Image processing device, job processing method, and program
US20220350553A1 (en) Server system
US7982901B2 (en) Image processing apparatus, method for managing storage area, and computer program product
US9405490B2 (en) Electronic apparatus, management server, print system and method of controlling printing including determining a plurality of storages to store print data
JP6331686B2 (ja) 情報処理システム、情報処理方法、及びプログラム
JP2023124559A (ja) サーバ、その制御方法及びプログラム
JP2023124560A (ja) サーバ、その制御方法及びプログラム
JP6488794B2 (ja) 画像形成装置及びプログラム
JP2004094311A (ja) 通知方法、情報処理装置及び制御プログラム
JP6127586B2 (ja) 情報処理システムおよび情報処理方法
JP2013020342A (ja) 画像形成システム、出力管理方法およびプログラム
US9723176B2 (en) Image processing apparatus, method and non-transitory computer readable medium for transferring a duplicate of a document to another image processing apparatus within an image processing apparatus group
JP7500206B2 (ja) 情報処理装置
US11481171B2 (en) Image forming system, server, control method for image forming system, control method for server, and storage medium