Patent Description:
A user management function may be validated in a printing apparatus that is installed in an organization, a company, or the like and assumed to be used by a plurality of users. In this case, a mechanism is available in which users who belong to the organization, company, or the like log in to the printing apparatus to use various functions of this printing apparatus. There is also a mechanism in which a user who does not belong to the organization, company, or the like can log in to a guest account and is allowed to submit a job to the printing apparatus while satisfying set constraints (<CIT>).

In recent years, the mechanism of cloud printing, in which a print job is submitted via a cloud and transmitted to a printing apparatus, has begun to be widely used (<CIT>). In this type of printing system, first, an administrator registers a printing apparatus to a cloud printing service (hereinafter also referred to as "CPS") to which the administrator belongs. Thereafter, users who are permitted to use the CPS use respective client terminals to select a printer registered in the CPS as an output printer, configure desired print settings, and transmit a print job to the CPS. The CPS that has received a print job transfers this print job to the selected printing apparatus. The printing apparatus executes printing based on the transferred print job. Particularly, the mechanism of cloud printing that uses IPP (Internet Printer Protocol) is defined by PWG5100. <NUM>, RFC3995, RFC3996, and other relevant specifications.

Some cloud service provides a mechanism in which a user who has not been registered in a cloud service is temporarily permitted to use this cloud service. For example, an administrator of a CPS can permit a specific guest user who has not been registered as a user to use the CPS. The CPS may permit the guest user to use cloud printing, for example. Meanwhile, some printing apparatus allows a guest user to log in to and use the printing apparatus.

When a guest user of this type of CPS selects a printing apparatus and executes printing on the CPS, and the printing apparatus fetches the print job from the CPS and stores the fetched print job, the user (i.e. owner) who submitted the print job cannot be associated with a registered user of the printing apparatus. In this case, the printing apparatus treats the fetched print job as a print job of the guest user. If a plurality of guest users of the CPS execute printing on the CPS, there is a problem in that the guest users of the printing apparatus can reference all of these print jobs as print jobs of guest users, and can also execute printing.

<CIT> relates to a data process system wherein output authorization for outputting data can be provided even for a user having no account for outputting data.

<CIT> relates to an image forming apparatus that performs printing processing using first identification information in a first system in a particular organization that performs first authentication, and obtains print data from a logical printer in a second system that is a cloud service system that performs second authentication. <CIT> relates to a technique that realizes a unified user authentication across a plurality of user interfaces.

The present invention provides a mechanism that ensures security of print jobs of guest users as well.

To achieve at least one of the above objects, the present invention has the following configuration. The present invention in its first aspect provides a printing system as specified in claims <NUM> to <NUM>.

The present invention in its second aspect provides a printing control method as specified in claim <NUM>.

According to the present invention, security can be ensured for print jobs of guest users as well.

First, a configuration of a printing system according to the present invention will be described with reference to <FIG>. The printing system according to the present embodiment includes a printing apparatus <NUM>, client terminals <NUM> and <NUM>, a cloud printing service (hereinafter, "CPS") <NUM>, a cloud ID service provider <NUM>, and a cloud ID service provider <NUM>. Here, the CPS <NUM> and the cloud ID service provider <NUM> are cloud services <NUM> provided by the same company, and the CPS <NUM> can be used with accounts managed by the cloud ID service provider <NUM>. Note that the CPS <NUM> is also called a printing service system.

Meanwhile, the cloud ID service provider <NUM> is a service provided by a company different from the company of the cloud services <NUM>. Users who have accounts on the cloud ID service provider <NUM> can use, with these accounts, the CPS <NUM> as guest users by using an account linking service, such as OAUTH. The printing apparatus <NUM> communicates with the CPS <NUM> on the internet via a network <NUM>. For example, the network <NUM> may be a combination a communication network such as a LAN or a WAN, a cellular network (e.g. LTE, <NUM> etc.) and/or a wireless network conforming to IEEE802. That is, the network <NUM> need only be a network that enables transmission and reception of data, and may employ any physical-layer communication method.

The printing apparatus <NUM> has a scan function of transmitting data based on an image that is read using a scanner to an external device, a print function of printing an image on a sheet, such as paper, based on a print job received from an external device, and a copy function. The printing apparatus <NUM> can also receive a print job via the CPS <NUM> and perform printing. The present embodiment illustrates an MFP (Multi-Function Peripheral) that has a plurality of functions as an example of a printing apparatus, but the printing apparatus is not limited thereto. For example, the printing apparatus may be an SFP (Single-Function Peripheral) that only has a print function as its single function. Also, the present embodiment illustrates, as an example, printing on a sheet such as paper. However, the present invention is not limited thereto, and can also be applied to printing control in, for example, 3D printing for forming a three-dimensional object based on three-dimensional shape data. Note that the printing apparatus is also referred to as an image forming apparatus in some cases.

The printing apparatus <NUM> of this embodiment has a user management function. User information is registered in advance to the printing apparatus <NUM>, and the printing apparatus <NUM> provides function restrictions that limit functions to be used by users, and a log-in function that allows users to log in to and use the printing apparatus <NUM>.

The CPS <NUM> receives a print job from a client terminal, such as the client terminal <NUM> or <NUM>, and stores the print job. Next, the CPS <NUM> notifies the printing apparatus <NUM>, which has been registered in the CPS <NUM>, that a print job has been submitted. The printing apparatus <NUM> that has received the notification fetches the print job and executes print processing. The CPS <NUM> may be constituted by one or more information processing apparatuses. If the CPS <NUM> is constituted by a plurality of information processing apparatuses, functions such as user authentication and print data provision may be distributed, or the load of one function may be distributed, or a combination of these modes may be applied.

A hardware configuration of the printing apparatus <NUM> of the present embodiment will be described with reference to <FIG> is a block diagram showing the hardware configuration of the printing apparatus <NUM>. The printing apparatus <NUM> has functions such as a readout function of reading an image on a sheet and a file transmission function of transmitting the read image to an external communication device. The printing apparatus <NUM> also has a print function of printing an image on a sheet. The printing apparatus <NUM> also has a function of receiving a print job from the CPS <NUM> and performing printing, a user management function, and a hold print function.

A CPU (Central Processing Unit) <NUM> controls operation of the entire printing apparatus <NUM>. The CPU <NUM> loads and executes control programs stored in a ROM (Read Only Memory) <NUM> or a storage <NUM> and performs various types of control, such as print control and readout control. Control programs that can be executed by the CPU <NUM> are stored in the ROM <NUM>. A RAM (Random Access Memory) <NUM> is a main storage memory accessed by the CPU <NUM> and is used as a work area or a temporary storage area for loading various control programs. Print jobs, image data, various programs, and various types of setting information are stored in the storage <NUM>. Print jobs and other information downloaded from the CPS <NUM> are also stored in the storage <NUM>. Hardware such as the CPU <NUM>, the ROM <NUM>, the RAM <NUM>, and the storage <NUM> thus constitutes a computer.

Note that one CPU <NUM> in the printing apparatus <NUM> of the present embodiment executes various types of processing, which are shown in later-described flowcharts, using one memory (RAM <NUM>), but any other mode may alternatively be employed. For example, the processing shown in the later-described flowcharts can also be executed by cooperation between a plurality of processors, memories, and storages. Further, a part of processing may also be executed using a hardware circuit.

A printer <NUM> prints an image on a sheet fed from a paper feed cassette (not shown), based on an input print image and a print control command. The printing method may be an electrophotographic method in which toner is transferred and fixed to paper, or may be an inkjet method in which printing is performed by ejecting ink to paper.

A scanner <NUM> reads an original placed on a platen (not shown) and generates image data. The image data generated by the scanner <NUM> is printed by the printer <NUM>, stored in the storage <NUM>, and/or transmitted to an external device via a network interface (I/F) <NUM>.

An operation unit <NUM> includes a liquid-crystal display having a touch panel function, various physical keyboards, and the like. The operation unit <NUM> functions as a display unit for displaying information for a user and an accepting unit for accepting instructions from the user. That is, the operation unit <NUM> provides a user interface. The CPU <NUM> cooperates with the operation unit <NUM> to control display of information and accepting of user operation.

A network cable is connected to the network I/F <NUM>, which enables communication with external devices on the network <NUM> and/or the internet. The present embodiment assumes that the network I/F <NUM> is a communication interface for wired communication conforming to Ethernet (registered trademark), but the network I/F <NUM> is not limited thereto. For example, the network I/F <NUM> may alternatively be a wireless communication interface conforming to the IEEE802. <NUM> series. Both may be wireless communication interfaces. Alternatively, a communication interface for mobile communication with, for example, a <NUM> line such as CDMA, a <NUM> line such as LTE, or <NUM> NR may be applied.

The present embodiment illustrates the case where the printing apparatus <NUM> manages a database for managing user accounts, but the management of user accounts is not limited thereto. User accounts of users who use the printing apparatus <NUM> can also be managed by also using an external authentication server. For example, user accounts may be managed by using the Active Directory service or the Azure (registered trademark) Active Directory service provided by Microsoft (trademark).

A hardware configuration of the cloud printing service <NUM> of the present embodiment will be described with reference to <FIG>. A CPU <NUM> to an operation unit <NUM> in <FIG> correspond respectively to the CPU <NUM> to the operation unit <NUM> in <FIG>, and a network interface <NUM> corresponds to the network interface <NUM>. Constituent elements in <FIG> are substantially the same as the constituent elements of the printing apparatus in <FIG>, and a detailed description thereof is omitted. Note that the client terminal also has the same configuration as the configuration shown in <FIG>. The CPS <NUM> may also have a plurality of CPUs and memories. In this case, at least one program may be stored in a plurality of memories.

A procedure that enables printing with the printing system having the above configuration of this embodiment will be described. <FIG> is an example of a sequence diagram showing a mechanism of cloud printing using IPP, specifically a procedure for registering a printing apparatus and making the registered printing apparatus available from the client terminal.

First, the printing apparatus <NUM> is operated to transmit a printer registration request to the CPS <NUM> (S1601). The operation may be performed on the operation unit <NUM> of the printing apparatus <NUM>, or may be performed using a remote UI provided to a computer or the like by the printing apparatus <NUM>. Thereafter, the printing apparatus <NUM> notifies the CPS <NUM> of supported attribute information and attribute values by means of an Update-Output-Device-Attributes operation (S1602). The attribute values of the printing apparatus <NUM> are thus registered in the CPS <NUM>. The attribute values of the printing apparatus <NUM> include whether or not PIN printing, which is a print job with a password, is supported, for example.

Thereafter, the printing apparatus subscribes to event notification from the CPS <NUM> by means of a Create-Printer-Subscription operation (S1603). After subscribing to the notification, the printing apparatus <NUM> checks whether or not an event has occurred by means of a Get-Notification operation (S1604). The CPS <NUM> thus notifies the printing apparatus <NUM> of an event upon occurrence of a new event, such as registration of a print job to be executed by the printing apparatus <NUM>. Addition of a printing apparatus to the CPS <NUM> through the above procedure need only be performed prior to cloud printing using the printing apparatus <NUM>.

To register a printing apparatus, a user of the CPS <NUM> is associated with a user of the printing apparatus <NUM>, and user information regarding this user is stored. For example, user information in the CPS <NUM> may be stored in the printing apparatus <NUM> in association with user information in the printing apparatus <NUM>. User information may include a user ID and authentication information such as a password, if necessary. User information may be associated on the operation unit of the printing apparatus <NUM> or from a client terminal using a remote UI of the printing apparatus <NUM>, for example. In any case, it is desirable to permit only an administrator user who has administrator rights to perform the associating operation. Further, user information may be associated after registration of the printing apparatus <NUM>.

Meanwhile, the client terminal <NUM> searches printing apparatuses registered in the CPS <NUM>, and adds a printing apparatus selected from the found printing apparatuses as a printing apparatus to be used by the client terminal <NUM> (S1605). The client terminal <NUM> then fetches, from the CPS <NUM>, attribute information and attribute values of the added printing apparatus by means of a Get-Printer-Attributes operation (S1606). The fetched attribute information and attribute values of the printing apparatus may be stored in association with the registered printing apparatus. Note that attribute information of printing apparatuses also includes a password attribute (PIN attribute), which indicates that a print job with a password, i.e. PIN printing is supported.

Thereafter, when executing printing, the client terminal <NUM> can select the printing apparatus added in steps S <NUM> and S <NUM> and perform printing using the selected printing apparatus. When printing is performed, if the printing apparatus selected by the client terminal <NUM> is the printing apparatus <NUM> registered in the CPS <NUM>, the client terminal <NUM> displays a print setting screen in accordance with the fetched attribute information and transmits the print job together with set print attributes to the CPS <NUM>. Note that attribute information regarding a printing apparatus is also called print settings in some cases.

Next, a conventional guest job in a cloud printing service will be described. <FIG> shows an example of a list of user accounts registered in the cloud services <NUM>. A user A (UserA) and a user B (UserB) are regular users registered in a cloud ID service provider. An administrator of the cloud service can configure settings to permit or not permit each user to use the CPS <NUM>. The guest user A and the guest user B are users who have not been registered in the cloud services <NUM>, and are users of the other cloud ID service provider <NUM>. Although the guest user A and the guest user B usually do not have the authority to use the CPS <NUM>, here, the administrator of the cloud services <NUM> has permitted these guest users to use the CPS <NUM>. Thus, the guest user A and the guest user B can use the CPS <NUM> using their accounts on the cloud ID service provider <NUM>. This type of linkage is realized by means of a service linking technology, such as OAUTH.

Meanwhile, information regarding the user A and the user B has been registered in the printing apparatus <NUM> as shown in <FIG>, and unregistered users are treated as guest users. Registered users of the printing apparatus <NUM> are associated with registered users of the CPS <NUM> when, for example, the printing apparatus <NUM> is registered to the CPS <NUM>. For example, user information regarding registered users of the CPS <NUM> who are associated with registered users of the printing apparatus <NUM> are stored in the printing apparatus <NUM>. Thus, after a user of the printing apparatus <NUM> has logged in to the printing apparatus <NUM>, the user can access the CPS <NUM> due to the printing apparatus <NUM> using user information in the CPS <NUM> that is associated with this user. Users who have not been registered in the CPS <NUM> are not associated with users of the printing apparatus. Thus, if the guest user A and the guest user B transmit print jobs using the CPS <NUM>, the printing apparatus <NUM> treats these print jobs of the guest users as print jobs of guest users. To illustrate the problem regarding guest jobs in cloud printing services, printing by a registered user and printing by a guest user will now be described. First, a procedure in a cloud printer will be described.

<FIG> shows an example of a procedure for executing cloud printing after the registration of the printing apparatus in <FIG>. This procedure is also carried out conforming to IPP. The client terminal <NUM> displays a print setting screen in accordance with the fetched attribute information and attribute values, and transmits, to the CPS <NUM>, a print job in accordance with print attributes designated by the user (S1607). The print job is transmitted using any of the operations to transmit a print job, such as a Send-Document operation, a Print-Job operation, or a Create-Job operation.

The CPS transmits an event notification that a job has been submitted, to the printing apparatus <NUM> (S1608). The printing apparatus <NUM> that has received the event notification makes a request for job list information to the CPS <NUM> using a Get-Jobs operation (S1609), and fetches job list information from the CPS <NUM> (S1609-<NUM>). Further, the printing apparatus <NUM> makes, to the CPS <NUM>, a request for job data and attribute values selected from the fetched job list using a Fetch-Job operation (S1610), and fetches the job from a response to the request (S1610-<NUM>).

The printing apparatus <NUM> executes print processing in accordance with the fetched job data and attribute values (S1611). The printing apparatus <NUM> then transmits, to the CPS <NUM>, a printer information notification using an Update-Output-Device-Attributes operation depending on the processing status of the job (S1612, S1614). The printing apparatus <NUM> also transmits a job information notification to the CPS <NUM> using an Update-Job-Status operation (S1613). After the print processing has been completed, the CPS <NUM> also gives the client terminal a printing completion notification (S1615).

Note that the CPS (cloud printing service) herein refers to a service capable of communication with client terminals and printers by means of the internet, receiving print requests using IPP, and providing print jobs. A description will now be given to the case where a registered user performs printing through this procedure without using the PIN print function. In PIN printing, a PIN (Personal ID Number; i.e. a password) is set for a print job to be transmitted to the CPS <NUM>. To execute this print job with the printing apparatus <NUM>, the user is required to input the password, and printing is executed if the input password is checked with the set password and these passwords match.

A job information fetch request packet shown in <FIG> is a request for a print job whose job ID = <NUM>. If this print job is a print job of a registered user, a job fetch response packet is a packet such as an example shown in <FIG> shows an example of a job fetch response packet received by the printing apparatus <NUM> in step S1610-<NUM> in <FIG>. This is an example where the user A has submitted a print job, and tenant information indicating that the account of the user A is of the cloud ID service provider <NUM> is held in "Job-originating-user-uri". The printing apparatus <NUM> can thus determine that this print job is from a registered user. Accordingly, if the user A logs in to the printing apparatus <NUM>, the printing apparatus <NUM> can perform control such that only jobs submitted by the user A are displayed, as in a job list screen 3B in <FIG>. In the following description, a user of the CPS and a user of the printing apparatus who are associated with each other are the same user, for convenience of description. However, user IDs of these users may be different as long as they are associated with each other.

Next, printing by a guest user will be described. A packet of a print job of a guest user is a packet such as an example shown in an example in <FIG>. In the following example, a user whose user name is "guestA" uses an account on the cloud ID service provider <NUM> that is "guestA@google. The printing apparatus <NUM> determines that this print job is from an account that has not been registered in the printing apparatus <NUM>, and the fetched print job is stored as a guest user job in the printing apparatus <NUM>.

For a user to log in as a guest user to the printing apparatus <NUM>, a button or the like for the user to log in as a guest user is provided in a log-in screen displayed on the operation unit <NUM>, for example. The user who wants to log in as a guest user logs in as a guest user by touching this button. Thus, if a user whose user name is guestA logs in as a guest user to the printing apparatus <NUM>, print jobs of all guest users including not only guestA but also guestB are displayed, as shown in a print job list screen 3C in <FIG>. This allows the guest user to select a print job of guestB, which is not the guest user's own job, and execute printing.

As described above, if a plurality of guest users execute printing with the CPS, a guest user who logs in to the print job <NUM> is allowed to reference print jobs of all guest users and execute printing of these print jobs.

Next, a sequence of fetching a print job in this embodiment will be described with reference to <FIG> and <FIG>. In this embodiment, the printing apparatus <NUM> restricts execution of printing by guest users by fetching and executing only print jobs of guest users for each of which a PIN has been set. The sequence in <FIG> starts in a state where the printing apparatus <NUM> has been registered in the CPS <NUM> through the sequence in <FIG>. This procedure is also carried out conforming to IPP. This embodiment will describe the case of immediately fetching a print job after the client terminal has transmitted the print job to the CPS <NUM> and the CPS <NUM> has transmitted a job event notification to the printing apparatus <NUM> in steps S1501 to S1503 in <FIG>.

First, the guest user selects the printing apparatus <NUM> on the client terminal <NUM> and transmits a print job to the CPS <NUM> (S1501). Here, a PIN may be, but need not necessarily be, set for the print job. Note that the print job <NUM> is unable to execute a print job for which a PIN has not been set, as will be described later. The CPS <NUM> stores the received print job (S1502), and transmits an event notification indicating this print job to the printing apparatus <NUM> (S1503).

The CPU of the printing apparatus <NUM> receives, from the CPS <NUM>, the event notification that a print job has been submitted to the CPS <NUM> (S1503, S501). Next, the CPU of the printing apparatus <NUM> transmits, to the CPS <NUM>, a "Fetch-job" request operation, which is a job fetch request with a designated job ID to be fetched, as shown in <FIG> (S1504, S502). The CPU of the printing apparatus <NUM> then receives, from the CPS <NUM>, a job fetch response including job data, as shown in <FIG> (S1505, S503). The CPU of the printing apparatus <NUM> then checks the job owner name in the response received in step S503 (S1506, S504). The job owner name is identified by, for example, referencing user names in a user information list registered in advance in the MFP, and determines that the job owner is a registered user if a matched user name exists, and determines that the job owner is a guest user if not.

If the job owner is a guest user, the CPU of the printing apparatus <NUM> determines whether or not a PIN has been set for the received print job, based on the response received in step S503 (S508). Whether or not a PIN has been set is determined based on whether or not the received job data includes a job-password attribute, as shown in <FIG>, according to the claimed invention. If a PIN has not been set, the CPU of the printing apparatus <NUM> cancels fetching of print job data (S1507, S509). If, for example, print job data has already been received, the CPU of the printing apparatus <NUM> discards this print job data. The CPU of the printing apparatus <NUM> then transmits, to the CPS <NUM>, "Update-job-status" for notifying the CPS <NUM> of a job status error, as shown in <FIG> (S1508, S510).

If it is determined in step S504 that the job owner is a registered user, or if it is determined in step S508 that a PIN has been set, the CPU of the printing apparatus <NUM> fetches corresponding print job data from the CPS <NUM> (S505). The CPU of the printing apparatus <NUM> then stores the fetched print job data in the storage of the printing apparatus <NUM> (S1509, S506). The CPU of the printing apparatus <NUM> then transmits, to the CPS <NUM>, "Update-job-status" for notifying the CPS <NUM> that the job status is successful, as shown in <FIG> (S1510, S507).

As a result, print job data from a registered user who has already been registered in the printing apparatus <NUM> or print job data with a set PIN of a guest user is stored in the printing apparatus <NUM>, and no other print job data is stored. A procedure for performing printing will be described below with reference to example screens displayed in the user interface of the printing apparatus <NUM>.

A user logs in as a guest user by inputting a user name (user ID) and a password registered as user information associated with the user name to a log-in screen 3A shown in <FIG>, or touching a guest log-in button (S1511). The job list screen 3B is displayed if the logged-in user is a registered user, and the job list screen 3C is displayed if the logged-in user is a guest user, in response to the logging in. In this embodiment, the print job that was submitted to the CPS <NUM> and is to be executed by the printing apparatus <NUM> has already been fetched. Thus, print jobs of the logged-in user, of the print jobs already fetched from the CPS <NUM>, are displayed in the job list. If the logged-in user is a guest user, print jobs of guest users of the CPS <NUM> are displayed in a list.

Upon a job being selected from the displayed job list screen (S1512), the printing apparatus <NUM> displays a PIN input screen 3F if the selected job is a print job with a set PIN (S1513). Note that, in <FIG>, the screen switches to the PIN input screen 3F only from the print job list screen 3C for the guest user, but the screen may also be switched from the list screen 3B to the PIN input screen 3F if the selected job is a job with a set PIN. Upon the user inputting a PIN on this screen (S1514), the PIN set for the print job is checked with the input pin for verification (S1515).

If the verification is successful, printing is performed (S1516). If the verification fails, a screen <NUM> indicating a failure in PIN verification is displayed, and printing is canceled (S1517). Even if printing is canceled, printing has not begun at this stage. Thus, the printing apparatus <NUM> outputs a message indicating a failure in PIN verification, and returns to step S1513 to wait for a PIN to be input again. Alternatively, the printing apparatus <NUM> may return to step S1512 to display the job list screen again, and resume processing from selection of a print job. On the other hand, printing may be executed if PIN verification is successful, or if a PIN has not been set for the print job for which the printing apparatus <NUM> received a print instruction. A printing-in-progress screen 3D is displayed during printing, and a print completion screen 3E is displayed after the printing has been completed. Note that the printing apparatus <NUM> of this embodiment does not execute a print job of a guest user for which a PIN has not been set from the CPS <NUM>, and the screen does not directly switch from the print job list screen 3C to the printing-in-progress screen 3D. This applies to the other embodiments.

As described above, in this embodiment, an error is made for a print job whose owner is a guest user and for which a PIN has not been set. This can ensure security for print jobs of guest users as well.

Note that although print job data is fetched in step S505, print job data need not be fetched again in step S505 if the print job fetch response received in step S503 includes the print job data. In this case, in step S505, print job data that has already been received in step S503 and stored in the printing apparatus <NUM> is fetched.

The second embodiment will describe the case of fetching a job at the time of logging in after the client terminal has transmitted a print job to the CPS <NUM> and the CPS <NUM> has transmitted a job event notification to the printing apparatus <NUM> in steps S1501 to S1503 in <FIG>. Note that the hardware configuration of each device of the second embodiment is the same as the first embodiment. Differences from the first embodiment will be described below.

Upon a user logging in to the printing apparatus <NUM> (S1518), the printing apparatus <NUM> transmits a job list fetch request (S1519), and accordingly receives and fetches job list information regarding the logged-in user from the CPS <NUM> (S1520). The printing apparatus <NUM> displays a job list based on the fetched job list information (S1521), and the user selects a target print job (S1522).

The processing procedure performed by the printing apparatus <NUM> of this embodiment shown in <FIG> is a procedure performed after the user has logged in, i.e. processing in step S1522 has been completed.

First, the CPU of the printing apparatus <NUM> detects that printing of a job has been selected (S701). Steps S702 to S704 are the same as steps S502 to S504 of the first embodiment.

In step S704, the printing apparatus <NUM> determines whether the logged-in user is a registered regular user or a guest user. If the logged-in user is a registered user, the printing apparatus <NUM> determines whether or not a PIN has been set for the target print job (S704-<NUM>). If a PIN has not been set, the printing apparatus <NUM> fetches the print job in step S705 and performs printing for the fetched print job (S1532, S706). The CPU of the printing apparatus <NUM> then notifies the CPS <NUM> of successful job status (S707). If it is determined that a PIN has been set, the processing branches to step S709 and the PIN is verified.

If the logged-in user is a guest user, the printing apparatus <NUM> determines whether or not a PIN has been set based on the response received in step S703, as in step S508 (S1525, S708). If a PIN has not been set, the printing apparatus <NUM> cancels fetching of print job data, as in step S509 (S1526, S711). The printing apparatus <NUM> then notifies the CPS <NUM> of a job status error, as in step S510 (S1527, S712).

If a PIN has been set, the printing apparatus <NUM> displays a PIN input screen (S709). The printing apparatus <NUM> then verifies the input pin (S710). If the PINs match, the processing proceeds to step S706. If the PINs do not match, the processing proceeds to step S711.

As described above, this embodiment makes an error for a job whose owner is a guest user and for which a PIN has not been set, thereby making it impossible for other guest users to execute printing to ensure security.

As described above, this embodiment makes an error for a print job whose owner is a guest user and for which a PIN has not been set. This can ensure security for print jobs of guest users as well. Further, in this embodiment, processing for making an error for a print job whose owner is a guest user and for which a PIN has not been set is performed after the guest user has logged in, thus allowing the guest user to be notified of the processing result. This allows the guest user to understand that the print job could not be fetched since the user has not set a PIN, and then to upload a print job with a set PIN to the CPS <NUM>.

The third embodiment will describe the case of registering a guest printing capability and a PIN setting capability as a preset of the printing apparatus <NUM>. <FIG> shows an example of a processing procedure when the printing apparatus <NUM> is registered to the CPS <NUM>. The processing in <FIG> may be executed prior to the printer information notification (S1602) in <FIG>.

The printing apparatus <NUM> generates its own capability information (S801). <FIG> show examples of capability information. <FIG> shows an example of capability information generated by a printing apparatus that does not allow guest users to perform printing, and <FIG> shows an example of capability information generated by a printing apparatus that allows guest users to perform printing. In step S801, the printing apparatus <NUM> first creates the capability information shown in <FIG> regardless of whether the printing apparatus <NUM> allows guest users to perform printing. The capability information generated here includes information regarding basic printing capabilities, such as copies, sides, and number-up.

Next, the printing apparatus <NUM> determines whether or not guest printing is allowed (S802). Whether or not guest printing is allowed may be determined in accordance with a set value of a "allow guest print setting" provided in the printing apparatus, or may be determined in accordance with a setting policy fetched from an external terminal, such as a cloud server. In this embodiment, the printing apparatus <NUM> also needs to support PIN printing. Thus, the determination as to whether or not guest printing is allowed may be such that it is determined that guest printing is allowed if the allow guest print setting of the printing apparatus is enabled and PIN printing is supported. Needless to say, the determination need not be performed here if whether or not PIN printing is supported is already determined when the allow guest print setting is configured.

If guest printing is not allowed, the CPU of the printing apparatus <NUM> transmits the generated capability information (information illustrated in <FIG>) to the CPS <NUM> (S803). If guest printing is allowed, print preset information regarding the guest user is added to the capability information generated in step S801, as shown in <FIG> (S804). Preset information refers to job-presets-supported, as shown in <FIG>. A preset refers to a set of a preset item and a value thereof. In this example, preset information includes a preset name, a password encryption method, and an account type. <FIG> shows preset information regarding a preset whose name is Preset1 and indicating that a PIN encrypted with a sha2-<NUM> hash is used if the account type is "guest".

The CPU of the printing apparatus <NUM> then transmits the added capability information to the CPS <NUM> (S803).

Printer information including this capability information is provided to the client terminal <NUM> via the CPS <NUM>. The settings in which the account type is "guest" and a predetermined PIN setting is used are applied to the client terminal <NUM> that has received the capability information if the client terminal <NUM> selects the preset whose name is Preset1 received together with the capability information regarding the printing apparatus <NUM>, as shown in <FIG>. Thus, if the guest user selects the printing apparatus <NUM> on the client terminal <NUM> and selects Preset1, the guest user is required to input a PIN for the target print job. The print job is transmitted to the CPS <NUM> upon the PIN being input.

By thus preparing a preset with a set PIN, it is more likely that a PIN setting is applied to a print job of a guest user, thereby reducing the risk that another guest user performs printing of the print job and ensuring security.

The fourth embodiment will describe the case of performing control such that each of the client terminals <NUM> and <NUM> determines whether a user operating the client terminal is a registered user or a guest user, and a guest user is required to set a PIN setting.

<FIG> shows an example of a hardware configuration of the client terminal. The constituent elements have already been described in the first embodiment and are therefore omitted. <FIG> shows examples of a user interface when printing is performed from the client terminal <NUM>.

This embodiment will be described in accordance with to a control flow of the CPU of the client terminal shown in <FIG>. First, in step S1101, the CPU <NUM> of the client terminal detects that a user has selected "print" with a document open, as shown in any document display screen 12B in <FIG>, and selected display of print settings. Next, in step S1102, the CPU <NUM> determines whether the user who selected display of print settings is a registered user or a guest user of the cloud printing service. The methods for determining whether the user is a registered user or a guest user include, for example, a method of inputting, in advance, a user name and a password for the CPS <NUM> to the client terminal, as shown in a log-in screen 12A, to log in, and then determining whether the user ID (user identification information) indicates a registered user. A user who is not a registered user has logged in as a guest user, and can thus be identified with this method. Other methods include a method of obtaining the authority to use the CPS <NUM> using an account on another cloud ID service provider, as shown in the log-in screen 12A, to identify the user as a guest user. Alternatively, a method of performing the determination by transmitting user information to the CPS <NUM> and receiving, from the CPS <NUM>, a response indicating a registered user or a guest user is also possible.

If it is determined in step S1102 that the logged-in user is a registered user, in step S1103, the CPU <NUM> displays a print setting screen 12C in <FIG>. In this print setting screen, a PIN may be set, but need not necessarily be set. The regular user configures any print settings and presses a "print" button. In step S1104, upon detecting the pressing of the "print" button, the CPU <NUM> generates print attribute information based on the configured print settings. In step S1105, the CPU <NUM> transmits the generated print attribute information and print data to the CPS <NUM>. If a PIN has been set, the print attribute information includes "Job-password" and "Job-password-encryption" attributes. These attributes are not included if a PIN has not been set.

If it is determined in step S1102 that the logged-in user is a guest user, in step S1106, the CPU <NUM> displays a print setting screen 12D. In the print settings here, PIN setting is a required input item. In other words, PIN setting is pre-set to "use", and "do not use" cannot be set. Further, for example, the guest user cannot press the "print" button before inputting a PIN code. Alternatively, the screen is controlled so as to display a message indicating an input error if the "print" button is selected without an input PIN code. The guest user inputs a PIN code and presses the "print" button.

Upon detecting the pressing of the print button in step S1104, the CPU <NUM> stores PIN code information in the "Job-password" and "Job-password-encryption" attributes and generates print attribute information. In step S1105, the CPU <NUM> transmits the generated print attribute information and print data to the CPS <NUM>. In the case of a guest user, the "Job-password" and "Job-password-encryption" attributes are necessarily included.

This embodiment is based on the premise that the printing apparatus <NUM> has a PIN setting capability. That is, it is assumed that the client terminal fetches capability information regarding the printing apparatus <NUM> when creating a printer, and the capability information includes a PIN setting capability attributes, such as "Job-password-supported". If, for example, the capability information regarding the selected printing apparatus does not include the PIN attribute before the print setting screen is displayed in step S1106, an error message indicating that printing cannot be performed with this printing apparatus may also be output. Note that <FIG> shows an example where the printing-in-progress screen 12E is displayed, but a messaging indicating that uploading is in progress may be displayed, instead of the printing-in-progress screen 12E, until the uploading of the print job is complete, for example. After the uploading has been completed, a message indicating the completion may also be displayed.

As described above, the client terminal controls the print setting screen so as to always require a guest user to set a PIN, and thus, a PIN is necessarily set for a print job of the guest user. With this, any other guest user who attempts to perform printing of the print job with the printing apparatus does not know the PIN code and is thus unable to perform printing. Security can thus be ensured.

The fifth embodiment will describe the case where if the CPS <NUM> receives a print job from a client terminal, the CPS <NUM> determines whether or not the received print job is from a guest user, and performs control to additionally sets a PIN if the print job is from a guest user and a PIN has not been set for the print job. An example of a hardware configuration of the CPS <NUM> is the same as that of the client terminal shown in <FIG>.

This embodiment will be described in accordance with a control flow of the CPU <NUM> of the CPS <NUM> in <FIG>. First, in step S1401, the CPU <NUM> detects that a print job has been submitted from the client terminal. After detecting the submitted print job, in step S1402, the CPU <NUM> determines whether the job owner of this print job is a registered user or a guest user of the CPS <NUM>. The determination methods include checking whether or not the value of "Job-originating-user-uri" included in print attribute information is included in an account list managed by the CPS <NUM>, for example. Alternatively, the determination may be performed based on any attribute information other than the "Job-originating-user-uri" attribute if the determination can be made using an attribute such as "Requesting-user-uri" or "Job-originating-user-name". Alternatively, whether the job owner is a registered user or a guest user may be determined by performing HTTP authentication or OAUTH authentication when the print job is submitted from the client terminal, rather than based on print attribute information.

If it is determined in step S1402 that the job owner is a registered user of the CPS <NUM>, in step S1403, the CPU <NUM> stores the received print data and print attribute information in the storage unit of the CPS <NUM>. In step S1404, the CPU <NUM> notifies the printing apparatus <NUM> that a print job has been received. The printing apparatus <NUM> may be notified by means of a Get-Notifications operation of IPP, for example.

If it is determined in step S1402 that the job owner is a guest user of the CPS <NUM>, in step S1405, the CPU <NUM> determines whether or not the received print attribute information includes a set PIN. Whether or not a set PIN is included is determined based on whether or not attribute information related to the PIN setting, such as "Job-password" or "Job-password-encryption", exists. If it is determined that a set PIN is included, the CPU <NUM> determines that there is no problem and proceeds to step S1403.

On the other hand, if it is determined in step S1405 that the print job is of a guest user and a PIN has not been set, in step S1406, the CPU <NUM> additionally sets a PIN. For example, the CPU <NUM> randomly generates a PIN code, generates attribute information related to the PIN setting, such as "Job-password" and "Job-password-encryption" based on the generated PIN code, and adds the generated attribute information to the received print attribute information. In step S1407, the CPU <NUM> notifies the client terminal of the generated PIN code. The notification may be given using any means, such as an e-mail, as long as the guest user can recognize the generated PIN code via the client terminal.

As for a print job for which a PIN has not been set, the printing apparatus to execute this print job does not necessarily support PIN setting. For this reason, before additionally setting a PIN for the print job in step S1406, it may be determined whether or not the printing apparatus <NUM> to execute the print job has the PIN printing capability, and step S1406 may be executed if the printing apparatus <NUM> has the PIN printing capability. If it is determined that the printing apparatus <NUM> to execute the print job does not have the PIN printing capability, the CPU <NUM> may transmit an error message indicating this determination result to the client terminal that is the transmission source of the print job and discard the print job.

As described above, even if a print job for which a PIN has not been set is received from the client terminal when the job owner is a guest user, the CPS <NUM> always additionally sets a PIN. A PIN is thus necessarily set for a print job from a guest user. With this, any other guest user who attempts to perform printing of the print job with the printing apparatus does not know the PIN code and is thus unable to perform printing, Security can thus be ensured.

The printing apparatus <NUM> of the above embodiment does not execute a print job of a guest user for which a PIN, i.e. a password has not been set. This is because the printing apparatus <NUM> cancels, i.e. discards a print job of a guest user for which a PIN has not been set, or the client terminal <NUM> or the CPS <NUM> sets a PIN for a print job of a guest user. With this, a PIN is set for a print job of a guest user that is to be executed by the printing apparatus <NUM>, thereby preventing the print job from being executed by a user other than the user who has set the PIN, or reducing the chance of such execution of the print job.

Claim 1:
A printing system comprising:
a printing apparatus (<NUM>);
a printing service system (<NUM>) connected to the printing apparatus; and
an information processing apparatus (<NUM>, <NUM>) connected to the printing service system (<NUM>),
the printing service system (<NUM>) including:
registering means for registering the printing apparatus; and
storing means for storing a print job received from the information processing apparatus (<NUM>, <NUM>),
the information processing apparatus (<NUM>, <NUM>) including:
transmission means for transmitting, to the printing service system, a print job of a logged-in user in which a printing apparatus selected from among at least one printing apparatus registered in the printing service system is designated,
the printing apparatus (<NUM>) including:
storing means for storing a user of the printing service system in association with a user of the printing apparatus; and
printing means for fetching a print job of a user associated with a logged-in user of the printing apparatus, out of at least one print job stored in the printing service system, and executing printing,
wherein a guest user of the printing service system is associated with a guest user of the printing apparatus,
characterized in that
the printing apparatus is configured to transmit a job fetch request for a print job and to receive print job data in response, and wherein the printing apparatus is configured to cancel the fetching of print job data if the job owner is a guest user and upon determining that the received job data does not include attribute information indicating that a password has been set for said print job.