KR20230127897A - 서버, 그 제어 방법, 및 컴퓨터 프로그램 - Google Patents

서버, 그 제어 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230127897A
KR20230127897A KR1020230020480A KR20230020480A KR20230127897A KR 20230127897 A KR20230127897 A KR 20230127897A KR 1020230020480 A KR1020230020480 A KR 1020230020480A KR 20230020480 A KR20230020480 A KR 20230020480A KR 20230127897 A KR20230127897 A KR 20230127897A
Authority
KR
South Korea
Prior art keywords
print
access
service
print service
condition
Prior art date
Application number
KR1020230020480A
Other languages
English (en)
Inventor
유키야스 이와사키
Original Assignee
캐논 가부시끼가이샤
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 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20230127897A publication Critical patent/KR20230127897A/ko

Links

Images

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

정보 처리 장치로부터 인쇄 작업을 수신한 인쇄 서비스로부터 인쇄 작업을 수신하는 서버가 제공된다. 이러한 서버는, 인쇄 서비스에 액세스하도록 구성되는 액세스 유닛, 인쇄 서비스에 대한 액세스에 관한 조건을 관리하도록 구성되는 조건 관리 유닛, 인쇄 서비스에 대한 과거 액세스의 상태를 관리하도록 구성되는 액세스 관리 유닛, 및, 과거 액세스의 상태에 기초하여, 인쇄 서비스에 새롭게 액세스하는 것에 의해 조건이 충족되지 않는지를 결정하도록 구성되는 결정 유닛을 포함한다. 조건이 충족되지 않는다고 결정되는 경우, 액세스 유닛은 인쇄 서비스에 새롭게 액세스하지 않는다.

Description

서버, 그 제어 방법, 및 컴퓨터 프로그램{SERVER, CONTROL METHOD THEREFOR, AND COMPUTER PROGRAM}
본 발명은 서버, 그 제어 방법, 및 컴퓨터 프로그램에 관련된다.
정보 처리 장치가 클라우드 상에 형성되는 인쇄 서비스에 대해 인쇄를 요청하고 인쇄 서비스와 연관된 인쇄 장치가 인쇄를 실행하는 기술이 알려져 있다. 정보 처리 장치로부터 사용가능한 인쇄 서비스가 원하는 인쇄 장치를 지원하지 않더라도 인쇄를 실행하는 것을 가능하게 하기 위해, 인쇄 서비스와 인쇄 장치 사이의 중개 서비스 또한 고려되었다. 일본 특허 제4472944호는 웹 서버에 송신되는 요청들에 의사 요청들을 추가하는 것에 의해 요청들에 의한 웹 서버에 대한 부하를 조정하는 기술을 설명한다. 인쇄 서비스를 사용하는 시스템의 규모가 더 클수록, 단위 시간 당 인쇄 서비스에 대한 액세스들의 횟수가 증가한다. 이러한 것은 인쇄 서비스에 대한 부하를 증가시킨다. 또한, 단위 시간 당 인쇄 서비스에 대한 액세스의 횟수가 증가하면, 액세스는 DoS(Denial of Service) 공격과 같은 인가되지 않은 액세스로서 간주될 수 있고, 그렇게 함으로써 인쇄 서비스에 대한 액세스를 중단시킨다.
본 발명의 일부 양태들은 인쇄 서비스에 적절하게 액세스하기 위한 기술을 제공한다. 실시예에 따르면, 정보 처리 장치로부터 인쇄 작업을 수신한 인쇄 서비스로부터 인쇄 작업을 수신하는 서버가 제공된다. 이러한 서버는, 인쇄 서비스에 액세스하도록 구성되는 액세스 유닛, 인쇄 서비스에 대한 액세스에 관한 조건을 관리하도록 구성되는 조건 관리 유닛, 인쇄 서비스에 대한 과거 액세스의 상태를 관리하도록 구성되는 액세스 관리 유닛, 및, 과거 액세스의 상태에 기초하여, 인쇄 서비스에 새롭게 액세스하는 것에 의해 조건이 충족되지 않는지를 결정하도록 구성되는 결정 유닛을 포함한다. 조건이 충족되지 않는다고 결정되는 경우, 액세스 유닛은 인쇄 서비스에 새롭게 액세스하지 않는다.
본 발명의 추가의 특징들이 첨부 도면들을 참조하여 예시적인 실시예들의 다음의 설명으로부터 명백해질 것이다.
도 1은 제1 실시예에 따른 인쇄 시스템의 구성의 예를 설명하기 위한 블록도이다.
도 2a 및 도 2b는 제1 실시예에 따른 장치의 하드웨어 배열의 예를 각각 설명하기 위한 블록도이다.
도 3은 제1 실시예에 따른 중개 서비스의 기능 배열의 예를 설명하기 위한 블록도이다.
도 4는 제1 실시예에 따른 테이블들의 예들을 설명하기 위한 도면이다.
도 5는 제1 실시예에 따른 인쇄 시스템의 동작의 예를 설명하기 위한 시퀀스 차트이다.
도 6은 제1 실시예에 따른 중개 서비스의 동작의 예를 설명하기 위한 흐름도이다.
도 7은 제1 실시예에 따른 중개 서비스의 동작의 예를 설명하기 위한 흐름도이다.
도 8은 제2 실시예에 따른 중개 서비스의 동작의 예를 설명하기 위한 흐름도이다.
도 9는 제3 실시예에 따른 중개 서비스의 동작의 예를 설명하기 위한 흐름도이다.
이하, 첨부 도면들을 참조하여 실시예들이 상세히 설명될 것이다. 다음의 실시예들은 청구된 발명의 범위를 한정하려고 의도되는 것이 아니라는 점에 주목한다. 다수의 특징들이 실시예들에서 설명되지만, 이러한 특징들 모두를 요구하는 한정이 본 발명에 이루어지는 것은 아니며, 다수의 이러한 특징들은 적절하게 조합될 수 있다. 또한, 첨부 도면들에서는, 동일한 또는 유사한 구성들에 동일한 참조 번호들이 부여되고, 그 중복 설명은 생략된다.
<제1 실시예>
제1 실시예에 따른 인쇄 시스템의 구성의 예가 도 1을 참조하여 설명될 것이다. 이러한 인쇄 시스템은, 예를 들어, 정보 처리 장치들(110 및 120), 인쇄 장치들(130, 140, 및 150), 인쇄 서비스들(160, 170, 및 180), 및 중개 서비스(190)를 포함한다. 인쇄 시스템의 컴포넌트들의 수가 도 1의 예에서의 것들로 한정되지는 않는다. 인쇄 시스템은 도 1에 도시되지 않은 컴포넌트들을 포함할 수 있다.
정보 처리 장치(110) 및 인쇄 장치(130)는 LAN(local area network)(101)에 접속되고, LAN(101)을 통해 광역 네트워크(100)(예를 들어, 인터넷)에 접속된다. 정보 처리 장치(120) 및 인쇄 장치들(140 및 150)은 LAN(102)에 접속되고, LAN(102)을 통해 광역 네트워크(100)에 접속된다. LAN들(101 및 102)은 유선 LAN들, 무선 LAN들, 또는 이들의 조합일 수 있다. 인쇄 서비스들(160, 170 및 180) 및 중개 서비스(190) 또한 광역 네트워크(100)에 접속된다. 인쇄 시스템의 각각의 컴포넌트들은 광역 네트워크(100)를 통해 서로 통신가능할 수 있다.
정보 처리 장치(110)는 애플리케이션(111), 인쇄 제어 유닛(112), 및 통신 제어 유닛(113)을 포함한다. 정보 처리 장치(120)는 정보 처리 장치(110)의 것과 동일한 배열을 가질 수 있고, 그 반복 설명은 생략될 것이다. 애플리케이션(111)은 정보 처리 장치(110)의 사용자에게 인쇄 기능을 제공한다. 사용자로부터의 입력에 따라, 애플리케이션(111)은 인쇄 제어 유닛(112)에게 인쇄를 실행하라고 명령한다. 인쇄 제어 유닛(112)은 정보 처리 장치(110)의 OS(operating system)에 의해 복수의 애플리케이션들에 공통으로 제공되는 기능이다. 인쇄 제어 유닛(112)은 통신 제어 유닛(113)을 통해 인쇄 작업을 LAN(101)에 송신한다. 인쇄 작업의 최종 송신 목적지는 애플리케이션(111)에 의해 지정되는 인쇄 장치이다. 애플리케이션(111)은 동일한 LAN(101)에 접속되는 인쇄 장치(130)를, 출력 목적지로서, 지정하거나, 또는 광역 네트워크(100)를 통해 접속되는 인쇄 장치(140 또는 150)를, 출력 목적지로서, 지정할 수 있다. 후술되는 바와 같이, 인쇄 작업은 명령된 인쇄 장치에 직접 송신될 수 있거나 또는 인쇄 서비스에 송신될 수 있다.
인쇄 장치들(130, 140, 및 150) 각각은 인쇄 명령어에 응답하여 인쇄를 실행한다. 인쇄 장치들(130, 140, 및 150)은 동일한 모델 또는 상이한 모델들의 것일 수 있다. 인쇄 장치(130)는 인쇄 기능 외에도 스캐너 기능 및 FAX 기능 중 적어도 하나를 포함할 수 있다. 복수의 기능들을 갖는 인쇄 장치(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)에 접속되는 구내 서버(on-premise server)에 의해 또는 클라우드 컴퓨팅(이하, 간단히 클라우드라고 지칭됨)을 형성하는 복수의 서버들에 의해 제공될 수 있다. 클라우드에 의해 제공되는 인쇄 서비스는 클라우드 인쇄 서비스라고 불릴 수 있다. 클라우드 인쇄 서비스의 예는 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))는 이하에서 다운스트림 인쇄 서비스라고 지칭될 것이다. 하나의 인쇄 서비스는 업스트림 인쇄 서비스 및 다운스트림 인쇄 서비스 양자 모두로서 기능할 수 있다. 예를 들어, 인쇄 서비스(180)는 인쇄 장치(130)를 지원하고 인쇄 장치(140)를 지원하지는 않는다. 따라서, 인쇄 서비스(180)는 인쇄 장치(130)로부터 인쇄를 명령하기 위한 인쇄 작업에 관하여 다운스트림 인쇄 서비스로서 기능할 수 있고, 인쇄 장치(140)로부터 인쇄를 명령하기 위한 인쇄 작업에 관하여 업스트림 인쇄 서비스로서 기능할 수 있다.
클라우드를 형성하는 복수의 서버들은 복수의 영역들에 분산 배열된다. 정보 처리 장치의 사용자는 사용자의 위치에 따라 인쇄 서비스(160)를 제공하는 서버의 물리 영역을 선택할 수 있다. 이러한 것 대신에, 클라우드는 정보 처리 장치의 사용자의 위치에 따라 서비스(예를 들어, 인쇄 서비스(160))를 제공하는 서버를 자동으로 선택할 수 있다.
도 1에 도시되는 인쇄 시스템에서 사용되는 장치들의 하드웨어 배열들의 예들이 도 2a 및 2b를 참조하여 설명될 것이다. 컴퓨터(200)의 배열의 예가 도 2a를 참조하여 설명될 것이다. 컴퓨터(200)는 도 1에서의 정보 처리 장치(110 또는 120)로서 사용될 수 있다. 컴퓨터(200)는 인쇄 서비스들(160, 170 및 180) 및 중개 서비스(190)를 제공하기 위해 사용될 수 있다. 인쇄 서비스들(160, 170 및 180) 및 중개 서비스(190)는 상이한 컴퓨터들 또는 동일한 컴퓨터에 의해 제공될 수 있다. 클라이언트에 서비스를 제공하는 컴퓨터는 서비스라고 불릴 수 있다. 인쇄 서비스를 제공하는 서버는 인쇄 서버라고 불릴 수 있다. 중개 서비스를 제공하는 서버는 중개 서버라고 불릴 수 있다.
컴퓨터(200)는 CPU(central processing unit)(201), ROM(read only memory)(202), RAM(random access memory)(203), 디스플레이 디바이스(204), 입력 디바이스(205), 외부 저장 디바이스(206), 및 I/F(interface) 디바이스(207)를 포함한다. 컴퓨터(200)가 정보 처리 장치(110)로서 사용되면, 컴퓨터(200)는 데스크톱 또는 노트북 PC(personal computer), 또는 태블릿 또는 스마트폰과 같은 휴대용 디바이스일 수 있다.
CPU(201)는 범용 프로세서이고, 컴퓨터(200)의 각각의 컴포넌트들을 제어한다. 예를 들어, CPU(201)는 ROM(202)에 저장되는 프로그램에 따라 동작한다. RAM(203)은 휘발성 메모리이고, CPU(201)가 프로그램을 실행할 때 작업 영역을 제공한다. 외부 저장 디바이스(206)는, 예를 들어, HDD(hard disk drive) 또는 SSD(solid-state drive)에 의해 형성되고, 데이터를 비휘발성으로 저장한다. 외부 저장 디바이스(206)는 애플리케이션 소프트웨어 및 다양한 제어 프로그램들을 저장한다.
디스플레이 디바이스(204)는 컴퓨터(200)의 사용자에게 정보(예를 들어, 사용자 인터페이스 스크린, 메시지 등)를 디스플레이하기 위한 디바이스이다. 디스플레이 디바이스(204)는 도트 매트릭스 디스플레이, 인디케이터 등에 의해 형성된다. 입력 디바이스(205)는 컴퓨터(200)의 사용자로부터 입력을 수취하기 위한 디바이스이다. 입력 디바이스(205)는, 예를 들어, 키보드, 마우스, 터치 패널, 버튼들 등에 의해 형성된다. I/F 디바이스(207)는 컴퓨터(200)를 외부 네트워크에 접속하기 위한 디바이스이다. I/F 디바이스(207)는 유선 접속을 위해 네트워크 카드에 의해 형성될 수 있고, 무선 접속을 위해 기저대역 프로세서 및 안테나에 의해 형성될 수 있다.
인쇄 장치(210)의 배열의 예가 도 2b를 참조하여 설명될 것이다. 인쇄 장치(210)는 CPU(211), ROM(212), RAM(213), 디스플레이 디바이스(214), 입력 디바이스(215), 인쇄 엔진(216), 및 I/F 디바이스(217)를 포함한다. 인쇄 장치(210)는 도 1에 도시되는 인쇄 장치들(130, 140, 및 150) 중 어느 하나로서 사용될 수 있다. 인쇄 장치(210)는, 예를 들어, 잉크젯 프린터이다. 인쇄 장치(210)의 CPU(211), ROM(212), RAM(213), 디스플레이 디바이스(214), 입력 디바이스(215), 및 I/F 디바이스(217)는 컴퓨터(200)의 동일한 명칭들을 갖는 것들과 동일할 수 있고, 그 반복 설명은 생략될 것이다. RAM(203)은 인쇄 엔진(216)의 동작에 필요한 프로그램, 정보 처리 장치로부터 수신되는 설정 값들 등을 일시적으로 저장한다.
인쇄 엔진(216)은 정보 처리 장치로부터 수신되는 인쇄 데이터에 기초하여 인쇄 매체 상에 인쇄한다. CPU(211)는 I/F 디바이스(217)를 통해 정보 처리 장치로부터 인쇄 데이터를 수신하고, 인쇄 장치(210)의 현재 상태 정보를 정보 처리 장치에 송신한다. 상태 정보는 정보 처리 장치로부터의 요청에 응답하여 인쇄 장치(210)에 의해 반환될 수 있는 상태 데이터이고, 인쇄 장치(210)의 상태를 나타낸다. 상태 데이터는 "인쇄(printing)" 또는 "대기 상태(waiting state)"와 같은 인쇄 장치(210)의 동작 상태, 또는 "종이 없음(out of paper)", "커버 열림(cover open)", 또는 "잉크 없음(out of ink)"과 같은 인쇄 장치(210)의 에러 상태의 통지를 행하기 위한 정보이다.
중개 서비스(190)의 기능 블록들의 예들이 도 3을 참조하여 설명될 것이다. 중개 서비스(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)은 인쇄 서비스에 대한 액세스에 관한 조건을 관리한다(즉, 조건 관리를 수행한다). 이하, 액세스에 관한 조건은 액세스 조건이라고 지칭된다. 보다 구체적으로, 액세스 조건은 액세스의 횟수에 관한 조건일 수 있고, 예를 들어, 단위 시간 당(예를 들어, 초 당) 인쇄 서비스에 대한 액세스의 횟수가 상한(예를 들어, 5)을 초과하지 않는 조건일 수 있다.
중개 서비스(190)의 데이터베이스에 저장되는 테이블들의 예들이 도 4를 참조하여 설명된다. 중개 서비스(190)의 데이터베이스는, 예를 들어, 인쇄 장치 정보 테이블(400), 인쇄 작업 정보 테이블(420), 및 액세스 정보 테이블(440)을 저장한다. 이들 외에도, 중개 서비스(190)의 설정을 관리하기 위한 테이블이 저장될 수 있다.
인쇄 장치 정보 테이블(400)은 중개 서비스(190)에 의해 중개되는 업스트림 논리 인쇄 장치 및 다운스트림 논리 인쇄 장치의 조합에 관한 정보를 저장한다. 인쇄 장치 정보 테이블(400)에서, 업스트림 논리 인쇄 장치 및 다운스트림 논리 인쇄 장치의 각각의 조합에 대해 레코드가 생성된다. 인쇄 서비스 관리 유닛(301)은, 인쇄 장치 정보 테이블(400)에서, 사용자로부터의 명령어에 대응하는 레코드를 생성한다. 인쇄 장치 정보 테이블(400)에 저장되는 정보는 중개 서비스(190)가 인쇄 작업을 중개할 때 참조된다.
인쇄 장치 정보 테이블(400)에서의 각각의 레코드는 도 4에 도시되는 복수의 컬럼들(401 내지 408)을 포함한다. 업스트림 인쇄 장치 ID(401)는 업스트림 인쇄 서비스에 의해 제공되는 논리 인쇄 장치의 식별 정보를 표시한다. 업스트림 인쇄 서비스 ID(402)는 업스트림 인쇄 서비스의 식별 정보를 표시한다. 다운스트림 인쇄 장치 ID(403)는 다운스트림 인쇄 서비스에 의해 제공되는 논리 인쇄 장치의 식별 정보를 표시한다. 다운스트림 인쇄 서비스 ID(404)는 다운스트림 인쇄 서비스의 식별 정보를 표시한다.
테넌트(405)는 인쇄 서비스에 대한 계약을 갖는 사용자가 속하는 회사 또는 그룹을 표시한다. 인쇄 장치 명칭(406)은 출력 목적지로서 인쇄 장치(예를 들어, 인쇄 장치(130))에 대해 임의로 설정되는 디스플레이 명칭을 표시한다. 인쇄 장치 모델 명칭(407)은 출력 목적지로서 인쇄 장치의 제품 명칭을 표시한다. 액세스 토큰(408)은 업스트림 인쇄 서비스 또는 다운스트림 인쇄 서비스에 액세스하기 위한 인증을 위해 사용되는 토큰을 표시한다.
인쇄 작업 정보 테이블(420)은 중개 서비스(190)에 의해 중개되는 인쇄 작업에 관한 정보를 저장한다. 인쇄 작업 정보 테이블(420)에서, 각각의 중개된 인쇄 작업에 대해 레코드가 생성된다. 중개 처리 유닛(302)이 업스트림 인쇄 서비스로부터 인쇄 작업을 수신할 때마다, 인쇄 작업 정보 테이블(420)에서 인쇄 작업을 나타내는 레코드를 생성한다. 인쇄 작업에 의한 인쇄의 완료 시에, 중개 처리 유닛(302)은 대응하는 레코드를 인쇄 작업 정보 테이블(420)로부터 삭제한다.
인쇄 작업 정보 테이블(420)에서의 각각의 레코드는 도 4에 도시되는 복수의 컬럼들(421 내지 432)을 포함한다. 인쇄 작업 ID(421)는 인쇄 작업의 식별 정보를 표시한다. 컬럼들(422 내지 426)은, 각각, 컬럼들(401 내지 405)과 동일하고, 그 반복 설명은 생략될 것이다. 사용자(427)는 인쇄를 실행하는 사용자를 표시한다. 인쇄 작업 명칭(428)은 인쇄 작업의 명칭을 표시한다. 인쇄 작업 상태(429)는 인쇄 작업의 상태를 표시한다. 인쇄 데이터 ID(430)는 인쇄 데이터를 관리하기 위해 업스트림 인쇄 서비스에 의해 사용되는 식별 정보를 표시한다. 인쇄 설정(431)은 인쇄 작업에 대한 인쇄 설정들을 표시한다. 예를 들어, 인쇄 설정(431)은 인쇄 파일 명칭, 파일 포맷, 파일 크기, 종이 크기, 종이 타입, 컬러 설정, 인쇄 시작 시간, 인쇄를 명령하는 사용자의 위치를 포함한다. 인쇄 데이터 어드레스(432)는 중개 서비스(190)에 의해 사용되는 인쇄 데이터 스토리지에서의 인쇄 데이터의 어드레스(예를 들어, URL(Uniform Resource Locator))를 표시한다.
액세스 정보 테이블(440)은 중개 서비스(190)에 의한 인쇄 서비스에 대한 액세스에 관한 정보를 저장한다. 액세스 정보 테이블(440)에서, 중개 서비스(190)에 등록되는 각각의 인쇄 서비스에 대해 레코드가 생성된다. 도 1에서의 인쇄 시스템의 예에서, 인쇄 서비스들(160, 170 및 180)이 중개 서비스(190)에 등록되면, 액세스 정보 테이블(440)은 인쇄 서비스들(160, 170 및 180) 각각에 대한 레코드를 포함한다. 중개 서비스(190)에서 인쇄 서비스가 등록될 때마다, 액세스 제어 유닛(303)은 액세스 정보 테이블(440)에서 레코드를 생성한다.
액세스 정보 테이블(440)에서의 각각의 레코드는 도 4에 도시되는 복수의 컬럼들(441 내지 444)을 포함한다. 인쇄 서비스 ID(441)는 인쇄 서비스의 식별 정보를 표시한다. 액세스 조건(442)은 인쇄 서비스에 대한 액세스에 관한 조건(전술된 액세스 조건)을 표시한다. 액세스 대기 리스트(443)는 인쇄 서비스에 대한 액세스를 대기하는 프로세스들의 리스트를 표시한다. 액세스 대기 리스트(443)는 큐에 의해 구현될 수 있다. 액세스 상태(444)는 인쇄 서비스에 대한 과거 액세스의 상태를 표시한다. 예를 들어, 액세스 상태(444)는 인쇄 서비스가 과거에 액세스된 시간을 표시한다.
액세스 조건(442)은 각각의 인쇄 서비스에 대해 상이할 수 있다. 예를 들어, 인쇄 서비스(160)에 대한 액세스 조건은 단위 시간 당(예를 들어, 초 당) 액세스의 횟수가 5 이하인 것일 수 있다. 인쇄 서비스(180)에 대한 액세스 조건은 미리 결정된 시간(예를 들어, 1초) 동안의 액세스의 횟수가 10 이하인 것일 수 있다.
도 1에 도시되는 인쇄 시스템의 동작의 예가 도 5를 참조하여 설명될 것이다. 정보 처리 장치(110)가 인쇄 장치(130)를 지정하고 그것에게 인쇄를 실행하라고 명령하고, 인쇄 서비스(160)가 업스트림 인쇄 서비스이고, 인쇄 서비스(180)가 다운스트림 인쇄 서비스인 예가 도 5를 참조하여 설명될 것이다. 또한, 정보 처리 장치(110)가 풀 인쇄를 중개 서비스(190)에게 명령하는 예가 도 5를 참조하여 설명될 것이다. 도 5에 도시되는 동작은 정보 처리 장치(110)가 사용자로부터 인쇄 명령어를 수신할 때 시작된다. 도 5에 도시되는 동작의 시작에서, 정보 처리 장치(110)는 인쇄 서비스(160)(보다 구체적으로는, 그 논리 인쇄 장치(161))에 인쇄 작업을 입력할 수 있다. 또한, 도 5에 도시되는 동작의 시작에서, 인쇄 서비스들(160 및 180)은 서로 연관된다. 도 5에서의 중개 서비스(190)에 의한 동작은 중개 처리 유닛(302)에 의해 수행된다. 다음의 설명에서, 인쇄 서비스(160)의 논리 인쇄 장치(161)로의 인쇄 작업의 송신은 이하에서 인쇄 서비스(160)로의 인쇄 작업의 송신이라고 간단히 지칭될 것이다.
S501에서, 정보 처리 장치(110)는 복수의 인쇄 작업들을 인쇄 서비스(160)에 송신한다. S502에서, 정보 처리 장치(110)는, 중개 서비스(190)에, 인쇄 서비스(160)에 대한 풀 인쇄의 명령어를 송신한다. S503에서, 중개 서비스(190)는 인쇄 서비스(160)로부터 인쇄 작업들의 리스트를 요청한다. S504에서, 인쇄 서비스(160)는 논리 인쇄 장치(161)에 보유되는 인쇄 작업들의 리스트를, 중개 서비스(190)에, 송신한다. 이러한 리스트에서의 각각의 인쇄 작업의 정보는 인쇄 작업의 부분 정보, 예를 들어, 인쇄 작업 ID(421) 및 인쇄 데이터 ID(430)만일 수 있다.
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)에 송신한다. 인쇄 데이터의 데이터 양이 더 크기 때문에, 인쇄 데이터를 수신하기 위해 더 긴 시간이 요구된다. 인쇄 데이터의 수신이 종료되면, 중개 서비스(190)는, S512에서, 인쇄 데이터 스토리지에 저장되는 인쇄 데이터의 어드레스를 포함하도록 인쇄 작업 정보 테이블(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)에 인쇄 완료를 통지한다.
중개 서비스(190)를 제공하기 위해 컴퓨터(200)에 의해 실행되는 제어 방법의 예가 도 6을 참조하여 설명될 것이다. 이러한 방법은 중개 서비스(190)의 액세스 제어 유닛(303)에 의해 실행된다. 액세스 제어 유닛(303)에 의한 동작은 CPU(201)가 메모리(예를 들어, RAM(203)) 내로 판독되는 프로그램을 실행할 때 수행될 수 있다. 도 6에 도시되는 방법은 중개 서비스(190)가 처리를 실행하려고 시도할 때마다 시작된다. 예를 들어, 중개 서비스(190)는 중개 서비스(190)가 도 5의 S503, S505, S506, S508, S509, S512, S513, S515, 및 S520 각각에서의 처리를 실행하려고 시도할 때마다 도 6에 도시되는 방법을 시작할 수 있다.
단계 S601에서, 중개 서비스(190)는 실행될 처리가 인쇄 서비스에 대한 액세스를 요구하는지를 결정한다. 인쇄 서비스에 대한 액세스가 요구된다고 결정되면(단계 S601에서의 "예(YES)"), 중개 서비스(190)는 프로세스를 단계 S602로 진행시키고; 그렇지 않으면(단계 S601에서의 "아니오(NO)"), 중개 서비스(190)는 프로세스를 단계 S603으로 진행시킨다. 예를 들어, 도 5에 도시되는 예에서, S503, S506, S513, S515, 및 S520 각각에서의 처리는 인쇄 서비스에 대한 액세스를 요구하고, S505, S508, S509, 및 S512 각각에서의 처리는 인쇄 서비스에 대한 액세스를 요구하지 않는다.
인쇄 서비스에 대한 액세스가 요구되지 않는 것으로 결정되면, 중개 서비스(190)는, 단계 S603에서, 실행될 처리를 실행한다. 이러한 처리에서는, 인쇄 서비스에 대한 액세스가 행해지지 않는다. 인쇄 서비스에 대한 액세스가 요구된다고 결정되면, 중개 서비스(190)는, 단계 S602에서, 액세스될 인쇄 서비스를 명시한다. 예를 들어, 도 5에 도시되는 예에서, S503, S506, 및 S520 각각에서의 처리에 대해 인쇄 서비스(160)가 액세스되어야 한다고 명시되고, S513 및 S515 각각에서의 처리에 대해 인쇄 서비스(180)가 액세스되어야 한다고 명시된다.
단계 S604에서, 중개 서비스(190)는 실행될 처리를 액세스 정보 테이블(440)에서의 명시된 인쇄 서비스에 대응하는 레코드에서의 액세스 대기 리스트(443)의 끝에 추가한다.
중개 서비스(190)를 제공하기 위해 컴퓨터(200)에 의해 실행되는 제어 방법의 예가 도 7을 참조하여 설명될 것이다. 이러한 방법은 중개 서비스(190)의 액세스 제어 유닛(303)에 의해 실행된다. 액세스 제어 유닛(303)에 의한 동작은 CPU(201)가 메모리(예를 들어, RAM(203)) 내로 판독되는 프로그램을 실행할 때 수행될 수 있다. 도 7에 도시되는 방법은 액세스 대기 리스트(443)가 비어 있지 않을 때 시작된다. 중개 서비스(190)는 액세스 정보 테이블(440)에서의 각각의 레코드에 대해 도 7의 방법을 동시에 실행할 수 있다. 환언하면, 중개 서비스(190)는 각각의 인쇄 서비스에 대해 도 7의 방법을 동시에 실행할 수 있다. 도 5에 도시되는 예에서, 중개 서비스(190)는 인쇄 서비스들(160 및 180)에 대해 도 7의 방법을 실행한다.
단계 S701에서, 중개 서비스(190)는 액세스 대기 리스트(443)에서의 제1 처리를 선택한다. 단계 S702에서, 중개 서비스(190)는 액세스 상태(444)에 기초하여 인쇄 서비스에 대한 과거 액세스의 상태를 취득한다.
단계 S703에서, 중개 서비스(190)는, 과거 액세스의 상태에 기초하여, 액세스 조건이 인쇄 서비스에 새롭게 액세스하는 것에 의해 충족되지 않는지를 결정한다. 전술된 바와 같이, 인쇄 서비스에 대한 액세스 조건은 액세스 조건(442)에 의해 관리된다. 액세스 조건이 충족되지 않는 것으로 결정되면(단계 S703에서의 "예(YES)"), 중개 서비스(190)는 프로세스를 단계 S706으로 진행시키고; 그렇지 않으면(단계 S703에서의 "아니오(NO)"), 중개 서비스(190)는 프로세스를 단계 S704로 진행시킨다.
액세스 조건이 단위 시간 당 액세스의 횟수의 상한을 정의하면, 현재 시간 이전의 단위 시간의 기간 동안의 액세스의 횟수가 상한에 도달할 때, 액세스 조건이 새로운 액세스에 의해 충족되지 않는다고 결정된다. 한편, 이러한 예에서는, 현재 시간 이전의 단위 시간의 기간 동안의 액세스의 횟수가 상한에 도달하지 않으면, 새로운 액세스가 행해진 후더라도 액세스 조건이 충족된다고 결정된다.
액세스 조건이 여전히 충족된다고 결정되면, 단계 S704에서 중개 서비스(190)는 액세스 상태(444)를 업데이트한다. 보다 구체적으로는, 중개 서비스(190)는, 액세스 상태(444)에, 단계 S704가 실행되는 시간(현재 시간)을 기록한다. 그 후에, 단계 S705에서, 중개 서비스(190)는 인쇄 서비스에 액세스하는 것에 의해 현재 선택된 처리를 실행한다. 예를 들어, 현재 선택된 처리가 도 5의 S503에서의 처리이면, 중개 서비스(190)는 인쇄 서비스(160)로부터 작업 리스트를 요청한다. 이러한 방식으로, 인쇄 서비스가 액세스될 때마다, 액세스 상태(444)에 그 시간이 기록된다.
액세스 조건이 충족되지 않는 것으로 결정되면, 중개 서비스(190)는, 단계 S706에서, 현재 선택된 처리의 실행을 대기하기 위해 타이머를 시작한다. 이러한 시간에, 인쇄 서비스는 새롭게 액세스되지 않는다. 타이머의 값은 현재 선택된 처리의 실행이 대기되는 동안의 대기 시간을 정의한다. 일부 실시예들에서, 타이머의 값은 현재 선택된 처리에 관계없이 동일한 값(예를 들어, 100 밀리초)일 수 있다. 타이머의 값은 미리 결정되고, 예를 들어, ROM(202)에 저장될 수 있다.
단계 S707에서, 중개 서비스(190)는 단계 S703에서의 결정 결과에 관계없이 현재 선택된 처리를 액세스 대기 리스트(443)로부터 삭제한다. 단계 S703에서 아니오라고 결정되면, 현재 선택된 처리가 단계 S705에서 실행된다. 따라서, 이러한 처리는 액세스 대기 리스트(443)에서 유지될 필요가 없다. 한편, 단계 S703에서 예라고 결정될 때 실행되지 않는 처리에 관하여는, 후술되는 바와 같이, 액세스 대기 리스트(443)가 아니라 타이머에 의해 재시도 타이밍이 제어된다.
단계 S708에서, 중개 서비스(190)는 타이머가 만료되는 처리가 있는지를 결정한다. 타이머가 만료되는 처리가 있는 것으로 결정되면(단계 S708에서의 "예(YES)"), 중개 서비스(190)는 프로세스를 단계 S709로 진행시키고; 그렇지 않으면(단계 S708에서의 "아니오(NO)"), 중개 서비스(190)는 프로세스를 단계 S710으로 진행시킨다.
단계 S709에서, 중개 서비스(190)는 타이머가 만료되는 처리를 선택하고, 단계 S702 및 후속 단계들에서의 프로세스들을 반복한다. 따라서, 타이머가 만료되는 처리는 현재 선택된 처리이다. 중개 서비스(190)는 개별 처리에 관하여 인쇄 서비스에 액세스하려고 재시도한다.
단계 S710에서, 중개 서비스(190)는 액세스 대기 리스트(443)가 처리를 포함하는지를 결정한다. 액세스 대기 리스트(443)가 처리를 포함한다고 결정되면(단계 S710에서의 "예(YES)"), 중개 서비스(190)는 프로세스를 단계 S701로 진행시키고; 그렇지 않으면(단계 S710에서의 "아니오(NO)"), 중개 서비스(190)는 프로세스를 단계 S708로 진행시킨다. 액세스 대기 리스트(443)가 처리를 포함한다고 결정되면, 액세스 대기 리스트(443)에서의 제1 처리가 선택되고, 단계 S701 및 후속 단계들의 프로세스들이 반복된다. 액세스 대기 리스트(443)가 처리를 포함하지 않는다고 결정되면, 타이머가 만료되는 처리가 있는지가 결정된다.
전술된 방법에 따르면, 인쇄 서비스에 새롭게 액세스하는 것에 의해 액세스 조건이 충족되지 않으면, 중개 서비스(190)는 인쇄 서비스에 액세스하지 않는다. 따라서, 부하가 인쇄 서비스에 집중되는 것을 억제하고, 인쇄 서비스에 대한 중개 서비스(190)로부터의 액세스가 인쇄 서비스의 방화벽에 의해 중단되는 것을 억제하는 것이 가능하다.
전술된 방법에 따르면, 현재 선택된 처리가 단계 S707에서 액세스 대기 리스트(443)로부터 삭제된 후, 액세스 대기 리스트(443)에서의 제1 처리 전에 타이머가 만료되는 처리가 선택된다. 따라서, 액세스 대기 리스트(443)가 비어 있지 않더라도, 개별 처리에 관하여 액세스가 재시도된다.
전술된 방법에서, 타이머가 만료되면, 개별 처리에 관하여 액세스가 재시도된다. 이러한 것 대신에, 액세스 조건이 인쇄 서비스에 새롭게 액세스하는 것에 의해 충족되지 않는다고 단계 S703에서 결정되면, 현재 선택된 처리는 액세스 대기 리스트(443)의 끝으로 반환될 수 있다. 이러한 방법에서, 타이머와 연관된 단계들(S708 및 S709)은 스킵된다.
전술된 실시예에서, 업스트림 인쇄 서비스 및 다운스트림 인쇄 서비스는 중개 서비스(190)에 의해 중개된다. 이러한 것 대신에, 인쇄 작업이 업스트림 인쇄 서비스로부터 다운스트림 인쇄 서비스에 직접(즉, 중개 서비스(190)의 개입 없이) 송신될 수 있다. 이러한 경우에, 업스트림 인쇄 서비스는 다운스트림 인쇄 서비스에 액세스하기 위해 도 6 및 7의 전술된 동작들을 수행할 수 있다. 또한, 다운스트림 인쇄 서비스는 업스트림 인쇄 서비스에 액세스하기 위해 도 6 및 도 7의 전술된 동작들을 수행할 수 있다.
중개 서비스(190)는 복수의 업스트림 인쇄 서비스들(예를 들어, 인쇄 서비스들(160 및 170)) 각각으로부터 인쇄 작업을 수신하고, 이러한 인쇄 작업에 대응하는 인쇄 데이터를 하나의 다운스트림 인쇄 서비스(예를 들어, 인쇄 서비스(180))에 송신할 수 있다. 이러한 경우에, 중개 서비스(190)는, 복수의 업스트림 인쇄 서비스들 각각에 대해, 각각의 개별 인쇄 서비스에 대한 과거 액세스의 상태 및 각각의 개별 인쇄 서비스에 대한 액세스에 관한 조건을 관리할 수 있다. 이러한 경우에, 중개 서비스(190)는 복수의 업스트림 인쇄 서비스들 각각에 대해 도 6 및 도 7의 전술된 동작들을 수행할 수 있다.
<제2 실시예>
도 8을 참조하여 제2 실시예가 설명될 것이다. 제1 실시예와의 차이가 아래에 주로 설명될 것이며, 제1 실시예에서와 동일할 수 있는 점들의 반복 설명은 생략될 것이다.
제1 실시예에서는, 도 7의 단계 S706에서, 현재 선택된 처리에 관계없이 대기 시간과 동일한 값이 설정된다. 제2 실시예에서는, 현재 선택된 처리의 우선순위 레벨에 기초하여, 현재 선택된 처리를 위한 대기 시간(즉, 타이머의 값)이 결정된다. 보다 구체적으로는, 중개 서비스(190)는 각각의 개별 프로세스의 우선순위 레벨을 3개의 레벨들(예를 들어, 높은/중간/낮은)로 평가하고, 더 높은 우선순위 레벨을 갖는 처리를 위해 더 짧은 대기 시간을 설정할 수 있다. 예를 들어, 중개 서비스(190)는 높은 우선순위 레벨을 갖는 처리를 위해 100 밀리초의 최단 대기 시간을 설정할 수 있다. 중개 서비스(190)는 중간 우선순위 레벨을 갖는 처리를 위해 200 밀리초의 제2 최단 대기 시간을 설정할 수 있다. 중개 서비스(190)는 낮은 우선순위 레벨을 갖는 처리를 위해 500 밀리초의 최장 대기 시간을 설정할 수 있다. 이러한 예에서, 각각의 개별 프로세스는 3개의 우선순위 레벨들을 갖는다. 그러나, 2개 또는 4개 이상의 우선순위 레벨들이 사용될 수 있다. 이러한 방식으로, 처리의 우선순위 레벨에 기초하여 대기 시간을 결정하는 것에 의해, 더 높은 우선순위 레벨을 갖는 처리를 위해 보다 자주 액세스가 재시도되고, 따라서 더 높은 우선순위 레벨을 갖는 처리가 먼저 실행될 확률이 높다.
제2 실시예에 따라 중개 서비스(190)를 제공하기 위해 컴퓨터(200)에 의해 실행되는 제어 방법의 예가 도 8을 참조하여 설명될 것이다. 이러한 방법은 중개 서비스(190)의 액세스 제어 유닛(303)에 의해 실행된다. 액세스 제어 유닛(303)에 의한 동작은 CPU(201)가 메모리(예를 들어, RAM(203)) 내로 판독되는 프로그램을 실행할 때 수행될 수 있다. 도 8의 방법은, 단계 S703에서 예라고 결정되면, 단계 S706의 실행 전에 단계 S801이 실행되고 나머지 점들은 동일할 수 있다는 점에서 도 7의 방법과 상이하다. 따라서, 도 8은 도 7에서의 것들과 동일한 동작들의 블록들 중 일부를 예시하지 않는다.
단계 S801에서, 중개 서비스(190)는 현재 선택된 처리에 대한 타이머의 값을 결정한다. 도 8에 도시되는 예에서, 현재 선택된 처리를 수행하기 위해 인쇄 서비스에 액세스하는 것에 의해 액세스 조건이 충족되지 않는다고 결정된 후에, 현재 선택된 처리를 위한 대기 시간이 결정된다. 대기 시간의 사용을 확인할 때 대기 시간을 결정하는 것에 의해, 결정된 대기 시간이 사용되지 않는 것을 회피하는 것이 가능하다.
각각의 개별 프로세스의 우선순위 레벨을 결정하는 실용적인 방법이 아래에 설명될 것이다. 도 5의 S510에서, 중개 서비스(190)에 의해 인쇄 서비스(160)에 요청되는 인쇄 데이터를 수신하기 위해 걸리는 시간은 다양한 요인들로 인해 다양할 수 있다. 이러한 것에 대처하기 위해, 중개 서비스(190)는 인쇄 데이터를 수신하기 위해 걸리는 시간을 예상하고 예상된 시간에 기초하여 개별 프로세스의 우선순위 레벨을 결정할 수 있다. 즉, 인쇄 서비스(160)로부터 인쇄 데이터를 수신하는 처리에 관하여, 중개 서비스(190)는 인쇄 데이터를 수신하기 위해 걸리는 예상 시간에 기초하여 처리에 대한 대기 시간을 결정한다. 중개 서비스(190)는 인쇄 데이터를 수신하기 위해 걸리는 예상 시간이 더 긴 인쇄 작업에 관한 처리에 대해 더 높은 우선순위 레벨을 설정할 수 있다.
중개 서비스(190)는 인쇄 작업 정보 테이블(420)에서의 인쇄 설정(431)(예를 들어, 파일 포맷, 파일 크기, 및 그 내에 포함되는 사용자의 위치)에 기초하여 수신을 위해 걸리는 시간을 예상할 수 있다. 파일 포맷 및 파일 크기와 같은 인쇄 데이터의 양이 더 많을수록, 수신을 위해 걸리는 시간이 더 길어진다. 인쇄 서비스(160)가 클라우드에 의해 제공되면, 사용자의 위치에 가까운 서버가 인쇄 서비스(160)를 제공한다. 따라서, 사용자의 위치가 중개 서비스(190)를 제공하는 서버의 위치로부터 멀리 있으면, 중개 서비스(190)를 제공하는 서버의 위치는 인쇄 서비스(160)를 제공하는 서버로부터 멀리 있는 경향이 있다. 서버들 사이의 거리가 더 길면, 수신을 위해 걸리는 시간이 더 길어지는 경향이 있다.
복수의 인쇄 작업들에 관하여 도 5의 S510에서의 프로세스들(인쇄 데이터를 요청하는 프로세스들)이 액세스 대기 리스트(443)에 포함되고 실행될 수 없다고 가정한다. 이러한 경우에, 인쇄 데이터를 수신하기 위해 걸리는 예상 시간이 더 긴 인쇄 작업에 대해 대기 시간이 더 짧고, 따라서 인쇄 작업이 먼저 실행될 가능성이 더 높다. 따라서, 복수의 인쇄 작업들에 관하여 인쇄 완료 시간에서의 변동들을 억제하는 것이 가능하고, 그렇게 함으로써 사용자의 조작성을 개선한다.
후속하여, 각각의 개별 프로세스의 우선순위 레벨을 결정하는 다른 실용적인 방법이 설명될 것이다. 중개 서비스(190)는 개별 프로세스의 타입에 기초하여 각각의 개별 프로세스의 우선순위 레벨을 결정할 수 있다. 인쇄 서비스(160)에 대한 액세스가 아래에 검토될 것이다. 예를 들어, 도 5의 S506 및 S510에서의 프로세스들이 인쇄의 실행 전의 인쇄 작업에 관련하여 실행된다. 따라서, 프로세스들이 지연되면, 인쇄 완료 시간이 또한 지연된다. 한편, 도 5의 S520에서의 처리는 인쇄의 실행 후에 인쇄 작업에 관련하여 수행된다. 따라서, 이러한 처리가 지연되더라도, 이러한 것은 인쇄 완료 시간에 영향을 미치지 않는다. 따라서, 중개 서비스(190)는 인쇄의 실행 전에 인쇄 작업에 관련하여 수행되는 처리에 대해 높은 우선순위 레벨을 설정하고, 인쇄의 실행 전에 인쇄 작업에 관련하여 수행되는 처리의 지연 시간과 비교하여, 이러한 처리에 대해 짧은 대기 시간을 설정할 수 있다.
중개 서비스(190)는 인쇄 작업에 관계없이 인쇄 서비스(160)에 액세스하는 처리(예를 들어, 인쇄 서비스(160)의 등록에 관련된 처리)를 실행할 수 있다. 이러한 처리가 인쇄 시간에 영향을 미치지 않기 때문에, 중개 서비스(190)는, 이러한 처리에 대해, 인쇄의 실행 전에 인쇄 작업에 관련하여 수행되는 처리의 우선순위 레벨보다 낮은 우선순위 레벨을 설정할 수 있다. 따라서, 중개 서비스(190)는, 인쇄 작업에 관련이 없는 처리에 대한 대기 시간과 비교하여, 인쇄의 실행 전에 인쇄 작업에 관련하여 수행되는 처리에 대해 짧은 대기 시간을 설정할 수 있다.
전술된 바와 같이, 인쇄의 실행 전에 인쇄 작업에 관련하여 수행되는 처리에 대해 짧은 대기 시간을 설정하는 것에 의해, 이러한 처리가 조기에 재시도되고, 그렇게 함으로써 인쇄의 실행까지의 시간을 단축시킨다.
전술된 실시예에서, 낮은 우선순위 레벨을 갖는 처리의 대기 시간은 다른 처리의 대기 시간보다 더 길기 때문에, 낮은 우선순위 레벨을 갖는 처리에 관하여 여러 번 액세스가 행해지지 않을 수 있다. 이러한 것에 대처하기 위해, 개별 프로세스를 수행하기 위한 액세스가 임계 시간(예를 들어, 5 초) 또는 임계 횟수(예를 들어, 10 회) 동안 행해지지 않으면, 중개 서비스(190)는 개별 프로세스에 대한 대기 시간을 단축시킬 수 있다. 예를 들어, 중개 서비스(190)는 처리의 우선순위 레벨을 낮은 레벨로부터 중간 레벨로 올리거나, 또는 처리의 우선순위 레벨을 중간 레벨로부터 높은 레벨로 올릴 수 있다. 이러한 것은 연속적으로 액세스되지 않은 처리를 실행하는 것을 용이하게 한다.
전술된 방법에서, 현재 선택된 처리를 수행하기 위해 인쇄 서비스에 액세스하는 것에 의해 액세스 조건이 충족되지 않는다고 결정된 후에, 현재 선택된 처리를 위한 대기 시간이 결정된다. 이러한 것 대신에, 중개 서비스(190)는 다른 타이밍에서 개별 프로세스에 대한 대기 시간을 결정할 수 있다. 예를 들어, 중개 서비스(190)는, 액세스 대기 리스트(443)에 처리를 추가할 때, 처리를 위한 대기 시간을 결정하고, 이를 메모리에 저장할 수 있다. 이러한 것 대신에, 인쇄 서비스가 서비스 정지 상태 또는 유지보수 상태로부터 복귀하면, 중개 서비스(190)는 액세스 대기 리스트(443)에서의 각각의 프로세스에 대한 대기 시간을 결정할 수 있다. 또한, 중개 서비스(190)는 일정한 간격으로 액세스 대기 리스트(443)에서의 각각의 프로세스에 대한 대기 시간을 결정할 수 있다.
<제3 실시예>
제3 실시예가 도 9를 참조하여 설명될 것이다. 제3 실시예에서, 중개 서비스(190)는 제1 또는 제2 실시예 외에도 도 9에 도시되는 동작을 실행한다. 도 9의 방법은 중개 서비스(190)의 액세스 제어 유닛(303)에 의해 실행된다. 액세스 제어 유닛(303)에 의한 동작은 CPU(201)가 메모리(예를 들어, RAM(203)) 내로 판독되는 프로그램을 실행할 때 수행될 수 있다. 중개 서비스(190)는 도 9에 도시되는 동작을 일정한 간격으로 시작할 수 있다.
단계 S901에서, 중개 서비스(190)는 액세스 대기 리스트(443)가 액세스를 대기하는 복수의 프로세스들을 포함하는지를 결정한다. 복수의 프로세스들이 포함되는 것으로 결정되면(단계 S901에서의 "예(YES)"), 중개 서비스(190)는 프로세스를 단계 S902로 진행시키고; 그렇지 않으면(단계 S901에서의 "아니오(NO)"), 중개 서비스(190)는 처리를 종료한다.
단계 S902에서, 중개 서비스(190)는 과거 액세스의 상태를 취득한다. 단계 S903에서, 중개 서비스(190)는 과거 액세스의 상태에 기초하여 인쇄 서비스에 대한 액세스에 관한 안전 조건이 충족되는지를 결정한다. 안전 조건이 충족되지 않는 것으로 결정되면(단계 S903에서의 "아니오(NO)"), 중개 서비스(190)는 프로세스를 단계 S904로 진행시키고; 그렇지 않으면(단계 S903에서의 "예(YES)"), 중개 서비스(190)는 처리를 종료한다.
안전 조건은 전술된 액세스 조건이 충족되지 않을 확률이 낮은 상태를 결정하기 위한 조건이다. 예를 들어, 안전 조건은 전술된 액세스 조건의 필요 조건이지만 충분 조건은 아닌 조건일 수 있다. 이러한 경우, 안전 조건이 충족되면, 액세스 조건이 충족된다.
예를 들어, 액세스 조건은 단위 시간 당(예를 들어, 초 당) 인쇄 서비스에 대한 액세스의 횟수가 상한(예를 들어, 5)을 초과하지 않는 것이라고 가정한다. 이러한 경우, 안전 조건은 단위 시간 당(예를 들어, 초 당) 인쇄 서비스에 대한 액세스의 횟수가 위 상한보다 더 낮은 상한(예를 들어, 3)을 초과하지 않는 것일 수 있다. 안전 조건의 상한은 액세스 조건의 상한에 대한 비율(예를 들어, 80%)에 의해 또는 액세스 조건의 상한과의 차이(예를 들어, 상한으로부터 2를 감산하는 것에 의해 획득되는 값)에 의해 정의될 수 있다. 안전 조건은 각각의 인쇄 서비스에 대해 상이할 수 있다.
안전 조건이 충족되지 않으면, 액세스 조건을 곧 충족하지 않을 가능성이 있다. 이러한 것에 대처하기 위해, 단계 S904에서, 중개 서비스(190)는 액세스 대기 리스트(443)에서의 개별 프로세스들의 우선순위 레벨들에 기초하여 액세스 대기 리스트(443)에서의 복수의 프로세스들의 순서를 재배열한다. 각각의 개별 프로세스의 우선순위 레벨을 결정하는 방법은 제2 실시예에서와 동일할 수 있다. 예를 들어, 중개 서비스(190)는 더 높은 우선순위 레벨을 갖는 처리가 액세스 대기 리스트(443)의 상단에 더 가깝도록 프로세스들을 재배열한다. 중개 서비스(190)는 동일한 우선순위 레벨을 갖는 프로세스들에 관하여 원래의 순서를 유지할 수 있다. 이러한 방식으로 프로세스들을 재배열하는 것에 의해, 더 높은 우선순위 레벨을 갖는 처리가 도 7의 단계 S701에서 먼저 선택된다. 따라서, 복수의 프로세스들 중에서 더 높은 우선순위 레벨을 갖는 처리에 관하여 인쇄 서비스가 먼저 액세스된다.
다른 실시예들
본 발명의 실시예(들)는, 전술된 실시예(들) 중 하나 이상의 기능을 수행하기 위해 저장 매체('비-일시적 컴퓨터-판독가능 저장 매체(non-transitory computer-readable storage medium)'라고 더 완전히 또한 지칭될 수 있음) 상에 기록된 컴퓨터 실행가능 명령어들(예를 들어, 하나 이상의 프로그램)을 판독 및 실행하는 및/또는 전술된 실시예(들) 중 하나 이상의 기능을 수행하기 위한 하나 이상의 회로(예를 들어, ASIC(application specific integrated circuit))를 포함하는 시스템 또는 장치의 컴퓨터에 의해, 그리고, 예를 들어, 전술된 실시예(들) 중 하나 이상의 기능을 수행하기 위해 저장 매체로부터 컴퓨터 실행가능 명령어들을 판독 및 실행하는 것 및/또는 전술된 실시예(들) 중 하나 이상의 기능을 수행하기 위해 하나 이상의 회로를 제어하는 것에 의해 이러한 시스템 또는 장치의 컴퓨터에 의해 수행되는 방법에 의해 또한 실현될 수 있다. 컴퓨터는 하나 이상의 프로세서(예를 들어, CPU(central processing unit), MPU(micro processing unit))를 포함할 수 있으며, 컴퓨터 실행가능 명령어들을 판독하고 실행하기 위한 개별 컴퓨터들 또는 개별 프로세서들의 네트워크를 포함할 수 있을 것이다. 컴퓨터 실행가능 명령어들은, 예를 들어, 네트워크 또는 저장 매체로부터 컴퓨터에 제공될 수 있다. 저장 매체는, 예를 들어, 하드 디스크, RAM(random-access memory), ROM(read only memory), 분산형 컴퓨팅 시스템들의 스토리지, (CD(compact disc), DVD(digital versatile disc) 또는 BD(Blu-ray Disc)TM와 같은) 광 디스크, 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있다.
(기타의 실시예)
본 발명은, 상기의 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실현가능하다.
또한, 1개 이상의 기능을 실현하는 회로(예를 들어,ASIC)에 의해서도 실행가능하다.
본 발명이 예시적인 실시예들을 참조하여 설명되었지만, 본 발명은 개시된 예시적인 실시예들에 한정되지 않는다는 점이 이해되어야 한다. 다음의 청구항들의 범위는 모든 이러한 수정들 및 등가의 구조들 및 기능들을 포함하도록 가장 넓은 해석에 따라야 한다.

Claims (13)

  1. 정보 처리 장치로부터 인쇄 작업을 수신한 인쇄 서비스로부터 상기 인쇄 작업을 수신하는 서버로서,
    상기 인쇄 서비스에 액세스하도록 구성되는 액세스 유닛;
    상기 인쇄 서비스에 대한 액세스에 관한 조건을 관리하도록 구성되는 조건 관리 유닛;
    상기 인쇄 서비스에 대한 과거 액세스의 상태를 관리하도록 구성되는 액세스 관리 유닛; 및
    과거 액세스의 상태에 기초하여, 상기 인쇄 서비스에 새롭게 액세스하는 것에 의해 상기 조건이 충족되지 않는지를 결정하도록 구성되는 결정 유닛을 포함하고,
    상기 조건이 충족되지 않는다고 결정되는 경우, 상기 액세스 유닛은 상기 인쇄 서비스에 새롭게 액세스하지 않는 서버.
  2. 제1항에 있어서, 상기 조건이 충족되지 않기 때문에 상기 액세스 유닛이 개별 처리를 위해 상기 인쇄 서비스에 액세스하지 않는 경우, 상기 개별 처리를 위한 대기 시간이 경과한 후에, 상기 액세스 유닛은 상기 개별 처리에 관하여 상기 인쇄 서비스에 액세스하려고 재시도하는 서버.
  3. 제2항에 있어서, 상기 액세스 유닛은 상기 개별 처리의 우선순위 레벨에 기초하여 상기 대기 시간의 길이를 결정하는 서버.
  4. 제2항에 있어서, 상기 개별 처리가 상기 인쇄 서비스로부터 인쇄 데이터를 수신하는 것인 경우, 상기 액세스 유닛은 상기 인쇄 데이터를 수신하기 위해 걸리는 예상 시간에 기초하여 상기 대기 시간을 결정하는 서버.
  5. 제2항에 있어서, 상기 액세스 유닛은 인쇄의 실행 전에 상기 인쇄 작업에 관련하여 수행되는 처리를 위한 대기 시간을 인쇄의 실행 후에 상기 인쇄 작업에 관련하여 수행되는 처리를 위한 대기 시간보다 짧게 설정하는 서버.
  6. 제2항에 있어서, 상기 액세스 유닛은 인쇄의 실행 전에 상기 인쇄 작업에 관련하여 수행되는 처리를 위한 대기 시간을 상기 인쇄 작업에 관련없는 처리를 위한 대기 시간보다 짧게 설정하는 서버.
  7. 제2항에 있어서, 상기 개별 처리를 수행하기 위해 상기 인쇄 서비스에 액세스하는 것에 의해 상기 조건이 충족되지 않는다고 결정된 후에, 상기 액세스 유닛은 상기 개별 처리를 위한 대기 시간을 결정하는 서버.
  8. 제2항에 있어서, 개별 처리를 수행하기 위한 액세스가 임계 시간 또는 임계 횟수 동안 행해지지 않는 경우, 상기 액세스 유닛은 상기 개별 처리를 위한 대기 시간을 단축시키는 서버.
  9. 제1항에 있어서,
    상기 서버는 상기 인쇄 서비스를 포함하는 복수의 인쇄 서비스들 각각으로부터 인쇄 작업을 수신하고,
    상기 조건 관리 유닛은, 상기 복수의 인쇄 서비스들 각각에 대해, 개별 인쇄 서비스에 대한 과거 액세스의 상태를 관리하고,
    상기 액세스 관리 유닛은, 상기 복수의 인쇄 서비스들 각각에 대해, 개별 인쇄 서비스에 대한 액세스에 관한 조건을 관리하는 서버.
  10. 제1항에 있어서, 상기 인쇄 서비스에 대한 액세스를 대기하는 복수의 프로세스들이 존재하고 상기 인쇄 서비스에 대한 액세스에 관한 제2 조건이 충족되지 않는 경우, 상기 액세스 유닛은 상기 복수의 프로세스들 중에서 더 높은 우선순위 레벨을 갖는 처리에 대해 상기 인쇄 서비스에 먼저 액세스하는 서버.
  11. 제1항에 있어서, 상기 조건은 단위 시간 당 상기 인쇄 서비스에 대한 액세스의 횟수가 상한을 초과하지 않는 조건을 포함하는 서버.
  12. 제1항 내지 제11항 중 어느 한 항에 따른 서버의 각각의 유닛으로서 컴퓨터로 하여금 기능하게 하기 위한, 컴퓨터 판독가능 기록 매체에 저장된, 컴퓨터 프로그램.
  13. 정보 처리 장치로부터 인쇄 작업을 수신한 인쇄 서비스로부터 상기 인쇄 작업을 수신하기 위한 서버를 제어하는 방법으로서,
    상기 인쇄 서비스에 액세스하는 단계;
    상기 인쇄 서비스에 대한 액세스에 관한 조건을 관리하는 단계;
    상기 인쇄 서비스에 대한 과거 액세스의 상태를 관리하는 단계; 및
    과거 액세스의 상태에 기초하여, 상기 인쇄 서비스에 새롭게 액세스하는 것에 의해 상기 조건이 충족되지 않는지를 결정하는 단계를 포함하고,
    상기 조건이 충족되지 않는다고 결정되는 경우에, 상기 인쇄 서비스는 상기 인쇄 서비스에 액세스하는 단계에서 새롭게 액세스되지 않는 방법.
KR1020230020480A 2022-02-25 2023-02-16 서버, 그 제어 방법, 및 컴퓨터 프로그램 KR20230127897A (ko)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
KR20230127897A true KR20230127897A (ko) 2023-09-01

Family

ID=87726741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230020480A KR20230127897A (ko) 2022-02-25 2023-02-16 서버, 그 제어 방법, 및 컴퓨터 프로그램

Country Status (4)

Country Link
US (1) US12056409B2 (ko)
JP (1) JP2023124559A (ko)
KR (1) KR20230127897A (ko)
CN (1) CN116661710A (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4472944B2 (ja) 2003-05-23 2010-06-02 インターナショナル・ビジネス・マシーンズ・コーポレーション リクエスト負荷調整装置及び方法、プログラム、並びに性能データ収集方法
US8199348B2 (en) * 2008-11-03 2012-06-12 Sharp Laboratories Of America, Inc. Methods and systems for handling files for MFPS utilizing external services
JP7081099B2 (ja) * 2017-09-11 2022-06-07 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法
JP7130929B2 (ja) * 2017-09-11 2022-09-06 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法
JP2022110712A (ja) 2021-01-19 2022-07-29 キヤノン株式会社 情報処理装置、プログラム、および情報処理装置の制御方法
JP2022131426A (ja) 2021-02-26 2022-09-07 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム

Also Published As

Publication number Publication date
US20230273757A1 (en) 2023-08-31
CN116661710A (zh) 2023-08-29
US12056409B2 (en) 2024-08-06
JP2023124559A (ja) 2023-09-06

Similar Documents

Publication Publication Date Title
US8379257B2 (en) System operating under web environment and method of controlling the same
US8493591B2 (en) Job-submission-request apparatus and method for making a request from a plurality of apparatuses
US10264153B2 (en) Information processing apparatus, method for controlling information processing apparatus, image forming apparatus, method for controlling image forming apparatus, and information processing system
JP6179083B2 (ja) 情報処理装置、出力システム及びプログラム
US20190265929A1 (en) Print processing system and method
JP6771991B2 (ja) 印刷装置、印刷装置の制御方法、及びプログラム
US9286008B2 (en) Job management apparatus connected to an external storage via a network, including a storage management unit that determines whether to store job data in the external storage based on predetermined transfer condition
US20160165077A1 (en) Information processing apparatus, management apparatus, method of controlling information processing apparatus, method of controlling management apparatus, and storage medium
JP2015121989A (ja) ネットワークデバイス、ネットワークデバイスの制御方法およびそのプログラム
US20130088751A1 (en) Job management apparatus, job control system, and job control method
US20200278817A1 (en) Image forming system, image forming apparatus, output method, and storage medium
US11385846B2 (en) Printing system, server, and printing method
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
US12073133B2 (en) System and method for providing printing service and configured to change printer connection destination
KR20230127897A (ko) 서버, 그 제어 방법, 및 컴퓨터 프로그램
JP2016177438A (ja) 画像形成装置及びプログラム
JP6119520B2 (ja) プリントシステム、画像形成装置、管理方法、および制御プログラム
JP6127586B2 (ja) 情報処理システムおよび情報処理方法
JP2017049660A (ja) サーバ装置、制御システム、制御方法、及び、プログラム
JP2023124560A (ja) サーバ、その制御方法及びプログラム
JP7500206B2 (ja) 情報処理装置
JP7535234B2 (ja) 画像形成装置
US20240012591A1 (en) System and method for providing printing service