Cloud system

JPWO2024004930A5Active Publication Date: 2025-01-22KYOCERA DOCUMENT SOLUTIONS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024530825
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-23
Publication Date
2025-01-22
Estimated Expiration
2043-06-26

Smart Images

  • Figure 2024004930000001
    Figure 2024004930000001
Patent Text Reader

Abstract

Provided is a cloud system with which it is possible to efficiently execute scale-out or scale-in or a cloud system with which it is possible to efficiently use a server that realizes the cloud system. A tenant management system is characterized by comprising: an image processing system that executes a preservation process for preserving image data or document data received from the outside in a storage service or a database service, by using a web server differing for each preservation process; and a cloud control unit that executes a scale-out process, a scale-in process, or a time-out process for executing scale-out, scale-in, or time-out of the image processing system as necessary, the cloud control unit executing the scale-out process (S125) before execution of the preservation process by the image processing system, or periodically executing the scale-in process, for each preservation process (S131-S134), or alternatively executing the time-out process for causing the web server to stop (S189) when the elapsed time from the start time of the preservation process being executed by the web server is greater than or equal to a time-out time that is set as the time for the preservation process to time out (Yes in S185).
Need to check novelty before this filing date? Find Prior Art

Description

Cloud System

[0001] The present invention relates to a cloud system built on a cloud.

[0002] 2. Description of the Related Art Conventionally, as a cloud system built on a cloud, a tenant management system based on a multi-tenant model that separates environments and data for each customer based on tenant identification information is known (see, for example, Patent Document 1).

[0003] Japanese Patent Application Laid-Open No. 2019-139591

[0004] However, conventional cloud systems have problems in that scaling out or scaling in may not be performed effectively, and there is also a problem in that even if processing is stalled for a long time on a server that implements the cloud system, the server may continue to be used as is.

[0005] Therefore, an object of the present invention is to provide a cloud system that can effectively perform scale-out or scale-in, or a cloud system that can efficiently use the servers that realize the cloud system.

[0006] The cloud system of the present invention comprises a data storage system that executes a storage process, which is a process of storing data received from outside in a specific location, and a cloud control unit that executes a scale-out process or a scale-in process, which is a process of scaling out or scaling in the data storage system as needed, wherein the cloud control unit executes the scale-out process before the data storage system executes the storage process for each storage process, or executes the scale-in process periodically.The cloud system of the present invention is also characterized by comprising: a data storage system that executes a storage process, which is a process of storing data received from outside in a specific location, by a different server for each storage process, and a cloud control unit that executes a timeout process, which is a process of stopping the server or recovering from an error in the server, when the elapsed time from the start of the storage process being executed by the server is equal to or exceeds a timeout time set as a timeout time for the storage process.

[0007] With this configuration, the cloud system of the present invention performs a scale-out process before the data storage system executes each storage process, thereby reducing the possibility of the data storage system scaling out too frequently or too infrequently. Furthermore, the cloud system of the present invention periodically performs a scale-in process for the data storage system, thereby enabling the data storage system to scale in at an appropriate timing. Therefore, the cloud system of the present invention can effectively execute scale-out or scale-in. Furthermore, the cloud system of the present invention stops a server or recovers from an error in the server if the elapsed time since the start of a storage process being executed by the server is equal to or exceeds a timeout time. This reduces the possibility of the server implementing the data storage system being used as is if processing is stalled for a long time. Therefore, the cloud system of the present invention can efficiently use the server implementing the data storage system.

[0008] In the cloud system of the present invention, the scale-out process or scale-in process may be a process in which the cloud control unit does not execute the scale-out or scale-in process if the number of storage processes currently being executed is not less than a reference number of processes set as a criterion for executing the scale-out or scale-in.

[0009] With this configuration, the cloud system of the present invention does not scale out the data storage system unless the number of running storage processes is equal to or less than the reference number of processes, thereby preventing unlimited scaling out of the data storage system. Furthermore, the cloud system of the present invention does not scale in the data storage system unless the number of running storage processes is equal to or less than the reference number of processes, thereby reducing the possibility of scaling in the data storage system despite the large number of running storage processes, thereby causing problems with the execution of storage processes. Therefore, the cloud system of the present invention can effectively perform scale out or scale in.

[0010] In the cloud system of the present invention, the scale-out process may be a process in which the cloud control unit does not execute the scale-out if the number of storage processes waiting to be executed is not greater than or equal to the scale-out number set as the number of scale-outs for one time.

[0011] With this configuration, the cloud system of the present invention does not scale out the data storage system unless the number of storage processes waiting to be executed is equal to or greater than the scale-out number, thereby preventing the data storage system from being scaled out even when the load predicted for future execution of storage processes by the data storage system is low. Therefore, the cloud system of the present invention can effectively execute scale-out.

[0012] In the cloud system of the present invention, the scale-out process may be a process in which, when the number of storage processes currently being executed is less than or equal to the reference number of processes, and the number of storage processes waiting to be executed is greater than or equal to the scale-out number, the cloud control unit executes the scale-out by the scale-out number.

[0013] With this configuration, when the number of running storage processes is equal to or less than the reference number of processes and the number of storage processes waiting to be executed is equal to or greater than the scale-out number, the cloud system of the present invention scales out the data storage system by the scale-out number, so that when scale-out of the data storage system is necessary, the cloud system of the present invention can scale out the data storage system by the amount required. Therefore, the cloud system of the present invention can effectively execute scale-out.

[0014] In the cloud system of the present invention, the scale-out process may be a process in which the cloud control unit does not execute the scale-out if the number of storage processes waiting to be executed is not greater than or equal to the scale-out number set as the number of scale-outs for one time.

[0015] With this configuration, the cloud system of the present invention does not scale out the data storage system unless the number of storage processes waiting to be executed is equal to or greater than the scale-out number, thereby preventing the data storage system from being scaled out even when the load predicted for future execution of storage processes by the data storage system is low. Therefore, the cloud system of the present invention can effectively execute scale-out.

[0016] In the cloud system of the present invention, the scale-out process may be a process in which, when the number of storage processes currently being executed is less than or equal to a reference process number set as a standard for executing the scale-out, and the number of storage processes waiting to be executed is greater than or equal to a scale-out number set as the number of scale-outs for one time, the cloud control unit executes the scale-out by the scale-out number.

[0017] With this configuration, when the number of running storage processes is equal to or less than the reference number of processes and the number of storage processes waiting to be executed is equal to or greater than the scale-out number, the cloud system of the present invention scales out the data storage system by the scale-out number, so that when scale-out of the data storage system is necessary, the cloud system of the present invention can scale out the data storage system by the amount required. Therefore, the cloud system of the present invention can effectively execute scale-out.

[0018] In the cloud system of the present invention, the scale-in process may be a process in which the cloud control unit does not execute the scale-in process if there is a storage process waiting to be executed.

[0019] With this configuration, the cloud system of the present invention does not scale in the data storage system when there are storage processes waiting to be executed, thereby reducing the possibility of executing a scale in of the data storage system despite there being storage processes waiting to be executed, which would cause problems with future execution of storage processes. Therefore, the cloud system of the present invention can effectively execute scale in.

[0020] In the cloud system of the present invention, the scale-in process may be a process in which the cloud control unit does not execute the scale-in if the elapsed time from the end time of the last storage process that was completed is not greater than or equal to the scale-in reference time set as the reference time for executing the scale-in.

[0021] With this configuration, the cloud system of the present invention does not scale in the data storage system unless the elapsed time since the end of the last storage process is equal to or greater than the scale-in reference time, thereby reducing the possibility of causing problems with future execution of storage processes by scaling in the data storage system immediately after the end of a storage process. Therefore, the cloud system of the present invention can effectively execute scale in.

[0022] In the cloud system of the present invention, the scale-in process may be a process in which, when the number of storage processes currently being executed is less than or equal to the reference number of processes and there are no storage processes waiting to be executed, the cloud control unit executes the scale-in by the number of scale-ins set as the number of scale-ins for one time when the elapsed time from the end time of the last storage process that finished execution is greater than or equal to the scale-in reference time.

[0023] With this configuration, the cloud system of the present invention scales in the data storage system by the scale-in amount when the number of running storage processes is equal to or less than the reference number of processes and there are no storage processes waiting to be executed, and the elapsed time since the end time of the last storage process that finished execution is equal to or greater than the scale-in reference time. Therefore, when scaling in of the data storage system is necessary, the data storage system can be scaled in by the amount required. Therefore, the cloud system of the present invention can execute scale-in effectively.

[0024] In the cloud system of the present invention, the scale-in process may be a process in which the cloud control unit does not execute the scale-in process if there is a storage process waiting to be executed.

[0025] With this configuration, the cloud system of the present invention does not scale in the data storage system when there are storage processes waiting to be executed, thereby reducing the possibility of executing a scale in of the data storage system despite there being storage processes waiting to be executed, which would cause problems with future execution of storage processes. Therefore, the cloud system of the present invention can effectively execute scale in.

[0026] In the cloud system of the present invention, the scale-in process may be a process in which the cloud control unit does not execute the scale-in if the elapsed time from the end time of the last storage process that was completed is not greater than or equal to the scale-in reference time set as the reference time for executing the scale-in.

[0027] With this configuration, the cloud system of the present invention does not scale in the data storage system unless the elapsed time since the end of the last storage process is equal to or greater than the scale-in reference time, thereby reducing the possibility of causing problems with future execution of storage processes by scaling in the data storage system immediately after the end of a storage process. Therefore, the cloud system of the present invention can effectively execute scale in.

[0028] In the cloud system of the present invention, the scale-in process may be a process in which, when the number of storage processes currently being executed is less than or equal to a reference number of processes set as the standard for executing the scale-in, and there are no storage processes waiting to be executed, the cloud control unit executes the scale-in by the number of scale-ins set as the number of scale-ins for one time when the elapsed time from the end time of the last storage process that finished execution is greater than or equal to the scale-in reference time set as the standard time for executing the scale-in.

[0029] With this configuration, the cloud system of the present invention scales in the data storage system by the scale-in amount when the number of running storage processes is equal to or less than the reference number of processes and there are no storage processes waiting to be executed, and the elapsed time since the end time of the last storage process that finished execution is equal to or greater than the scale-in reference time. Therefore, when scaling in of the data storage system is necessary, the data storage system can be scaled in by the amount required. Therefore, the cloud system of the present invention can execute scale-in effectively.

[0030] In the cloud system of the present invention, the cloud control unit may periodically execute the timeout process.

[0031] With this configuration, the cloud system of the present invention periodically executes timeout processing for the data storage system, allowing the timeout processing for the data storage system to be executed at appropriate timing. Therefore, the cloud system of the present invention can efficiently use the server that implements the data storage system.

[0032] The cloud system of the present invention can efficiently scale out or scale in. Furthermore, the servers that implement the cloud system can be used efficiently.

[0033] 1 is an explanatory diagram of tenants managed by a tenant management system included in a system according to an embodiment of the present invention. FIG. 2 is a block diagram of the software configuration of the system according to an embodiment of the present invention. FIG. 3 is a block diagram of the hardware configuration of the system shown in FIG. 2. FIG. 4 is a diagram showing an example of a tenant management table shown in FIG. 2. FIG. 5 is a diagram showing an example of a storage processing management table shown in FIG. 2. FIG. 6 is a diagram showing an example of a setting table shown in FIG. 2. FIG. 7 is a sequence diagram of the operation of the system shown in FIG. 2 when a session is established between a user terminal application and a tenant-specific application. FIG. 8 is a sequence diagram of the operation of the system shown in FIG. 2 when at least one of image data and document data is transmitted from the user terminal application to an image processing system. FIG. 9 is a flowchart of the operation of the cloud control unit shown in FIG. 2 when a scale-out process is executed. FIG. 10 is a flowchart of the operation of the cloud control unit shown in FIG. 2 when a scale-in process is executed. FIG. 11 is a flowchart of the operation of the cloud control unit shown in FIG. 2 when a timeout process is executed.

[0034] Hereinafter, embodiments of the present invention will be described with reference to the drawings.

[0035] First, the configuration of a system according to an embodiment of the present invention will be described.

[0036] FIG. 1 is an explanatory diagram of tenants managed by a tenant management system included in a system according to this embodiment.

[0037] 1, a solution 12 is built on a public cloud 11. Here, as the solution 12, for example, a document management solution for managing documents can be adopted.

[0038] A provider of the solution 12 can rent at least a part of the solution 12 to another person. A unit to which the provider of the solution 12 rents at least a part of the solution 12 is called a tenant. A solution 12 can have multiple tenants, such as tenant 13.

[0039] A tenant 13 can have multiple users, such as a user 14. The configurations of tenants other than the tenant 13 are similar to the configuration of the tenant 13.

[0040] FIG. 2 is a block diagram of the software configuration of a system 20 according to this embodiment.

[0041] As shown in FIG. 2 , the system 20 includes a tenant management system 30 as a cloud system, a DNS (Domain Name System) service 50 that is a service for registering the FQDN (Fully Qualified Domain Name) of an external access point 31 described later, an image forming device program such as an image forming device program 60 that is a program executed by an image forming device described later, and a user terminal application such as a user terminal application 70 that is an application executed by a user terminal described later.

[0042] The program for the image forming device is a program that sends at least one of image data and document data to the image processing system 38 described below of the tenant management system 30, and performs printing based on at least one of image data and document data received from the image processing system 38.

[0043] The user terminal application is an application that transmits at least one of image data and document data to an image processing system 38 (described later) of the tenant management system 30, receives at least one of image data and document data from the image processing system 38, and executes a print instruction request to an image forming apparatus. The user terminal application may be an application that runs on a web browser.

[0044] The tenant management system 30 is a multi-tenant model that separates the environment and data for each customer based on the tenant's identification information. The tenant management system 30 manages the public cloud 11 (see FIG. 1 ) by using an external access point 31, which is an accessible endpoint that is open to the public outside the public cloud 11, for example, outside a data center, and an HTTP (Hypertext Transfer Protocol) / HTTPS (Hypertext Transfer Protocol) the external load balancer 32, which is a service that maintains connections such as Secure (SSL) and realizes a load balancing function to a web server described later; a connection request receiving unit 33, which is a service that receives connection requests from the external load balancer 32; a request processing unit 34, which is a service that processes external requests including authentication; a tenant management unit 35, which is a service that causes requests from users to be received by a tenant-specific application described later; tenant-specific applications such as a tenant-specific application 36, which is an application prepared for each tenant; a tenant management application 37, which is an application that manages various types of information for tenants; The image processing system 38 is a data storage system that is a service that performs specific conversion processing such as converting data into image data as needed and stores the data in a specific location, i.e., a storage service 41 (and database service 40 as needed) described below (hereinafter referred to as the "storage processing"), and reads at least one of image data and document data from the storage service 41 (and database service 40 as needed) in response to a request from a tenant-specific application; a cloud control unit 39 that is a service that performs scale-out and scale-in of the image processing system 38; a database service 40 that stores data tables; and a storage service 41 that stores at least one of image data and document data output by the image processing system 38.

[0045] A plurality of tenant-specific applications can be prepared for one tenant. As the tenant-specific applications, various applications such as a document management application, a schedule book application, and a chat tool can be adopted.

[0046] The database service 40 stores, as data tables, a tenant management table 40a for managing tenants, a storage processing management table 40b for managing storage processing, and a setting table 40c that shows the control settings of the web server that realizes the image processing system 38.

[0047] FIG. 3 is a block diagram of the hardware configuration of the system 20.

[0048] 3 , system 20 includes an external access point system 81 for implementing external access point 31, an external load balancer system 82 for implementing external load balancer 32, a group of web servers 83, a database service system 84 for implementing database service 40, a storage service system 85 for implementing storage service 41, a DNS service system 86 for implementing DNS service 50, image forming devices that execute image forming device programs such as image forming device 87 that executes image forming device program 60, and user terminals that execute user terminal applications such as user terminal 88 that executes user terminal application 70. External access point system 81, external load balancer system 82, web servers, database service system 84, storage service system 85, DNS service system 86, image forming devices, and user terminals can communicate with each other via a network 89 such as the Internet.

[0049] The external access point system 81, the external load balancer system 82, the database service system 84, the storage service system 85, and the DNS service system 86 are each realized by at least one computer.

[0050] The group 83 of web servers implements a connection request reception unit 33, a request processing unit 34, a tenant management unit 35, a tenant-specific application 36, a tenant management application 37, an image processing system 38, and a cloud control unit 39. At least one of the connection request reception unit 33, the request processing unit 34, the tenant management unit 35, the tenant-specific application 36, the tenant management application 37, the image processing system 38, and the cloud control unit 39 may be implemented by a single web server or by multiple web servers. At least one web server in the group 83 may implement at least two of the connection request reception unit 33, the request processing unit 34, the tenant management unit 35, the tenant-specific application 36, the tenant management application 37, and the cloud control unit 39. The image processing system 38 executes a storage process using one web server for each storage process.

[0051] The image forming apparatus is configured by, for example, an MFP (Multifunction Peripheral), a dedicated printer, or the like.

[0052] The user terminal is, for example, a computer configured by a PC (Personal Computer), a smartphone, or the like.

[0053] FIG. 4 is a diagram illustrating an example of the tenant management table 40a.

[0054] 4 stores a combination of a user ID as user identification information, a user password, a tenant subdomain, a tenant ID as tenant identification information, and an APID as tenant-specific application identification information. Note that the tenant ID is, for example, a three-digit number excluding "000".

[0055] FIG. 5 is a diagram showing an example of the storage process management table 40b.

[0056] The save processing management table 40b shown in Figure 5 stores, for each save processing, a combination of a request ID as identification information for the save processing request from the user terminal application, the tenant ID of the tenant to which the user who executed the save processing request belongs, the time the save processing request was received from the user terminal application, the start time of the save processing, the end time of the save processing, a processing status indicating the status of the save processing, and a processing server URL indicating the URL of the web server that executes the save processing among the web servers that implement the image processing system 38. The processing statuses include "Ready," which indicates that the save processing is waiting to be executed, "Processing," which indicates that the save processing is being executed, and "End," which indicates that the save processing has ended. Note that the save processing management table 40b shown in Figure 5 omits the value of the processing server URL, but the URL of the web server that executes the save processing is actually entered.

[0057] FIG. 6 is a diagram showing an example of the setting table 40c.

[0058] The setting table 40c shown in Figure 6 includes a reference processing number that is set as the number of running storage processes that serves as the basis for executing scale-out and scale-in of the image processing system 38, a scale-out number that is set as the number of scale-outs for one time of the image processing system 38, a scale-in reference time that is set as the reference time for executing scale-in of the image processing system 38, a scale-in number that is set as the number of scale-ins for one time of the image processing system 38, and a timeout time that is set as the time for timeout of the storage process.

[0059] Next, the operation of the system 20 will be described.

[0060] In the following, a tenant-specific application 36 and a user terminal application 70 will be described as examples of a tenant-specific application and a user terminal application, respectively.

[0061] First, the operation of the system 20 when a session is established between the user terminal application 70 and the tenant-specific application 36 will be described.

[0062] FIG. 7 is a sequence diagram of the operation of the system 20 when a session is established between the user terminal application 70 and the tenant-specific application 36 .

[0063] When a user desires to use the tenant-specific application 36 , the user can instruct the user terminal application 70 to use the tenant-specific application 36 from the user terminal 88 .

[0064] Hereinafter, the service name, i.e., the name of the solution 12, is assumed to be "service.com." The domain name of the external access point 31 is assumed to be "cloud.app." The subdomain of the tenant that realizes the tenant-specific application 36 (hereinafter referred to as the "target tenant" in the description of the operations shown in FIGS. 7 and 8) is assumed to be "aap1."

[0065] When the user terminal application 70 is instructed to use the tenant-specific application 36, it queries the DNS service 50 for the server name of the target tenant using the FQDN, i.e., "aap1.service.com," as shown in FIG. 7 (S101). Here, the DNS service 50 has registered as its server name a wildcard including the external access point 31, i.e., "*.cloud.app." If the subdomain is, for example, "○○," the DNS service 50 responds with "○○.cloud.app" in response to a query including "○○.service.com." Therefore, the DNS service 50 responds with "aap1.cloud.app" in response to a query including "aap1.service.com."

[0066] After processing S101, when the DNS service 50 responds with the server name of the target tenant, the user terminal application 70 connects to the external access point 31 using the server name responded by the DNS service 50, i.e., "aap1.cloud.app" (S102).

[0067] After the process of S102, when the user terminal application 70 is connected to the external access point 31, it transmits an HTTP / HTTPS connection request to the external access point 31 (S103). The user terminal application 70 includes the user ID and password of the user and the subdomain of the target tenant in the HTTP / HTTPS connection request transmitted in S103.

[0068] When the external access point 31 receives the HTTP / HTTPS connection request sent from the user terminal application 70 in S103, it transfers the received HTTP / HTTPS connection request to the external load balancer 32 (S104).

[0069] When the external load balancer 32 receives the HTTP / HTTPS connection request transferred from the external access point 31 in S104, it establishes an HTTP / HTTPS connection with the user terminal application 70 and transfers the connection request received from the external access point 31 to the connection request receiving unit 33 (S105). Note that in the case of an HTTPS connection, the external load balancer 32 terminates SSL (Secure Sockets Layer).

[0070] When the connection request receiving unit 33 receives the connection request transferred from the external load balancer 32 in S105, it transfers the request received from the external access point 31 to the request processing unit 34 (S106).

[0071] When the request processing unit 34 receives the request transferred from the connection request receiving unit 33 in S106, it processes an authentication request with the user terminal application 70 based on the combination of the user ID and password included in the request received from the connection request receiving unit 33, and also obtains the subdomain included in the request received from the connection request receiving unit 33 and calls the tenant management unit 35 (S107). Here, the request received from the connection request receiving unit 33 indicates the subdomain in the HOST field of the HTTP REQUEST header, for example.

[0072] When the tenant management unit 35 is called by the request processing unit 34 in S107, it calls the tenant-specific application 36 specified in the request from the user terminal application 70 from among the tenant-specific applications associated in the tenant management table 40a with the subdomain acquired by the request processing unit 34 and the user ID of the user who was successfully authenticated by the request processing unit 34 (S108).

[0073] In this way, a session is established between the user terminal application 70 and the tenant-specific application 36. Once a session is established between the user terminal application 70 and the tenant-specific application 36, it becomes possible for the user terminal application 70 to send a request using a REST API to the tenant-specific application 36.

[0074] Next, the operation of the system 20 when at least one of image data and document data is transmitted from the user terminal application 70 to the image processing system 38 will be described.

[0075] FIG. 8 is a sequence diagram of the operation of the system 20 when at least one of image data and document data is transmitted from the user terminal application 70 to the image processing system 38 .

[0076] When a session is established between the user terminal application 70 and the tenant-specific application 36, the user can instruct the user terminal application 70 from the user terminal 88 to perform a save process on at least one of image data and document data (hereinafter referred to as "transmission data" in the description of the operation shown in Figure 8).

[0077] When the user terminal application 70 is instructed to perform a save process on the transmission data, it requests the tenant-specific application 36 to transmit the transmission data, as shown in FIG. 8 (S121).

[0078] When the user terminal application 70 requests transmission of transmission data in S121, the tenant-specific application 36 declares the start of transmission of the transmission data to the image processing system 38 (S122).

[0079] When the start of transmission of transmission data is declared by the tenant-specific application 36 in S122, the image processing system 38 generates a new record in the storage processing management table 40b on the database service 40 (S123). Here, the image processing system 38 sets a request ID, tenant ID, reception time, and processing status in the new record. For example, the image processing system 38 sets a request ID that has not yet been used in the storage processing management table 40b as the request ID in the new record. The image processing system 38 also sets a tenant ID associated with the target tenant in the tenant management table 40a as the tenant ID in the new record. The image processing system 38 also sets the current time as the reception time in the new record. The image processing system 38 also sets "Ready" as the processing status in the new record.

[0080] After the process of S123, the database service 40 notifies the cloud control unit 39 of the update of the storage process management table 40b (S124). Here, the database service 40 includes the request ID in the record created in S123 in the notification in S124.

[0081] When the cloud control unit 39 is notified by the database service 40 in S124 of the update of the storage processing management table 40b, it executes a process to scale out the image processing system 38 as necessary (hereinafter referred to as "scale-out process") (S125).

[0082] FIG. 9 is a flowchart showing the operation of the cloud control unit 39 when executing the scale-out process.

[0083] As shown in FIG. 9, the cloud control unit 39 counts the number of storage processes whose processing status is "Processing" in the storage process management table 40b (S141).

[0084] Next, the cloud control unit 39 determines whether the number calculated in S141 is equal to or less than the reference number of processes in the setting table 40c (S142).

[0085] If the cloud control unit 39 determines in S142 that the number counted in S141 is less than or equal to the reference number of processes in the setting table 40c, it counts the number of storage processes whose processing status is "Ready" in the storage process management table 40b (S143).

[0086] Next, the cloud control unit 39 determines whether the number collected in S143 is equal to or greater than the scale-out number in the setting table 40c (S144).

[0087] If the cloud control unit 39 determines in S144 that the number tallied in S143 is equal to or greater than the scale-out number in the setting table 40c, it scales out the image processing system 38 by the scale-out number in the setting table 40c (S145). That is, the cloud control unit 39 increases the number of web servers that realize the image processing system 38 by the scale-out number in the setting table 40c.

[0088] The cloud control unit 39 terminates the scale-out processing shown in Figure 9 when it determines in S142 that the number tallied in S141 is not less than the standard processing number in the setting table 40c, or when it determines in S144 that the number tallied in S143 is not greater than the scale-out number in the setting table 40c, or when the processing of S145 is completed.

[0089] 8, when the scale-out process of S125 is completed, the cloud control unit 39 sets the URL of any one of the web servers that realizes the image processing system 38 and that is not currently executing a storage process as the processing server URL in the record in the storage process management table 40b that corresponds to the request ID notified from the database service 40 in S124 (S126). Here, if the cloud control unit 39 executes scale-out (S145) in the scale-out process shown in FIG. 9, it sets the URL of any one of the web servers newly secured by this scale-out as the processing server URL.

[0090] After the process of S126, the database service 40 notifies the image processing system 38 of the processing server URL set in S126 and the request ID in the record in which the processing server URL was set in S126 (S127). Therefore, the image processing system 38 can execute the save process using the web server specified by the processing server URL notified in S127.

[0091] When the image processing system 38 is notified of the processing server URL and the request ID from the database service 40 in S127, the image processing system 38 notifies the tenant-specific application 36 of the processing server URL and the request ID notified from the database service 40 in S127 (S128).

[0092] When the tenant-specific application 36 receives the processing server URL and request ID from the image processing system 38 in S128, it notifies the user terminal application 70 of the processing server URL and request ID notified by the image processing system 38 in S128 (S129).

[0093] When the user terminal application 70 is notified of the processing server URL and request ID from the tenant-specific application 36 in S129, it transmits transmission data to the web server that realizes the image processing system 38 and that is identified by the processing server URL notified in S129 by the tenant-specific application 36 (S130). Here, the user terminal application 70 includes the request ID notified in S129 by the tenant-specific application 36 in the transmission in S130.

[0094] When the transmission data is transmitted from the user terminal application 70 in S130, the image processing system 38 sets the current time as the start time of the record identified in the storage processing management table 40b by the request ID transmitted from the user terminal application 70 together with the transmission data, and changes the processing status of this record to "Processing" (S131). That is, the image processing system 38 records the start of execution of the storage processing in the storage processing management table 40b.

[0095] After processing S131, the image processing system 38 performs a specific conversion process as needed on the transmission data transmitted from the user terminal application 70 in S130 (S132). The conversion process performed in S132 includes, for example, converting the image format of the transmission data when the transmission data is image data. For example, the image format conversion process for the transmission data includes converting the transmission data to PDF (Portable Document Format) data with full-text search functionality when the transmission data is JPEG (Joint Photographic Experts Group) data. Another conversion process performed in S132 includes, for example, OCR (Optical Character Recognition), which extracts character information from the transmission data when the transmission data is image data. The conversion process performed in S132 may include, for example, indexing to extract keywords from the data to be transmitted when the data to be transmitted is PDF data. The conversion process performed in S132 is specified by the user via the user terminal application 70. Note that the conversion process in S132 may be omitted.

[0096] After the processing of S132, if the conversion processing was not performed in S132, the image processing system 38 stores the transmission data transmitted from the user terminal application 70 in S130 in the storage service 41, or if the conversion processing was performed in S132, the transmission data after the conversion processing in S132 in the storage service 41 (S133). Note that if keywords are extracted from the transmission data in S132, the image processing system 38 may store information such as the keywords generated in S132 in the database service 40 in S133. The information stored in the database service 40 in S133 is used, for example, to search for at least one of the image data and document data stored in the storage service 41.

[0097] After the process of S133, the image processing system 38 sets the current time as the end time in the record identified in the storage process management table 40b by the request ID transmitted from the user terminal application 70 in S130 together with the transmission data, and changes the processing status in this record to "End" (S134). That is, the image processing system 38 records the end of the execution of the storage process in the storage process management table 40b.

[0098] The above describes a case where at least one of image data and document data is transmitted from a user terminal application to image processing system 38. However, the same applies to a case where at least one of image data and document data is transmitted from an image forming device program to image processing system 38.

[0099] Next, the operation of the cloud control unit 39 when performing a process for performing scale-in as needed (hereinafter referred to as "scale-in process") will be described.

[0100] FIG. 10 is a flowchart of the operation of the cloud control unit 39 when executing the scale-in process.

[0101] The cloud control unit 39 executes the process shown in FIG. 10 at regular intervals, for example, every five minutes.

[0102] As shown in FIG. 10, the cloud control unit 39 counts the number of storage processes whose processing status is "Processing" in the storage process management table 40b (S161).

[0103] Next, the cloud control unit 39 determines whether the number calculated in S161 is equal to or less than the reference number of processes in the setting table 40c (S162).

[0104] If the cloud control unit 39 determines in S162 that the number counted in S161 is equal to or less than the reference number of processes in the setting table 40c, it counts the number of storage processes whose processing status is "Ready" in the storage process management table 40b (S163).

[0105] Next, the cloud control unit 39 determines whether the number counted in S163 is 0 (S164).

[0106] If the cloud control unit 39 determines in S164 that the number counted in S163 is 0, it identifies the latest end time of all the storage processes whose processing status is "End" in the storage process management table 40b (S165).

[0107] Next, the cloud control unit 39 subtracts the latest end time identified in S165 from the current time to calculate the elapsed time from the latest end time identified in S165 (S166).

[0108] Next, the cloud control unit 39 determines whether the elapsed time calculated in S166 is equal to or greater than the scale-in reference time in the setting table 40c (S167).

[0109] If the cloud control unit 39 determines in S167 that the elapsed time calculated in S166 is equal to or greater than the scale-in reference time in the setting table 40c, it scales in the image processing system 38 by the scale-in number in the setting table 40c (S168). That is, the cloud control unit 39 reduces the number of web servers that realize the image processing system 38 by the scale-in number in the setting table 40c.

[0110] The cloud control unit 39 terminates the operation shown in FIG. 10 when it determines in S162 that the number tallied in S161 is not less than the standard processing count in the setting table 40c, determines in S164 that the number tallied in S163 is not 0, determines in S167 that the elapsed time calculated in S166 is not greater than the scale-in standard time in the setting table 40c, or when the processing of S168 is completed.

[0111] Next, the operation of the cloud control unit 39 when executing a process of stopping the web server depending on the time elapsed since the start time of the ongoing saving process (hereinafter referred to as "timeout process") will be described.

[0112] FIG. 11 is a flowchart showing the operation of the cloud control unit 39 when executing the timeout process.

[0113] The cloud control unit 39 executes the process shown in FIG. 11 at regular intervals, for example, every five minutes.

[0114] As shown in FIG. 11, the cloud control unit 39 determines whether or not there is a storage process whose processing status is "Processing" in the storage process management table 40b (S181).

[0115] When the cloud control unit 39 determines in S181 that there is a storage process whose processing status is "Processing" in the storage process management table 40b, it identifies the request IDs of all storage processes whose processing status is "Processing" in the storage process management table 40b as the request IDs of the storage processes currently being executed (S182).

[0116] Next, the cloud control unit 39 processes only one request ID among the request IDs of the ongoing saving process identified in S182, which has not yet been processed in S183 in the current operation shown in Figure 11 (S183).

[0117] Next, the cloud control unit 39 calculates the elapsed time from the start time in the save processing management table 40b for the save processing identified by the request ID of the current processing target by subtracting the start time in the save processing management table 40b for the save processing identified by the request ID of the current processing target from the current time (S184).

[0118] Next, the cloud control unit 39 determines whether the elapsed time calculated in S184 is equal to or greater than the timeout time in the setting table 40c (S185).

[0119] If the cloud control unit 39 determines in S185 that the elapsed time calculated in S184 is equal to or greater than the timeout time in the setting table 40c, it identifies the request ID of the current processing target as the request ID of the saving process that is subject to timeout (S186).

[0120] When the cloud control unit 39 determines in S185 that the elapsed time calculated in S184 is not equal to or greater than the timeout time in the setting table 40c, or when the processing of S186 is completed, it determines whether or not there are any request IDs among the request IDs of the ongoing saving processing identified in S182 that have not yet been processed in S183 in the current operation shown in Figure 11 (S187).

[0121] If the cloud control unit 39 determines in S187 that there is a request ID among the request IDs of the ongoing saving process identified in S182 that has not yet been processed in S183 in the current operation shown in Figure 11, it executes the processing of S183.

[0122] If the cloud control unit 39 determines in S187 that there are no request IDs among the request IDs of the currently executing save process identified in S182 that have not yet been processed in S183 in the current operation shown in FIG. 11, it determines whether or not the request ID of the save process that is the subject of timeout has been identified in S186 in the current operation shown in FIG. 11 (S188).

[0123] When the cloud control unit 39 determines in S188 that the request ID of the save process that is the subject of the timeout has been identified in S186 of the current operation shown in Figure 11, it stops all web servers identified by the processing server URLs associated in the save process management table 40b with the request ID of the save process that is the subject of the timeout, which was identified in S186 of the current operation shown in Figure 11 (S189).

[0124] The cloud control unit 39 terminates the operation shown in FIG. 11 when it determines in S181 that there is no save process whose processing status is "Processing" in the save process management table 40b, or when it determines in S188 that the request ID of the save process that is the subject of the timeout was not identified in S186 in the current operation shown in FIG. 11, or when the processing of S189 is completed.

[0125] 11 , the cloud control unit 39 stops a web server whose elapsed time since the start of execution of the storage process is equal to or greater than the timeout time (S189). However, instead of stopping a web server whose elapsed time since the start of execution of the storage process is equal to or greater than the timeout time, the cloud control unit 39 may instead recover from an error in the web server whose elapsed time since the start of execution of the storage process is equal to or greater than the timeout time. Here, one method for recovering from an error in a web server is, for example, to restart the web server.

[0126] In the tenant management system 30, the number of storage processes is likely to increase as the number of tenants and / or tenant-specific applications increases. Furthermore, since the data to be stored in the tenant management system 30 is at least one of image data and document data, the size of the data to be stored is large, resulting in a long time required for the storage process. Furthermore, if the storage process includes a conversion process, the time required for the storage process in the tenant management system 30 increases. Therefore, in order to reduce the possibility of a decrease in usability, the tenant management system 30 scales out the image processing system 38 that executes the storage process as needed. Meanwhile, in order to reduce the possibility of an increase in costs in the public cloud 11, which is charged based on resource usage, the tenant management system 30 scales in the image processing system 38 as needed.

[0127] The tenant management system 30 executes the scale-out process (S125) before the image processing system 38 executes each storage process (S131 to S134), thereby reducing the possibility of executing too much or too little scale-out of the image processing system 38. Therefore, the tenant management system 30 can execute scale-out effectively.

[0128] The tenant management system 30 does not scale out the image processing system 38 (S145) if the number of ongoing storage processes is not equal to or less than the reference process count (NO in S142), thereby preventing unlimited scaling out of the image processing system 38. Therefore, the tenant management system 30 can effectively perform scale out.

[0129] The tenant management system 30 does not scale out the image processing system 38 (S145) if the number of storage processes waiting to be executed is not equal to or greater than the scale-out number (NO in S144), and therefore can prevent the image processing system 38 from being scaled out even when the load predicted from future execution of storage processes by the image processing system 38 is low. Therefore, the tenant management system 30 can effectively execute scale-out.

[0130] If the number of running storage processes is equal to or less than the reference process count (YES in S142), and if the number of storage processes waiting to be executed is equal to or greater than the scale-out count (YES in S144), the tenant management system 30 scales out the image processing system 38 by the scale-out count (S145), so that if it is necessary to scale out the image processing system 38, it can scale out the image processing system 38 by the amount that requires scaling out the image processing system 38. Therefore, the tenant management system 30 can effectively execute scale-out.

[0131] The cloud control unit 39 may use another method instead of or in addition to the method described above to scale out the image processing system 38. For example, the cloud control unit 39 may scale out the image processing system 38 at a timing other than "before the image processing system 38 executes a storage process for each storage process."

[0132] The tenant management system 30 periodically executes the scale-in process of the image processing system 38 (S161 to S168), and therefore can execute the scale-in of the image processing system 38 at appropriate timing. Therefore, the tenant management system 30 can execute the scale-in effectively.

[0133] The tenant management system 30 does not scale in the image processing system 38 (S168) if the number of ongoing storage processes is not equal to or less than the reference number of processes (NO in S162), thereby reducing the possibility of causing problems with the execution of storage processes by scaling in the image processing system 38 even when there are a large number of ongoing storage processes. Therefore, the tenant management system 30 can effectively execute scale in.

[0134] The tenant management system 30 does not scale in the image processing system 38 (S168) when there is a storage process waiting to be executed (NO in S164), thereby reducing the possibility of executing a scale in of the image processing system 38 despite there being a storage process waiting to be executed, thereby causing problems with future execution of the storage process. Therefore, the tenant management system 30 can execute a scale in effectively.

[0135] The tenant management system 30 does not scale in the image processing system 38 (S168) if the time elapsed since the end time of the last storage process that was completed is not equal to or longer than the scale-in reference time (NO in S167), thereby reducing the possibility of performing scale-in of the image processing system 38 immediately after the end of the storage process and causing problems with future storage process execution. Therefore, the tenant management system 30 can effectively perform scale-in.

[0136] When the number of running storage processes is less than or equal to the reference process number and there are no storage processes waiting to be executed (YES in S162 and YES in S164), and the elapsed time since the end time of the last storage process that finished execution is greater than or equal to the scale-in reference time (YES in S167), the tenant management system 30 scales in the image processing system 38 by the scale-in number (S168), so that when scaling in of the image processing system 38 is necessary, it is possible to scale in the image processing system 38 by the amount that scaling in of the image processing system 38 is necessary. Therefore, the tenant management system 30 can execute scale-in effectively.

[0137] The cloud control unit 39 may use another method instead of or in addition to the method described above to scale in the image processing system 38. For example, the cloud control unit 39 may scale in the image processing system 38 at a timing other than the regular timing.

[0138] In the tenant management system 30, for example, if the size of at least one of the image data and document data to be subjected to the storage process is too large or if there is a problem with the conversion process in the storage process, the storage process may be delayed for a long time. In addition, since the number of occurrences of storage processes is likely to increase with an increase in at least one of the tenants and tenant-specific applications, the tenant management system 30 is more likely to experience a delay in the storage process for a long time when the number of tenants and at least one of the tenant-specific applications increases.

[0139] If the time that has elapsed since the start time of the save process being executed by the web server is equal to or greater than the timeout period (YES in S185), the tenant management system 30 stops the web server (S189) or recovers from the error in the web server, thereby reducing the possibility that the web server that realizes the image processing system 38 will continue to be used as is if processing has been stalled for a long time in the web server that realizes the image processing system 38. Therefore, the tenant management system 30 can efficiently use the web server that realizes the image processing system 38.

[0140] The tenant management system 30 periodically executes timeout processing for the image processing system 38 (S181 to S189), and can therefore execute timeout processing at appropriate timing for the image processing system 38. Therefore, the tenant management system 30 can efficiently use the web server that realizes the image processing system 38.

[0141] 30 Tenant management system (cloud system) 38 Image processing system (data storage system) 39 Cloud control unit 40 Database service (specific location) 41 Storage service (specific location) 83 Group of web servers (servers)

Claims

1. A data storage system that executes a storage process for storing data received from an external source in a specific location; A cloud control unit that executes a scale-out process, which is a process that executes a scale-out of the data storage system as needed; Equipped with the cloud control unit executes the scale-out process before the data storage system executes the storage process for each of the storage processes; A cloud system characterized in that the scale-out process is a process in which the cloud control unit does not execute the scale-out when the number of the storage processes being executed is not equal to or less than a standard number of processes set as a criterion for executing the scale-out.

2. The cloud system described in claim 1, characterized in that the scale-out process is a process in which the cloud control unit does not execute the scale-out if the number of the storage processes waiting to be executed is not greater than or equal to the scale-out number set as the number of the scale-outs for one time.

3. The cloud system according to claim 2, characterized in that the scale-out process is a process in which, when the number of the storage processes being executed is equal to or less than the reference number of processes, and the number of the storage processes waiting to be executed is equal to or greater than the scale-out number, the cloud control unit executes the scale-out by the scale-out number.

4. The cloud system described in claim 1, characterized in that the scale-out process is a process in which the cloud control unit does not execute the scale-out if the number of the storage processes waiting to be executed is not greater than or equal to the scale-out number set as the number of the scale-outs for one time.

5. The cloud system described in claim 1, characterized in that the scale-out process is a process in which, when the number of the storage processes being executed is equal to or less than a reference processing number set as a standard for executing the scale-out, and the number of the storage processes waiting to be executed is equal to or greater than a scale-out number set as the number of scale-outs for one time, the cloud control unit executes the scale-out by the scale-out number.

6. A data storage system that executes a storage process for storing data received from an external source in a specific location; A cloud control unit that executes a scale-in process, which is a process that executes a scale-in of the data storage system as needed; Equipped with The cloud control unit periodically executes the scale-in process, The scale-in process is a process in which the cloud control unit does not execute the scale-in when the number of the storage processes being executed is not equal to or less than a standard number of processes set as a criterion for executing the scale-in.

7. 7. The cloud system according to claim 6, wherein the scale-in process is a process in which the cloud control unit does not execute the scale-in process when there is the storage process waiting to be executed.

8. The cloud system described in claim 7, characterized in that the scale-in process is a process in which the cloud control unit does not execute the scale-in if the elapsed time from the end time of the storage process that was last executed is not greater than or equal to the scale-in reference time set as the reference time for executing the scale-in.

9. The cloud system according to claim 8, characterized in that the scale-in process is a process in which, when the number of the storage processes being executed is equal to or less than the reference number of processes and there are no storage processes waiting to be executed, the cloud control unit executes the scale-in by the scale-in number set as the number of scale-ins for one time when the elapsed time from the end time of the storage process that last finished execution is equal to or more than the scale-in reference time.

10. The cloud system according to claim 6, characterized in that the scale-in process is a process in which, when the number of the storage processes being executed is less than or equal to a reference number of processes set as a standard for executing the scale-in, and there are no storage processes waiting to be executed, the cloud control unit executes the scale-in by the number of scale-ins set as the number of scale-ins for one time when the elapsed time from the end time of the storage process that last finished execution is greater than or equal to the scale-in reference time set as the standard time for executing the scale-in.