This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2012-069125 filed Mar. 26, 2012.
(i) Technical Field
The present invention relates to an information processing system, a non-transitory computer readable medium storing a program, and an information processing method.
(ii) Related Art
A system (cloud service) has been proposed in which a server that manages devices is provided on a network, such as the Internet (cloud), and through a client apparatus making a request, a process is caused to be executed on the device. In this type of cloud service, processing is performed by allocating resources to each service provided to the client apparatus.
When processing requests from the client apparatus increase or decrease, processing capability of the resources allocated to the client apparatus is likely to be insufficient or excessive. In contrast, in a case in which a print server stores a print request received from the client apparatus, processes data at the time when the data can be processed, and outputs the processed data to a printer, even when the allocation of the resources is dynamically changed, the process for the print request which has been received by the print server is not distributed. Therefore, there are cases where it is not possible to instantly obtain the effect due to the change in the allocation of the resources.
According to an aspect of the invention, there is provided an information processing system including: one or plural processing units that process data and output the processed data to an output device; an allocation unit that allocates data received from a client apparatus to the one processing unit or any one of plural processing units; a storage unit that stores the data which is allocated to the one processing unit or any one of plural processing units by the allocation unit; a monitoring unit that monitors a status of the one processing unit or plural processing units; and a unit that increases or decreases the number of processing units on the basis of the status of the one processing unit or plural processing units monitored by the monitoring unit and a status of the data stored in the storage unit, wherein the processing unit to which the data is allocated by the allocation unit stores the data in the storage unit, and the one processing unit or any one of plural processing units which can perform a process processes the data stored in the storage unit and outputs the processed data to the output device.
Exemplary embodiments of the present invention will be described in detail based on the following figures, wherein:
Hereinafter, exemplary embodiments of the invention will be described with reference to the accompanying drawings.
The client apparatus 10 is a computer, such as a personal computer, a mobile phone, a PDA, or a tablet terminal which is operated by the user.
The printer 20 is an apparatus which has a network function, communicates with the print management system 100 through the network 30, and performs an image forming process on the basis of data received from the print management system 100. A printer object (logical printer information) including the address and status of the printer 20 and information about a printer driver is registered in the print management system 100.
The print management system 100 provides a printing service to the client apparatus 10 through the network 30. For example, in this exemplary embodiment, the print management system 100 dynamically allocates the hardware resources of the print management system 100 to the printing service to construct the instances of the load balancer 110, the print server 120, the shared database 130, and the performance monitor 140. However, each instance may be constructed by each physical device.
The load balancer 110 has a function of receiving a processing request from the client apparatus 10 or the printer 20 through the network 30 and allocating the received processing request to any one of plural print servers 120.
The print server 120 has a function of receiving the processing request allocated from the load balancer 110 and performing a process based on the received processing request. For example, when a print job is received from the client apparatus 10, the print server 120 performs a process of registering the print job in the shared database 130, a process of determining whether the printer 20, which is an output destination, can output data, a process of generating data (print data) to be output to the printer 20, which is the output destination, and a process of transmitting the print data to the printer 20, which is the output destination. In addition, the print server 120 performs a process of writing its performance data to the shared database 130 at a predetermined time (for example, at a predetermined time interval).
The shared database 130 is a storage unit shared by the load balancer 110, the print server 120, and the performance monitor 140.
The message queue storage unit 132 stores a message queue shared by plural print servers 120. Each of the plural print servers 120 selects the next process to be performed from the message queue which is stored in the message queue storage unit 132 (for example, selects the next process in the order of registration of the message queue in the message queue storage unit 132) and performs the selected process. When the next process to be processed is generated by the process of each of the plural print servers 120, the plural print servers 120 may store the generated process in the message queue storage unit 132.
The control data storage unit 134 stores various kinds of control data, such as data indicating a list of the instances of the print server 120, data indicating the performances of the print server 120, data indicating the status of the received job, data indicating the status of the printer 20, and user data. Next, an example of the data stored in the control data storage unit 134 will be described.
The print data storage unit 136 stores processing data related to the print job.
The performance monitor 140 acquires performance data for each or all of the instances of the print server 120 with reference to the shared database 130 and determines whether to add the instance of the print server 120 and whether to delete the instance of the print server 120, on the basis of the acquired performance data. For example, when processing capability is insufficient due to the instance of the print server 120 which is operating, the performance monitor 140 adds an instance of the print server 120. When the processing capability of the instances of the print server 120 which are operating is excessive, the performance monitor 140 selects an instance to be stopped from the instances of the print server 120 which are operating and stops and deletes the selected instance.
For example, the performance data acquired by the performance monitor 140 may include a queue length and a queue processing speed acquired from the message queue storage unit 132, the memory usage of each instance of the print server 120, the time elapsed from the start of the instance, the number of jobs (the number of jobs being received) with the status “being received” among the print jobs, the number of jobs (the number of jobs awaiting printing) with the status “waiting for print” among the print jobs, and the number of jobs (the number of jobs processed before printing) with the status “process before printing” among the print jobs which are acquired from the control data storage unit 134, and the amount of print data acquired from the print data storage unit 136.
In addition, a computer including, for example, a control unit, such as a CPU, a storage unit, such as a memory, and an input/output unit that transmits and receives data to and from an external device may read a program stored in a computer-readable information storage medium and execute the program to implement the above-mentioned instances constructed by the print management system 100. The program may be provided to the computer by an information storage medium, such as an optical disc, a magnetic disk, a magnetic tape, a magneto-optical disc, or a flash memory, or it may be provided to the computer through a data communication network, such as the Internet.
Next, an example of the sequence of the process performed in the first exemplary embodiment will be described with reference to
2.1. Process when Print Job is Received
The load balancer 110 determines the instance to which the print job received from the client apparatus 10 will be allocated from the instances of the print server 120 which are operating in the instance list table (S1003) and transmits the print job to the determined instance of the print server 120 (S1004).
The instance of the print server 120 analyzes the print job allocated from the load balancer 110 (S1005) and writes processing data for the print job to the shared database 130 (S1006). For example, the instance of the print server 120 writes the status information of the print job to the print job status management table and stores the processing data of the print job in the print data storage unit 136.
Then, the instance of the print server 120 notifies the client apparatus 10 that the print job has been received (S1007).
The printing system may perform the above-mentioned process whenever the client apparatus 10 receives the print job.
Next, a control process of increasing or decreasing the number of instances of the print server 120 will be described with reference to the sequence diagram shown in
As shown in
The performance monitor 140 determines whether it is time to acquire the performance data (for example, the performance data may be periodically acquired) (S2003). When it is determined that it is not time to acquire the performance data (S2003: N), the performance monitor 140 waits. When it is determined that it is time to acquire the performance data (S2003: Y), the performance monitor 140 acquires the performance data from the shared database 130 (S2004).
The performance monitor 140 determines whether to delete (stop) the instance of the print server 120 which is operating, on the basis of the acquired performance data (S2005). When it is determined that the instance is deleted (stopped) (S2005: Y), the performance monitor 140 selects the instance (deletion target instance) to be deleted from the instances which are operating (S2006). Then, the performance monitor 140 requests the load balancer 110 to stop the allocation of the process to the instance to be deleted (S2007).
The load balancer 110 updates the allocation flag stored in the instance list table to be unavailable (F) for a deletion target instance corresponding to an allocation stop request and stops the allocation of the process to the deletion target instance (S2008). The performance monitor 140 may update the allocation flag.
The performance monitor 140 acquires the status information of the deletion target instance from the shared database 130 (S2009) and determines whether the deletion target instance can be deleted (for example, all of the processes to be performed have been completed) on the basis of the acquired status information (S2010). When it is determined in S2010 that it is difficult to delete the deletion target instance (S2010: N), the performance monitor 140 returns to S2009. When it is determined that the deletion target instance can be deleted (S2010: Y), the performance monitor 140 deletes the deletion target instance (S2011) and notifies the load balancer 110 that the deletion target instance has been deleted (S2012).
The load balancer 110 deletes the notified deletion target instance from the instance list table and updates the list of the instances which are operating (S2013).
When it is determined in S2005 that it is difficult to delete the instance (S2005: N), the performance monitor 140 determines whether to add the instance to the instances of the print server 120 which are operating, on the basis of the performance data acquired in S2004 (S2014). When it is determined that the instance is added (S2014: Y), the performance monitor 140 newly adds the instance (S2015) and transmits information about the newly added instance (additional instance) to the load balancer 110 (S2016).
The load balancer 110 newly adds the notified additional instance to the instance list table and updates the instance list (S2013).
In this way, when the processing capability of the instances of the print server 120 is insufficient, the number of instances increases. When the processing capability of the instances of the print server 120 is excessive, the number of instances decreases.
Next, a process of updating the status information of the printer 20, which is a management target, will be described with reference to the sequence diagram shown in
As shown in
The load balancer 110 determines an instance to which a job for writing the status data received from the printer 20 will be allocated among the instances of the print server 120 which are operating in the instance list table (S3003) and transmits the status data to the determined instance of the print server 120 (S3004).
The instance of the print server 120 writes the status data allocated from the load balancer 110 to the shared database 130 (S3005).
In the printing system, the above-mentioned process may be performed whenever the status data is received from the printer 20.
Next, a process of outputting the received print job to the printer 20 will be described with reference to the sequence diagram shown in
As shown in
The instance of the print server 120 generates print data for an output destination on the basis of the acquired data for the print job and the data format which can be processed by the printer 20, which is an output destination (S4003).
The instance of the print server 120 acquires the status information of the printer 20, which is an output destination, from the shared database 130 (S4004) and determines whether the print data can be output on the basis of the acquired status information (S4005). When it is difficult to output the print data (S4005: N), the instance of the print server 120 waits. When the print data can be output (S4005: Y), the instance of the print server 120 transmits the print data generated in S4003 to the printer 20, which is an output destination (S4006).
The printer 20 receives the print data transmitted from the instance of the print server 120 and performs a printing process on the basis of the received print data (S4007). When the processing of the print data is completed, the instance of the print server 120 may delete the processing data of the print job from the print data storage unit 136.
This is an example of the sequence according to the first exemplary embodiment.
Next, a second exemplary embodiment will be described.
In the second exemplary embodiment, a process when the print job shown in
As shown in
The instance of the print server 120 acquires status information from each of the plural printers 20 (S5003) and selects a printer 20, which is an output destination, on the basis of the acquired status information (S5004). As the printer 20, which is an output destination, for example, the printer 20 with the smallest number of jobs spooled may be selected.
The instance of the print server 120 generates print data for an output destination on the basis of the acquired data for the print job and the data format which can be processed by the printer 20, which is an output destination (S5005).
The instance of the print server 120 acquires the status information of the printer 20, which is an output destination (S5006) and determines whether the print data can be output on the basis of the acquired status information (S5007). When it is difficult to output the print data (S5007: N), the instance of the print server 120 waits. When the print data can be output (S5007: Y), the instance of the print server 120 transmits the print data generated in S5005 to the printer 20, which is an output destination (S5008).
The printer 20 receives the print data transmitted from the instance of the print server 120 and performs a printing process on the basis of the received print data (S5009). When the processing of the print data is completed, the instance of the print server 120 may delete the processing data of the print job from the print data storage unit 136.
This is an example of the sequence according to the second exemplary embodiment.
The invention is not limited to the above-described exemplary embodiments. For example, in the above-described exemplary embodiment, the invention is applied to the processing of the print job. However, the invention may be similarly applied to a processing request other than the print job.
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2012-069125 | Mar 2012 | JP | national |