Patent Description:
As discussed in <CIT>, there has been known a printing system in which a user preliminarily registers information regarding a printing apparatus in a cloud print service, and print data transmitted to the printing apparatus via the cloud print service is printed by the printing apparatus.

The user accesses the cloud print service from an information processing apparatus such as a personal computer (PC), selects a printing apparatus to be used for printing, from among printing apparatuses registered in the cloud print service, and issues a printing instruction of the print data.

The information processing apparatus generates a print job, and inputs the generated print job to a print queue on the cloud print service. The printing apparatus accesses the cloud print service, acquires a print job spooled in the print queue generated on the cloud print service, and outputs the acquired print job.

Representative examples of the cloud print service include Google Cloud Print® discussed in <CIT>, Microsoft Hybrid Cloud Print®, and uniFLOW Online®.

By registering capability information of a printing apparatus to be used into the cloud print service, when registering a print queue into the cloud print service, it becomes possible to provide a user with a print setting screen suitable for the printing apparatus to be used for printing. Conceivable methods of registering capability information of a printing apparatus into the cloud print service include a method of storing capability information in a printing apparatus and acquiring the capability information from the printing apparatus. However, capability information that can be acquired by the cloud print service from the printing apparatus is limited to standardized items.

<CIT> discloses a server system according to the preamble of claim <NUM>, having such limitations.

According to a first aspect of the present invention, there is provided a server system as specified in claims <NUM> to <NUM>. According to a second aspect of the present invention, there is provided a method for controlling a server system as specified in claim <NUM>. According to a third aspect of the present invention, there is provided a computer program as specified in claims <NUM>. According to a fourth aspect of the present invention, there is provided a computer-readable data carrier as specified in claim <NUM>.

<FIG> is a hardware configuration diagram of a client computer (information processing apparatus) that uses a cloud print service according to a first embodiment. The detailed description will be given below.

A central processing unit (CPU) <NUM> controls the entire apparatus based on a program stored in a read-only memory (ROM) <NUM> or a random access memory (RAM) <NUM> of a main storage device <NUM>, or an auxiliary storage device <NUM>.

The RAM <NUM> is also used as a work area when the CPU <NUM> performs various kinds of processing. The auxiliary storage device <NUM> records a cloud driver <NUM>, an operating system (OS) <NUM>, an application <NUM>, and a printing extension application <NUM>. In the following description, the main storage device <NUM> and the auxiliary storage device <NUM> will be collectively described as a storage device.

Input devices such as a pointing device <NUM> and a keyboard <NUM> that are represented by a mouse and a touch panel are devices connected to a system bus <NUM> via an input interface (I/F) <NUM>, for the user issuing various instructions to a computer.

An output I/F <NUM> is an interface for outputting data to the outside, and outputs data to an output device such as a monitor <NUM> and a panel <NUM>. In addition, a client computer <NUM> is equipped with a camera <NUM> to have an image capturing function.

The client computer <NUM> is connected via a communication I/F <NUM> and a network <NUM> with a printer <NUM> and systems, which will be described below with reference to <FIG>. In addition, data exchange is performed between the I/Fs and modules via the system bus <NUM>.

<FIG> is a block diagram of a printing system schematically illustrating a network environment according to the present embodiment.

The client computer <NUM> and the printer <NUM> are connected to the network <NUM>. The client computer <NUM> and the printer <NUM> are connected to the same intranet, and can communicate with each other.

In addition, printers <NUM> and <NUM> are connected to a different intranet <NUM>, and the network <NUM> is connected to the intranet <NUM> via an Internet <NUM>. A printer driver distribution service <NUM>, a printing extension application distribution service <NUM>, and a cloud print service <NUM> are connected to the Internet <NUM>.

The printer driver distribution service <NUM> is a server system including one or a plurality of information processing apparatuses that executes a web-based service of distributing a printer driver to the client computer <NUM>. The client computer <NUM> searches for the printer <NUM> using a protocol such as the Web Services for Devices (WSD) or the Internet Printing Protocol (IPP). The client computer <NUM> acquires a printer driver based on printer identification information of the discovered printer <NUM>, from the printer driver distribution service <NUM>, and installs the acquired printer driver. A printer driver registered in the printer driver distribution service <NUM> is updated by a printer vendor. The client computer <NUM> automatically or manually acquires a new-version printer driver from the printer driver distribution service <NUM>, and updates the installed printer driver with the acquired new-version printer driver.

The printing extension application distribution service <NUM> is a server system that executes a service of distributing an application to be executed by the client computer <NUM>. A printing extension application is an application for extending a printing function to be provided by a cloud print service or an OS. A printing function provided by a cloud print service or an OS only enables a print setting of a general function that can be used by a printer of any vendor, such as a color mode and duplex printing. By using the printing extension application, it becomes possible to make a print setting of a printing function that cannot be made by a printing function provided by a cloud print service or an OS, such as stapleless stapling, poster printing, or booklet printing.

If the client computer <NUM> receives a user operation of requesting the install of a printing extension application, the client computer <NUM> accesses the printing extension application distribution service <NUM> and installs a printing extension application. In addition, if an application identifier is described in an information (Inf) file of a printer driver installed on the client computer <NUM>, a printing extension application is installed. The client computer <NUM> accesses the printing extension application distribution service <NUM> and installs a printing extension application corresponding to the application identifier described in the Inf file.

The cloud print service <NUM> is a service that is constructed on a cloud, and is a server system including one or a plurality of information processing apparatuses. In the present embodiment, the cloud print service <NUM> can connect to each intranet, and connect with the client computer <NUM> and the printers <NUM>, <NUM>, and <NUM> via the Internet. The cloud print service <NUM> is under the account management that uses a user identification (ID) and a password, and the client computer <NUM> accesses the cloud print service <NUM> using account information input by the user.

In the present embodiment, the client computer <NUM> is assumed to store in advance uniform resource locators (URLs) of the cloud print service <NUM> and the printing extension application distribution service <NUM>. In addition, the cloud print service <NUM> is assumed to store in advance a URL of the printer driver distribution service <NUM>.

<FIG> is a block diagram illustrating an example of functional blocks of the printer driver distribution service <NUM>. The printer driver distribution service <NUM> is a server system including one or a plurality of information processing apparatuses having a configuration similar to that of the information processing apparatus illustrated in <FIG>. A printer driver registration unit <NUM> and a printer driver response unit <NUM> are implemented by a CPU of an information processing apparatus included in the printer driver distribution service <NUM>, executing programs.

The printer driver distribution service <NUM> is a service existing on a cloud connected to the Internet, and enables a package related to a printer driver, to be distributed to an external service or the client computer <NUM>. The package related to a printer driver is a printer driver or a driver extension package, for example.

When the printer driver registration unit <NUM> receives a registration instruction of a package related to a printer driver, from an external service and the client computer <NUM>, the printer driver registration unit <NUM> registers an uploaded package into a printer driver database <NUM>. The printer driver registration unit <NUM> registers, for example, a printer driver distributed by a printer vendor, or a driver extension package for extending a printer driver into the printer driver database <NUM>.

When a request for a package related to a printer driver is received from an external service or the client computer <NUM>, the printer driver response unit <NUM> acquires a corresponding package from the printer driver database <NUM> and transmits a response including the acquired package. For example, when a request for a printer driver supporting the printer <NUM> in which a print queue is generated is received from the client computer <NUM>, the printer driver response unit <NUM> reads a printer driver supporting the printer <NUM> from the printer driver database <NUM>, and transmits the read printer driver to the client computer <NUM>. In addition, the printer driver response unit <NUM> receives an acquisition request for a driver extension package for extending an installed printer driver, from the client computer <NUM>. The printer driver response unit <NUM> reads a driver extension package corresponding to a requested printer driver, from the printer driver database <NUM>, and transmits the read driver extension package to the client computer <NUM>.

A database to be described below with reference to <FIG> is stored in the printer driver database <NUM>. In addition to printer drivers supporting various printers, a driver extension package <NUM> is also stored in the printer driver database <NUM>.

The driver extension package <NUM> is an example of a package to be distributed from the printer driver distribution service <NUM>. The driver extension package <NUM> includes a driver information portion <NUM> and a device capability information portion <NUM>. The driver information portion <NUM> includes a hardware identification (HWID) and a Compatible ID (COID) for identifying a driver, information indicating that a corresponding package is a driver extension package, and information regarding a version of the driver extension package <NUM>. The device capability information portion <NUM> includes device capability information and prohibition information of a corresponding printer <NUM>. The device capability information is information regarding a folding position and a folded portion in booklet printing, or information regarding mixed sheet printing for executing one job using sheets of different sizes or types, for example.

<FIG> is a block diagram illustrating an example of functional blocks of the printing extension application distribution service <NUM>. An application registration unit <NUM> and an application response unit <NUM> are implemented by a CPU(s) of one or a plurality of information processing apparatuses included in the printing extension application distribution service <NUM>, executing programs.

The printing extension application distribution service <NUM> is a service existing on a cloud connected to the Internet, and enables a printing extension application to be distributed to an external service or the client computer <NUM>. An application that can be distributed by the printing extension application distribution service <NUM> is not limited to the printing extension application <NUM>, and the printing extension application distribution service <NUM> may be able to distribute another application.

When a registration instruction of the printing extension application <NUM> or another application is received from an external service or the client computer <NUM>, the application registration unit <NUM> registers an uploaded application into an application database <NUM>.

When an acquisition request for the printing extension application <NUM> is received from an external service or the client computer <NUM>, the application response unit <NUM> acquires a corresponding application from the application database <NUM> and transmits the acquired application to a request source.

The application database <NUM> is a database in which information regarding a print setting application distributed by a vendor and for which a registration request is received from an external service or the client computer <NUM> is registered. The details of information to be registered in the application database <NUM> will be described below with reference to <FIG>.

The printing extension application <NUM> according to the present embodiment includes a setting file portion <NUM> and an execution file unit <NUM>. The setting file portion <NUM> includes information such as an identifier for identifying the printing extension application <NUM>, and an HWID and a COID for identifying a compatible printer <NUM>. The execution file unit <NUM> is an execution file unit of the printing extension application <NUM>. The execution file unit <NUM> can receive a push notification from a print setting user interface (UI) or an external service, and display the received push notification.

<FIG> is a functional block diagram of the cloud print service <NUM> according to the present embodiment. Each functional block is implemented by a CPU(s) of one or a plurality of information processing apparatuses included in the cloud print service <NUM>, executing a program.

The cloud print service <NUM> is a service existing on a cloud connected to the Internet, and enables the provision of a function related to a printing. In the present embodiment, the cloud print service <NUM> has functions of a printer registration unit <NUM>, a print queue generation unit <NUM>, a printer list generation unit <NUM>, a search response unit <NUM>, and a printer database <NUM>. Furthermore, the cloud print service <NUM> has functions of a print job management unit <NUM>, a print job generation unit <NUM>, and a print job storage region <NUM>. Alternatively, these functions may be provided on another cloud print service cooperating with the cloud print service <NUM>.

The following description will be given of an example case where the printer <NUM> is registered in the cloud print service <NUM>, and printing is performed using the printer <NUM>. Similar processing can also be implemented by the printer <NUM> or <NUM> connectable with the cloud print service <NUM>.

When a printer registration instruction is received from the printer <NUM>, the printer registration unit <NUM> generates a print queue using the print queue generation unit <NUM>, and registers the generated print queue into the printer database <NUM> in association with printer identification information. A state in which a print queue of a printer and printer identification information are registered in association with each other in this manner will be described as a state in which a printer is registered. In some cases, various attributes are added to the registered printer. For example, various attributes include a location of the printer.

In accordance with the control of the printer registration unit <NUM>, the print queue generation unit <NUM> generates a print queue on the cloud print service <NUM>. If the client computer <NUM> issues a printing instruction, a print job is registered into the print queue generated by the print queue generation unit <NUM>.

The printer list generation unit <NUM> generates a list of registered printers. When the client computer <NUM> requests a list of printers registered in the cloud print service <NUM>, the printer list generation unit <NUM> generates a list of printers.

Based on printer search performed on the cloud print service <NUM> by the client computer <NUM>, the search response unit <NUM> transmits, to the client computer <NUM>, a response including information regarding registered printers.

The print job management unit <NUM> receives image data and a print setting from the client computer <NUM>, and transmits, to the printer <NUM>, a print job generated by the print job generation unit <NUM>. In addition, the print job management unit <NUM> stores into the print job storage region <NUM> a print job generated by the print job generation unit <NUM>.

The printer database <NUM> is a database storing information regarding printers registered in the cloud print service <NUM>. Items stored in the printer database <NUM> will be described below with reference to <FIG>.

First of all, processing of registering the printer <NUM> into the cloud print service <NUM> will be described.

<FIG> is a sequence diagram illustrating processing of registering the printer <NUM> into the cloud print service <NUM> according to the present embodiment. In the present embodiment, by accessing the printer <NUM> from the client computer <NUM> and operating the printer <NUM>, a registration request of the printer <NUM> is transmitted to the cloud print service <NUM>.

The printer <NUM> supports a cloud print function (function of receiving a print job from a cloud print service and printing the received print job), and a Web UI function for operating the printer <NUM> from the client computer <NUM>. The Web UI function is a function of generating a UI and publishing the generated UI onto a network. The client computer <NUM> supports a cloud print client function (function of transmitting a file to a cloud print service), and a Web UI client (e.g., Web browser) for operating a Web UI. In addition, the cloud print service <NUM> represents a cloud print service on the Internet.

First, the user opens a Web UI of the printer <NUM> using the Web UI client of the client computer <NUM>, and selects on the Web UI a button for registering a printer into a cloud print service. When the button is selected, in step S410, the client computer <NUM> transmits to the printer <NUM> a request for registration into the cloud print service <NUM>.

If the printer <NUM> receives, in step S410, the request for registration into the cloud print service <NUM>, in step S411, the printer <NUM> transmits to the cloud print service <NUM> the request for registration into the cloud print service <NUM>. In this manner, in the present embodiment, a registration request of the printer <NUM> is transmitted from the Web UI client of the client computer <NUM> to the cloud print service <NUM>. This request may be enabled to be transmitted by operating an input device included in the printer <NUM>, such as a panel. At this time, a request is not transmitted from the client computer <NUM>, and the printer <NUM> transmits a registration request of a printer to the cloud print service <NUM>.

The cloud print service registration request transmitted to the cloud print service <NUM> in step S411 includes information regarding the printer <NUM>. The information regarding the printer <NUM> includes a name of the printer <NUM>, information (HWID) for identifying a model of the printer, and a COID for identifying a type of the printer such as an inkjet printer or a laser printer. The information regarding the printer <NUM> further includes internet protocol (IP) address information, and a capability information file regarding a function standardized by the IPP.

If the cloud print service <NUM> receives a registration request in step S411, in step S412, the cloud print service <NUM> causes the print queue generation unit <NUM> to generate a print queue for transmitting a print job to the printer <NUM>. The printer registration unit <NUM> registers information regarding the printer <NUM> and capability information into the printer database <NUM>, and generates a record of the printer <NUM> designated in the registration request. Further, the print queue generation unit <NUM> generates a print queue. The print queue is generated using a name of a printer (device name), an HWID and a COID for identifying a model of a printer, and an IP address of a printer, which are included in the received information regarding the printer <NUM>.

Next, in step S413, the cloud print service <NUM> transmits a download request for the driver extension package <NUM> to the printer driver distribution service <NUM>. The download request is a request for receiving the driver extension package <NUM> supporting a printer registered in the cloud print service <NUM>. The cloud print service <NUM> transmits the download request for the driver extension package <NUM>, the HWID, and the COID of the printer <NUM> to the printer driver distribution service <NUM>.

In step S414, the printer driver distribution service <NUM> transmits a corresponding driver extension package <NUM> to the cloud print service <NUM> based on the received HWID and COID. The printer driver distribution service <NUM> identifies, from the printer driver database <NUM>, a driver extension package that is a package having an extension flag indicating TRUE and having an HWID corresponding to the received HWID. If a driver extension package having an extension flag indicating TRUE but having an HWID corresponding to the received HWID is not identified, the printer driver distribution service <NUM> identifies a driver extension package having an extension flag indicating TRUE and having a COID corresponding to the received COID. Then, the printer driver distribution service <NUM> transmits the identified driver extension package to the cloud print service <NUM>. If a driver extension package can be identified only based on an HWID, in step S413, only an HWID may be transmitted to the printer driver distribution service <NUM>.

Then, in step S415, the cloud print service <NUM> analyzes the device capability information portion <NUM> of the downloaded driver extension package <NUM>, and extends the print queue. The cloud print service <NUM> acquires capability information of the printer <NUM> from the device capability information portion <NUM> of the driver extension package <NUM>. Then, the cloud print service <NUM> updates capability information of the printer that corresponds to the print queue in printer information in the printer database <NUM>. In step S415, the cloud print service <NUM> overwrites capability information associated with the print queue, with capability information acquired from the driver extension package. Alternatively, the cloud print service <NUM> may add capability information regarding a setting item not associated with the print queue, from the capability information acquired from the driver extension package, to the capability information corresponding to the print queue. Alternatively, the cloud print service <NUM> may acquire information indicating a hardware configuration of the printer <NUM>, from the printer <NUM>, and determine capability information based on capability information included in the driver extension package and the hardware configuration information.

By the above-described processing, the print queue of the printer <NUM> registered in the cloud print service <NUM> is extended based on vendor-unique device capability information. Then, in step S416, information regarding the printer <NUM> is registered into the printer database <NUM>. By the above-described processing, the capability information extended by the driver extension package is registered into the printer database <NUM> as the capability information corresponding to the print queue.

<FIG> illustrates an example of the printer database <NUM> held by the cloud print service <NUM>. A device name indicates a name of a printer (device name) acquired from the printer <NUM> at a time of registration. An HWID indicates an identifier (identifier unique to a model) to be used for identifying the model of the printer <NUM>. A COID is identification information for identifying the category of a printer, such as information indicating whether the printer <NUM> is an inkjet printer or a laser beam printer. An IP address indicates an IP address of a connection destination printer <NUM>. A package indicates a package name of a driver extension package <NUM> to be used for extending a print queue corresponding to the printer. When a print queue is not extended, Null is indicated. Furthermore, in addition to these items, vendor-unique device capability information extended by the driver extension package <NUM> is registered in the table in a JavaScript (registered trademark) Object Notation (JSON) format, which is not illustrated in <FIG>. A format in which the device capability information is stored is not limited to the JSON format, and the device capability information may be stored in another data format. In addition, information regarding a printer and information regarding a user who can use the printer may be stored in the table illustrated in <FIG>, in association with each other.

<FIG> illustrates an example of capability information stored in association with a print queue. As an example, the capability information is stored in the JSON format, and each setting indicates a function. In addition, each function includes settable options in an array format.

Capability information <NUM> indicates standard capability information defined by the IPP. "Duplex" is a setting item regarding a duplex function, and indicates that "Duplex" indicating duplex printing and "One-Sided" indicating one-sided printing are included as options of the setting item. "Color" is a setting item regarding color printing, and indicates that "Mono" indicating monochrome printing and "Color" indicating color printing are included as options. "Orientation" is a setting item regarding the orientation of a sheet to be used for printing, and indicates that "Portrait" indicating a vertically-long direction, and "Landscape" indicating a horizontally-long direction are included as options. In capability information provided from the printer <NUM> to the cloud print service <NUM>, these setting items and options are standard setting items and options defined by the IPP. By extending device capability information using a driver extension package, even standard setting items defined by the IPP that are described in the capability information <NUM> can include options unique to a vendor. For example, by extending "Staple" being a setting item regarding binding of sheets, in addition to "Staple left top" indicating binding at a left-top one point, which is a standard option, "Saddle Stitch" indicating saddle stitching becomes settable.

Capability information <NUM> is capability information extended by the driver extension package <NUM>, and is capability information regarding setting items unique to a vendor, for example. The capability information <NUM> includes Extension_Setting1 and Extension_Setting2 as functions, and Extension_option1 and Extension_option2 as options of the functions. Examples of Extension settings include a setting regarding mixed sheet printing for executing one job using a plurality of types of sheets. If the function is a sheet mixed function, a character string indicating mixed sheet printing is described in "Extension_Setting1". Then, a character string indicating an option indicating that A3 sheets and A4 sheets are to be used, for example, is described in "Extension_option1", and a character string indicating an option indicating that B4 sheets and B5 sheets are to be used is described in Extension_option2". An option that cannot be selected in standard capability information defined by the IPP is included in the device capability information portion of the driver extension package <NUM>.

In other words, a plurality of definitions can be made for an extension function. <FIG> illustrates the JSON format as an example, but another data format may be used.

Based on these pieces of information, the printing extension application <NUM> generates a print setting screen illustrated in <FIG>.

Referring back to <FIG>, if the registration into the printer database <NUM> is completed, in step S417, the cloud print service <NUM> transmits a cloud print service registration request response including a registration URL for cloud print registration, and a registration URL presentation request to the printer <NUM>.

In step S418, the printer <NUM> receives the cloud print service registration request response and the registration URL presentation request, and outputs registration URL information. In step S418, the printer <NUM> notifies the user of the registration URL by displaying the registration URL on the monitor <NUM>, or printing a sheet on which registration URL information is described. In addition, the printer <NUM> may notify the client computer <NUM> of the registration URL via a Web UI.

In step S419, the user accesses the cloud print service <NUM> identified by the registration URL presented from the printer <NUM>. At this time, because the user needs to log in a cloud account accessible to the cloud print service <NUM>, the user needs to input a user ID and a password.

Based on the cloud account and the registration URL including printer information, the cloud print service <NUM> associates the user and the printer <NUM> with each other. As an associating method, for example, there is a method of associating printer information and a user token with each other. However, the associating method is not limited to this method. Then, in step S420, the cloud print service <NUM> transmits to the printer <NUM> a user token including information regarding the cloud print service <NUM>, and ends the registration processing of the printer <NUM> into the cloud print service <NUM>. Then, the printer <NUM> accesses the cloud print service <NUM> using the user token.

The printer driver database <NUM> referred to in step S413 of <FIG> will now be described. <FIG> illustrates an example of the printer driver database <NUM> held by the printer driver distribution service <NUM>. A package name indicates a name of a package acquired from the driver information portion <NUM> at the time of registration. An HWID indicates identification information (identification information unique to a model) used for identifying a model of the printer <NUM>. A COID is identification information for identifying a category of a printer that uses a corresponding driver. A package indicates a name of a package including the driver extension package <NUM>. The package may be information such as a file path, as long as it is possible to identify a driver or a driver extension package corresponding to the record based on the information. Extension indicates whether the driver extension package <NUM> is an extension file. If extension indicates "FALSE", a corresponding package is not an extension package but a printer driver. On the other hand, if extension indicates "TRUE", a corresponding package is not a printer driver but a package for extending a driver. An application identifier is identification information for identifying an application to be used when a print setting screen is extended using capability information stored in a corresponding driver extension package. In the present embodiment, only a driver extension package includes an application identifier, but a printer driver may also include an application identifier.

The printer driver registration unit <NUM> analyzes the driver information portion <NUM> when registering a package into the printer driver database <NUM>. The printer driver registration unit <NUM> acquires a package name, an HWID, a COID, and information indicating whether a corresponding package is a driver extension package, and registers the acquired information into the printer driver database <NUM> together with the driver extension package <NUM>.

Next, the description will be given of the application database <NUM> to be referred to in step S617 of <FIG>, which will be described below. <FIG> illustrates an example of the application database <NUM> held by the printing extension application distribution service <NUM>. An application name is a name of an application registered in the database including the printing extension application <NUM>. An application identifier is information for identifying an application including the printing extension application <NUM>. An application package is a file path in which an application including the printing extension application <NUM> is stored. The application package may be a name of a folder in which the application is stored, as long as it is possible to identify a package of a registered printing extension application based on the information.

The application registration unit <NUM> analyzes the setting file portion <NUM> and acquires an application name and an application identifier. The application registration unit <NUM> registers the above-described information into the application database <NUM> together with the printing extension application <NUM>.

Next, processing performed when a print queue of the printer <NUM> registered in the cloud print service <NUM> is generated on the client computer <NUM>, and a printing extension application is installed will be described with reference to <FIG>.

<FIG> is a sequence diagram illustrating a sequence of processing of installing the printing extension application <NUM> onto the client computer <NUM> according to the present embodiment.

When the client computer <NUM> outputs print data to the printer <NUM> using cloud print, the client computer <NUM> transmits a print job to the cloud print service <NUM>. Thus, a print queue for transmitting a print job to the cloud print service <NUM> is to be generated on the client computer <NUM>.

In the present embodiment, using a printer search function included in the OS <NUM> as a standard function, a print queue of a printer registered in the cloud print service <NUM> is generated. Typically, when printer search is performed, a printer existing on the same intranet becomes a search target. For example, in <FIG>, if the client computer <NUM> performs printer search, the client computer <NUM> can discover the printer <NUM> but cannot discover the printers <NUM> and <NUM> existing on another intranet. In the present embodiment, the client computer <NUM> can access the cloud print service <NUM>. When a printer is registered in the cloud print service <NUM>, the printer registered in the cloud print service <NUM> can be discovered by printer search. In the present embodiment, in addition to the above-described printer <NUM>, the printers <NUM> and <NUM> are registered in the cloud print service <NUM>, and these printers can also be discovered using the printer search function of the OS <NUM>.

In step S610, the client computer <NUM> performs printer search, which is the above-described standard function of the OS <NUM>. In step S610, the client computer <NUM> searches for a printer registered in the cloud print service <NUM>, in addition to a printer existing on the same intranet as the client computer <NUM>. The client computer <NUM> accesses the cloud print service <NUM>, and transmits to the cloud print service <NUM> a list request for printer information registered on the cloud print service <NUM>.

If information regarding printer search is received, the search response unit <NUM> of the cloud print service <NUM> presents available printers to the client computer <NUM>. For presenting the available printers, in step S611, the cloud print service <NUM> generates a printer list including printer information available to a user who is accessing the cloud print service <NUM> from the client computer <NUM>. The printer information includes a name of a printer (device name), an HWID for identifying a model of the printer, and an IP address of the printer as described above. The printer list including the printer information is generated by the printer list generation unit <NUM> of the cloud print service <NUM> using information stored in the printer database <NUM>.

In step S612, the cloud print service <NUM> returns the generated printer list to the client computer <NUM>. At this time, information such as an HWID and a COID, which serves as printer identification information described in <FIG>, is also included in the printer information of the transmitted printer list. Based on the printer list, the client computer <NUM> displays a selection screen of printers available to the user, on the monitor <NUM>. The user selects from the presented printer list a printer desired to be used.

In step S613, the OS <NUM> of the client computer <NUM> installs the cloud driver <NUM> to be used in the cloud print service <NUM>, and generates a print queue of the selected printer. The client computer <NUM> acquires information regarding the printer selected by the user, from the cloud print service <NUM>, and generates a print queue using the acquired information. The client computer <NUM> generates a print queue based on an HWID, a COID, an IP address, and capability information of the printer that have been acquired from the cloud print service <NUM>. If the cloud driver <NUM> has already been installed on the client computer <NUM>, the client computer <NUM> does not install the cloud driver <NUM>. The client computer <NUM> generates a print queue using information regarding the printer that has been acquired from the cloud print service <NUM>.

Furthermore, if the OS <NUM> of the client computer <NUM> has succeeded to generate the print queue, in step S614, the OS <NUM> transmits a download request for the driver extension package <NUM> to the printer driver distribution service <NUM>. The client computer <NUM> transmits an HWID, a COID, and an acquisition request for a driver extension package to the cloud print service <NUM>. The client computer <NUM> may transmit either an HWID or a COID to the cloud print service <NUM>.

If the printer driver distribution service <NUM> receives the download request, in step S615, the printer driver distribution service <NUM> performs download processing on the client computer <NUM>. The printer driver distribution service <NUM> identifies a package having an HWID corresponding to the received HWID, from among driver extension packages registered in the printer driver database <NUM>, and transmits the identified package to the client computer <NUM>. If the driver extension packages do not include a package having an HWID corresponding to the received HWID, the printer driver distribution service <NUM> identifies a driver extension package having a COID corresponding to the received COID. Then, the printer driver distribution service <NUM> transmits the identified driver extension package to the client computer <NUM>.

In step S616, the OS <NUM> of the client computer <NUM> installs the driver extension package <NUM>, and extends capability information of the above-described print queue generated based on the cloud driver <NUM>. The client computer <NUM> updates capability information corresponding to the print queue, with device capability information of the driver extension package. In other words, the client computer <NUM> extends the print queue of the printer <NUM> registered in the cloud print service <NUM>, using vendor-unique device capability. If printer capability information has not been acquired from the cloud print service <NUM>, by associating with the print queue capability information included in the driver extension package, the print queue is extended. If capability information has been acquired from the cloud print service <NUM>, by overwriting the capability information acquired from the cloud print service <NUM> with the capability information included in the driver extension package, the print queue is extended. In addition, if capability information has been acquired from the cloud print service <NUM>, the print queue is extended by adding capability information that is capability information included in the driver extension package, and not included in the capability information acquired from the cloud print service <NUM>. Furthermore, based on the above-described capability information and hardware configuration information of a printer, a function executable by the printer is registered in the print queue as capability information.

Next, in step S617, the client computer <NUM> transmits a download request to the printing extension application distribution service <NUM>. At this time, based on the above-described identifier information of the printing extension application <NUM>, the OS <NUM> issues a download request for the printing extension application <NUM> associated with a target printer. In the present embodiment, in the printing extension application distribution service <NUM>, identifier information of the printing extension application <NUM> of the driver extension package <NUM> and the printing extension application <NUM> are associated with each other on a one-to-one basis.

In addition, in the printing extension application distribution service <NUM>, metadata describing information regarding association between identifier information of the printing extension application <NUM> and an HWID included in printer information may be stored. In this case, a structure of downloading an appropriate printing extension application <NUM> using the metadata is employed.

If the printing extension application distribution service <NUM> receives the download request, in step S618, the printing extension application distribution service <NUM> performs download processing on the client computer <NUM>. The application response unit <NUM> identifies, from the application database <NUM>, an application corresponding to an application identifier notified from the client computer <NUM>. The application response unit <NUM> transmits the identified printing extension application to the client computer <NUM>. In step S619, the client computer <NUM> installs the printing extension application <NUM>.

After the install, in the client computer <NUM>, the printing extension application <NUM> and the printer <NUM> are associated with each other on a one-to-one basis. Accordingly, it becomes possible to present an appropriate print setting UI to the user because the print queue on the client computer <NUM> includes model information and print setting information of the printer <NUM>. Alternatively, the printing extension application <NUM> may communicate with the cloud print service <NUM>, acquire target model information and print setting information, and a UI may be provided using the information. If the install of the printing extension application <NUM> is completed, it becomes possible for the user to use a detailed print setting change.

In the present embodiment, after a print queue is generated on the client computer <NUM>, the client computer <NUM> accesses the printer driver distribution service <NUM>, and acquires a driver extension package. The client computer <NUM> may acquire information regarding an extended print queue from the cloud print service <NUM>, without extending a print queue on the client computer <NUM>. In this case, the client computer <NUM> omits the processing in steps S614 to S616. Alternatively, after the client computer <NUM> acquires information regarding an extended print queue from the cloud print service <NUM>, the client computer <NUM> may execute the processing in steps S614 to S616.

Next, the description will be given of a case where the user operates the client computer <NUM>, and performs printing via the cloud print service <NUM>.

If the user uses cloud print, the user issues a printing instruction from the application <NUM> of the client computer <NUM>. As a specific example, the user selects a "printing" button from a file menu of the application <NUM>. In accordance with the printing instruction from the user, the application <NUM> issues to the OS <NUM> an instruction to display a printing common dialog (print setting screen provided by an OS) illustrated in <FIG>. Upon receiving the instruction from the application <NUM>, the OS <NUM> displays the printing common dialog. On the printing common dialog displayed by the OS <NUM>, a list of printers of which print queues are generated on the client computer <NUM> can be presented, and the designation of a page to be printed, and the setting of the number of copies can be performed. In a region <NUM>, a name of a print queue generated on the client computer <NUM> is displayed. In the region <NUM>, in addition to a print queue of a printer connected with the client computer <NUM> via an intranet, print queues of printers that can be used for printing via the cloud print service <NUM> are displayed. On the printing common dialog, the user can only perform page designation and the setting of the number of copies that can be set whichever printer is used.

For making a print setting that cannot be made by the user on the printing common dialog, the user selects on the printing common dialog a print queue of a printer desired to be used for output, and selects a detail setting button (object) <NUM> displayed on the same screen. If the user selects the "detail setting" button, the installed printing extension application <NUM> is activated, and the print setting screen illustrated in <FIG> is displayed. On the print setting screen provided by the printing extension application <NUM>, it is possible to make a print setting that cannot be made on the printing common dialog, such as the setting of image processing related to density and color impression, whether or not to print a stamp, and the setting of a punching position or a stapling position.

The print setting screen provided by the printing extension application <NUM> will now be described with reference to <FIG>.

If the user selects the detail setting button <NUM> on the printing common dialog, the printing extension application <NUM> acquires capability information associated with a print queue generated by the cloud print service <NUM> on the client computer <NUM>.

Based on the acquired capability information, the execution file unit <NUM> generates the print setting screen illustrated in <FIG>. A part <NUM> is a print setting portion. In the part <NUM>, based on capability information of a print queue, a print setting can be changed. A setting <NUM> is an extension setting portion, and is an operation portion generated based on capability information extended by the driver extension package <NUM>. A region <NUM> is a region for switching a displayed screen, and changing an item to be set. A button <NUM> is a determination button. By the button <NUM> being pressed, setting information is determined, and the determined setting information is delivered to the OS <NUM>.

If the user selects the "printing" button <NUM> on the printing common dialog, image data, a print setting set on the printing common dialog, and a print setting set by the printing extension application are transmitted to a print queue. If a print queue set in the region <NUM> is a print queue of a printer registered in the cloud print service <NUM>, the client computer <NUM> transmits the image data and the print settings to the corresponding print queue of the cloud print service <NUM>.

Next, processing performed when the user performs printing by operating a printer will be described. If the user logs into the printer <NUM>, the printer <NUM> transmits to the cloud print service <NUM> an acquisition request for bibliographic information of a print job registered in a print queue of the cloud print service <NUM>. The bibliographic information to be acquired here is information necessary for displaying a UI of the printer <NUM>, such as a file name of image data, the number of copies to be printed, a color mode, and generated date and time of a print job.

The cloud print service <NUM> generates a printable job list based on the bibliographic information of the print job stored in the print queue. Then, the cloud print service <NUM> transmits the generated printable job list to the printer <NUM>. If the printer <NUM> receives the printable job list transmitted by the cloud print service <NUM>, the printer <NUM> displays the printable job list on an operation panel. <FIG> illustrates an example of an operation panel displaying the printable job list received from the cloud print service <NUM>. The user selects a desired print job on the operation panel, and issues a printing instruction by pressing a print button ("print" <NUM>). If the printer <NUM> receives a printing execution instruction, the printer <NUM> transmits to the cloud print service <NUM> an acquisition request for a print job. The acquisition request includes an ID of a print job desired to be acquired, i.e., a print job ID. By the cloud print service <NUM> transmitting to the printer <NUM> a print job corresponding to the received print job ID, printing is executed.

<FIG> is a flowchart illustrating processing performed by the cloud print service <NUM> according to the present embodiment when the cloud print service <NUM> receives an acquisition request for a print job from the printer <NUM>. Unless otherwise specifically stated, the processing is performed by each processing unit of the cloud print service <NUM>. First, in step S1000, print job output processing is started. Next, in step S1001, the print job management unit <NUM> receives a print job acquisition request (including a print job ID of a print job to be output), from the printer <NUM>.

If the print job management unit <NUM> receives the request, the print job management unit <NUM> identifies the designated print job from the print job storage region <NUM>. The print job management unit <NUM> delivers the identified print job to the print job generation unit <NUM>. In step S1002, the print job generation unit <NUM> generates a print job suitable for an output destination printer <NUM>, based on the delivered print job.

In step S1003, the print job management unit <NUM> acquires the generated print job from the print job generation unit <NUM>, and transmits the print job to the printer <NUM> that has transmitted the printing request. Then, in step S1004, the print job output processing ends.

In the present embodiment, the printer <NUM> acquires, from the cloud print service <NUM>, a print job selected by the user by operating the printer <NUM>. The printer <NUM> may periodically access the cloud print service <NUM>, and acquire a print job managed in association with a print queue of the printer <NUM>, from the cloud print service <NUM>.

The details of registration processing of a printer into a cloud print service, which is a characteristic operation in the present embodiment, will be described. <FIG> is a flowchart illustrating processing of registering the printer <NUM> into the cloud print service <NUM>, and extending a print queue by the cloud print service <NUM>. The processing illustrated in <FIG> is implemented by a CPU(s) of one or a plurality of information processing apparatuses included in the cloud print service <NUM>, executing a program.

In step S1201, the printer registration unit <NUM> determines whether a registration request has been received from the printer <NUM>. If a registration request has been received from the printer <NUM> (YES in step S1201), the printer registration unit <NUM> advances the processing to step S1202. On the other hand, if a registration request has not been received from the printer <NUM> (NO in step S1201), the printer registration unit <NUM> continues the processing in step S1201.

In step S1202, the printer registration unit <NUM> acquires metainformation and device capability information from the printer <NUM>, and registers the acquired metainformation into the printer database <NUM>. The metainformation includes an HWID and a COID of the printer <NUM>. In addition, the metainformation acquired from the printer <NUM> includes a version of a file of device capability information provided by the printer <NUM>. The device capability information acquired from the printer <NUM> is information such as information indicating whether or not duplex printing can be performed, information indicating whether or not monochrome printing or color printing can be performed, and information regarding the orientation of sheets to be used for printing, and is capability information standardized by the IPP. The printer registration unit <NUM> registers the acquired metainformation and device capability information into the printer database <NUM>. Furthermore, in step S1202, the cloud print service <NUM> may receive a hardware configuration of the printer <NUM> from the printer <NUM>.

In step S1203, the print queue generation unit <NUM> acquires the metainformation and the device capability information from the printer registration unit <NUM>, and generates a print queue of the printer <NUM>.

In step S1204, the printer registration unit <NUM> transmits an acquisition request for a driver extension package to the printer driver distribution service <NUM>. The printer registration unit <NUM> transmits the HWID and the COID included in the metainformation acquired from the printer <NUM>, together with the acquisition request for a driver extension package. In the present embodiment, both the HWID and the COID are transmitted to the printer driver distribution service <NUM>, but either one of the HWID and the COID may be transmitted to the printer driver distribution service <NUM>.

In step S1205, the printer registration unit <NUM> determines whether a driver extension package has been acquired from the printer driver distribution service <NUM>. For example, if the cloud print service <NUM> receives from the printer driver distribution service <NUM> a response indicating that a corresponding driver extension package does not exist, the printer registration unit <NUM> determines that a driver extension package has not been acquired. Alternatively, if a driver extension package has not been acquired even though a predetermined time elapses from when the acquisition request for a driver extension package is transmitted, the printer registration unit <NUM> may determine that a driver extension package has not been acquired. If the printer registration unit <NUM> has not acquired a driver extension package (NO in step S1205), the printer registration unit <NUM> ends the flowchart illustrated in <FIG>.

If the printer registration unit <NUM> has acquired a driver extension package (YES in step S1205), the printer registration unit <NUM> advances the processing to step S1206.

In step S1206, the printer registration unit <NUM> determines whether a device capability information file included in the driver extension package acquired from the printer driver distribution service <NUM> is newer than a device capability information file acquired from the printer <NUM>. The printer registration unit <NUM> compares the version of the device capability information file acquired from the printer driver distribution service <NUM>, with the version of the device capability information file acquired from the printer <NUM>. If the device capability information file acquired from the printer driver distribution service <NUM> is a file newer than the device capability information file acquired from the printer <NUM> (YES in step S1206), the printer registration unit <NUM> advances the processing to step S1207. In step S1207, whether the device capability information file acquired from the printer driver distribution service <NUM> is newer than the device capability information file acquired from the printer <NUM> may be determined based on an item other than the version of the file. For example, a generated date of the device capability information file acquired from the printer <NUM>, and a generated date of the device capability information file acquired from the printer driver distribution service <NUM> may be compared. If the device capability information file acquired from the printer driver distribution service <NUM> is not a file newer than the device capability information file acquired from the printer <NUM> (NO in step S1206), the printer registration unit <NUM> ends the flowchart illustrated in <FIG>.

In step S1207, the printer registration unit <NUM> updates the device capability information file registered in the printer database <NUM>, with the device capability information file acquired from the printer driver distribution service <NUM>. Furthermore, the printer registration unit <NUM> transmits device capability information to the print queue generation unit <NUM>, and updates device capability information corresponding to a print queue. The printer registration unit <NUM> overwrites device capability information in the printer database <NUM> with the device capability information included in the driver extension package. In addition, the printer registration unit <NUM> adds, to device capability information, items not included in device capability information acquired from the printer, among items of capability information included in the driver extension package. The print queue generation unit <NUM> also overwrites device capability information associated with a print queue, with capability information included in a driver extension package, or add capability information not included in capability information acquired from the device. In addition, if a hardware configuration of the printer <NUM> has been received in step S1202, the printer database <NUM> may be updated by using a function considered to be executable by the printer <NUM> in view of the hardware configuration, as capability information.

By performing the processing illustrated in <FIG>, from among the output of capability information acquired from a printer and the output of capability information included in a driver extension package, newer capability information can be registered into the cloud print service <NUM>. In <FIG>, from among the output of device capability information acquired from the printer <NUM> and the output of capability information acquired from the printer driver distribution service <NUM>, newer capability information is registered into the cloud print service <NUM>. Alternatively, the capability information included in a driver extension package acquired from the printer driver distribution service <NUM> may be always registered into the cloud print service <NUM>.

The description will now be given of processing to be performed if the driver extension package <NUM> registered in the printer driver database <NUM> of the printer driver distribution service <NUM> is updated. <FIG> is a sequence diagram illustrating a sequence of processing performed when a driver extension package registered in the printer driver distribution service <NUM> is updated.

The driver extension package <NUM> is updated by a driver extension package distributed by a vendor being registered into the printer driver database <NUM> by the printer driver registration unit <NUM> of the printer driver distribution service <NUM>. If the driver extension package <NUM> registered in the printer driver distribution service <NUM> is updated, it is desirable that a driver extension package corresponding to a print queue registered in the cloud print service <NUM> is also updated. For this reason, a driver extension package registered in the cloud print service <NUM> is updated by performing the following processing.

In step S1101, the client computer <NUM> accesses the cloud print service <NUM>, and transmits a login request to the cloud print service <NUM>. The user accesses the cloud print service <NUM>, inputs a user ID and a password, to log into the cloud print service <NUM>. Based on the input user ID and password, the cloud print service <NUM> performs user authentication.

If the user authentication has succeeded, in step S1102, the cloud print service <NUM> transmits to the printer driver distribution service <NUM> an acquisition request for driver extension package information as for printer information associated with the user. The cloud print service <NUM> transmits an HWID and a COID of a printer associated with the user who has logged into the printer driver distribution service <NUM>. In step S1102, the cloud print service <NUM> may transmit either one of an HWID and a COID.

In step S1103, the printer driver distribution service <NUM> transmits to the cloud print service <NUM> package information of a driver extension package associated with the HWID received from the cloud print service <NUM>. The printer driver distribution service <NUM> transmits package information of a driver extension package stored in the printer driver database <NUM>. The package information transmitted in this step includes version information of the driver extension package, and latest update date and time information.

The cloud print service <NUM> compares the received package information of the driver extension package, and driver extension package information stored in association with a print queue, and determines whether the driver extension package needs to be updated. For example, the cloud print service <NUM> compares version information of the driver extension package registered in the printer database <NUM>, and version information of the driver extension package received from the printer driver distribution service <NUM>. If the version of the driver extension package received from the printer driver distribution service <NUM> has a value indicating a newer version, the processing proceeds to step S1104, which will be described below. The cloud print service <NUM> may compare the update date and time of the driver extension package received from the printer driver distribution service <NUM>, and the update date and time of the driver extension package stored in the printer database <NUM>. If the update date and time of the driver extension package received from the printer driver distribution service <NUM> are later date and time, the cloud print service <NUM> advances the processing to step S1104. If a driver extension package installed on the cloud print service <NUM> is the latest package, the processing in step S1104 and subsequent steps is not performed, and the sequence illustrated in <FIG> ends.

In step S1104, the cloud print service <NUM> causes the client computer <NUM> to display a screen for inquiring of the user whether to update a driver extension package requiring update. In step S1104, for example, a list of information regarding printers requiring the update of driver extension packages is displayed, and the user is allowed to select a printer of which a driver extension package is to be updated.

If the user issues an update request for a driver extension package, in step S1105, the client computer <NUM> transmits to the cloud print service <NUM> an update request for a driver extension package of the printer selected by the user.

In step S1106, the cloud print service <NUM> transmits an acquisition request for a driver extension package to the printer driver distribution service <NUM>. In step S1106, the cloud print service <NUM> transmits an HWID and a COID of the printer for which an update instruction has been issued by the user, to the printer driver distribution service <NUM>. In step S1106, the cloud print service <NUM> may transmit only either one of an HWID and a COID to the printer driver distribution service <NUM>.

In step S1107, the printer driver distribution service <NUM> transmits to the cloud print service <NUM> a driver extension package identified based on the received HWID. The cloud print service <NUM> updates a driver extension package prestored in association with the printer information, with the received driver extension package. In this way, the driver extension package registered in the cloud print service <NUM> can be updated to the latest driver extension package registered in the printer driver distribution service <NUM>. In the above-described example, a driver extension package is updated in response to an update instruction issued by the user. If a driver extension package distributed by the printer driver distribution service <NUM> is updated, a new driver extension package may be installed on the cloud print service <NUM> without making an inquiry to the user.

In step S1108, the cloud print service <NUM> installs the updated driver extension package also onto the client computer <NUM>. The client computer <NUM> acquires the updated driver extension package from the cloud print service <NUM>, and updates the information regarding a driver extension package stored in the client computer <NUM>.

In <FIG>, in step S1102 in which the user logs into the cloud print service <NUM>, an acquisition request for driver extension package information registered in the printer driver distribution service <NUM> is transmitted. The cloud print service <NUM> may transmit an acquisition request for driver extension package information to the printer driver distribution service <NUM> every predetermined time or on determined date and time.

In addition, in <FIG>, the processing in step S1102 is executed at a timing at which the user logs into the cloud print service <NUM>. The processing in step S1102 and subsequent steps may be executed if the user who has logged into the cloud print service <NUM> has an authority to perform management of printer information in the cloud print service <NUM>.

By executing the above-described processing, capability information of a printer registered in the cloud print service <NUM> can be extended using capability information provided by another server system different from the cloud print service <NUM>.

The embodiment of the present invention can also be implemented by executing the following processing. Specifically, the processing is processing of supplying software (program) for implementing the functions of the above-described embodiment, to a system or an apparatus via a network or various storage media, and a computer (or a CPU or a micro processing unit (MPU)) of the system or the apparatus reading a program code and executing the program code. In this case, the computer program and a storage medium storing the computer program are included in the present invention.

Capability information not provided from a printing apparatus registered in a server system according to the embodiment can be registered into the server system.

Claim 1:
A server system (<NUM>) comprising:
a first receiving means (<NUM>) for receiving, from a printing apparatus (<NUM>) operated by a user, a registration request for registering information of the printing apparatus (<NUM>);
a fourth receiving means (<NUM>) for receiving print data to be transmitted to the registered printing apparatus from an information processing apparatus; and
a first transmission means (<NUM>) for transmitting the received print data,
characterized in that the server system further comprises:
a second receiving means (<NUM>) for receiving, from the printing apparatus, information regarding a first print setting item from the printing apparatus that has transmitted the registration request and identification information of the registered printing apparatus, wherein the first print setting item is a standard setting item defined by Internet Printing Protocol; and
a third receiving means (<NUM>) for receiving, from a different server system (<NUM>), information regarding a second print setting item by transmitting the identification information of the registered printing apparatus, wherein the second print setting item is an item that cannot be defined by the Internet Printing Protocol.