Patent ID: 12190005

DESCRIPTION OF THE EMBODIMENTS

Hereinafter, embodiments will be described in detail with reference to the attached drawings. Note, the following embodiments are not intended to limit the scope of the claimed invention. Multiple features are described in the embodiments, but limitation is not made to an invention that requires all such features, and multiple such features may be combined as appropriate. Furthermore, in the attached drawings, the same reference numerals are given to the same or similar configurations, and redundant description thereof is omitted.

First Embodiment

<System Configuration>

FIG.1is a block diagram illustrating a system configuration in an embodiment of the present invention. Names will be described before the drawings. A cloud print service102is a cloud print service that is equipped with functions according to the present embodiment. For the sake of explanation, this cloud print service will be referred to as a first cloud print service. A cloud print service103is a management function provisioning cloud print service that is equipped with functions according to the present embodiment. For the sake of explanation, the management function provisioning cloud print service will be referred to as a second cloud print service. CPS may be used as an abbreviation for cloud print service. Accordingly, the first cloud print service may be abbreviated as a first CPS and the second cloud print service as a second CPS. A system that includes the first CPS, the second CPS, a client terminal, and an image forming apparatus may be referred to as a cloud print system or, simply, a print system.

InFIG.1, an image forming apparatus101, a client terminal104, and cloud services are directly or indirectly connected to each other in a cloud print system. The cloud services include the first cloud print service102, the second cloud print service103, an application management service110, and an online support service111. The respective services are provided by servers, which are information processing apparatus, and the servers are connected via networks100. In the present description, the term “service” may refer to a program module to be executed by a server or its CPU to provide a corresponding service or a server that executes the program module, rather than an intangible service to be provided.

FIG.1illustrates one image forming apparatus101and one client terminal104; however, there may be a plurality of each. The first cloud print service102, the second cloud print service103, the application management service110, and the online support service111may each be a server system that is configured by a plurality of information processing apparatuses. Having each server system be a server system that is configured by a plurality of information processing apparatuses, it is possible to distribute the load among the plurality of information processing apparatuses. The first cloud print service102, the second cloud print service103, the application management service110, and the online support service111may be configured virtually in one physical information processing apparatus.

Regarding the networks100, WANs, such as the Internet, are assumed for connection to cloud services; however the networks100may be closed environments, such as a case where they are all in-house LANs. The networks that are illustrated as the Internet inFIG.1need not be a plurality of different networks and may be configured such that other components are all connected to the Internet. Accordingly, the first CPS102and the second CPS103that are directly connected inFIG.1may be connected to each other via the Internet.

The client terminal104is an information processing apparatus, such as a PC, a tablet, or a smartphone, and is a terminal to be directly operated by a user. Any application software that accords with the platform can be executed on the client terminal104. In the present embodiment, it is assumed, in particular, that a general-purpose printer driver1041and a print setting extension application1042, which is associated with that general-purpose printer driver, can be executed.

The image forming apparatus101is a device that actually performs printing on a printing medium, such as a paper, and is a cloud print compatible printer that converts print data that has been received via the networks100into image data and prints the image data. The image forming apparatus101can receive print data from the client terminal104via the first CPS102and the second CPS103as well as receive print data directly from the client terminal104without it going through the first CPS102and the second CPS103. The image forming apparatus101receives print data that has been generated by the general-purpose printer driver1041of the client terminal104via the first CPS102and the second CPS103. The image forming apparatus101also receives print data that has been generated by the general-purpose printer driver1041of the client terminal104without it going through the first CPS102and the second CPS103.

The first CPS102receives a print instruction and print data externally, such as from the client terminal104. The first CPS102then transmits the received print data to the second CPS103. Upon receiving a print instruction from the image forming apparatus101, the second CPS transmits the print data to the image forming apparatus101. One of the reasons that the client terminal104transmits a print job to the second CPS103via the first CPS102is that it transmits the print job to the first CPS102using a general-purpose printer driver. If the general-purpose printer driver1041is installed on the client terminal, the client terminal need only select a printer that is registered in the first CPS102and transmit a print job, using the general-purpose printer driver1041. Therefore, the user need not switch printer drivers for each cloud service and the trouble of installation can be eliminated, and thus, the demand is high.

The application management service110is a server apparatus that holds and manages various kinds of applications. The application management service110receives the identification information of an application and a download request from the client terminal104and transmits an application that has been identified based on the received identification information to the client terminal104.

The online support service111is a server apparatus that provides a service that provides support online. The online support service111is a server apparatus for providing the client terminal104with an extension setup information file in which information for extending the functions of the client terminal104is described.

<Hardware Configuration of Image Forming Apparatus101>

FIG.2is a block diagram illustrating a hardware configuration of the image forming apparatus101. The image forming apparatus101includes a scanner function for reading the image on a sheet, a file transmission function by which the read image can be transmitted to an external communication apparatus, and the like. The image forming apparatus101also includes a printer function for printing images on sheets. It is assumed that the image forming apparatus101also includes a function for receiving a print job from the second CPS103and printing the print job.

A control unit210that includes a central processing unit (CPU)111controls the operation of the entire image forming apparatus101. The CPU is also referred to as a processor. The CPU211reads out control programs that are stored in a read-only memory (ROM)212or a storage214and performs various kinds of control, such as print control and read control. The ROM212stores control programs that can be executed by the CPU211. A random access memory (RAM)213is a main storage memory to be accessed by the CPU111and is used as a work area or a temporary storage region for loading various kinds of control programs. The storage214stores print data, image data, various kinds of programs, and various kinds of setting information. Hardware, such as the CPU211, the ROM212, the RAM213and the storage214, thus constitutes a so-called computer.

In the image forming apparatus101according to the present embodiment, it is assumed that one CPU211executes each of the processes, which are illustrated in the sequences to be described later, using one memory (RAM213); however, another mode may be employed. For example, each of the processes, which are illustrated in the flowcharts to be described later may be executed by cooperation of a plurality of processors, memories, and storage. A configuration may be taken so as to execute part of the processing using a hardware circuit.

A printer interface (I/F)219connects a printer220(printer engine) and the control unit210. The printer220prints images on sheets that have been fed from a feed cassette (not illustrated) based on print data that has been inputted via the printer I/F219. The method of printing may be an electrophotographic method in which toner is transferred to paper and fixed or an inkjet method in which printing is performed by ink being discharged onto paper.

A scanner I/F217connects a scanner218and the control unit210. The scanner218reads a document that has been placed on a document table (not illustrated) and generates image data. The image data that has been generated by the scanner218is printed by the printer220, stored in the storage214, or transmitted to an external apparatus via a network I/F221.

An operation unit I/F215connects an operation unit216and the control unit210. The operation unit216includes a liquid crystal display unit that includes a touch panel function, various kinds of physical keys, and the like. The operation unit216functions as a display unit that displays information to the user and a reception unit that receives instructions from the user. The CPU211performs control for display of information and control for acceptance user operations in cooperation with the operation unit216.

A network cable is connected to the network I/F221, and communication with external apparatuses that are on the network100or the Internet can be executed. In the present embodiment, a case where the network I/F221is a communication interface that performs wired communication that conforms to Ethernet® is assumed; however, the present invention is not limited thereto. For example, the network I/F221may be a wireless communication interface that conforms to the IEEE 802.11 series. Both may be wireless communication interfaces. The network I/F221may be a communication interface that performs mobile communication, such as a 3G line, such as a CDMA; a 4G line, such as an LTE; or a 5G NR.

<Hardware Configuration of Servers and Client Terminal>

FIG.3is a block diagram illustrating a hardware configuration of computers that are actual resources that provide the first CPS102, the second CPS103, the application management service110, the online support service111, and the client terminal104, which are described inFIG.1. In the following, a server that provides the first CPS102is referred to as a server102, and a server that provides the second CPS103is referred to as a server103. Similarly, a server that provides the application management service110is referred to as a server110, and a server that provides the online support service111is referred to as a server111.

A CPU301controls the operation of the server by cooperating with each of the units. The CPU301reads and executes an operating system (OS) and control programs that are stored in a ROM302or a storage304. The ROM302stores control programs that can be executed by the CPU301. A RAM303is a main storage memory of the CPU301and is used as a work area or a temporary storage region for loading various kinds of control programs. The storage304stores print data, image data, various kinds of programs, and various kinds of setting information. In the present embodiment, an auxiliary storage device, such as a hard disk drive (HDD), is assumed as the storage304; however, a non-volatile memory, such as a solid-state drive (SSD), may be employed in place of the HDD. The storage304of the online support service stores an extension setup information file, which is a file in which information for extending the functions provided by the client terminal104is described. Hardware, such as the CPU301, the ROM302, and the RAM303, thus constitutes a so-called computer.

The server102and the server103may further include application-specific integrated circuits (ASIC) that render print data and the like. For the sake of explanation, in the present embodiment, a case where one CPU301executes each of the processes, which are illustrated in the sequences to be described later, using one memory (e.g., RAM303) will be illustrated; however, another mode may be employed. For example, each of the processes, which are illustrated in the flowcharts to be described later may be executed by cooperation of a plurality of processors, RAMs, ROMs, and storage. Each of the processes may be executed using a plurality of server computers. By using containerization and virtualization technology, the server102, the server103, the server110, and the server111can provide cloud print services to a plurality of different tenants.

A network I/F301is an interface for performing network communication with the outside. The server102and the server103are connected to the Internet via the network I/Fs. An operation unit I/F305is an interface to which the control unit136, such as a keyboard, a mouse, and a display, are connected. Each of the input/output devices that are connected to the I/Fs are used, for example, to maintain actual servers that provide cloud print services. Since the hardware configuration of the client terminal104is similar to that of the server102, the description will be omitted.

The first CPS102, which is provided by resources of the server102, includes a function for registering and managing output destination printers, a function for managing the state of progress of a print job, and a function for spooling print jobs. The first CPS102stores output destination printer information for managing output destination printers. The output destination printer information includes attribute information, which indicates the capability of the printing apparatus; information for communicating with the printer (such as an IP address, the host name of the printer, and an access token that is necessary for communication); and management information to which information that identifies the name of the model of the printing apparatus is associated. The management information is referenced as appropriate in a sequence to be described below.

Windows®, Android®, macOS®, iOS®, or the like are installed on the client terminal104. The user can use a print client and a print framework for the first CPS102that is pre-installed on the OS. The print client and the print framework provide the user with, for example, printer search and registration processing, print setting screen display processing, print data generation processing, a process for communicating with the first CPS102, and a status monitor function for monitoring the progress of printing. The process for communicating with the first CPS102includes transmitting a print job, a print data file, and the like to the first CPS102. In the present embodiment, a case where a general-purpose printer driver or a print client is pre-installed has been illustrated; however, the present invention is not limited thereto. For example, a configuration may be taken such that the user installs the print client later. As described inFIG.9and the like, in the present embodiment, the general-purpose printer driver does not communicate directly with the first CPS102but communicates via the print setting extension application1042. That is, in the present embodiment, the print setting extension application1042corresponds to a print client that conforms to the Internet Printing Protocol (IPP).

<Printer Registration Sequence in First Embodiment>

Next, a process for registering a server as a virtual printer in the first CPS102and registering a printer in the second CPS103according to the first embodiment will be described with reference toFIG.4. This process may be performed at the time of installation of a printer driver or may be performed using a preinstalled printer driver.

First, the user, such as an administrator, issues an instruction to register in the second CPS103, which is the registration destination, using the operation unit216and the like of the image forming apparatus101, such as the printing apparatus. In step S401, upon receiving the instruction, the printing apparatus101makes a registration processing request to the second CPS103, which is the registration destination. In step S402, upon receiving the registration processing request, the second CPS103performs a procedure for registering the image forming apparatus101as well as printer registration processing and returns a registration processing response to the image forming apparatus101. Next, the user, such as an administrator of the second CPS, registers the second CPS103to the first CPS as a virtual printer. One of the reasons for registering the second CPS103as a virtual printer is for the second CPS103to receive a print job that the general-purpose printer driver has transmitted to the first CPS102and manage the print job. The second CPS also includes a print job storage function, and the stored print jobs are held for a certain period of time in the storage304of the second CPS103until a print instruction is received from the image forming apparatus101, which has been registered in the second CPS103in step S401. The second CPS103includes a function that can perform printing not only from the image forming apparatus101but from any registered printing apparatus so long as certain conditions are satisfied, that is, a so-called print anywhere function.

The process of registering the second CPS103as a virtual printer in the first CPS102will be described with reference toFIG.6.FIG.6is a diagram in which a tenant website of the second CPS103is displayed on a web browser of a client, such as the client terminal104. However, the configuration screen is one example, and the present invention is not limited thereto. The user, such as an administrator, inputs the name of a printer to register in the first CPS102in a printer name601of a tenant website screen600of the second CPS103. Having inputted the name, the user presses a “connect to universal print” button602.

Upon detecting the press of the button602, in step S403, the second CPS103transmits a registration processing request to the first CPS102. It is assumed that the protocol for registration processing conforms to a protocol that is defined in the first CPS102. Here, description will be given assuming that Register-Output-Device operation, which is defined in PWG 5100.22, is used one example. Upon receiving the registration processing request, the first CPS102confirms the contents of the registration request and, in step S404, transmits a registration processing request response to the second CPS103. In step S404, if there is no problem in the contents of the registration processing request, a successful response will be made, and if there is a problem, a failure response will be made. In the present embodiment, description will be given assuming that a successful response has been made. Information of an output destination printer is registered in the first CPS102by the process of steps S403and S404. However, this output destination printer is a virtual printer of the second CPS103. The virtual printer of the second CPS103is an instance for which the second CPS103, for example, has been virtualized as a printer and can be treated as a printer on the print-job-inputting side (e.g., the first CPS102). In the registration processing, an access token for accessing the first CPS102from the second CPS103is issued by the first CPS102. The second CPS103stores that access token in the storage304and uses it when accessing the first CPS102to query or make requests to the first CPS102.

Next, in step S405, the second CPS103transmits a capability notification, which includes its connection information, to the first CPS102. In the present embodiment, a case where Update-Output-Device-Attributes operation, which is defined in PWG 5100.18, or the like is used is assumed. In the process of step S405, a capability registration packet, which is indicated inFIG.7Aand describes capability information, for example, is transmitted as connection information. The capability registration packet ofFIG.7Aincludes IPP compliant standard attribute information and vendor-specific attribute information. Next, upon receiving the capability information from the second CPS103, in step S406, the first CPS102registers not only attribute information that it supports but also attribute information that it does not support as output destination printer information in association with a registration target printer. The supported attribute information and unsupported attribute information are stored separately. The unsupported attribute information includes, specifically, a tenant website URL (ufo-tenant-url: https://tenant1.uniflowonline.com), which is connection information of the second CPS103.

In step S407, the first CPS102transmits a registration successful response “Success-ok”, which is illustrated inFIG.7C, to the second CPS103. A status message is added to the information as supplementary information. The status message includes information that indicates some attributes not being supported by the cloud print service but unsupported attributes having been registered. This registration processing makes it possible to perform a process for registering attributes that are not supported by the first CPS102, specifically, connection information of the second CPS103(e.g., tenant website URL). It also becomes possible to automatically obtain, from the print setting extension application1042, print management functions for when cloud coordination is performed.

Upon having registered the virtual printer of the second CPS103to the first CPS102, the operation will be on the client terminal104side next. In step S408, the user executes a search for a printer of the first CPS102from the operation unit306of the client terminal104. Upon detecting a printer search instruction from the user, in step S409, the client terminal104transmits a printer search request to the first CPS102. The search request includes cloud account information that corresponds to the user that is logged in to the client terminal. The cloud account information is used to identify the tenant to which the user belongs. The printer search may be performed with a method in which a search is performed by designating all of the printers that are registered in the first CPS102and are managed by the tenant to which the user belongs or a method in which a search is performed using a filter condition according to a specific printer name, location, or the like.

In step S410, upon receiving the search request from the client terminal104, the first CPS102transmits information of printers that are registered in the first CPS102and coincide the search request to the client terminal104. At this point in time, there is no need to make a response including specification information that is associated with the printer, and representative attribute information, such as the printer name, which is necessary for output destination selection, need only be returned. Upon receiving printer list information from the first CPS102, in step S411, the client terminal104displays a list of printers on the operation unit306. The client terminal104may search for printers on the local network using a search protocol, such as mDNS, and merge the search results and display the results on a printer list screen. It is assumed that the screen also displays output destination printers that are already registered in the print framework of the client terminal104in a list.

In step S412, the user selects a desired printer from the list of printers. Here, a case where a printer that is registered in the first CPS102but not registered in the client terminal104is selected will be described. Upon detecting a printer selection, in step S413, the client terminal104transmits a printer capability obtainment request to the first CPS102to obtain a more detailed specification of a corresponding printer. In the present embodiment, Get-Printer-Attributes operation of IPP, for example, is assumed for the printer capability obtainment request.

Upon receiving the printer capability obtainment request, in step S414, the first CPS102transmits a printer capability obtainment response, which includes attributes that are supported or unsupported by the first CPS102, to the client terminal104. In the process of step S414, a capability obtainment response packet, which is indicated inFIG.7Band contains capability information, is transmitted, for example. The packet ofFIG.7Bcontains a string of the connection information of the second CPS103that has been registered in the first CPS102in step S405. As indicated inFIG.7B, it is possible to perform notification including attributes that are unsupported by the first CPS102but are supported by the second CPS103. Regarding the attributes that are unsupported by the first CPS102, cloud service connection information of the second CPS103, such as a tenant URL, is included. Next, in step S415, the client terminal104stores the supported attributes and unsupported attributes, such as the cloud service connection information of the second CPS103.

<Installation of Print Setting Extension Application>

Next, installation of the print setting extension application (also referred to as extension application)1042, which is performed when the user performs on the client terminal104a setup operation for performing printing on the image forming apparatus101, will be described. This process starts immediately after registration of the image forming apparatus101by a setup operation of the general-purpose printer driver1041for the image forming apparatus101, which is the process ofFIG.4, being performed on the client terminal104and creation of a print queue (step S501).

First, the client terminal104performs additional identification information appending processing on device identification information. This is a necessary process for when obtaining an extension setup information file800, which is indicated inFIG.8, from the online support service111, and additional identification information need only be a string that is different from a typical device identification information. In the case of the present embodiment, additional identification information (“PrinterApp_”), which indicates that an application corresponds to that of the printer, is appended to device identification information to distinguish an application of a search target from applications of other devices. “PrinterApp_” is only an example and may be another string or numeral or symbol. As a result of the above process, in the case where the device identification information of the image forming apparatus101is device001, for example, the device identification information becomes PrinterApp_device001 after the additional identification information appending processing.

In step S502, the client terminal104transmits a search request for extension setup information file800, which includes target device identification information to which additional information has been appended, to a service that is on the network, such as the online support service111. The online support service111is notified of the device identification information, “PrinterApp_device001”, to which additional identification information has been appended, according to step S502. The extension setup information file800, which is indicated inFIG.8, is stored in the online support service111.

FIG.8is an example of the extension setup information file800. An extension setup information file is a file that has been created by the vendor of the image forming apparatus101and registered in the online support service111. In the extension setup information file800, an application identifier for identifying a print setting extension application that is used for settings for print data to be transmitted to the image forming apparatus101is described. In the extension setup information file that is indicated inFIG.8, an item, “PackageFamilyName”, is identification information801of the print setting extension application. Meanwhile, in “PrinterHardwareId”, device identification information802of the image forming apparatus101to which additional identification information has been appended is described. In addition to the extension setup information file800in which the identification information801of the print setting extension application is described, an extension setup information file in which the identification information of the printer driver is described is stored in the online support service111.

The extension setup information file in which the identification information of the printer driver is described has a configuration similar to that of the extension setup information file800in which the identification information801of the print setting extension application is described; however, there are items with different values. For example, in the extension setup information file in which the identification information of the printer driver is described, the identification information of the printer driver is described in association with the field of “PackageFamilyName”. In addition, in “PrinterHardwareId” of the extension setup information file in which the identification information of the printer driver is described, device identification information for which additional identification information has not been described is described.

As described above, both the extension setup information file in which the identification information of the printer driver is described and the extension setup information file in which the identification information of the print setting application is described are stored in the online support service111. Therefore, the client terminal104appends additional identification information to the device identification information to obtain a necessary extension setup information file as appropriate. Upon receiving a search request, the online support service111identifies an extension setup information file for which the device identification information that is specified in the request coincides with the value of “PackageFamilyName” in the file. For example, if device identification information to which additional identification information has been appended is specified, the extension setup information file800in which the identification information801of the print setting extension application is described will be identified. If device identification information to which additional identification information has not been appended is specified, the extension setup information file in which the identification information of the printer driver is described will be identified. The extension setup information file thus identified will be a target of a search.

As a result of the search, if the online support service111stores the extension setup information file800that includes the target device identification information, in step S503, the online support service111returns the extension setup information file800to the client terminal104. At this time, the contents of the extension setup information file800are written in the registry of the client terminal104.

Next, in step S504, the extension setup information that is described in the extension setup information file800that has been obtained from the online support service111is installed in association with the print queue that has been generated in step S501. Next, the application ID is extracted from the extension setup information that has been installed in step S505. The application ID is the identification information801that has been defined in “PackageFamilyName” in the extension setup information file800. The process up to this point is the process for when an extension setup file that corresponds to the image forming apparatus101is stored in the online support service111.

As a result of the search, there may be cases where the online support service111cannot detect the extension setup information file800that includes the target device identification information. At this time, in step S503, it is returned that there is no corresponding extension setup information file. Upon that response, in step S506, the client terminal104completes the cloud print driver setup and aborts the process for installing the application (print setting extension application1042). If an extension setup file could not be received within a predetermined time from the search request of step S502or if an error notification is received from the online support service111, the client terminal104executes the process that is described in step S506.

From step S507onward, a process for when the extension setup file has been obtained and the application ID has been extracted therefrom will be described. In step S507, the client terminal104requests the application management service110to search for an application for which the extracted application ID coincides. An application and an application ID are registered in the application management service110by the vendor that provides the image forming apparatus101. The application management service110stores an application that runs on the client terminal104in association with an application ID that is identification information of the application.

If the application management service110holds a print setting extension application for which the requested application ID coincides, in step S508, the application management service110returns the specified print setting extension application1042to the client terminal104. Here, the print setting extension application1042to be returned is an application to which the same ID as that of the transmitted application ID has been given.

In step S509, the client terminal104installs the obtained print setting extension application1042in association with the client-side print queue. The client terminal104stores the application ID as print queue information in the registry. The print setting extension application1042sets the client terminal104such that the print queue that is associated with the application notifies an event at a timing that has been set in the print setting screen. The installed print setting extension application1042is started after the client terminal104is powered on and started up and operates as a background task after the startup.

Meanwhile, if the application management service110does not hold a print setting extension application for which the requested application ID coincides, in step S510, the client terminal104aborts the process for installing the application. In such a case, the process ends with the general-purpose printer driver1041being installed in association with the generated print queue and without the print setting extension application1042not being associated with the print queue. In such a case, cloud printing is possible if the general-purpose printer driver1041conforms to IPP; however, the print management functions according to the second CPS103cannot be used. In the above description, a predetermined character string is appended to the device identification information of the image forming apparatus101to search for the extension setup file. If files for installing the printer driver can be distinguished, a configuration may be taken so as to perform a search without appending a predetermined character string.

<Printing Sequence According to First Embodiment>

Next, a sequence for performing printing from the client terminal104via the first CPS102and the second CPS103according to the first embodiment will be described with reference toFIG.9. A process for the sequence for performing printing from a client terminal (e.g., the client terminal104) via the first CPS102and the second CPS103according to the first embodiment will be described with reference toFIG.9.

In step S901, the user starts printing by pressing a print button on the application. Upon detecting the press of the print button, in step S902, the general-purpose printer driver1041of the client terminal104generates a print job. Having generated a print job, in step S903, the general-purpose printer driver1041of the client terminal104transmits that print job to the print setting extension application1042. At that time, the print job includes attribute information, which indicates print settings, and the above-described tenant website URL, which is connection information of the second CPS103. The print setting extension application1042is an application that is associated with the image forming apparatus101for which the print queue has been created in step S501. Therefore, a configuration may be taken so as to, when the image forming apparatus101is selected and a print instruction is issued, and transmit the print job to the print setting extension application1042instead of the image forming apparatus101. In such a case, the print queue that corresponds to the image forming apparatus101may be replaced with a print queue that corresponds to the print setting extension application1042.

Upon receiving the print job, in step S904, the print setting extension application1042requests the second CPS103for print management function information, using a URL that is the connection information of the second CPS103. The print management function information is, specifically, management information that is related to printing to be performed by a print eligible user and, specifically, includes at least one of cost bearer department information, print limitation information, and print budget information held by the user. Here, a cost bearer refers to the bearer of the cost. Here, cost bearer department information will be described as one example; however, the print management function information is not limited thereto. The print management function information is not limited to these kinds of information and may include, for example, the amount of printing (e.g., the number of pages) for each department or user; statistical information related to frequency or the like; and security management information, such as ID of a user that executed a restricted secure job. Of course, other kinds of information that are managed in the second CPS103may be included. It is assumed that authorization has been granted in advance by the second CPS103and the access token is stored in the print setting extension application1042; however, if the access token is not stored, authentication processing for obtaining an access token may be performed here.

Upon receiving the request for print management function information, in step S905, the second CPS103returns information that is related to the print management functions for the user information of the request source. Here, a list of printing cost bearer departments to which the user belongs is returned. Upon receiving the information related to the print management functions, in step S906, the print setting extension application1042performs print management processing. Here, the received list of the printing cost bearer department to which the user of the client terminal104belongs is displayed in a list on the operation unit306of the client terminal104.

FIG.10is an example of a screen for listing printing cost bearer departments to which the user actually belongs and for allowing the user to make a selection therefrom. In a cost bearer selection screen1000, there are a button1001for a first development department of the development headquarters, a button1002for a human resources department, and a button1003for personal use. In other words, for this user, the first development department of the development headquarters bears the cost when printing is performed for work operations and the human resources department bears the cost when printing is performed for human-resource-related documents to be submitted. The individual bears the cost for other, personal use. Upon detecting that one of the buttons is pressed, the print setting extension application1042adds the identification information of the cost bearer to the print job. When a cancel button1004of the cost bearer selection screen1000is pressed, the print processing is aborted.

When the print management processing is completed, in step S907, the print setting extension application1042transmits a print request that includes attribute information, which indicates print settings, to the first CPS102. In the present embodiment, Create-Job operation or Print-Job operation of IPP is assumed for the print request. If an instruction is issued with the Print-Job operation, attribute information and print data will be transmitted together. If an instruction is issued with the Create-Job operation, a plurality of pieces of document data will be registered as printing targets, using an operation for adding subsequent documents to be printed. Next, the first CPS102analyzes the print request that has been received from the client terminal104in step S907and stores, in the storage304, information of the print job for which the print attributes (information that indicate print settings) that are included in the request and document data to be printed have been associated. At the time of storage, a process, such as print data rendering, may be performed in the first CPS102.

Next, in step S908, the first CPS102notifies the second CPS103of a print job event, which indicates that a print job has been inputted. For notification, Get-Notification operation of IPP, for example, can be used. Upon detecting that there is a print job in the first CPS102, in step S909, the second CPS103makes a print job obtainment request to the first CPS102. For the print job obtainment request, Fetch-Job operation of IPP, for example, can be used. Upon receiving the print job obtainment request, in step S910, the first CPS102returns the print data and print attribute values (i.e., the print job) that are (is) stored in the storage304. In step S911, the second CPS103stores the received print job in its storage304.

When a print instruction is received from the user on the operation unit306of the image forming apparatus101, in step S912, the image forming apparatus101requests second CPS103to obtain a print job. Upon receiving the request from the image forming apparatus101, in step S913, the second CPS103identifies the print job that has been selected by the user and transmits the print job to image forming apparatus101, which is the request source. In step S914, the image forming apparatus101prints an image onto a sheet based on the received print job.

By performing the above-described process, when registering, in the cloud print service, the print management function provisioning cloud service as a virtual printer, it is possible to register connection information that cannot be obtained on the service as the capability information. By doing so, it is possible to provide the print management function provisioning cloud service to the client terminal. This makes it possible to increase usability for printing via the cloud print service.

Second Embodiment

In the first embodiment, a method in which the information for connecting to the second CPS103is received and held by the first CPS102and, at the time of setup of the general-purpose printer driver, is transmitted as extension information of capability information from the first CPS102to the client terminal has been described. In this method, the print setting extension application1042receives, from the driver, the information for connecting to the second CPS103at the time of printing and accesses the second CPS103. In a second embodiment, a method in which the print setting extension application1042performs direct obtainment from the first CPS without going through the general-purpose printer driver1041will be described as another method. In the present embodiment, the sequence ofFIG.11is executed in place ofFIG.9of the first embodiment. Other configurations and procedure are similar to those of the first embodiment.

The processes of steps S1101to S1103are equivalent to the processes of step S901to S903ofFIG.9, which have been described in the first embodiment, and so, description will be omitted. However, in step S1103, the general-purpose printer driver1041need not transmit the information for connecting to the second CPS103to the print setting extension application1042.

In step S1104, upon receiving the print job, the print setting extension application1042requests the first CPS102for the connection information of the second CPS103. This connection information of the second CPS103is stored in a specific storage by an administrator that performs registration when the second CPS103is registered as a virtual printer in the first CPS102in step S405ofFIG.4, which has been described in the first embodiment. In step S1105, the first CPS102transmits the information that is stored in the specific storage to the request source. As a specific example, the connection information of the second CPS103is stored in a region in which the location of the image forming apparatus101is stored, and the connection information is obtained by the print setting extension application1042by reference at the time of printing. The processes of steps S1106to S1116, which are subsequent to obtainment of the connection information of the second CPS103by the print setting extension application1042, are respectively equivalent to those of steps S904to S914ofFIG.9, which have been described in the first embodiment, and thus, description will be omitted.

By performing the above-described processing, the print setting extension application1042can obtain the connection information of the second CPS103directly from the first CPS102without going through the general-purpose printer driver1041.

Third Embodiment

In the second embodiment, a method in which the print setting extension application1042obtains, directly from the first CPS, the information for connecting to the second CPS103has been described. In a third embodiment, a recovery method for when the information for connecting to the second CPS103could not be obtained from the first CPS in the sequence of the second embodiment will be described with reference toFIG.12.

Regarding the object of the present embodiment, the entity that executes the flowchart ofFIG.12is the print setting extension application1042, unless otherwise specified. In terms of hardware, it is the client terminal104or the CPU301thereof. The process that is indicated inFIG.12is started by the print setting extension application1042requesting the information for connecting to the second CPS103, which is stored in the specific storage of the first CPS102, in step S1104ofFIG.11.

First, in step S1201ofFIG.12, a request is made for the information for connecting to the second CPS103, which is stored in the specific storage of the first CPS102. If the connection information has been properly received in step S1202, connection is made to the second CPS103based on that connection information (step S1106).

If it is determined in step S1202that an error response has been received, a request is made to the general-purpose printer driver1041for the information for connecting to the second CPS103. Specifically, there is a region in which the location information is stored in the general-purpose printer driver1041. The general-purpose printer driver, during its installation or setup, stores location information that has been obtained from the first CPS102or the image forming apparatus101to which it is to be connected and includes the information for connecting to the second CPS103, for example. If it is determined in step S1204that the information for connecting to the second CPS103has been obtained from the location information, connection is made to the second CPS103based on that connection information. If it is determined in step S1204that obtainment of the information for connecting to the second CPS103from the location information has failed, in step S1205, two-way communication processing is performed with the image forming apparatus101with which connection is to be made, and the information for connecting to the second CPS103is obtained from the image forming apparatus101. The information for connecting to the second CPS103is information for connecting to the cloud print service in which the image forming apparatus101is registered as a printer. When it is determined in step S1206that the information has been obtained from the image forming apparatus101, connection is made to second CPS103based on the information for connecting to the second CPS103. When it is determined in step S1206that obtainment of information from the location information has failed, in step S1207, a screen for an error in obtainment of connection information of the print management function provisioning service is displayed, and the process is ended. The processes from when connection is made to the second CPS103and the print management function request is transmitted (step S1106) to step S1116are respectively equivalent to those ofFIG.11, and so, description will be omitted.

By performing the above-described processing, even if the information for connecting to the second CPS103could not be obtained from the first CPS, the general-purpose printer driver1041can obtain the information from the image forming apparatus101. This makes it possible for the print setting extension application1042to obtain the connection information of second CPS103.

In the case of a portable terminal, such as a tablet or a smartphone, a print client application that functions as a client of a cloud print service may be installed in place of the general-purpose printer driver described in the present embodiment. If a general-purpose printer driver is mentioned in the following description, it may be read as a print client.

Other Embodiments

Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.

While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

This application claims the benefit of Japanese Patent Application No. 2023-004061, filed Jan. 13, 2023 which is hereby incorporated by reference herein in its entirety.