도 1은 제1 예시적인 실시예에 따른 클라우드 프린트 서비스를 사용하는 클라이언트 컴퓨터(정보 처리 장치)의 하드웨어 구성의 일례를 도시하는 블록도이다. 이제, 하드웨어 구성이 상세히 설명될 것이다.
CPU(central processing unit)(101)는 메인 저장 디바이스(102)의 ROM(read-only memory)(1021) 또는 RAM(random access memory)(1022)에, 또는 보조 저장 디바이스(105)에 저장된 프로그램들에 기초하여 정보 처리 장치의 전체 동작을 제어한다.
RAM(1022)은 CPU(101)가 각종 프로세스들을 수행하기 위한 작업 영역으로서도 사용된다. 보조 저장 디바이스(105)는 클라우드 드라이버(1050), 운영 체제(OS)(1053), 애플리케이션(1051), 인쇄 확장 애플리케이션(1052), 및 다른 데이터를 저장한다. 이하에서는, 메인 저장 디바이스(102)와 보조 저장 디바이스(105)를 총괄하여 저장 디바이스라고 지칭한다.
마우스와 터치 패널로 대표되는 포인팅 디바이스(109), 및 키보드(108)와 같은 입력 디바이스들은 입력 인터페이스(I/F)(103)를 통해 시스템 버스(107)에 접속되고, 사용자가 컴퓨터에 각종 지시를 하기 위해 사용된다.
출력 I/F(104)는 정보 처리 장치의 외부에 데이터를 출력하기 위한 인터페이스이며, 모니터(110)와 패널(111)과 같은 출력 디바이스들에 데이터를 출력하는데 사용된다. 클라이언트 컴퓨터(100)는 촬영 기능을 가지며 카메라(112)가 제공된다.
클라이언트 컴퓨터(100)는 통신 I/F(106)를 통해 네트워크(150)를 거쳐 도 2를 참조하여 후술하는 프린터(200) 및 각 시스템에 접속된다. 시스템 버스(107)는 각각의 I/F 또는 각각의 모듈과 데이터를 교환하는데 사용되는 공통 데이터 시스템 버스이다.
도 2는 본 예시적인 실시예에 따른 네트워크 환경을 간략화한 인쇄 시스템을 도시하는 개략도이다.
클라이언트 컴퓨터(100)와 프린터(200)는 각각 네트워크(150)에 접속된다. 클라이언트 컴퓨터(100)와 프린터(200)는 동일한 인트라-네트워크에 접속되어, 서로 통신할 수 있다.
프린터(201)와 프린터(202)는 각각 다른 인트라넷(204)에 접속된다. 네트워크(150)는 인터넷(203)을 통해 인트라넷(204)에 접속된다. 프린터 드라이버 배포 서비스(300), 인쇄 확장 애플리케이션 배포 서비스(400), 및 클라우드 프린트 서비스(500)는 각각 인터넷(203)에 접속된다.
프린터 드라이버 배포 서비스(300)는 하나 이상의 정보 처리 장치로 구성된 서버 시스템이다. 프린터 드라이버 배포 서비스(300)는 웹 기반으로 프린터 드라이버를 클라이언트 컴퓨터(100)에 배포하기 위한 서비스를 실행한다. 클라이언트 컴퓨터(100)는 WSD(Web Services for Devices) 또는 IPP(Internet Printing Protocol)와 같은 프로토콜에 기초하여 프린터(200)를 검색한다. 클라이언트 컴퓨터(100)는 발견된 프린터(200)에 관한 프린터 식별 정보 및 모델 정보에 기초하여 식별된 프린터 드라이버를 프린터 드라이버 배포 서비스(300)로부터 취득하고 설치한다. 프린터 드라이버 배포 서비스(300)에 등록된 각각의 프린터 드라이버는 프린터 벤더에 의해 갱신된다. 클라이언트 컴퓨터(100)는 프린터 드라이버 배포 서비스(300)로부터 새로운 버전의 프린터 드라이버를 자동으로 또는 수동으로 취득하고, 설치된 프린터 드라이버를 취득된 프린터 드라이버로 갱신한다.
인쇄 확장 애플리케이션 배포 서비스(400)는 클라이언트 컴퓨터(100)에 의해 실행될 애플리케이션을 배포하기 위한 서비스를 실행하는 하나 이상의 정보 처리 장치로 구성된 서버 시스템이다. 인쇄 확장 애플리케이션은 클라우드 프린트 서비스 또는 OS에 의해 제공되는 인쇄 기능을 확장하기 위한 애플리케이션이다. 클라우드 프린트 서비스 또는 OS에 의해 제공되는 인쇄 기능에서는, 임의의 벤더의 프린터들에서 사용될 수 있는, 컬러 모드 기능 및 양면 인쇄 기능과 같은 표준 기능들을 위한 인쇄 설정들만이 이루어질 수 있다. 인쇄 확장 애플리케이션을 사용함으로써, 클라우드 프린트 서비스 또는 OS에 의해 제공되는 인쇄 기능에 설정될 수 없는, 스테이플리스(stapleless) 바인딩, 포스터 인쇄, 및 새들 스티치(saddle stitch) 바인딩과 같은 다른 인쇄 기능들을 사용할 수 있게 한다.
인쇄 확장 애플리케이션(1052)의 설치를 요청하는 사용자 조작을 수신할 때, 클라이언트 컴퓨터(100)는 인쇄 확장 애플리케이션 배포 서비스(400)에 액세스하고 인쇄 확장 애플리케이션(1052)을 설치한다. 애플리케이션 식별자가 클라이언트 컴퓨터(100)에 설치된 프린터 드라이버의 정보(Inf) 파일에 기술되어 있는 경우, 인쇄 확장 애플리케이션(1052)이 설치된다. 애플리케이션 식별자는 인쇄 확장 애플리케이션 배포 서비스(400)에 등록된 애플리케이션들 중에서 클라우드 프린트 서비스(500)에 등록된 프린터에 대응하는 애플리케이션을 식별하기 위한 정보이다. 클라이언트 컴퓨터(100)는 인쇄 확장 애플리케이션 배포 서비스(400)에 액세스하고, Inf 파일에 기술된 식별자에 대응하는 인쇄 확장 애플리케이션(1052)을 설치한다.
클라우드 프린트 서비스(500)는 하나 이상의 정보 처리 장치로 구성된 서버 시스템으로서 클라우드 시스템 상에 구축되는 서비스이다. 본 예시적인 실시예에서, 클라우드 프린트 서비스(500)는 각각의 인트라넷에 접속가능하고, 또한 인터넷(203)을 통해 클라이언트 컴퓨터(100), 프린터(200), 프린터(201), 및 프린터(202)에 접속가능하다. 클라우드 프린트 서비스(500)에서, 계정들은 사용자 ID(identification)와 패스워드를 사용하여 관리된다. 클라이언트 컴퓨터(100)는 사용자에 의해 입력된 계정 정보를 사용하여 클라우드 프린트 서비스(500)에 액세스한다.
본 예시적인 실시예에서는, 클라이언트 컴퓨터(100)가 클라우드 프린트 서비스(500) 및 인쇄 확장 애플리케이션 배포 서비스(400)에 대한 URL(Uniform Resource Locator)을 미리 저장하고 있다고 가정한다. 클라우드 프린트 서비스(500)는 프린터 드라이버 배포 서비스(300)에 대한 URL을 미리 저장한다.
도 3a는 프린터 드라이버 배포 서비스(300)에서의 기능 블록들의 일례를 도시한다. 프린터 드라이버 배포 서비스(300)는 도 1에 도시된 정보 처리 장치와 유사한 구성을 갖는 하나 이상의 정보 처리 장치로 구성된 서버 시스템이다. 프린터 드라이버 등록 유닛(301)과 프린터 드라이버 응답 유닛(302)은 프린터 드라이버 배포 서비스(300)를 구성하는 각각의 정보 처리 장치의 CPU가 프로그램을 실행함으로써 실현된다.
프린터 드라이버 배포 서비스(300)는 인터넷(203)을 통해 클라우드 시스템 상에 존재하는 서비스이다. 프린터 드라이버 배포 서비스(300)는 프린터 드라이버에 대한 패키지를 외부 서비스 및 클라이언트 컴퓨터(100)에 배포할 수 있다. 프린터 드라이버에 대한 패키지의 예들은 프린터 드라이버 및 드라이버 확장 패키지를 포함한다.
외부 서비스 및 클라이언트 컴퓨터(100)로부터 프린터 드라이버에 대한 패키지를 등록하라는 지시를 수신하면, 프린터 드라이버 등록 유닛(301)는 업로드된 패키지를 프린터 드라이버 데이터베이스(310)에 등록한다. 프린터 드라이버 등록 유닛(301)은 예를 들어, 프린터 벤더 등에 의해 배포된 프린터 드라이버 및 프린터 드라이버를 확장하기 위한 드라이버 확장 패키지를 프린터 드라이버 데이터베이스(310)에 등록한다.
외부 서비스 및 클라이언트 컴퓨터(100)로부터 프린터 드라이버 및 확장 패키지를 취득하기 위한 요청을 수신하면, 프린터 드라이버 응답 유닛(302)은 프린터 드라이버 데이터베이스(310)로부터 대응하는 패키지를 취득하고 응답한다. 예를 들어, 인쇄 큐가 생성된 프린터(200)에 대응하는 프린터 드라이버를 취득하기 위한 요청이 클라이언트 컴퓨터(100)로부터 수신되었다고 가정한다. 프린터 드라이버 응답 유닛(302)은 프린터 드라이버 데이터베이스(310)로부터 프린터(200)에 대응하는 프린터 드라이버를 판독하고, 이 프린터 드라이버를 클라이언트 컴퓨터(100)에 송신한다. 프린터 드라이버 응답 유닛(302)은 설치된 프린터 드라이버를 확장하기 위한 드라이버 확장 패키지를 취득하기 위한 요청을 클라이언트 컴퓨터(100)로부터 수신할 수도 있다. 이 경우, 프린터 드라이버 응답 유닛(302)은 프린터 드라이버 데이터베이스(310)로부터 요청된 프린터 드라이버에 대응하는 드라이버 확장 패키지를 판독하고, 드라이버 확장 패키지를 클라이언트 컴퓨터(100)에 송신한다.
프린터 드라이버 데이터베이스(310)는 도 5b를 참조하여 후술하는 데이터베이스를 저장한다. 프린터 드라이버 데이터베이스(310)는 각종 프린터에 대응하는 프린터 드라이버들뿐만 아니라, 드라이버 확장 패키지(303)도 저장한다.
드라이버 확장 패키지(303)는 프린터 드라이버 배포 서비스(300)로부터 배포되는 패키지의 일례이다. 드라이버 확장 패키지(303)는 드라이버 정보 유닛(304) 및 디바이스 능력 정보 유닛(305)을 포함한다. 드라이버 정보 유닛(304)은 프린터를 식별하기 위한 하드웨어 ID(HWID), 호환가능 ID(COID), 패키지가 드라이버 확장 패키지라는 것을 나타내는 정보, 및 드라이버 확장 패키지(303)의 버전과 같은 정보를 포함한다. 디바이스 능력 정보 유닛(305)은 대응하는 프린터(200)에 관한 디바이스 능력 정보 및 충돌 정보(confliction information)를 포함한다. 디바이스 능력 정보는 예를 들어, 프린터(200)가 컬러 인쇄를 지원하는지 또는 양면 인쇄를 지원하는지를 나타내는 정보이다. 드라이버 확장 패키지(303)에 포함되는 능력 정보는 전술한 능력 정보뿐만 아니라, 예를 들어, 벤더 고유의 스테이플리스 바인딩이 수행될 수 있는지, 새들 스티치 바인딩이 수행될 수 있는지, 및 각종 용지를 사용하여 인쇄하는 혼합된 용지 인쇄가 수행될 수 있는지를 나타내는 정보를 포함한다.
도 3b는 인쇄 확장 애플리케이션 배포 서비스(400)에서의 기능 블록들의 일례를 도시한다. 애플리케이션 등록 유닛(401)과 애플리케이션 응답 유닛(402)은 인쇄 확장 애플리케이션 배포 서비스(400)를 구성하는 하나 이상의 정보 처리 장치의 CPU가 프로그램을 실행함으로써 실현된다.
인쇄 확장 애플리케이션 배포 서비스(400)는 인터넷(203)을 통해 클라우드 시스템 상에 존재하는 서비스이다. 인쇄 확장 애플리케이션 배포 서비스(400)는 인쇄 확장 애플리케이션(1052)을 외부 서비스 및 클라이언트 컴퓨터(100)에 배포할 수 있다. 인쇄 확장 애플리케이션 배포 서비스(400)는 인쇄 확장 애플리케이션(1052) 뿐만 아니라 인쇄 확장 애플리케이션(1052) 이외의 임의의 애플리케이션도 배포할 수 있다.
외부 서비스 및 클라이언트 컴퓨터(100)로부터 인쇄 확장 애플리케이션(1052)을 등록하라는 지시를 수신하면, 애플리케이션 등록 유닛(401)은 업로드된 애플리케이션을 애플리케이션 데이터베이스(410)에 등록한다.
외부 서비스 또는 클라이언트 컴퓨터(100)로부터 인쇄 확장 애플리케이션(1052)을 취득하기 위한 요청을 수신하면, 애플리케이션 응답 유닛(402)은 애플리케이션 데이터베이스(410)로부터 대응하는 애플리케이션을 취득하고 요청을 전송한 외부 서비스 또는 클라이언트 컴퓨터(100)에 애플리케이션을 송신한다.
애플리케이션 데이터베이스(410)는 인쇄 설정 애플리케이션에 관한 정보가 등록된 데이터베이스이다. 인쇄 설정 애플리케이션은 벤더 등에 의해 배포되고, 인쇄 설정 애플리케이션은 외부 서비스 또는 클라이언트 컴퓨터(100)로부터 등록 요청을 수신한다. 애플리케이션 데이터베이스(410)에 등록된 정보는 도 5c를 참조하여 아래에 상세히 설명될 것이다.
본 예시적인 실시예에 따른 인쇄 확장 애플리케이션(1052)은 설정 파일 유닛(10521)과 실행 파일 유닛(10522)을 포함한다. 설정 파일 유닛(10521)은 인쇄 확장 애플리케이션(1052)을 식별하기 위한 애플리케이션 식별 정보, 및 대응하는 프린터(200)를 식별하기 위한 HWID 및 COID와 같은 정보를 갖는다. 실행 파일 유닛(10522)은 인쇄 확장 애플리케이션(1052)을 실행한다. 실행 파일 유닛(10522)은 인쇄 설정 사용자 인터페이스(UI), 인쇄 실행시의 인쇄 작업에 대한 처리, 및 외부 서비스로부터의 푸시 통지를 수신하고, 인쇄 설정 화면을 표시할 수 있다. 본 예시적인 실시예에서, 인쇄 확장 애플리케이션(1052)의 실행 파일 유닛(10522)은 인쇄 데이터에 기초하여 PDL(page description language) 데이터를 생성하기 위한 모듈을 포함한다. 실행 파일 유닛(10522)은 인쇄 확장 애플리케이션(1052)에 의해 제공되는 인쇄 설정 화면 상에 행해진 인쇄 설정이 반영된 PDL 데이터를 생성한다. 그 후, 실행 파일 유닛(10522)은 생성된 PDL 데이터를 클라우드 프린트 서비스(500)에 송신한다.
인쇄 확장 애플리케이션(1052)은 PDL 데이터를 생성함으로써, 표준 기능들 이외의 기능에 대응하고 클라우드 프린트 서비스(500)에 의해 해석될 수 없는, IPP와 같은, 아이템에 대해 인쇄 설정이 행해지는 경우에도, 인쇄 설정이 반영된 인쇄 데이터를 생성할 수 있게 한다.
도 3c는 본 예시적인 실시예에 따른 클라우드 프린트 서비스(500)에서의 기능 블록들의 일례를 도시한다. 각각의 기능 블록은 클라우드 프린트 서비스(500)를 구성하는 하나 이상의 정보 처리 장치의 CPU가 프로그램을 실행함으로써 실현된다.
클라우드 프린트 서비스(500)는 인터넷(203)을 통해 클라우드 시스템 상에 존재하는 서비스이고, 클라우드 프린트 서비스(500)는 인쇄에 관련된 기능들을 제공할 수 있다. 본 예시적인 실시예에서, 클라우드 프린트 서비스(500)는 프린터 등록 유닛(501), 인쇄 큐 생성 유닛(502), 프린터 리스트 생성 유닛(503), 검색 응답 유닛(504), 및 프린터 데이터베이스(510)의 기능들을 포함한다. 클라우드 프린트 서비스(500)는 인쇄 작업 관리 유닛(505), 인쇄 작업 생성 유닛(506), 및 인쇄 작업 저장 영역(511)의 기능들을 추가로 포함한다. 이러한 기능들은 클라우드 프린트 서비스(500)와 협력하여 동작되도록 다른 클라우드 프린터 서비스에 제공될 수 있다.
이하, 클라우드 프린트 서비스(500)에 프린터(200)가 등록되고 프린터(200)를 사용하여 인쇄가 실행되는 구성이 예로서 설명될 것이다. 그러나, 이 구성은 프린터(200)가 클라우드 프린트 서비스(500)에 접속가능한 프린터(201) 또는 프린터(202)로 대체될 때에도 유사한 처리에 의해 구현될 수 있다.
프린터 등록 유닛(501)은 프린터(200)로부터 프린터 등록 지시를 수신하면, 인쇄 큐 생성 유닛(502)으로 하여금 인쇄 큐를 생성하게 하고, 생성된 인쇄 큐 및 프린터 식별 정보를 서로 연관시켜 프린터 데이터베이스(510)에 등록한다. 본 명세서에서는 프린터에 대응하는 인쇄 큐 및 프린터 식별 정보가 서로 연관되어 등록되어 있는 상태를 "프린터가 등록되어 있다"라고 설명한다. 각종 속성들이 등록된 프린터에 추가될 수 있다. 각종 속성들의 예들은 프린터가 배치된 위치를 포함한다.
인쇄 큐 생성 유닛(502)은 프린터 등록 유닛(501)의 제어 하에 클라우드 프린트 서비스(500) 상의 인쇄 큐를 생성한다. 클라이언트 컴퓨터(100)가 인쇄 지시를 클라우드 프린트 서비스(500)에 송신할 때, 인쇄 큐 생성 유닛(502)에 의해 생성된 인쇄 큐에 인쇄 작업이 등록된다.
프린터 리스트 생성 유닛(503)은 등록된 프린터들의 리스트를 생성한다. 프린터 리스트 생성 유닛(503)은 예를 들어, 클라우드 프린트 서비스(500)에 등록된 프린터들의 리스트가 클라이언트 컴퓨터(100)로부터 요청될 때, 프린터 리스트를 생성한다.
검색 응답 유닛(504)은 클라이언트 컴퓨터(100)로부터의 클라우드 프린트 서비스(500)에 대한 프린터 검색에 기초하여, 등록된 프린터들에 관한 정보를 클라이언트 컴퓨터(100)에 반환한다. 검색 응답 유닛(504)은 검색 결과를 프린터 리스트 생성 유닛(503)에 전달하고, 프린터 리스트 생성 유닛(503)으로 하여금 프린터 리스트를 생성하게 한다. 검색 응답 유닛(504)은 프린터 리스트 생성 유닛(503)에 의해 생성된 프린터 리스트를 클라이언트 컴퓨터(100)에 반환한다.
인쇄 작업 관리 유닛(505)은 클라이언트 컴퓨터(100)로부터 화상 데이터 및 인쇄 설정을 수신하고, 인쇄 작업 생성 유닛(506)에 의해 생성된 인쇄 작업을 프린터(200)에 송신한다. 인쇄 작업 관리 유닛(505)은 인쇄 작업 생성 유닛(506)에 의해 생성된 인쇄 작업을 인쇄 작업 저장 영역(511)에 저장한다.
프린터 데이터베이스(510)는 클라우드 프린트 서비스(500)에 등록된 프린터들에 관한 정보가 저장되는 데이터베이스이다. 프린터 데이터베이스(510)에 저장된 내용은 도 5a를 참조하여 이하에서 설명될 것이다.
이제, 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 처리에 대해 설명할 것이다.
도 4는 본 예시적인 실시예에 따른 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 처리를 도시하는 시퀀스도이다. 본 예시적인 실시예에서, 클라이언트 컴퓨터(100)는 프린터(200)에 액세스하고 프린터(200)를 조작하여 프린터(200)를 클라우드 프린트 서비스(500)에 등록하라는 요청을 송신한다.
프린터(200)는 클라우드 프린트 기능(클라우드 프린트 서비스로부터 인쇄 작업을 수신하고 인쇄를 실행하기 위한 기능) 및 클라이언트 컴퓨터(100)로부터 프린터(200)를 조작하기 위한 웹 UI 기능을 지원한다. 웹 UI 기능은 UI를 생성하고 네트워크 상에서 UI를 공개하기 위한 기능이다. 클라이언트 컴퓨터(100)는 클라우드 프린트 클라이언트 기능(클라우드 프린트 서비스에 파일을 송신하기 위한 기능) 및 웹 UI(예를 들어, 웹 브라우저)를 조작하기 위한 웹 UI 클라이언트 기능을 지원한다. 클라우드 프린트 서비스(500)는 인터넷(203) 상의 클라우드 프린트 서비스를 나타낸다.
사용자는 클라이언트 컴퓨터(100)의 웹 UI 클라이언트 기능을 사용하여 프린터(200)의 웹 UI를 열고, 웹 UI 상의 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 버튼을 선택한다. 버튼이 선택될 때, 단계 S410에서, 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 요청을 프린터(200)에 송신한다.
단계 S410에서 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 요청을 수신하면, 단계 S411에서, 프린터(200)는 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다. 따라서, 본 예시적인 실시예에서는, 클라우드 프린트 서비스(500)에 프린터(200)를 등록하기 위한 요청이 클라이언트 컴퓨터(100)의 웹 UI 클라이언트 기능으로부터 송신된다. 이 요청은 또한 프린터(200)에 포함된, 패널과 같은 입력 디바이스를 조작시킴으로써 송신될 수 있다. 이 경우, 요청은 클라이언트 컴퓨터(100)로부터 송신되지 않고, 프린터(200)는 프린터 등록 요청을 클라우드 프린트 서비스(500)에 송신한다.
단계 S411에서, 클라우드 프린트 서비스(500)에 송신되는 프린터 등록 요청은 프린터(200)에 관한 정보를 포함한다. 프린터(200)에 관한 정보는 프린터(200)의 명칭, 프린터(200)의 모델을 식별하기 위한 정보(HWID), 및 잉크젯 프린터 또는 레이저 프린터 등의 프린터(200)의 타입을 식별하기 위한 COID를 포함한다. 프린터(200)에 관한 정보는 또한 IP(Internet Protocol) 어드레스 정보 및 IPP 등으로 표준화된 기능들과 관련된 능력 정보 파일을 포함한다.
단계 S411에서 등록 요청을 수신하면, 단계 S412에서, 클라우드 프린트 서비스(500)는 인쇄 큐 생성 유닛(502)으로 하여금 인쇄 작업을 프린터(200)에 송신하기 위한 인쇄 큐를 작성하게 한다. 프린터 등록 유닛(501)은 프린터 정보 및 능력 정보를 프린터 데이터베이스(510)에 등록하고, 등록 요청이 이루어진 프린터에 대한 기록을 생성한다. 또한, 인쇄 큐 생성 유닛(502)은 인쇄 큐를 생성한다. 인쇄 큐는 프린터(200)의 명칭(디바이스 명칭), 프린터(200)의 모델을 식별하기 위한 HWID 및 COID, 및 프린터(200)의 IP 어드레스 등의 프린터(200)에 관한 수신된 정보를 사용하여 작성된다.
단계 S413에서, 클라우드 프린트 서비스(500)는 드라이버 확장 패키지(303)를 다운로드하기 위한 요청을 프린터 드라이버 배포 서비스(300)에 송신한다. 이 요청은 클라우드 프린트 서비스(500)에 등록된 프린터에 대응하는 드라이버 확장 패키지(303)를 수신하기 위한 요청이다. 클라우드 프린트 서비스(500)는 드라이버 확장 패키지(303)를 다운로드하기 위한 요청 및 프린터(200)를 식별하기 위한 HWID 및 COID를 프린터 드라이버 배포 서비스(300)에 송신한다.
단계 S414에서, 프린터 드라이버 배포 서비스(300)는 수신된 HWID 및 COID에 기초하여 대응하는 드라이버 확장 패키지(303)를 클라우드 프린트 서비스(500)에 송신한다. 프린터 드라이버 배포 서비스(300)는 도 5b에 도시된 프린터 드라이버 데이터베이스(310)에 기초하여, 수신된 HWID와 매칭되고 드라이버 확장 패키지에 대한 확장 플래그가 "TRUE"를 나타내는 드라이버 확장 패키지를 식별한다. 수신된 HWID와 일치하고 확장 플래그가 "TRUE"를 나타내는 드라이버 확장 패키지가 식별될 수 없는 경우, 프린터 드라이버 배포 서비스(300)는 수신된 COID와 매칭되고 확장 플래그가 "TRUE"를 나타내는 드라이버 확장 패키지를 식별한다. 그 후, 프린터 드라이버 배포 서비스(300)는 식별된 드라이버 확장 패키지를 클라우드 프린트 서비스(500)로 송신한다. 드라이버 확장 패키지가 HWID에만 기초하여 식별될 수 있는 경우, 단계 S413에서, HWID만이 프린터 드라이버 배포 서비스(300)에 송신될 수 있다.
이제, 프린터 데이터베이스가 도 5b를 참조하여 설명될 것이다. 도 5b는 프린터 드라이버 배포 서비스(300)에 보유된 프린터 드라이버 데이터베이스(310)의 일례를 도시한다. 아이템 "패키지 명칭"은 등록 처리 동안 드라이버 정보 유닛(304)으로부터 취득된 패키지의 명칭을 나타낸다. 아이템 "HWID"는 프린터(200)의 모델을 식별하는데 사용되는 식별 정보(프린터의 모델 고유의 식별 정보)를 나타낸다. 아이템 "COID"는 드라이버를 사용하는 프린터의 카테고리를 식별하기 위한 식별 정보를 나타낸다. 아이템 "패키지"는 드라이버 확장 패키지(303)를 포함하는 패키지의 명칭을 나타낸다. 아이템 "패키지"에서, 정보가 기록에 대응하는 드라이버 또는 드라이버 확장 패키지를 식별하는데 사용될 수 있는 한, 파일 경로와 같은 임의의 정보가 사용될 수 있다. 아이템 "확장"은 드라이버 확장 패키지(303)가 확장 파일인지를 나타낸다. 확장이 "FALSE"를 나타내는 경우, 패키지는 확장 패키지가 아니라 프린터 드라이버이다. 대조적으로, 확장이 "TRUE"를 나타내는 경우, 패키지는 프린터 드라이버가 아니라, 드라이버를 확장하기 위한 패키지이다. 아이템 "애플리케이션 식별자"는 드라이버 확장 패키지(303)에 저장된 능력 정보를 사용하여 인쇄 설정 화면을 확장하는데 사용되는 애플리케이션에 관한 식별 정보를 나타낸다. 본 예시적인 실시예에서, 드라이버 확장 패키지(303)만이 애플리케이션 식별자를 포함하지만, 프린터 드라이버도 애플리케이션 식별자를 포함할 수 있다.
도 5b에 도시된 프린터 드라이버 데이터베이스(310)는 프린터 드라이버 등록 유닛(301)에 의해 갱신된다. 프린터 드라이버 데이터베이스(310)에 패키지가 등록되면, 프린터 드라이버 등록 유닛(301)은 드라이버 정보 유닛(304)을 분석한다. 프린터 드라이버 등록 유닛(301)은 패키지 명칭, HWID 및 COID, 및 패키지가 드라이버 확장 패키지인지를 나타내는 정보를 취득하고, 취득된 정보를 드라이버 확장 패키지(303)와 함께 프린터 드라이버 데이터베이스(310)에 등록한다.
단계 S415에서, 클라우드 프린트 서비스(500)는 다운로드된 드라이버 확장 패키지(303) 내의 디바이스 능력 정보 유닛(305)을 분석하고, 인쇄 큐를 확장한다. 클라우드 프린트 서비스(500)는 드라이버 확장 패키지(303) 내의 디바이스 능력 정보 유닛(305)으로부터 프린터(200)에 관한 능력 정보를 취득한다. 그 후, 클라우드 프린트 서비스(500)는 프린터 데이터베이스(510)의 프린터 정보의 인쇄 큐에 대응하는 프린터 능력 정보를 갱신한다. 단계 S415에서, 클라우드 프린트 서비스(500)는 인쇄 큐와 연관된 능력 정보를 드라이버 확장 패키지(303)로부터 취득된 능력 정보로 덮어쓰기한다. 클라우드 프린트 서비스(500)는 드라이버 확장 패키지(303)로부터 취득된 능력 정보에서 인쇄 큐와 연관되지 않은 설정 아이템에 관련된 능력 정보를, 인쇄 큐에 대응하는 능력 정보에 추가할 수 있다. 대안적으로, 클라우드 프린트 서비스(500)는 프린터(200)로부터 프린터(200)의 하드웨어 구성을 나타내는 정보를 취득할 수 있고, 드라이버 확장 패키지(303)에 포함된 하드웨어 구성 정보 및 능력 정보에 기초하여 능력 정보를 결정할 수 있다.
전술한 처리를 사용함으로써, 인쇄 큐는 클라우드 프린트 서비스(500)에 등록된 프린터(200)에 대해 벤더 고유의 디바이스 능력 정보로 확장된다. 단계 S416에서, 프린터 데이터베이스(510)는 프린터(200)에 관한 확장 정보로 갱신된다. 전술한 처리에 의해, 드라이버 확장 패키지(303)에 의해 확장된 능력 정보는 인쇄 큐에 대응하는 능력 정보로서 프린터 데이터베이스(510)에 등록된다.
도 5a는 클라우드 프린트 서비스(500)에 보유된 프린터 데이터베이스(510)의 일례를 도시한다. 아이템 "디바이스 명칭"은 등록 처리 동안 프린터(200)로부터 취득된 프린터의 명칭(디바이스 명칭)을 나타낸다. 아이템 "HWID"는 프린터(200)의 모델을 식별하는데 사용되는 식별자(프린터의 모델 고유의 식별자)를 나타낸다. 아이템 "COID"는 잉크젯 프린터 또는 레이저 빔 프린터와 같은 프린터(200)의 카테고리를 식별하기 위한 식별 정보를 나타낸다. 아이템 "IP 어드레스"는 접속될 프린터의 IP 어드레스를 나타낸다. 아이템 "패키지"는 프린터에 대응하는 인쇄 큐를 확장하는데 사용되는 드라이버 확장 패키지(303)의 패키지 명칭을 나타낸다. 인쇄 큐가 확장되지 않으면, 아이템 "패키지"는 "null"을 나타낸다. 도시되지는 않았지만, 디바이스 능력 정보 등은 JSON(Javascript Object Notation)의 포맷으로 데이터베이스에 등록된다. 프린터 능력 정보가 드라이버 확장 패키지(303)에 의해 확장되면, 확장된 능력 정보가 저장된다. 디바이스 능력 정보를 저장하기 위한 데이터 포맷은 JSON으로 한정되지 않고, 그 대신에 임의의 다른 데이터 포맷일 수 있다. 프린터 정보 및 프린터를 사용할 수 있는 사용자에 관한 정보는 도 5a에 도시된 프린터 데이터베이스(510)에 서로 연관되어 저장될 수 있다.
도 9는 인쇄 큐와 연관되어 저장될 능력 정보의 일례를 도시한다. 예를 들어, 능력 정보는 JSON의 포맷으로 등록되고, 각 설정은 기능을 나타낸다. 각각의 기능은 시퀀스 포맷으로 설정될 수 있는 옵션들을 포함한다.
도 9에 도시된 표준 능력 정보(901)는 IPP 등에 의해 정의된다. 설정 아이템 "Duplex"는 양면 기능에 관련되고, 옵션으로서, 양면 인쇄를 나타내는 "Duplex" 및 단면 인쇄를 나타내는 "One-Sided"를 포함한다. 설정 아이템 "Color"는 컬러 인쇄에 관련되고, 옵션으로서, 흑백 인쇄를 나타내는"Mono"와 컬러 인쇄를 나타내는 "Color"를 포함한다. 설정 아이템 "Orientation"은 인쇄에 사용되는 각 용지의 방향에 관한 것이고, 옵션으로서, 세로 방향을 나타내는 "Portrait"와 가로 방향을 나타내는 "Landscape"를 포함한다. 능력 정보(901)는 IPP 등에 의해 정의된 표준 설정 아이템들 또는 옵션들 중 하나이다. 능력 정보(901)는 프린터(200)로부터 클라우드 프린트 서비스(500)에 제공될 수 있다. 드라이버 확장 패키지(303)를 사용한 디바이스 능력 정보의 확장은 능력 정보(901)에 기재된 IPP 등에 의해 정의된 표준 설정 아이템들이 벤더 고유의 옵션들을 포함할 수 있게 한다. 예를 들어, 용지 바인딩을 위한 설정 아이템 "Staple"이 확장될 때, 표준 옵션인 좌측 상부 위치에서의 바인딩을 나타내는 "Staple left top" 뿐만 아니라, 새들 스티칭을 나타내는 "Saddle Stitch"도 이루어질 수 있다.
능력 정보(902)는 드라이버 확장 패키지(303)에 의해 확장된 능력 정보이고, 예를 들어, 벤더 고유의 설정 아이템에 관한 능력 정보이다. 능력 정보(902)는 Extension_Setting1 및 Extension_Setting2의 기능들, 및 각각의 기능에 대한 Extension_option1 및 Extension_option2의 옵션들을 포함한다. 확장 설정의 예는 스테플리스 바인딩을 위한 설정, 및 하나의 인쇄 작업에 각종 용지를 사용한, 인쇄하는 혼합된 용지 인쇄를 위한 설정을 포함한다. 혼합된 용지 인쇄 기능이 설정되면, 혼합된 용지 인쇄를 나타내는 문자열이 "Extension_Setting1"에 입력된다. 이 경우, A3 사이즈 및 A4 사이즈의 용지를 사용하는 옵션을 나타내는 문자열이 "Extension_option1"에 입력되고, B4 사이즈 및 B5 사이즈의 용지를 사용하는 옵션을 나타내는 문자열이 "Extension_option2"에 입력된다. 인쇄 확장 애플리케이션(1052)은 도 9에 도시된 파일을 참조하여 벤더 고유의 설정 아이템이 만들어질 수 있는 인쇄 설정 화면을 제공할 수 있다.
다시 도 4를 참조하면, 프린터 데이터베이스(510)에 등록이 완료되면, 단계 S417에서, 클라우드 프린트 서비스(500)는 클라우드 프린트 등록을 위한 등록 URL을 포함하는 클라우드 프린트 서비스 등록 요청 응답 및 등록 URL 제시 요청을 프린터(200)에 송신한다.
단계 S418에서, 프린터(200)는 클라우드 프린트 서비스 등록 요청 응답 및 등록 URL 제시 요청을 수신하고, 프린터(200)는 등록 URL 정보를 출력한다. 단계 S418에서, 프린터(200)는 모니터(110) 상에 URL을 표시하거나, 또는 용지 상에 등록 URL 정보를 인쇄하고, 등록 URL을 사용자에게 통지한다. 프린터(200)는 또한 웹 UI를 통해 등록 URL을 클라이언트 컴퓨터(100)로 전송할 수 있다.
단계 S419에서, 사용자는 프린터(200)로부터 제시된 등록 URL에 위치하는 클라우드 프린트 서비스(500)에 액세스한다. 이 경우, 클라우드 프린트 서비스(500)가 액세스될 수 있는 클라우드 계정에 로그인하는 것이 바람직할 수 있다. 따라서, 사용자는 사용자 ID와 패스워드를 입력하는 것이 바람직할 수 있다.
클라우드 프린트 서비스(500)는 클라우드 계정 및 프린터 정보를 포함하는 등록 URL에 기초하여 사용자를 프린터(200)와 연관시킨다. 사용자를 프린터(200)와 연관시키는 방법의 예들은 프린터 정보를 사용자 토큰과 연관시키는 방법을 포함한다. 그러나, 이 방법은 이들에 특별히 한정되는 것은 아니다. 단계 S420에서, 클라우드 프린트 서비스(500)는 클라우드 프린트 서비스(500)에 관한 정보를 포함하는 사용자 토큰을 프린터(200)에 송신하고, 그 후 프린터(200)를 클라우드 프린트 서비스(500)에 등록하기 위한 처리를 종료한다. 프린터(200)는 사용자 토큰을 사용하여 클라우드 프린트 서비스(500)에 액세스한다.
다음으로, 클라우드 프린트 서비스(500)에 등록된 프린터(200)에 대한 인쇄 큐를 클라이언트 컴퓨터(100)에 생성하고 인쇄 확장 애플리케이션(1052)을 설치하기 위한 처리가 설명될 것이다.
도 6은 본 예시적인 실시예에 따른 클라이언트 컴퓨터(100)에 인쇄 확장 애플리케이션(1052)을 설치하기 위한 처리를 도시한 시퀀스도이다.
클라우드 프린트 서비스를 사용하여 프린터(200)에 데이터를 출력하는 경우에, 클라이언트 컴퓨터(100)는 인쇄 작업을 클라우드 프린트 서비스(500)에 송신한다. 따라서, 클라우드 프린트 서비스(500)에 인쇄 작업을 송신하기 위한 인쇄 큐를 클라이언트 컴퓨터(100)에 생성하는 것이 바람직할 수 있다.
본 예시적인 실시예에서, 클라우드 프린트 서비스(500)에 등록된 프린터에 대한 인쇄 큐는 OS(1053)의 표준 기능들 중 하나인 프린터 검색 기능을 사용하여 생성된다. 일반적으로, 프린터를 검색하는 경우에, 동일한 인트라넷 상에 존재하는 프린터는 검색 대상이 된다. 예를 들어, 클라이언트 컴퓨터(100)가 도 2에 도시된 구성에서 프린터를 검색할 때, 프린터(200)가 발견될 수 있다. 그러나, 인트라넷 상에 존재하지 않는 프린터(201) 및 프린터(202)는 발견될 수 없다. 본 예시적인 실시예에서, 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)에 액세스할 수 있다. 프린터가 클라우드 프린트 서비스(500)에 등록될 때, 클라우드 프린트 서비스(500)에 등록된 프린터는 프린터 검색에 의해 발견될 수 있다. 본 예시적인 실시예에서는, 전술한 프린터(200) 뿐만 아니라, 프린터(201) 및 프린터(202)도 클라우드 프린트 서비스(500)에 등록되고, 따라서 프린터(201) 및 프린터(202)도 OS(1053)의 프린터 검색 기능에 의해 발견될 수 있다.
단계 S610에서, 클라이언트 컴퓨터(100)는 OS(1053)의 전술한 표준 기능들 중 하나인 프린터 검색 기능을 사용하여 프린터를 검색한다. 단계 S610에서, 클라이언트 컴퓨터(100)는 클라이언트 컴퓨터(100)가 속하는 인트라넷과 동일한 인트라넷 상에 존재하는 프린터뿐만 아니라, 클라우드 프린트 서비스(500)에 등록된 프린터들을 검색한다. 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)에 액세스하고, 클라우드 프린트 서비스(500)에 등록된 프린터들의 리스트를 취득하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다.
프린터 검색 정보를 수신하면, 클라우드 프린트 서비스(500)의 검색 응답 유닛(504)은 이용가능한 프린터들을 클라이언트 컴퓨터(100)에게 제시한다. 따라서, 단계 S611에서, 클라우드 프린트 서비스(500)는 클라이언트 컴퓨터(100)로부터 클라우드 프린트 서비스(500)에 액세스한 사용자가 사용할 수 있는 프린터에 관한 프린터 정보를 포함하는 프린터 리스트를 생성한다. 프린터 정보는 전술한 바와 같이 프린터의 명칭(디바이스 명칭), 프린터의 모델을 식별하기 위한 HWID, 및 프린터의 IP 어드레스를 포함한다. 클라우드 프린트 서비스(500)의 프린터 리스트 생성 유닛(503)은 프린터 데이터베이스(510)에 저장된 정보를 사용하여 프린터 정보를 포함하는 프린터 리스트를 작성한다.
단계 S612에서, 클라우드 프린트 서비스(500)는 작성된 프린트 리스트를 클라이언트 컴퓨터(100)에 반환한다. 이 경우, 클라우드 프린트 서비스(500)는 또한 도 5a 내지 도 5c에 도시된 테이블들에 기재된 프린터 식별 정보인 HWID 및 COID와 같은 정보를 프린터 리스트에 포함된 프린터 정보로서 송신한다. 클라이언트 컴퓨터(100)는 모니터(110)로 하여금 사용자가 프린터 리스트에 기초하여 이용가능한 프린터들을 선택하기 위해 사용할 수 있는 프린터 선택 화면을 표시하게 한다. 사용자는 제시된 프린터 리스트로부터 사용될 프린터를 선택한다.
단계 S613에서, 클라이언트 컴퓨터(100)의 OS(1053)는 클라우드 프린트 서비스(500)에서 사용되는 클라우드 드라이버(1050)를 설치하고, 선택된 프린터에 대한 인쇄 큐를 생성한다. 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)로부터 사용자에 의해 선택된 프린터에 관한 정보를 취득하고, 그 정보를 사용하여 인쇄 큐를 생성한다. 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)로부터 취득된 HWID, COID, IP 어드레스, 및 프린터 능력 정보에 기초하여 인쇄 큐를 생성한다. 클라우드 드라이버(1050)가 클라이언트 컴퓨터(100)에 이미 설치되어 있다면, 클라이언트 컴퓨터(100)는 클라우드 드라이버(1050)를 설치하지 않는다. 클라이언트 컴퓨터(100)는 설치된 클라우드 드라이버(1050) 및 클라우드 프린트 서비스(500)로부터 취득된 프린터 정보를 사용하여 인쇄 큐를 생성한다.
인쇄 큐의 생성이 성공적일 때, 단계 S614에서, 클라이언트 컴퓨터(100)의 OS(1053)는 드라이버 확장 패키지(303)를 다운로드하기 위한 요청을 프린터 드라이버 배포 서비스(300)에 송신한다. 클라이언트 컴퓨터(100)는 HWID, COID, 및 드라이버 확장 패키지를 취득하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다. 클라이언트 컴퓨터(100)는 HWID 및 COID 중 하나만을 클라우드 프린트 서비스(500)에 송신할 수 있다.
다운로드 요청을 수신하면, 단계 S615에서, 프린터 드라이버 배포 서비스(300)는 클라이언트 컴퓨터(100) 상에서 다운로드 처리를 수행한다. 프린터 드라이버 배포 서비스(300)는 프린터 드라이버 데이터베이스(310)에 등록된 드라이버 확장 패키지들 중에서 수신된 HWID와 매칭되는 패키지를 식별하고, 그 패키지를 클라이언트 컴퓨터(100)에 송신한다. 수신된 HWID와 매칭되는 패키지가 드라이버 확장 패키지들 중에서 식별될 수 없는 경우, 프린터 드라이버 배포 서비스(300)는 수신된 COID와 매칭되는 드라이버 확장 패키지를 식별한다. 그 후, 프린터 드라이버 배포 서비스(300)는 식별된 프린터 확장 패키지를 클라이언트 컴퓨터(100)에 송신한다.
단계 S616에서, 클라이언트 컴퓨터(100)의 OS(1053)는 드라이버 확장 패키지(303)를 설치하고, 전술한 클라우드 드라이버(1050)에 기초하여 생성된 인쇄 큐에 대응하는 능력 정보를 확장한다. 클라이언트 컴퓨터(100)는 인쇄 큐에 대응하는 능력 정보를 프린터 확장 패키지에 포함된 디바이스 능력 정보로 갱신한다. 즉, 인쇄 큐는 클라우드 프린트 서비스(500)에 등록된 프린터(200)에 대해 벤더 고유의 디바이스 능력으로 확장된다.
단계 S617에서, 클라이언트 컴퓨터(100)는 다운로드 요청을 인쇄 확장 애플리케이션 배포 서비스(400)에 송신한다. 이 경우, OS(1053)는 인쇄 확장 애플리케이션(1052)에 관한 전술된 식별자 정보에 기초하여 대상 프린터와 연관된 인쇄 확장 애플리케이션(1052)을 다운로드하기 위한 요청을 송신한다. 본 예시적인 실시예에 따르면, 드라이버 확장 패키지(303) 내의 인쇄 확장 애플리케이션(1052)에 관한 식별자 정보와 인쇄 확장 애플리케이션(1052)은 인쇄 확장 애플리케이션 배포 서비스(400)에서, 일대일 대응으로 서로 연관된다.
인쇄 확장 애플리케이션 배포 서비스(400)에서, 메타데이터도 저장될 수 있고; 메타데이터는 인쇄 확장 애플리케이션(1052)에 관한 식별자 정보 및 프린터 정보에 포함된 HWID와 연관된 정보를 나타낸다. 이 경우에, 적절한 인쇄 확장 애플리케이션(1052)이 메타데이터를 사용하여 다운로드된다.
다운로드 요청을 수신하면, 단계 S618에서, 인쇄 확장 애플리케이션 배포 서비스(400)는 클라이언트 컴퓨터(100) 상에서 다운로드 처리를 수행한다. 애플리케이션 응답 유닛(402)은 도 5c에 도시된 애플리케이션 데이터베이스(410)에 기초하여 클라이언트 컴퓨터(100)로부터 전송된 애플리케이션 식별자에 대응하는 애플리케이션을 식별한다. 애플리케이션 응답 유닛(402)은 식별된 인쇄 확장 애플리케이션을 클라이언트 컴퓨터(100)에 송신한다. 단계 S619에서, 클라이언트 컴퓨터(100)는 인쇄 확장 애플리케이션(1052)을 설치한다.
도 5c는 인쇄 확장 애플리케이션 배포 서비스(400)에 보유된 애플리케이션 데이터베이스(410)의 일례를 도시한다. 아이템 "애플리케이션 명칭"은 인쇄 확장 애플리케이션(1052)을 포함하는 데이터베이스에 등록된 각각의 애플리케이션의 명칭을 나타낸다. 아이템 "애플리케이션 식별자"는 인쇄 확장 애플리케이션(1052)을 포함하는 애플리케이션을 식별하기 위한 정보를 나타낸다. 아이템 "애플리케이션 패키지"는 인쇄 확장 애플리케이션(1052)을 포함하는 애플리케이션이 저장되는 파일 경로를 나타낸다. 아이템 "애플리케이션 패키지"에서, 애플리케이션이 저장되는 폴더의 명칭과 같은 임의의 정보는, 정보가 등록된 인쇄 확장 애플리케이션에 대한 패키지를 식별하는데 사용될 수 있는 한, 사용될 수 있다.
애플리케이션 데이터베이스(410)는 애플리케이션 등록 유닛(401)에 의해 갱신된다. 애플리케이션 등록 유닛(401)은 설정 파일 유닛(10521)을 분석하고, 애플리케이션 명칭 및 애플리케이션 식별자를 취득한다. 애플리케이션 등록 유닛(401)은 인쇄 확장 애플리케이션(1052) 뿐만 아니라 전술한 정보를 애플리케이션 데이터베이스(410)에 등록한다.
설치 후에, 인쇄 확장 애플리케이션(1052)은 클라이언트 컴퓨터(100)에서, 일대일 대응으로 프린터(200)와 연관된다. 프린터(200)는 프린터(200)에 관한 모델 정보 및 인쇄 설정 정보를 보유함으로써, 그에 따라 사용자에게 적절한 인쇄 설정 UI를 제시할 수 있게 한다. 대안적으로, 인쇄 확장 애플리케이션(1052)은 클라우드 프린트 서비스(500)와 통신하여 대상 프린터에 관한 대상 모델 정보 및 인쇄 설정 정보를 취득하고, 그 정보를 사용하여 UI를 제공할 수 있다. 인쇄 확장 애플리케이션(1052)의 설치가 완료되면, 사용자는 상세 인쇄 설정 변경 기능을 사용할 수 있다.
본 예시적인 실시예에서, 클라이언트 컴퓨터(100)에서 인쇄 큐를 생성한 후에, 클라이언트 컴퓨터(100)는 프린터 드라이버 배포 서비스(300)에 액세스하여, 드라이버 확장 패키지(303)를 취득한다. 클라이언트 컴퓨터(100)는 클라이언트 컴퓨터(100) 상에서 인쇄 큐를 확장하지 않고 클라우드 프린트 서비스(500)로부터 확장된 인쇄 큐에 관한 정보를 취득할 수 있다. 이 경우, 클라이언트 컴퓨터(100)는 단계 S614 내지 S616을 스킵한다. 대안적으로, 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)로부터 확장된 인쇄 큐에 관한 정보를 취득한 후에 단계 S614 내지 S616의 처리를 실행할 수 있다.
이제, 본 예시적인 실시예에 따라 클라이언트 컴퓨터(100)가 인쇄를 실행할 때 수행되는 동작에 대해서 설명할 것이다.
도 8a는 OS(1503)에 의해 클라이언트 컴퓨터(100) 상에 표시된 인쇄 공통 다이얼로그 박스의 일례를 도시한다. 영역(801)은 클라우드 프린트 서비스(500)에 등록된 프린터에 대한 인쇄에 사용될 인쇄 큐를 선택하기 위한 영역이다. 사용자가 인쇄 공통 다이얼로그 박스 내의 영역(801)을 선택할 때, 클라우드 프린트 서비스(500)에 등록된 인쇄 큐들의 리스트가 표시된다. 사용자는 표시된 인쇄 큐들 중에서 인쇄에서 사용될 인쇄 큐를 선택한다.
상세 설정 버튼(800)은 인쇄 확장 애플리케이션(1052)을 활성화하기 위한 버튼이다. 사용자가 상세 설정 버튼(800)을 선택하면, 도 8b를 참조하여 후술되는 인쇄 설정 화면이 표시된다.
"인쇄" 버튼(802)은 사용자가 인쇄 시작을 지시하기 위해 사용되는 버튼이다. 사용자가 "인쇄" 버튼(802)을 선택하면, 클라이언트 컴퓨터(100)는 화상 데이터와 현재 인쇄 설정을 클라우드 프린트 서비스(500)에 송신한다. OS(1053)에 의해 표시된 인쇄 공통 다이얼로그 박스에서 인쇄가 지시될 때, 클라우드 드라이버(1050)는 화상 데이터와 인쇄 설정을 클라우드 프린트 서비스(500)에 송신한다. 클라우드 프린트 서비스(500)의 인쇄 작업 생성 유닛(506)은 클라이언트 컴퓨터(100)로부터 수신된 인쇄 설정과 화상 데이터에 기초하여 PDL 데이터를 생성하고, 인쇄 작업 저장 영역(511)에 작업을 인쇄 작업으로서 저장한다.
도 8b는 도 8a에 도시된 상세 설정 버튼(800)이 선택될 때 클라이언트 컴퓨터(100) 상에 표시되는 화면을 도시한다. 사용자가 상세 설정 버튼(800)을 선택하면, OS(1053)는 선택된 인쇄 큐에 대응하는 인쇄 확장 애플리케이션(1052)을 식별한다. OS(1053)는 식별된 인쇄 확장 애플리케이션(1052)을 활성화시킨다. 활성화된 인쇄 확장 애플리케이션(1052)은 도 8b에 도시된 인쇄 설정 화면을 표시한다.
영역(803)은 인쇄 설정이 표시되는 영역이다. 영역(803)에서, 벤더 고유의 설정 아이템들은 IPP 등에 의해 정의된 미리 결정된 표준 기능들인 용지 방향, 인쇄 부수, 및 컬러 모드 이외에 설정될 수 있는데; 그 설정 아이템들은 제본 인쇄를 위한 설정, 및 하나의 인쇄 작업에 각종 크기의 용지를 사용하여 인쇄하는 혼합된 용지 인쇄를 위한 설정을 포함한다.
확장 설정(804)은 드라이버 확장 패키지(303)에 의해 확장된 능력 정보에 기초하여 생성된 조작 영역이다. 영역(805)은 표시된 화면을 전환하고 설정 아이템을 변경하기 위한 영역이다.
"OK" 버튼(806)은 도 8b에 도시된 인쇄 설정 화면 상에서 행해진 인쇄 설정을 확정하고, 이 화면을 도 8a에 도시된 인쇄 공통 다이얼로그 박스로 복귀시키기 위해 사용되는 버튼이다. "OK" 버튼(806)이 선택되면, 도 8b에 도시된 인쇄 설정 화면 상에서 행해진 인쇄 설정이 OS(1053)에 전달된다.
"인쇄" 버튼(807)은 인쇄 확장 애플리케이션(1052)이 클라우드 프린트 서비스(500)에 인쇄를 실행하도록 지시하기 위해 사용되는 버튼이다. "인쇄" 버튼(807)이 선택되면, 인쇄 확장 애플리케이션(1052)은 인쇄 확장 애플리케이션(1052)의 실행 파일 유닛(10522)을 실행하고, 현재 인쇄 설정이 반영된 PDL 데이터를 생성한다. 그 후, 인쇄 확장 애플리케이션(1052)은 생성된 PDL 데이터 및 인쇄 설정을 클라우드 프린트 서비스(500)에 송신한다. 인쇄 확장 애플리케이션(1052)이 PDL 데이터를 생성하는 경우에, 클라우드 프린트 서비스(500)는 PDL 데이터를 생성하지 않고 인쇄 장치에 PDL 데이터와 인쇄 설정을 송신한다.
전술한 바와 같이, 제1 예시적인 실시예에서는, PDL 데이터가 인쇄 확장 애플리케이션(1052)에서 생성된다. 이 구성에 의해, 클라우드 프린트 서비스(500)가 인쇄 확장 애플리케이션(1052)에 의해 행해진 설정이 반영된 PDL 데이터를 생성하더라도, 인쇄 확장 애플리케이션(1052)에 의해 행해진 설정이 반영된 PDL 데이터가 인쇄 장치에 송신될 수 있다.
도 11은 본 예시적인 실시예에 따른 도 8a에 도시된 인쇄 공통 다이얼로그 박스로부터 인쇄를 실행할 것을 클라우드 프린트 서비스(500)가 지시받을 때 수행되는 처리를 도시한다. 도 11에 도시된 처리는 OS(1053)에 의해 공통 다이얼로그가 표시된 후에 시작된다.
단계 S1301에서, OS(1053)는 상세 설정 버튼(800)의 선택을 수신한다. 단계 S1302에서, OS(1053)는 인쇄 공통 다이얼로그 박스에서 선택된 인쇄 큐에 대응하는 인쇄 확장 애플리케이션(1052)을 활성화한다. 단계 S1303에서, 인쇄 확장 애플리케이션(1052)은 도 8b에 도시된 인쇄 설정 화면을 표시한다. 인쇄 확장 애플리케이션(1052)은 사용자로부터 인쇄 설정 변경을 수신한다. 단계 S1304에서, 인쇄 확장 애플리케이션(1052)은 "OK" 버튼(806)의 선택을 수신한다. 사용자가 "OK" 버튼(806)을 선택하면, 단계 S1305에서, 인쇄 확장 애플리케이션(1052)은 OS(1053) 상에서 행해진 인쇄 설정을 송신한다. OS(1053)는 인쇄 확장 애플리케이션(1052)으로부터 인쇄 설정을 수신하고, 인쇄 공통 다이얼로그 박스를 표시한다. 단계 S1306에서, 사용자는 인쇄 공통 다이얼로그 박스 내의 "인쇄" 버튼(802)을 선택한다. 단계 S1307에서, OS(1053)는 인쇄 확장 애플리케이션(1052)으로부터 수신된 인쇄 설정과 인쇄될 화상 데이터를 인쇄 데이터로서 클라우드 프린트 서비스(500)에 송신한다.
단계 S1308에서, 클라우드 프린트 서비스(500)는 클라이언트 컴퓨터(100)의 OS(1053)로부터 화상 데이터와 인쇄 설정을 수신하고, 수신된 화상 데이터와 인쇄 설정에 기초하여 PDL 데이터를 생성한다. 이 경우, 클라우드 프린트 서비스(500)는 클라우드 프린트 서비스(500)에 의해 지원되는 인쇄 설정만이 반영된 PDL 데이터를 생성한다. 단계 S1309에서, 클라우드 프린트 서비스(500)는 생성된 PDL 데이터를 인쇄 데이터로서 사용하는 인쇄 작업을 인쇄 작업 저장 영역(511)에 저장한다.
전술한 바와 같이, 클라우드 프린트 서비스(500)가 PDL 데이터를 생성하는 경우, 클라우드 프린트 서비스(500)에 의해 지원되는 인쇄 설정만이 PDL 데이터에 반영될 수 있다. 클라우드 프린트 서비스(500)에 의해 지원되는 인쇄 설정의 예들은 컬러 인쇄 또는 흑백 인쇄의 설정, 및 양면 인쇄의 설정을 포함한다. 단계 S1307에서 송신된 인쇄 설정에 관하여, 클라우드 프린트 서비스(500)에 의해 지원되지 않는 인쇄 설정은 PDL 데이터에 반영되지 않고, 따라서 프린터로부터 출력된 데이터에 반영되지 않는다. 본 예시적인 실시예에서, 인쇄 확장 애플리케이션(1052)을 사용하여 인쇄 설정이 이루어진 경우에, 인쇄는 도 12에 도시된 바와 같이 인쇄 확장 애플리케이션(1052)에 의해 지시받고, PDL 데이터는 인쇄 확장 애플리케이션(1052)에 의해 생성된다. 이 구성에 의해, 인쇄 확장 애플리케이션(1052)에서 클라우드 프린트 서비스(500)에 의해 지원되지 않는 인쇄 설정이 행해진 경우에도, 인쇄 설정이 반영된 PDL 데이터를 사용해서 인쇄가 실행될 수 있다. 본 예시적인 실시예에서, 클라우드 프린트 서비스에 의해 지원되지 않는 인쇄 설정의 예들은 한 매의 용지 상에 복수의 페이지의 인쇄를 위한 인쇄 집약 설정(N-in-one printing setting), 인쇄 동안 사용될 기록재를 절약하는 절약 모드의 설정, 및 제본 또는 스탬핑(stamping)의 설정을 포함한다.
단계 S1010에서, 클라이언트 컴퓨터(100)의 OS(1053)는 사용자로부터 상세 설정 버튼(800)의 선택을 수신한다. 단계 S1011에서, OS(1053)는 선택된 인쇄 큐에 대응하는 인쇄 확장 애플리케이션(1052)을 활성화한다.
단계 S1012에서, 인쇄 확장 애플리케이션(1052)은 사용자로부터 설정 변경을 수신하고, "인쇄" 버튼(807)의 선택을 수신한다. 단계 S1013에서, 인쇄 확장 애플리케이션(1052)은 인쇄될 인쇄 데이터를 취득하기 위한 요청을 OS(1053)에 송신한다. 단계 S1014에서, OS(1053)는 화상 데이터를 인쇄 데이터로서 인쇄 확장 애플리케이션(1052)에 송신한다. 단계 S1015에서, 인쇄 확장 애플리케이션(1052)은 인쇄 데이터로서 수신된 화상 데이터 및 인쇄 설정을 벤더 고유의 PDL 데이터로 변환한다. 인쇄 확장 애플리케이션(1052)에 의해 생성된 PDL 데이터는 프린터(200)에 의해 분석될 수 있는 데이터 포맷을 가지며, 프린터(200)에 포함된 모든 기능을 구현할 수 있는 인쇄 커맨드를 포함한다. 그에 따라, 상술한 인쇄 설정 UI에 의해 변경된 각종 기능을 인쇄 커맨드로 변환할 수 있고, 인쇄 커맨드는 PDL 데이터로서 생성될 수 있다.
단계 S1016에서, 인쇄 확장 애플리케이션(1052)은 변환된 PDL 데이터를 인쇄 데이터로서 클라우드 프린트 서비스(500)에 송신한다. 인쇄 확장 애플리케이션(1052)은 PDL 데이터와 인쇄 설정 양쪽 모두를 인쇄 데이터로서 클라우드 프린트 서비스(500)에 송신할 수 있다. 인쇄 확장 애플리케이션(1052)은 또한 미리 결정된 API(application programming interface)를 사용하여 PDL 데이터를 클라우드 프린트 서비스(500)에 송신한다.
단계 S1017에서, 클라우드 프린트 서비스(500)는 인쇄 확장 애플리케이션(1052)으로부터 PDL 데이터를 포함하는 인쇄 데이터를 수신하고, 인쇄 작업 관리 유닛(505)은 PDL 데이터를 포함하는 수신된 인쇄 데이터를 인쇄 작업으로서 인쇄 작업 저장 영역(511)에 등록한다.
클라우드 프린트 서비스(500)가 인쇄 확장 애플리케이션(1052)에 의해 생성된 PDL 데이터를 수신하는 경우에, 클라우드 프린트 서비스(500)의 인쇄 작업 생성 유닛(506)은 동작하지 않는다. 인쇄 작업 생성 유닛(506)은 프린터(200)에 의해 분석될 수 없는 포맷의 데이터가 클라우드 프린트 서비스(500)에 송신될 때, 그 데이터를 적절한 포맷으로 변환하는 처리를 수행한다. 따라서, 본 예시적인 실시예에서는, 인쇄 확장 애플리케이션(1052)에 의해 생성된 PDL 데이터를 인쇄 작업 포맷으로 변환함으로써 획득된 데이터에 대하여 추가의 변환 처리를 수행할 필요가 없다. 클라우드 프린트 서비스(500)는 수신된 PDL 데이터가, 인쇄 확장 애플리케이션(1052)으로부터 수신된 미리 결정된 API에 기초하여 변환되지 않도록 제어 처리를 수행한다.
클라우드 프린트 서비스(500)는 인쇄 확장 애플리케이션(1052)으로부터 수신된 데이터 및 인쇄 설정을 분석할 수 있고, 수신된 인쇄 데이터를 PDL 데이터로 변환하기 위한 처리를 수행할지를 결정할 수 있다. 예를 들어, 인쇄 확장 애플리케이션(1052)이 인쇄 데이터를 송신한 경우, 클라우드 프린트 서비스(500)에 의해 수신된 인쇄 데이터를 PDL 데이터로 변환하기 위한 처리가 생략될 수 있다. 대조적으로, OS(1053)가 인쇄 데이터를 송신한 경우, 수신된 인쇄 데이터를 PDL 데이터로 변환하기 위한 처리가 수행될 수 있다.
따라서, 클라우드 프린트 서비스(500)는 수신된 데이터를 변환할지를 결정하기 위한 처리를 포함한다. 대안적으로, 인쇄 확장 애플리케이션(1052)은 클라우드 프린트 서비스(500)에게 작업 변환 처리를 수행하지 않도록 지시할 수 있다. 본 예시적인 실시예에 따르면, 클라우드 프린트 서비스(500)가 프린터(200)에 통합된 기능들이 구현될 수 있는 PDL 데이터를 관리하게 할 수 있다.
본 예시적인 실시예에서, 클라우드 프린트 서비스(500)를 사용하는 인쇄 시작 지시는 OS(1053)에 의해 제공되는 인쇄 공통 다이얼로그 박스의 화면 및 인쇄 확장 애플리케이션(1052)에 의해 제공되는 인쇄 설정 화면 양쪽 모두에 발행될 수 있다. 또한, 클라우드 프린트 서비스(500)를 사용한 PDL 데이터의 생성 및 인쇄 확장 애플리케이션(1052)에서의 PDL 데이터의 생성은 인쇄가 인쇄 공통 다이얼로그 박스로부터 지시되는지, 또는 인쇄가 인쇄 확장 애플리케이션(1052)으로부터 지시되는지에 따라 전환된다.
OS(1053)에 의해 제공되는 인쇄 공통 다이얼로그 박스 내의 "인쇄" 버튼(802)이 선택될 때, 인쇄 확장 애플리케이션(1052)이 자동으로 활성화될 수 있고 화상 데이터가 인쇄 확장 애플리케이션(1052)에 전달될 수 있으며, 그 후, 도 8b에 도시된 인쇄 설정 화면이 표시될 수 있다. 사용자는 도 8b에 도시된 인쇄 설정 화면을 사용하여 필요에 따라 인쇄하기 위한 상세 설정을 수행한다. 사용자가 "인쇄" 버튼(807)을 선택하면, 인쇄 확장 애플리케이션(1052)에 의해 취득된 화상 데이터 및 인쇄 설정에 기초하여 PDL 데이터가 생성되고, 생성된 PDL 데이터 및 인쇄 설정은 클라우드 프린트 서비스(500)에 송신된다. 이 경우, 인쇄 확장 애플리케이션(1052)은 미리 결정된 API를 사용하고, 클라우드 프린트 서비스(500)가 PDL 데이터를 생성하지 않도록 제어한다. 전술한 예에서, 도 8a에 도시된 상세 설정 버튼(800) 및 도 8b에 도시된 "OK" 버튼(806)은 생략될 수 있다. "인쇄" 버튼(802)은 도 8a에 도시된 인쇄 공통 다이얼로그 박스로부터 생략될 수 있고, 사용자가 "상세 설정" 버튼(800)을 선택하고 인쇄 확장 애플리케이션(1052)을 기동한 후에 인쇄가 인쇄 확장 애플리케이션(1052)으로부터 지시될 수 있다. 이 경우, PDL 데이터는 인쇄 설정의 내용에 관계없이 인쇄 확장 애플리케이션(1052)에 의해 생성된다.
이제, 프린터(200)로부터 클라우드 프린트 서비스(500)에 등록된 인쇄 작업에 기초하여 인쇄를 실행하기 위한 처리가 설명될 것이다.
사용자가 프린터(200)에 로그인하면, 프린터(200)는 클라우드 프린트 서비스(500)의 인쇄 큐에 등록된 인쇄 작업에 관한 서지 정보를 취득하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다. 이 경우에 취득될 서지 정보는 프린터(200)에 UI를 표시하는데 사용되는 정보이다. 서식 정보의 예들은 화상 데이터의 파일 명칭, 컬러 모드에서의 인쇄 부수, 및 인쇄 작업이 생성되는 날짜 및 시간을 포함한다.
클라우드 프린트 서비스(500)는 인쇄 큐에 저장된 인쇄 작업에 관한 서지 정보에 기초하여 인쇄가능한 작업 리스트를 생성한다. 그 후, 클라우드 프린트 서비스(500)는 생성된 인쇄가능한 작업 리스트를 프린터(200)에 송신한다. 클라우드 프린트 서비스(500)에 의해 송신된 인쇄가능한 작업 리스트를 수신하면, 프린터(200)는 인쇄가능한 작업 리스트를 조작 패널 상에 표시한다. 도 7은 클라우드 프린트 서비스(500)로부터 수신된 인쇄가능한 작업 리스트가 표시되는 조작 패널의 일례를 도시한다. 인쇄 작업 "aaa.doc" 내지 "jjj.pdf"는 클라우드 프린트 서비스에 포함된다. 사용자는 조작 패널로부터 원하는 인쇄 작업을 선택하고 인쇄 버튼(701)을 눌러 인쇄를 실행한다. 인쇄 실행 지시를 수신한 프린터(200)는 인쇄 작업을 취득하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다. 이 취득 요청은 취득될 인쇄 작업에 대응하는 ID, 즉, 인쇄 작업 ID를 포함한다. 인쇄는 후술하는 바와 같이 도 10에 도시된 처리를 실행함으로써 실현된다.
도 10은 본 예시적인 실시예에 따라 프린터(200)로부터 인쇄 작업을 취득하기 위한 요청이 클라우드 프린트 서비스(500)에 송신될 때 클라우드 프린트 서비스(500)에 의해 수행되는 처리를 도시하는 흐름도이다. 달리 언급되지 않는 한, 이러한 처리는 클라우드 프린트 서비스(500)의 각각의 처리 유닛에 의해 수행된다. 단계 S1001에서, 인쇄 작업 관리 유닛(505)은 프린터(200)로부터 인쇄 작업 취득 요청(출력될 인쇄 작업에 대한 인쇄 작업 ID를 포함함)을 수신한다.
인쇄 작업 취득 요청을 수신한 인쇄 작업 관리 유닛(505)은 인쇄 작업 저장 영역(511)으로부터 지정된 인쇄 작업을 식별한다. 단계 S1002에서, 인쇄 작업 관리 유닛(505)은 식별된 인쇄 작업을 인쇄 작업 생성 유닛(506)에 전달하고, 인쇄 작업이 출력되는 프린터(200)에 적합한 인쇄 작업을 생성한다.
단계 S1003에서, 인쇄 작업 관리 유닛(505)은 생성된 인쇄 작업을 인쇄 작업 생성 유닛(506)으로부터 취득하고, 인쇄 요청을 송신한 프린터(200)에 인쇄 작업을 송신한다.
본 예시적인 실시예에서, 사용자는 프린터(200)를 조작하고, 프린터(200)는 클라우드 프린트 서비스(500)로부터 선택된 인쇄 작업을 취득한다. 프린터(200)는 주기적으로 클라우드 프린트 서비스(500)에 액세스하고, 클라우드 프린트 서비스(500)로부터, 프린터(200)에 대응하는 인쇄 큐와 연관하여 관리되는 인쇄 작업을 취득할 수 있다.
전술한 처리를 사용하여, 클라우드 프린트 서비스(500)에 등록된 인쇄 작업이 실행된다.
전술한 구성에 의해, 클라우드 프린트 서비스(500)에 의해 지원되지 않는 인쇄 설정이 클라이언트 컴퓨터(100)에서 행해지는 경우에도, 인쇄 설정이 반영된 인쇄 데이터가 인쇄 장치에 송신될 수 있다.
제1 예시적인 실시예에서, 클라이언트 컴퓨터(100)의 인쇄 확장 애플리케이션(1052)은 인쇄 데이터를 인쇄 장치에 따르는 인쇄 데이터로 변환한다. OS(1053)의 사양들에 따라, 이 처리는 인쇄 확장 애플리케이션(1052)이 설치될 수 없는 환경에서 구현될 수 없다. 제2 예시적인 실시예는 인쇄 확장 애플리케이션(1052)이 존재하지 않는 경우에도 프린터(200)에 포함된 모든 기능을 구현하기 위한 방법을 예시한다.
제2 예시적인 실시예는 클라우드 프린트 서비스(500)가 클라이언트 컴퓨터(100)로부터 인쇄 데이터를 수신하고 외부 서버 시스템이 인쇄 장치에 대응하는 PDL 데이터를 생성하는 경우를 예시한다. 본 예시적인 실시예에 따르면, 클라이언트 컴퓨터(100) 또는 인쇄 확장 애플리케이션(1052)이 인쇄 데이터가 송신되는 인쇄 장치에 부합하는 인쇄 데이터를 생성할 수 없는 경우에도, 인쇄 장치에 부합하는 인쇄 데이터가 생성될 수 있다.
클라이언트 컴퓨터(100)의 하드웨어 구성은 제1 예시적인 실시예와 유사하기 때문에, 그 설명을 생략한다.
도 14를 참조하여 본 예시적인 실시예에 따른 네트워크 구성의 예에 대해서 설명될 것이다. 제1 예시적인 실시예의 구성 요소와 유사한 도 14에 도시한 구성 요소는 동일한 참조 번호로 표시되고, 제1 예시적인 실시예의 구성 요소와 상이한 구성 요소만이 설명될 것이다.
PDL 변환 서비스(600)는 프린터(200)에 의해 분석될 수 있는 프린터(200)의 모든 기능을 구현할 수 있는 인쇄 커맨드를 포함하는 PDL 데이터로 데이터를 변환하기 위한 서비스를 나타낸다. PDL 변환 서비스(600)는 클라우드 프린트 서비스(500)에서 준비된 확장 영역에 등록되는 모듈에 의해 구현될 수 있거나, 또는 클라우드 프린트 서비스(500)와 협력하여 동작되는 다른 클라우드 서비스로서 제공될 수 있다. PDL 변환 서비스(600)는 클라우드 프린트 서비스(500)에서 송신처로서 설정되며, 따라서 인쇄 데이터가 클라우드 프린트 서비스(500)에 의해 수신된 후에 데이터를 PDL 변환 서비스(600)에 송신할 수 있게 된다.
본 예시적인 실시예에서, 프린터(200)의 등록, 인쇄 큐의 생성, 및 사용자에 의해 행해진 인쇄 지시는 제1 예시적인 실시예에서 설명된 것들과 동일하므로, 그 설명은 생략한다. 아래의 설명은 사용자가 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신하기 위한 인쇄 지시를 전송하는 시점부터 시작할 것이다.
제1 예시적인 실시예는 인쇄 공통 다이얼로그 박스의 화면과 인쇄 확장 애플리케이션에 의해 제공되는 인쇄 설정 화면 양쪽 모두에 대해 인쇄 지시가 발행될 수 있다고 가정하여 위에서 설명되었다. 인쇄 지시가 인쇄 공통 다이얼로그 박스에서 발행되는 경우, OS(1053)는 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신한다. 인쇄 확장 애플리케이션에 의해 제공되는 화면 상에 인쇄 지시가 발행되는 경우, 인쇄 확장 애플리케이션(1052)은 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신한다. 본 예시적인 실시예에서, OS(1053)는 화면들 중 어느 하나가 인쇄 지시를 발행하는데 사용되는지에 관계없이 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신한다.
도 13은 본 예시적인 실시예에 따른 클라우드 프린트 서비스(500)에 인쇄 데이터를 송신하는 처리와, PDL 변환 서비스(600)를 사용한 PDL 변환 처리를 도시하는 시퀀스도이다.
단계 S1110에서, 클라이언트 컴퓨터(100)의 OS(1053)는 사용자로부터 인쇄 지시를 수신한다. 단계 S1111에서, OS(1053)는 화상 데이터 및 인쇄 설정을 포함하는 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신한다.
인쇄 데이터의 수신시, 단계 S1112에서, 클라우드 프린트 서비스(500)는 미리 송신처로서 설정된 PDL 변환 서비스(600)에 인쇄 데이터를 송신한다.
클라우드 프린트 서비스(500)로부터 인쇄 데이터를 수신하면, 단계 S1113에서, PDL 변환 서비스(600)는 인쇄 데이터를 프린터(200)의 모든 기능이 구현될 수 있는 PDL 데이터로 변환한다. 단계 S1114에서, PDL 변환 서비스(600)는 변환된 PDL 데이터를 클라우드 프린트 서비스(500)에 송신한다. 단계 S1114에서, PDL 변환 서비스(600)는 PDL 데이터 및 인쇄 설정을 인쇄 데이터의 형태로 클라우드 프린트 서비스(500)에 송신한다. 단계 S1115에서, 인쇄 작업 관리 유닛(505)은 수신된 PDL 데이터를 포함하는 인쇄 데이터를 인쇄 작업으로서 인쇄 작업 저장 영역(511)에 등록한다. 본 예시적인 실시예에 따르면, 클라우드 프린트 서비스(500)는 프린터(200)에 포함된 기능들을 구현할 수 있는 PDL 데이터를 관리할 수 있다.
전술한 방법에 의해 클라우드 프린트 서비스(500)의 인쇄 작업 저장 영역(511)에 저장된 인쇄 작업은 프린터로부터 판독되고, 인쇄는 제1 예시적인 실시예와 동일한 방식으로 인쇄 작업에 기초하여 실행된다.
본 예시적인 실시예에서, 클라우드 프린트 서비스(500)는 PDL 변환 서비스(600)를 사용하여 PDL 변환 처리를 행한다. 그러나, PDL 변환 처리는 다른 타이밍에서 구현될 수 있다. 예를 들어, 클라이언트 컴퓨터(100)는 클라우드 프린트 서비스(500)를 수반하지 않고 PDL 변환 서비스(600)에 인쇄 데이터를 송신함으로써 PDL 변환 처리를 수행할 수 있다. PDL 변환 처리 후에, PDL 변환 서비스(600)는 PDL 데이터 및 인쇄 설정을 포함하는 인쇄 데이터를 클라우드 프린트 서비스(500)에 송신하고 인쇄 작업을 등록할 수 있다.
전술된 방법은 인쇄 확장 애플리케이션(1052)이 설치될 수 없는 환경 하에서도, OS에 의해 제공되는 표준 인쇄 시스템을 사용한 인쇄에서 각각의 프린터에 포함된 모든 기능을 구현할 수 있게 한다.
제3 예시적인 실시예는 클라우드 프린트 서비스(500)에 벤더 고유의 드라이버 패키지를 설치하고 프린터 드라이버를 사용하여 처리를 실행하는 방법을 예시한다. 드라이버 패키지가 설치된 클라우드 프린트 서비스(500)는 드라이버를 사용하여 클라이언트 컴퓨터(100)로부터 수신된 인쇄 데이터를 변환한다. 이러한 구성에 의해, 벤더 고유의 인쇄 설정이 반영된 인쇄 데이터가 생성될 수 있다.
이제, 도 15를 참조하여, 본 예시적인 실시예에 따른 프린터 드라이버 배포 서비스(300)의 기능 블록들의 예에 대해서 설명할 것이다. 도 15는 제1 예시적인 실시예의 설명에서 사용된 도 3a에 도시된 블록도로 대체된 블록도이다. 제1 예시적인 실시예의 구성 요소와 유사한 도 15에 도시한 구성 요소는 동일한 참조 번호로 표시되고, 제1 예시적인 실시예의 구성 요소와 상이한 구성 요소만이 설명될 것이다.
드라이버 패키지(306)는 프린터 드라이버 배포 서비스(300)로부터 배포되는 패키지의 일례이다. 드라이버 패키지(306)는 드라이버 정보 유닛(307), 디바이스 능력 정보 유닛(308), 및 렌더링 유닛(309)을 포함한다. 드라이버 정보 유닛(307)은 드라이버 정보 유닛(304)과 유사하게, 각각의 프린터를 식별하기 위한 HWID 및 COID, 패키지가 드라이버 확장 패키지라는 것을 나타내는 정보, 및 드라이버 확장 패키지(303)의 버전을 포함한다. 디바이스 능력 정보 유닛(308)은 디바이스 능력 정보 유닛(305)과 유사하게, 대응하는 프린터(200)에 관한 디바이스 능력 정보 및 충돌 정보를 포함한다. 디바이스 능력 정보의 예들은 프린터(200)가 컬러 인쇄를 지원하는지 또는 양면 인쇄를 지원하는지를 나타내는 정보를 포함한다. 드라이버 확장 패키지(303)에 포함되는 능력 정보는 전술한 능력 정보뿐만 아니라, 벤더 고유의 스테이플리스 바인딩이 수행될 수 있는지를 나타내는 정보, 새들 스티치 바인딩이 수행될 수 있는지를 나타내는 정보, 및 혼합된 용지 인쇄가 수행될 수 있는지를 나타내는 정보를 포함한다. 혼합된 용지 인쇄는 각종 용지를 사용한다.
렌더링 유닛(309)은 GDI(Graphics Device Interface) 데이터, XPS(Extensible Markup Language(XML) Paper Specification) 데이터, Word, Excel, 또는 PowerPoint 데이터와 같은 데이터를 PDF, PwgRaster, PCL(Printer Control Language) 또는 프린터 벤더 고유의 PDL 데이터와 같은 데이터로 변환할 수 있다.
전술한 바와 같이, 프린터 드라이버 배포 서비스(300)는 드라이버 패키지(306)를 포함하고, 드라이버 패키지를 클라우드 프린트 서비스(500)에 제공한다.
도 16은 제3 예시적인 실시예에 따른 클라우드 서비스에 프린터 드라이버를 설치하는 방법을 도시하는 타이밍도이다. 도 16은 제1 예시적인 실시예에서 행해지는 도 4에 도시한 처리로 대체될 처리를 도시한다. 제1 예시적인 실시예의 프로세스들과 유사한 도 16에 도시한 프로세스들은, 제1 예시적인 실시예의 프로세스들과 동일한 단계 번호들로 표시되고, 상이한 프로세스들만이 설명될 것이다.
본 예시적인 실시예에서, 클라이언트 컴퓨터(100)는 프린터(200)에 액세스하고, 프린터(200)를 조작한다. 이로써, 프린터(200)는 프린터(200)를 등록하기 위한 요청을 클라우드 프린트 서비스(500)에 송신한다.
프린터(200)는 클라우드 프린트 기능 및 클라이언트 컴퓨터(100)로부터 프린터(200)를 조작하기 위한 웹 UI 기능을 지원한다. 클라우드 프린트 기능은 클라우드 프린트 서비스로부터 인쇄 작업을 수신하고 인쇄를 실행하기 위한 기능이다. 웹 UI 기능은 UI를 생성하고 네트워크 상에서 UI를 공개하기 위한 기능이다. 클라이언트 컴퓨터(100)는 클라우드 프린트 클라이언트 기능 및 웹 UI를 조작하기 위한 웹 UI 클라이언트 기능(예를 들어, 웹 브라우저)을 지원한다. 클라우드 프린트 클라이언트 기능은 파일을 클라우드 프린트 서비스에 송신하기 위한 기능이다. 클라우드 프린트 서비스(500)는 인터넷(203) 상의 클라우드 프린트 서비스를 나타낸다.
단계 S1512에서, 클라우드 프린트 서비스(500)는 드라이버 패키지(306)를 다운로드하기 위한 요청을 프린터 드라이버 배포 서비스(300)에 송신한다. 이 요청은 클라우드 프린트 서비스(500)에 등록된 프린터에 대응하는 드라이버 패키지(306)를 수신하기 위한 요청이다. 클라우드 프린트 서비스(500)는 드라이버 패키지(306)를 다운로드하기 위한 요청 및 프린터(200)를 식별하기 위한 HWID 및 COID를 프린터 드라이버 배포 서비스(300)에 송신한다. 단계 S1512에서 프린터 드라이버 배포 서비스(300)에 전송된 HWID 및 COID는 단계 S411에서 프린터(200)로부터 클라우드 프린트 서비스(500)에 의해 취득된 HWID 및 COID이다.
단계 S1512에서, 프린터 드라이버 배포 서비스(300)는 수신된 HWID 및 COID에 기초하여 대응하는 드라이버 패키지(306)를 클라우드 프린트 서비스(500)에 송신한다. 프린터 드라이버 배포 서비스(300)는 도 17a에 도시된 프린터 드라이버 데이터베이스(310)로부터 수신된 HWID와 매칭되는 프린터 드라이버 및 드라이버 확장 패키지를 식별한다.
이제, 도 17a 및 도 17b에 도시된 테이블들에 대해서 설명할 것이다. 도 17a는 드라이버 배포 서비스(300)에 의해 관리되는 드라이버 패키지들에 관한 정보를 도시한 테이블이다. 도 17a에 도시된 테이블은 제1 예시적인 실시예에 따른 도 4b에 도시된 테이블에 대응한다. 도 17b는 클라우드 프린트 서비스(500)에 등록된 프린터들에 관한 정보를 도시한 테이블이다. 도 17b에 도시된 테이블은 제1 예시적인 실시예에 따른 도 5a에 도시된 테이블에 대응한다.
단계 S410에서, 도 17b에 도시된 iR-ADV CCCC로 표시된 프린터가 클라우드 프린트 서비스(500)에 추가되었다고 가정한다. 클라우드 프린트 서비스(500)는 프린터(200)로부터 취득된 데이터에 기초하여, 도 17b에 도시된 iR-ADV CCCC의 행에 데이터를 등록한다. 클라우드 프린트 서비스(500)는 HWID를 프린터 드라이버 배포 서비스(300)에 전송한다. 프린터 드라이버 배포 서비스(300)는 수신된 HWID에 기초하여 클라우드 프린터 서비스(500)에 설치될 드라이버 패키지를 식별한다. 도 17a에 도시된 테이블에서, 디바이스 iR-ADV CCCC의 HWID와 매칭되는 복수의 패키지가 포함된다. 패키지들 중 하나는 "TRUE"의 플래그를 갖고, 패키지들 중 다른 하나는 "FALSE"의 플래그를 갖는다. 이러한 플래그들은 드라이버가 확장된다는 것을 나타낸다. 플래그가 "TRUE"를 표시하는 패키지들은 프린터 드라이버들이 아니라, 프린터 정보를 확장하기 위한 패키지들이다. 이 경우, 프린터 드라이버 배포 서비스(300)는 드라이버가 확장되었다는 것을 나타내는 플래그가 "FALSE"를 나타내는 프린터 드라이버를 클라우드 프린트 서비스(500)에 우선적으로 송신한다.
클라우드 프린트 서비스(500)로부터 전송된 HWID와 매칭되는 프린터 드라이버 및 드라이버 확장 패키지가 식별되지 않으면, 프린터 드라이버 배포 서비스(300)는 다음의 처리를 실행한다. 즉, 프린터 드라이버 배포 서비스(300)는 클라우드 프린트 서비스(500)로부터 수신된 COID와 매칭되는 프린터 드라이버를 클라우드 프린트 서비스(500)에 송신한다. 수신된 COID와 매칭되는 프린터 드라이버 및 확장 패키지 양쪽 모두가 존재하면, 프린터 드라이버 배포 서비스(300)는 우선적으로 프린터 드라이버를 클라우드 프린트 서비스(500)에 송신한다. 드라이버 확장 패키지가 HWID에만 기초하여 식별될 수 있는 경우, 단계 S413에서, HWID만이 프린터 드라이버 배포 서비스(300)에 송신될 수 있다.
단계 S1513에서, 클라우드 프린트 서비스(500)는 프린터 드라이버 배포 서비스(300)로부터 드라이버 패키지(306)를 다운로드한다. 단계 S1514에서, 다운로드된 드라이버 패키지(306)는 클라우드 프린트 서비스(500)에 설치된다.
단계 S1515에서, 클라우드 프린트 서비스(500)는 인쇄 큐 생성 유닛(502)으로 하여금 인쇄 작업을 프린터(200)에 송신하기 위한 인쇄 큐를 작성하게 한다. 프린터 등록 유닛(501)은 프린터 정보 및 능력 정보를 프린터 데이터베이스(510)에 등록하고, 등록 요청이 이루어진 프린터에 기록을 생성한다. 인쇄 큐 생성 유닛(502)은 또한 인쇄 큐를 생성한다. 이 인쇄 큐는 프린터(200)의 명칭(디바이스 명칭), 프린터(200)의 모델을 식별하기 위한 HWID 및 COID, 및 프린터(200)의 IP 어드레스 등의 프린터(200)에 관한 수신된 정보를 사용하여 작성된다. 전술한 처리를 사용함으로써, IP 어드레스와 패키지는 도 17b에 도시된 프린터 데이터베이스에 등록된다.
후속 처리는 제1 예시적인 실시예의 처리와 유사하다.
이제, 제3 예시적인 실시예에 따른 클라우드 서비스에 설치된 프린터 드라이버를 사용한 인쇄 방법을 설명할 것이다. 본 예시적인 실시예에서, 클라우드 프린트 서비스(500)에 설치된 프린터 드라이버는 PDL 데이터를 생성한다. 따라서, 본 예시적인 실시예에 대해서는 전술한 제1 예시적인 실시예의 도 11에 도시된 시퀀스도를 참조하여 설명할 것이다. 제1 예시적인 실시예와 유사한 프로세스들의 설명들은 생략되고, 제1 예시적인 실시예와 상이한 프로세스들만이 설명될 것이다.
단계 S1308에서, 클라우드 프린트 서비스(500)는 클라이언트 컴퓨터(100)의 OS(1053)로부터 화상 데이터와 인쇄 설정을 수신하고, 수신된 화상 데이터 및 인쇄 설정에 기초하여 PDL 데이터를 생성한다. 클라우드 프린트 서비스(500)는 OS(1053)로부터 수신된 인쇄 설정으로부터 인쇄에 사용되는 프린터의 디바이스 명칭을 취득한다. 클라우드 프린트 서비스(500)는 도 17b에 도시된 테이블을 참조하여 취득된 디바이스 명칭에 의해 표시되는 프린터에 대응하는 드라이버를 식별한다. 클라우드 프린트 서비스(500)는 식별된 드라이버가 설치되어 있는지를 판정한다. 전술한 판정에 기초하여 식별된 프린터 드라이버가 클라우드 프린트 서비스(500)에 설치되어 있는 경우, 식별된 프린터 드라이버의 렌더링 유닛(309)은 PDL 데이터를 생성한다. 취득된 디바이스 명칭에 대응하는 프린터 드라이버가 클라우드 프린트 서비스(500)에 설치되어 있지 않다고 판정되면, 클라우드 프린트 서비스(500)는 다음의 처리를 실행한다. 즉, 클라우드 프린트 서비스(500)는 프린터 드라이버 배포 서비스(300)로부터 취득된 드라이버를 사용하지 않고, 클라우드 프린트 서비스(500)에 미리 포함된 모듈을 사용하여 PDL 데이터를 생성한다. 드라이버가 취득된 프린터 명칭에 기초하여 식별되지 않는 경우에도, 클라우드 프린트 서비스(500)는 클라우드 프린트 서비스(500)에 미리 포함된 모듈을 사용하여 PDL 데이터를 생성한다.
그 후, 단계 S1309에서, 클라우드 프린트 서비스(500)는 생성된 PDL 데이터를 인쇄 작업 생성 유닛(506)에 전달하고, 인쇄 데이터를 사용하여 인쇄 작업을 생성하고, 그 인쇄 작업을 인쇄 작업 저장 영역(511)에 저장한다.
전술한 바와 같이, 프린터 드라이버 배포 서비스(300)로부터 배포된 드라이버를 사용하여 PDL 데이터가 생성될 수 있다. 프린터 드라이버 배포 서비스(300)에 등록된 프린터 드라이버는 클라우드 프린트 서비스(500)에 설치되고, 따라서 클라우드 프린트 서비스(500)에 의해 지원되지 않는 인쇄 설정이 반영된 PDL 데이터를 생성할 수 있다.
제3 예시적인 실시예에서, 벤더에 의해 만들어진 프린터 드라이버를 클라우드 프린트 서비스(500)에 설치함으로써, 드라이버를 사용하여 PDL 데이터를 생성한다. 제4 예시적인 실시예에서, OS 표준 드라이버에 의해 생성된 XPS 데이터로부터 PDL 데이터를 생성하기 위한 필터가 클라우드 프린트 서비스(500)에 설치되고, 그에 의해 PDL 데이터를 생성한다.
이제, 도 18을 참조하여, 제4 예시적인 실시예에 따른 프린터 드라이버 배포 서비스(300)의 기능 블록들의 예에 대해서 설명할 것이다. 제1 예시적인 실시예의 구성 요소와 유사한 도 18에 도시한 구성 요소는 동일한 참조 번호로 표시되고, 제1 예시적인 실시예의 구성 요소와 상이한 구성 요소만이 설명될 것이다.
드라이버 패키지(306)는 프린터 드라이버 배포 서비스(300)로부터 배포되는 패키지의 일례이다. 본 예시적인 실시예에서, V4 드라이버 아키텍처에서 동작할 드라이버 패키지가 드라이버 패키지(306)로서 사용된다고 가정한다. V4 드라이버 아키텍처는 Microsoft Windows 8 및 후속 플랫폼들에 포함된 XPS(XML Paper Specification) 인쇄 경로에서 동작되는 인쇄 구조이다.
드라이버 패키지(306)는 드라이버 정보 유닛(307), 디바이스 능력 정보 유닛(308), 레이아웃 필터(311), 및 렌더러 필터(렌더링 필터)(312)를 포함한다. 드라이버 정보 유닛(307)은 드라이버 정보 유닛(304)과 유사하게, 각각의 프린터를 식별하기 위한 HWID 및 COID, 패키지가 드라이버 확장 패키지라는 것을 나타내는 정보, 및 드라이버 확장 패키지(303)의 버전과 같은 정보를 포함한다. 본 예시적인 실시예는 드라이버 패키지(306)가 레이아웃 필터(311) 및 렌더러 필터(312)를 포함한다는 점에서 제3 예시적인 실시예와 상이하다.
디바이스 능력 정보 유닛(308)은 드라이버 확장 패키지(303)의 디바이스 능력 정보 유닛(305)과 유사하게, 대응하는 프린터(200)에 관한 디바이스 능력 정보 및 충돌 정보를 포함한다. 디바이스 능력 정보는 예를 들어, 프린터(200)가 컬러 인쇄를 지원하는지 또는 양면 인쇄를 지원하는지를 나타내는 정보이다. 드라이버 확장 패키지(303)에 포함되는 능력 정보는 전술한 능력 정보뿐만 아니라, 벤더 고유의 스테이플리스 바인딩이 수행될 수 있는지를 나타내는 정보, 새들 스티치 바인딩이 수행될 수 있는지를 나타내는 정보, 및 혼합된 용지 인쇄가 수행될 수 있는지를 나타내는 정보를 포함한다. 혼합된 용지 인쇄는 각종 용지를 사용한다. 또한, 본 예시적인 실시예에서는, 디바이스 능력뿐만 아니라, 드라이버에 의해 수행된 처리에 의해 완료된, 벤더 고유의 인쇄 설정 정보가 포함된다.
레이아웃 필터(311)는 배율의 변경, 및 제본에서의 임포지션 레이아웃(imposition layout) 또는 스탬프와 같은, 레이아웃 관련 처리를 수행한다.
렌더러 필터(312)는 V4 드라이버 아키텍처에서 동작하는데 사용되는 스풀 파일(spool file)인 XPS 데이터를 렌더링하고, XPS 데이터를 PDL 데이터로 변환한다.
레이아웃 필터(311)와 렌더러 필터(312)는 V4 드라이버 아키텍처에서 사용되는 필터 파이프라인 플러그인으로서 사용되는 필터이다.
도 19는 제4 예시적인 실시예에 따른 클라우드 서비스에 프린터 드라이버를 설치하기 위한 방법을 도시하는 타이밍도이다. 제1 예시적인 실시예와 유사한 도 19의 프로세스들은 동일한 참조 번호로 표시되고, 제1 예시적인 실시예와는 상이한 구성 요소만이 설명될 것이다.
도 19는 프린터(200)를 클라우드 프린트 서비스(500)에 등록하기 위한 처리를 도시하는 타이밍도이다. 본 예시적인 실시예에서, 클라이언트 컴퓨터(100)는 프린터(200)에 액세스하고, 프린터(200)를 조작함으로써, 클라우드 프린트 서비스(500)에 프린터(200)를 등록하라는 요청을 송신한다.
프린터(200)는 클라우드 프린트 기능(클라우드 프린트 서비스로부터 인쇄 작업을 수신하여 인쇄하기 위한 기능) 및 클라이언트 컴퓨터(100)로부터 프린터(200)를 조작하기 위한 웹 UI 기능을 지원한다. 웹 UI 기능은 UI를 생성하고 네트워크 상에서 UI를 공개하기 위한 기능이다. 클라이언트 컴퓨터(100)는 클라우드 프린트 클라이언트 기능(클라우드 프린트 서비스에 파일을 송신하기 위한 기능) 및 웹 UI를 조작하기 위한 웹 UI 클라이언트(예를 들어, 웹 브라우저)를 지원한다. 클라우드 프린트 서비스(500)는 인터넷(203) 상의 클라우드 프린트 서비스를 나타낸다.
단계 S1512에서, 클라우드 프린트 서비스(500)는 프린터 드라이버 배포 서비스(300)에 드라이버 패키지(306)를 다운로드하기 위한 요청을 송신한다. 이 요청은 클라우드 프린트 서비스(500)에 등록된 프린터에 대응하는 드라이버 패키지(306)를 수신하기 위한 요청이다. 클라우드 프린트 서비스(500)는 드라이버 패키지(306)를 다운로드하기 위한 요청 및 프린터(200)를 식별하기 위한 HWID 및 COID를 프린터 드라이버 배포 서비스(300)에 송신한다.
단계 S1512에서, 프린터 드라이버 배포 서비스(300)는 수신된 HWID 및 COID에 기초하여 대응하는 드라이버 패키지(306)를 클라우드 프린트 서비스(500)에 송신한다. 프린터 드라이버 배포 서비스(300)는 도 17a에 도시된 프린터 드라이버 데이터베이스(310)로부터 수신된 HWID와 매칭되는 프린터 드라이버 및 드라이버 확장 패키지를 식별한다. 도 17b에 도시된 디바이스 iR-ADV CCCC로 표시된 바와 같이, HWID와 매칭되는 프린터 드라이버(확장 플래그는 "FALSE"를 나타냄)와 확장 패키지(확장 플래그는 "TRUE"를 나타냄) 양쪽 모두가 프린터 드라이버 데이터베이스에 동시에 존재하면, 프린터 드라이버가 우선적으로 송신된다.
HWID와 매칭되는 프린터 드라이버 및 드라이버 확장 패키지가 식별되지 않으면, 프린터 드라이버 배포 서비스(300)는 수신된 COID와 매칭되는 프린터 드라이버 및 드라이버 패키지(306)를 식별한다. COID와 매칭되는 프린터 드라이버 및 확장 패키지가 존재하면, 프린터 드라이버가 우선적으로 송신된다. 그 후, 프린터 드라이버 배포 서비스(300)는 식별된 프린터 드라이버 및 드라이버 패키지(306)를 클라우드 프린트 서비스(500)에 송신한다. 드라이버 확장 패키지가 HWID에만 기초하여 식별될 수 있는 경우, 단계 S413에서, HWID만이 프린터 드라이버 배포 서비스(300)에 송신될 수 있다.
단계 S1513에서, 클라우드 프린트 서비스(500)는 클라우드 프린트 서비스(500)로부터 드라이버 패키지(306)를 다운로드한다. 단계 S1610에서, 클라우드 프린트 서비스(500)는 드라이버 패키지(306)에 포함되는, 드라이버 정보 유닛(307), 디바이스 능력 정보 유닛(308), 레이아웃 필터(311) 및 렌더러 필터(312)를 취득한다.
단계 S1611에서, 클라우드 프린트 서비스(500)는 클라우드 서비스 내의 OS에 설치된 OS 표준 드라이버, 취득된 드라이버 패키지(306), 및 등록 요청이 이루어진 프린터(200)에 관한 식별 정보를 서로 연관시켜 등록한다.
구체적으로, 클라우드 프린트 서비스(500)는 V4 드라이버 아키텍처에서 사용되는 디바이스 능력 정보 유닛(308)을 필터 파이프라인 플러그인으로서 사용되는 필터와 연관시키기 위한 갱신 처리를 수행한다. 클라우드 프린트 서비스(500)는 취득된 디바이스 능력 정보 유닛(308)에 관한 정보를 OS 표준 드라이버에 포함된 기본 설정들에 대한 추가 정보로서 추가한다. 이에 의해, 사용자는 클라우드 프린트 서비스(500)로 인쇄할 때 벤더 고유의 인쇄 설정 정보를 추가할 수 있다.
그 후, 클라우드 프린트 서비스(500)는 디바이스 능력 정보 유닛(308)에 의해 확장된 인쇄 설정 정보를 사용하여 각종 프로세스들이 추가될 수 있는 필터 정보를 프린터(200)에 관한 식별 정보 및 OS 표준 드라이버와 연관시킨다. 필터 파이프라인 플러그인은 필터라고 칭한다. 본 예시적인 실시예에서, 레이아웃 필터(311)와 렌더러 필터(312)를 연관시킴으로써 벤더 고유의 인쇄 설정 정보에 기초하여 각종 확장 프로세스가 수행될 수 있다. 필터 파이프라인 플러그인은 XML 포맷의 파일, 즉 도 20에 도시된 필터 파이프라인 구성에 의해 정의된다. 본 예시적인 실시예에서는, 전술한 바와 같이, 레이아웃 필터 정의 유닛(2001)과 렌더러 필터 정의 유닛(2002)을 설명한다. OS 표준 드라이버는 이러한 정의 파일을 판독함으로써, 연관 처리를 완료한다. 이 처리는 OS 표준 드라이버를 확장하고, 벤더 고유의 인쇄 설정 정보를 적절히 처리함으로써 인쇄를 실행할 수 있게 한다.
전술한 처리 후에, 클라이언트 컴퓨터(100)가 클라우드 프린트 서비스(500)에 생성된 프린터(200)에 대응하는 인쇄 큐를 선택하고 인쇄를 지시할 때 다음의 처리가 실행된다.
클라우드 프린트 서비스(500)는 클라이언트 컴퓨터(100)로부터 화상 데이터와 인쇄 설정을 수신한다. 클라우드 프린트 서비스(500)의 OS 표준 드라이버는 수신된 화상 데이터 및 인쇄 설정에 기초하여 XPS 데이터를 생성한다. 생성된 XPS 데이터는 프린터(200)와 연관된 레이아웃 필터(311)에 입력된다. 레이아웃 필터(311)는 입력된 XPS 데이터를 분석하고, 인쇄 설정에 의해 설정된 레이아웃이 반영된 XPS 데이터를 생성한다. 그 후, 레이아웃 필터(311)는 생성된 XPS 데이터를 렌더러 필터(312)에 전달한다. 렌더러 필터(312)는 XPS 파일에 기초하여 프린터(200)에 의해 분석될 수 있는 데이터를 생성한다. 전술한 구성은 프린터 드라이버 배포 서비스(300)로부터 취득된 드라이버 패키지(306)를 사용하는 인쇄를 가능하게 한다.
제4 예시적인 실시예에서 전술한 바와 같이, 프린터 드라이버 배포 서비스(300)에 등록된 프린터 드라이버의 모듈들 중 일부가 사용되고, V4 드라이버 아키텍처를 위한 필터가 사용된다. 제4 예시적인 실시예에서, 범용 클라우드 프린트 서비스(500)에서 행해질 수 없는 인쇄 설정이 반영된 인쇄 데이터가 그에 따라 인쇄 장치에 송신될 수 있다.
본 발명의 실시예들은 이하의 처리를 실행함으로써 구현될 수도 있다. 즉, 전술한 예시적인 실시예들에 따른 기능들을 구현하기 위한 소프트웨어(프로그램)가 네트워크 또는 각종 저장 매체를 통해 시스템 또는 장치에 공급되고, 시스템 또는 장치의 컴퓨터(또는 CPU, 마이크로 처리 유닛(MPU) 등)가 프로그램 코드를 판독하여 실행한다. 이 경우, 컴퓨터 프로그램 및 컴퓨터 프로그램을 저장한 저장 매체는 본 발명의 실시예들을 구성한다.
OS에 의해 제공된 표준 인쇄 시스템에서도, 프린터에 포함된, 벤더 고유의 기능들은 데이터를 벤더 고유의 PDL 데이터로 변환하는 방법을 사용하여 구현될 수 있다.
다른 실시예들
본 발명의 실시예(들)는 또한 저장 매체(이는 더 완전하게는 '비일시적 컴퓨터 판독가능 저장 매체'로서 지칭될 수도 있음)에 기록된 컴퓨터 실행가능 명령어(예를 들어, 하나 이상의 프로그램)를 판독하고 실행하여, 하나 이상의 상기 실시예(들)의 기능을 수행하고, 및/또는 하나 이상의 상기 실시예(들)의 기능을 수행하기 위한 하나 이상의 회로(예를 들어, 주문형 집적 회로(ASIC))를 포함하는 시스템 또는 장치의 컴퓨터에 의해, 그리고 예를 들어, 하나 이상의 상기 실시예(들)의 기능을 수행하기 위해 저장 매체로부터 컴퓨터 실행가능 명령어를 판독하고 실행함으로써 및/또는 하나 이상의 상기 실시예(들)의 기능을 수행하기 위해 하나 이상의 회로를 제어함으로써 시스템 또는 장치의 컴퓨터에 의해 수행된 방법에 의해 실현될 수도 있다. 컴퓨터는 하나 이상의 프로세서(예를 들어, 중앙 처리 장치(CPU), 마이크로 처리 장치(MPU))를 포함할 수 있으며, 컴퓨터 실행가능 명령어를 판독하고 실행하기 위해 개별 컴퓨터 또는 개별 프로세서의 네트워크를 포함할 수 있다. 컴퓨터 실행가능 명령어들은 예를 들어, 네트워크 또는 저장 매체로부터 컴퓨터에 제공될 수 있다. 저장 매체는 예를 들어, 하드 디스크, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 분산형 컴퓨팅 시스템의 스토리지, 광디스크(예를 들어, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD) 또는 블루레이 디스크(BD)™), 플래시 메모리 디바이스, 메모리 카드 등 중 하나 이상을 포함할 수 있다.
(기타의 실시예)
본 발명은, 상기의 실시형태의 1개 이상의 기능을 실현하는 프로그램을, 네트워크 또는 기억 매체를 개입하여 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터에 있어서 1개 이상의 프로세서가 프로그램을 읽어 실행하는 처리에서도 실현가능하다.
또한, 1개 이상의 기능을 실현하는 회로(예를 들어, ASIC)에 의해서도 실행가능하다.
본 발명은 예시적인 실시예들을 포함하지만, 본 발명은 개시된 예시적인 실시예들에 한정되지 않는다는 것이 이해되어야 한다. 이하의 청구항의 범위는 이러한 모든 변형과 동등한 구조 및 기능을 포함하도록 최광의로 해석되어야 한다.
본 출원은 2020년 1월 31일자로 출원된 일본 특허 출원 제2020-015842호의 이익을 주장하며, 이 출원은 그 전체가 본 명세서에 참고로 포함된다.