Cloud system
The cloud system optimizes scale-out and scale-in processes through a data storage system and cloud control unit, addressing inefficiencies in conventional systems by managing server loads and errors, resulting in efficient resource utilization and improved performance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-06-26
- Publication Date
- 2026-03-17
AI Technical Summary
Conventional cloud systems face inefficiencies in executing scale-out or scale-in processes, leading to servers being underutilized or overloaded, and prolonged processing delays without effective recovery mechanisms.
The cloud system incorporates a data storage system and a cloud control unit that performs scale-out and scale-in processes before data storage, includes timeout processes to manage server errors, and adjusts scaling based on process thresholds and elapsed times to optimize server utilization.
This configuration enables efficient scaling operations, reduces server overutilization or underutilization, and ensures timely recovery from processing delays, enhancing overall system performance and resource management.
Smart Images

Figure 0007831599000001 
Figure 0007831599000002 
Figure 0007831599000003
Abstract
Description
Technical Field
[0001] The present invention relates to a cloud system constructed on the cloud.
Background Art
[0002] Conventionally, as a cloud system constructed on the cloud, a tenant management system based on a multi-tenant model that separates the environment and data for each customer according to the tenant's identification information is known (see, for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the conventional cloud system, there is a problem that scale-out or scale-in may not be effectively executed. Also, even when processing in the server that realizes the cloud system stays for a long time, there is a problem that the server may continue to be used as it is.
[0005] Therefore, an object of the present invention is to provide a cloud system that can effectively execute scale-out or scale-in, or a cloud system that can efficiently use the server that realizes the cloud system.
Means for Solving the Problems
[0006] The cloud system of the present invention comprises a data storage system that performs a storage process, which is the process of storing data received from an external source in a specific location, and a cloud control unit that performs a scale-out process or a scale-in process, which is the process of scaling out or scaling in the data storage system as needed, wherein the cloud control unit is characterized in that it performs the scale-out process before the data storage system executes the storage process for each storage process, or performs the scale-in process periodically. Furthermore, the cloud system of the present invention comprises a data storage system that performs a storage process, which is the process of storing data received from an external source in a specific location, using a different server for each storage process, and a cloud control unit that performs a timeout process, which is the process of stopping the server or recovering from an error in the server, if the elapsed time from the start time of the storage process being executed by the server is greater than or equal to a timeout period set as the timeout period for the storage process.
[0007] This configuration allows the cloud system of the present invention to perform a scale-out process before the data storage system executes the storage process for each storage process, thereby reducing the possibility of the data storage system scaling out too much or too little. Furthermore, the cloud system of the present invention periodically performs a scale-in process for the data storage system, enabling the data storage system to scale in at the appropriate time. Therefore, the cloud system of the present invention can effectively perform scale-out or scale-in. Moreover, the cloud system of the present invention stops a server or recovers from errors in a server if the elapsed time from the start time of a storage process being executed by the server exceeds a timeout period. Cloud system In the event that a server implementing this system experiences prolonged processing delays, the possibility of continuing to use that server indefinitely can be reduced. Therefore, the cloud system of the present invention can efficiently utilize the servers that implement 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 perform the scale-out or scale-in if the number of saving processes currently in execution is not less than or equal to the number of standard processes set as the criterion for performing the scale-out or scale-in.
[0009] This configuration prevents the cloud system of the present invention from scaling out the data storage system indefinitely, as it does not scale out the data storage system if the number of running storage processes is not below a certain threshold. Furthermore, the cloud system of the present invention does not scale in the data storage system if the number of running storage processes is not below a certain threshold, thus reducing the possibility of disrupting the execution of storage processes by scaling in the data storage system despite a large number of running storage processes. Therefore, the cloud system of the present invention can effectively perform scaling out or scaling 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 perform the scale-out if the number of save processes waiting to be executed is not equal to or greater than the number of scale-outs set as the number of scale-outs for one instance.
[0011] This configuration prevents the cloud system of the present invention from scaling out the data storage system if the number of pending storage processes is not equal to or greater than the scale-out limit. Therefore, it prevents the data storage system from scaling out even when the expected load from future storage processes is low. Consequently, the cloud system of the present invention can effectively perform scaling out.
[0012] In the cloud system of the present invention, the scale-out process may be a process in which the cloud control unit performs the scale-out for the number of scale-outs when the number of save processes currently running is less than or equal to the reference number of processes, and the number of save processes waiting to be executed is greater than or equal to the scale-out number.
[0013] With this configuration, the cloud system of the present invention, when the number of storage processes currently running is less than or equal to the standard number of processes, and when the number of storage processes waiting to be executed is greater than or equal to the scale-out number, will scale out the data storage system by the scale-out number. Therefore, when scaling out the data storage system is necessary, the data storage system can be scaled out by the amount required. Accordingly, the cloud system of the present invention can effectively perform scaling 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 perform the scale-out if the number of save processes waiting to be executed is not equal to or greater than the number of scale-outs set as the number of scale-outs for one instance.
[0015] This configuration prevents the cloud system of the present invention from scaling out the data storage system if the number of pending storage processes is not equal to or greater than the scale-out limit. Therefore, it prevents the data storage system from scaling out even when the expected load from future storage processes is low. Consequently, the cloud system of the present invention can effectively perform scaling out.
[0016] In the cloud system of the present invention, the scale-out process may be a process in which the cloud control unit performs the scale-out for the number of scale-outs set when the number of save processes currently in execution is less than or equal to the number of standard processes set as the basis for executing the scale-out, and when the number of save processes waiting to be executed is equal to or greater than the number of scale-outs set as the number of scale-outs for one instance.
[0017] With this configuration, the cloud system of the present invention, when the number of storage processes currently running is less than or equal to the standard number of processes, and when the number of storage processes waiting to be executed is greater than or equal to the scale-out number, will scale out the data storage system by the scale-out number. Therefore, when scaling out the data storage system is necessary, the data storage system can be scaled out by the amount required. Accordingly, the cloud system of the present invention can effectively perform scaling 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 perform the scale-in if there is a save process waiting to be executed.
[0019] This configuration allows the cloud system of the present invention to avoid scaling in the data storage system when there are pending storage processes. This reduces the possibility of disrupting future storage processes by scaling in the data storage system despite pending storage processes. Therefore, the cloud system of the present invention can effectively perform scaling 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 perform the scale-in if the elapsed time from the end time of the last completed save process is not equal to or greater than the scale-in reference time set as the reference time for executing the scale-in.
[0021] With this configuration, when the elapsed time from the end time of the last executed save process is not longer than the scale-in reference time, the cloud system of the present invention does not execute scale-in of the data storage system. Therefore, it is possible to reduce the possibility of executing scale-in of the data storage system immediately after the end of the save process and causing problems in future execution of the save process. Thus, the cloud system of the present invention can effectively execute scale-in.
[0022] In the cloud system of the present invention, when the number of the save processes being executed is not more than the reference number of processes and there is no save process waiting for execution, the scale-in process may be a process in which the cloud control unit executes scale-in by the number of scale-in set as the number of scale-in for one time when the elapsed time from the end time of the last executed save process is longer than the scale-in reference time.
[0023] With this configuration, when the number of save processes being executed is not more than the reference number of processes and there is no save process waiting for execution, the cloud system of the present invention executes scale-in of the data storage system by the number of scale-in when the elapsed time from the end time of the last executed save process is longer than the scale-in reference time. Therefore, when scale-in of the data storage system is necessary, the data storage system can be scaled in by the amount necessary for scale-in of the data storage system. Thus, the cloud system of the present invention can effectively execute scale-in.
[0024] In the cloud system of the present invention, when there is a save process waiting for execution, the scale-in process may be a process in which the cloud control unit does not execute scale-in.
[0025] With this configuration, when there is a save process during the execution waiting period, the cloud system of the present invention does not execute the scale-in of the data storage system. Therefore, it is possible to reduce the possibility that the scale-in of the data storage system is executed despite the existence of a save process during the execution waiting period, which may impede the future execution of the save process. Thus, the cloud system of the present invention can effectively execute the 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 when the elapsed time from the end time of the save process that was last executed is not more than the scale-in reference time set as the reference time for the execution of the scale-in.
[0027] With this configuration, when the elapsed time from the end time of the save process that was last executed is not more than the scale-in reference time, the cloud system of the present invention does not execute the scale-in of the data storage system. Therefore, it is possible to reduce the possibility that the scale-in of the data storage system is executed immediately after the end of the save process, which may impede the future execution of the save process. Thus, the cloud system of the present invention can effectively execute the scale-in.
[0028] In the cloud system of the present invention, the scale-in process may be a process in which 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 number of save processes being executed is not more than the reference number of processes set as the reference for the execution of the scale-in and there is no save process during the execution waiting period, and the elapsed time from the end time of the save process that was last executed is more than the scale-in reference time set as the reference time for the execution of the scale-in.
[0029] With this configuration, the cloud system of the present invention, when the number of currently running save processes is less than or equal to the standard number of processes, and there are no save processes waiting to be executed, and the elapsed time from the end time of the last completed save process is equal to or greater than the scale-in standard time, will perform a scale-in of the data storage system by the scale-in number. Therefore, when a scale-in of the data storage system is necessary, the data storage system can be scaled in by the amount required. Accordingly, the cloud system of the present invention can effectively perform scale-in.
[0030] In the cloud system of the present invention, the cloud control unit may periodically perform the timeout process.
[0031] With this configuration, the cloud system of the present invention periodically performs timeout processing for the data storage system, so that the timeout processing for the data storage system can be executed at an appropriate time. Therefore, the cloud system of the present invention can efficiently use the servers that implement the data storage system. [Effects of the Invention]
[0032] The cloud system of the present invention can scale out or scale in effect It can be executed efficiently. Furthermore, it allows for efficient use of servers that enable cloud systems. [Brief explanation of the drawing]
[0033] [Figure 1] This is an explanatory diagram of tenants managed by a tenant management system included in one embodiment of the present invention. [Figure 2] This is a block diagram of the software configuration of a system according to one embodiment of the present invention. [Figure 3] Figure 2 is a block diagram of the hardware configuration of the system shown. [Figure 4]Figure 2 shows an example of a tenant management table. [Figure 5] Figure 2 shows an example of a storage processing management table. [Figure 6] Figure 2 shows an example of a settings table. [Figure 7] Figure 2 is a sequence diagram of the system's operation when a session is established between the user terminal application and the tenant-specific application. [Figure 8] Figure 2 is a sequence diagram of the system's operation when at least one of image data and document data is transmitted from a user terminal application to an image processing system. [Figure 9] Figure 2 shows a flowchart illustrating the operation of the cloud control unit when performing scale-out processing. [Figure 10] Figure 2 shows a flowchart illustrating the operation of the cloud control unit when performing a scale-in process. [Figure 11] Figure 2 shows a flowchart of the operation of the cloud control unit when timeout processing is performed. [Modes for carrying out the invention]
[0034] Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0035] First, the configuration of a system according to one embodiment of the present invention will be described.
[0036] Figure 1 is an explanatory diagram of tenants managed by the tenant management system included in the system according to this embodiment.
[0037] As shown in Figure 1, solution 12 is built on the public cloud 11. Here, solution 12 can be, for example, a document management solution for managing documents.
[0038] The provider of Solution 12 can lease at least a portion of Solution 12 to others. A unit in which the provider of Solution 12 leases at least a portion of Solution 12 is called a tenant. Solution 12 can have multiple tenants, such as tenant 13.
[0039] Tenant 13 can have multiple users, such as user 14. The configuration of tenants other than tenant 13 is the same as that of tenant 13.
[0040] Figure 2 is a block diagram of the software configuration of system 20 according to this embodiment.
[0041] As shown in Figure 2, the system 20 comprises a tenant management system 30 as a cloud system, a DNS (Domain Name System) service 50 which is a service for registering the FQDN (Fully Qualified Domain Name) of the external access point 31 described later, image forming apparatus programs such as the image forming apparatus program 60 which are executed by the image forming apparatus described later, and user terminal applications such as the user terminal application 70 which are executed by the user terminal described later.
[0042] The program for the image forming apparatus is a program that transmits at least one of image data and document data to the image processing system 38 (described later) of the tenant management system 30, and performs printing based on at least one of the 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 the 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 requests for print instructions to the image forming apparatus. The user terminal application may also 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 tenant identification information. The tenant management system 30 includes an external access point 31, which is an accessible endpoint exposed to the outside of the public cloud 11, such as outside the data center, in the public cloud 11 (see Figure 1), an external load balancer 32, which is a service that maintains connections from the outside, such as HTTP (Hypertext Transfer Protocol) / HTTPS (Hypertext Transfer Protocol Secure), and realizes the load balancing function to the 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 requests from the outside, including authentication, a tenant management unit 35, which is a service that receives requests from users to tenant-specific applications described later, tenant-specific applications such as tenant-specific applications 36, which are applications prepared for each tenant, a tenant management application 37, which is an application that manages various tenant information, and a function that converts at least one of image data and document data received from user terminal applications, etc., into another data format. The system includes an image processing system 38 as a data storage system, which performs a process (hereinafter referred to as "storage process") that executes specific conversion processes as needed and stores the data in a specific location, i.e., the storage service 41 (and the database service 40 as needed), and reads at least one of image data and document data from the storage service 41 (and the database service 40 as needed) in response to requests from tenant-specific applications; a cloud control unit 39, which 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] Multiple tenant-specific applications can be provided for a single tenant. These tenant-specific applications can include a variety of applications, such as document management applications, scheduling applications, and chat tools.
[0046] The database service 40 stores, as data tables, a tenant management table 40a for managing tenants, a storage process management table 40b for managing storage processes, and a configuration table 40c that shows the control settings for the Web server that implements the image processing system 38.
[0047] Figure 3 is a block diagram of the hardware configuration of system 20.
[0048] As shown in Figure 3, the system 20 includes an external access point system 81 for realizing an external access point 31, an external load balancer system 82 for realizing an external load balancer 32, a group of web servers 83, a database service system 84 for realizing a database service 40, a storage service system 85 for realizing a storage service 41, a DNS service system 86 for realizing a DNS service 50, an image forming apparatus 87 that executes an image forming apparatus program 60, and user terminals that execute user terminal applications 70, such as a user terminal 88. The external access point system 81, the external load balancer system 82, the web servers, the database service system 84, the storage service system 85, the DNS service system 86, the image forming apparatus, and the 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 implemented by at least one computer.
[0050] The group of web servers 83 implements a connection request receiving 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 receiving unit 33, request processing unit 34, tenant management unit 35, tenant-specific application 36, tenant management application 37, image processing system 38, and cloud control unit 39 may be implemented by only one web server or by multiple web servers. At least one web server in group 83 may implement at least two of the connection request receiving unit 33, request processing unit 34, tenant management unit 35, tenant-specific application 36, tenant management application 37, and cloud control unit 39. The image processing system 38 executes the save process by one web server for each save process.
[0051] Image forming apparatuses are composed of, for example, MFPs (Multifunction Peripherals) and dedicated printers.
[0052] A user terminal is a computer that consists of, for example, a PC (Personal Computer) or a smartphone.
[0053] Figure 4 shows an example of a tenant management table 40a.
[0054] The tenant management table 40a shown in Figure 4 stores a combination of user ID (as user identification information), user password, tenant subdomain, tenant ID (as tenant identification information), and APID (as tenant-specific application identification information). Note that the tenant ID is a three-digit number, excluding, for example, "000".
[0055] Figure 5 shows an example of the storage processing management table 40b.
[0056] The save processing management table 40b shown in Figure 5 stores, for each save processing, a combination of the following: 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 made 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 realize the image processing system 38. The processing statuses include "Ready," indicating that the save processing is waiting to be executed; "Processing," indicating that the save processing is in progress; and "End," indicating that the save processing has finished. Note that the value of the processing server URL is omitted in the save processing management table 40b shown in Figure 5, but the URL of the web server that executes the save processing is actually entered.
[0057] Figure 6 shows an example of the setting table 40c.
[0058] The setting table 40c shown in Figure 6 includes a reference number of processes set as the number of ongoing save processes that serve as the basis for performing scale-out and scale-in operations of the image processing system 38, a scale-out number set as the number of scale-out operations for one cycle of the image processing system 38, a scale-in reference time set as the reference time for performing scale-in operations of the image processing system 38, a scale-in number set as the number of scale-in operations for one cycle of the image processing system 38, and a timeout time set as the time for saving processes to time out.
[0059] Next, we will describe the operation of system 20.
[0060] In the following explanation, tenant-specific applications 36 and user terminal applications 70 will be used as examples to describe tenant-specific applications and user terminal applications, respectively.
[0061] First, we will describe the operation of the system 20 when a session is established between the user terminal application 70 and the tenant-specific application 36.
[0062] Figure 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] If a user wishes to use the tenant-specific application 36, they can instruct the user terminal application 70 to use the tenant-specific application 36 from the user terminal 88.
[0064] Hereafter, the service name, i.e., the name of solution 12, will be "service.com". The domain name of external access point 31 will be "cloud.app". The subdomain of the tenant that implements tenant-specific application 36 (hereinafter referred to as "target tenant" in the operation description shown in Figures 7 and 8) will 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" (S101), as shown in Figure 7. Here, the DNS service 50 has registered a wildcard, i.e., "*.cloud.app", which includes the external access point 31, as the server name. Then, if the subdomain is, for example, "○○", the DNS service 50 will respond with "○○.cloud.app" to a query that includes "○○.service.com". Therefore, the DNS service 50 will respond with "aap1.cloud.app" to a query that includes "aap1.service.com".
[0066] After processing in 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 processing in S102, the user terminal application 70 connects to the external access point 31 and sends an HTTP / HTTPS connection request to the external access point 31 (S103). The user terminal application 70 includes the user's user ID and password, and the subdomain of the target tenant, in the HTTP / HTTPS connection request sent in S103.
[0068] When the external access point 31 receives an HTTP / HTTPS connection request sent from the user terminal application 70 in S103, it forwards the received HTTP / HTTPS connection request to the external load balancer 32 (S104).
[0069] When the external load balancer 32 receives an HTTP / HTTPS connection request forwarded from the external access point 31 in S104, it establishes an HTTP / HTTPS connection with the user terminal application 70 and forwards the connection request received from the external access point 31 to the connection request receiving unit 33 (S105). 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 a connection request forwarded from the external load balancer 32 in S105, External load balancer 32 The request received is forwarded to the request processing unit 34 (S106).
[0071] When the request processing unit 34 receives a request forwarded 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 user ID and password included in the request received from the connection request receiving unit 33, and also retrieves 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 includes, for example, a subdomain indicated in the HOST field of the HTTP REQUEST header.
[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, which is one of the tenant-specific applications associated in the tenant management table 40a with the subdomain obtained by the request processing unit 34 and the user ID of the user whose authentication was successful in the request processing unit 34 (S108).
[0073] As described above, a session is established between the user terminal application 70 and the tenant-specific application 36. Once the session is established between the user terminal application 70 and the tenant-specific application 36, the user terminal application 70 can send requests to the tenant-specific application 36 using the REST API.
[0074] Next, we will describe 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.
[0075] Figure 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 has been 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 operation on at least one of the image data and document data (hereinafter referred to as "transmission data" in the operation description shown in Figure 8).
[0077] When the user terminal application 70 is instructed to perform a save process for the data to be sent, it requests the tenant-specific application 36 to send the data to be sent, as shown in Figure 8 (S121).
[0078] When the user terminal application 70 requests the transmission of data in S121, the tenant-specific application 36 declares to the image processing system 38 that it has started transmitting the data (S122).
[0079] When the start of sending data for transmission is declared in S122 from the tenant-specific application 36, 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 the request ID, tenant ID, reception time, and processing status in the new record. For example, the image processing system 38 sets the request ID in the new record to a request ID that has not yet been used in the storage processing management table 40b. The image processing system 38 also sets the tenant ID in the new record to the tenant ID associated with the target tenant in the tenant management table 40a. The image processing system 38 also sets the reception time in the new record to the current time. The image processing system 38 also sets the processing status in the new record to "Ready".
[0080] After processing in S123, the database service 40 notifies the cloud control unit 39 of the update to the storage processing management table 40b (S124). Here, the database service 40 includes the request ID in the record generated in S123 in the notification in S124.
[0081] When the cloud control unit 39 receives notification from the database service 40 in S124 that the storage processing management table 40b has been updated, it executes a process to scale out the image processing system 38 as needed (hereinafter referred to as "scale-out processing") (S125).
[0082] Figure 9 is a flowchart showing the operation of the cloud control unit 39 when performing scale-out processing.
[0083] As shown in Figure 9, the cloud control unit 39 aggregates the number of save processes whose processing status is "Processing" in the save process management table 40b (S141).
[0084] Next, the cloud control unit 39 determines whether the number aggregated in S141 is less than or equal to the standard number of processing steps in the setting table 40c (S142).
[0085] If the cloud control unit 39 determines in S142 that the number aggregated in S141 is less than or equal to the standard number of processes in the setting table 40c, it aggregates the number of save processes whose processing status is "Ready" in the save process management table 40b (S143).
[0086] Next, the cloud control unit 39 determines whether the number aggregated 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 aggregated in S143 is equal to or greater than the scale-out number in the configuration table 40c, it scales out the image processing system 38 by the scale-out number in the configuration table 40c (S145). In other words, the cloud control unit 39 increases the number of Web servers that implement the image processing system 38 by the scale-out number in the configuration table 40c.
[0088] The cloud control unit 39 terminates the scale-out process shown in Figure 9 when it determines in S142 that the number aggregated in S141 is not less than or equal to the standard processing number in the setting table 40c, or when it determines in S144 that the number aggregated in S143 is not greater than or equal to the scale-out number in the setting table 40c, or when the process in S145 is completed.
[0089] As shown in Figure 8, when the scale-out process in S125 is completed, the cloud control unit 39 sets the URL of one of the Web servers that implement the image processing system 38 that is not currently performing storage processing as the processing server URL in the record corresponding to the request ID notified by the database service 40 in S124 (S126). Here, if the cloud control unit 39 performs a scale-out (S145) in the scale-out process shown in Figure 9, it sets the URL of one of the Web servers newly secured by this scale-out as the processing server URL.
[0090] After processing in S126, the database service 40 notifies the image processing system 38 of the processing server URL set in S126 and the request ID of the record for which the processing server URL was set in S126 (S127). Therefore, the image processing system 38 can perform the saving process using the web server identified by the processing server URL notified in S127.
[0091] When the image processing system 38 receives the processing server URL and request ID from the database service 40 in S127, it notifies the tenant-specific application 36 of the processing server URL and request ID notified by 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 receives the processing server URL and request ID from the tenant-specific application 36 in S129, it sends the data to be transmitted to the web server that implements the image processing system 38, which is identified by the processing server URL notified by the tenant-specific application 36 in S129 (S130). Here, the user terminal application 70 includes the request ID notified by the tenant-specific application 36 in S129 in the transmission in S130.
[0094] When the image processing system 38 receives transmission data from the user terminal application 70 in S130, it sets the current time as the start time for the record identified in the storage processing management table 40b by the request ID sent from the user terminal application 70 along with the transmission data, and changes the processing status of this record to "Processing" (S131). In other words, the image processing system 38 records the start of the storage processing in the storage processing management table 40b.
[0095] After processing in S131, the image processing system 38 performs specific conversion processing on the data to be transmitted from the user terminal application 70 in S130 as needed (S132). Conversion processing performed in S132 includes, for example, a process to convert the image format of the data to be transmitted if the data is image data. For example, if the data to be transmitted is JPEG (Joint Photographic Experts Group) data, a process to convert the data to PDF (Portable Document Format) data with full-text search functionality may be performed. Another conversion processing performed in S132 may include, for example, OCR (Optical Character Recognition) to extract character information from the data if the data is image data. Furthermore, another conversion processing performed in S132 may include, for example, indexing to extract keywords from the data if the data is PDF data. The conversion processing performed in S132 is specified by the user via the user terminal application 70. Note that the conversion processing in S132 may be omitted.
[0096] After processing in S132, if no conversion process is performed in S132, the image processing system 38 saves the data to be transmitted from the user terminal application 70 in S130 to the storage service 41 (S133). If conversion processing is performed in S132, the image processing system 38 saves the data to be transmitted after the conversion process in S132 to the storage service 41. If keywords are extracted from the data to be transmitted in S132, the image processing system 38 may also save the information such as the keywords generated in S132 to the database service 40 in S133. The information saved in the database service 40 in S133 is used, for example, to search for at least one image data and document data stored in the storage service 41.
[0097] After processing in S133, the image processing system 38 sets the current time as the end time for the record identified in the save processing management table 40b by the request ID sent in S130 from the user terminal application 70 along with the transmission data, and changes the processing status of this record to "End" (S134). In other words, the image processing system 38 records the end of the save processing execution in the save processing management table 40b.
[0098] The above describes the case in which at least one of image data and document data is transmitted from a user terminal application to the image processing system 38. However, the same applies to the case in which at least one of image data and document data is transmitted from an image forming apparatus program to the image processing system 38.
[0099] Next, we will explain the operation of the cloud control unit 39 when performing a process to perform scale-in as needed (hereinafter referred to as "scale-in process").
[0100] Figure 10 is a flowchart showing the operation of the cloud control unit 39 when performing scale-in processing.
[0101] The cloud control unit 39 executes the process shown in Figure 10 at regular intervals, such as every 5 minutes.
[0102] As shown in Figure 10, the cloud control unit 39 aggregates the number of save processes whose processing status is "Processing" in the save process management table 40b (S161).
[0103] Next, the cloud control unit 39 determines whether the number aggregated in S161 is less than or equal to the standard number of processing steps in the setting table 40c (S162).
[0104] If the cloud control unit 39 determines in S162 that the number aggregated in S161 is less than or equal to the standard number of processes in the setting table 40c, it aggregates the number of save processes whose processing status is "Ready" in the save process management table 40b (S163).
[0105] Next, the cloud control unit 39 determines whether the number aggregated in S163 is 0 or not (S164).
[0106] If the cloud control unit 39 determines in S164 that the number aggregated in S163 is 0, it identifies the most recent end time of all save processes whose processing status is "End" in the save process management table 40b (S165).
[0107] Next, the cloud control unit 39 calculates the elapsed time since the latest end time identified in S165 by subtracting the latest end time identified in S165 from the current time (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). In other words, the cloud control unit 39 reduces the number of web servers that implement 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 Figure 10 when it determines in S162 that the number aggregated in S161 is not less than or equal to the standard number of processes in the setting table 40c, or in S164 that the number aggregated in S163 is not zero, or in S167 that the elapsed time calculated in S166 is not greater than or equal to the scale-in standard time in the setting table 40c, or when the processing in S168 is completed.
[0111] Next, we will explain the operation of the cloud control unit 39 when it performs a process to stop the web server according to the elapsed time since the start time of the currently running save process (hereinafter referred to as "timeout processing").
[0112] Figure 11 is a flowchart showing the operation of the cloud control unit 39 when timeout processing is performed.
[0113] The cloud control unit 39 executes the process shown in Figure 11 at regular intervals, such as every 5 minutes.
[0114] As shown in Figure 11, the cloud control unit 39 determines whether or not there is a save process in the save process management table 40b whose processing status is "Processing" (S181).
[0115] If the cloud control unit 39 determines in S181 that there is a save process whose processing status is "Processing" in the save process management table 40b, it identifies the request IDs of all save processes whose processing status is "Processing" in the save process management table 40b as the request ID of the save process currently in progress (S182).
[0116] Next, the cloud control unit 39 processes only one request ID from the request IDs of ongoing save processes identified in S182 that has not yet been processed in S183 in the 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 period 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 period in the setting table 40c, it identifies the request ID of the current processing target as the request ID of the save processing subject to the timeout (S186).
[0120] The cloud control unit 39 determines in S185 that the elapsed time calculated in S184 is not equal to or greater than the timeout period in the setting table 40c, or when the processing in S186 is completed, it determines in S182 whether there are any request IDs of ongoing save processes that have not yet been processed in S183 in the operation shown in Figure 11 (S187).
[0121] If the cloud control unit 39 determines in S187 that there are request IDs among the ongoing save processing request IDs identified in S182 that have not yet been processed in S183 in the operation shown in Figure 11, it executes the process in S183.
[0122] If the cloud control unit 39 determines in S187 that there are no request IDs of ongoing save processes identified in S182 that have not yet been processed in S183 in the operation shown in Figure 11, it determines in S188 whether or not it has identified the request ID of the save process subject to the timeout in S186 in the operation shown in Figure 11.
[0123] If the cloud control unit 39 determines in S188 that it has identified the request ID of the save process subject to the timeout in S186 in the operation shown in Figure 11, it stops all web servers identified by the processing server URL associated in the save process management table 40b with the request ID of the save process subject to the timeout identified in S186 in the operation shown in Figure 11 (S189).
[0124] The cloud control unit 39 terminates the operation shown in Figure 11 when it determines in S181 that there are no save processes with a processing status of "Processing" in the save process management table 40b, or when it determines in S188 that it did not identify the request ID of the save process subject to the timeout in S186 in the operation shown in Figure 11, or when the process in S189 is completed.
[0125] In addition, the cloud control unit 39 stops a Web server whose elapsed time from the start time of the save process is longer than or equal to the timeout period in the timeout process shown in Figure 11 (S189). However, instead of stopping a Web server whose elapsed time from the start time of the save process is longer than or equal to the timeout period in the timeout process, the cloud control unit 39 may recover from an error in a Web server whose elapsed time from the start time of the save process is longer than or equal to the timeout period. One way to recover from an error in a Web server is, for example, to restart the Web server.
[0126] The tenant management system 30 is likely to experience an increase in the number of save operations as the number of tenants and at least one of tenant-specific applications increases. Furthermore, since the data subject to save operations is at least one of image data and document data, the size of the data subject to save operations is large, resulting in a longer time required for save operations. Moreover, if the save operations include conversion operations, the time required for save operations will be even longer. Therefore, the tenant management system 30 scales out the image processing system 38 that performs save operations as needed to reduce the possibility of decreased usability. On the other hand, the tenant management system 30 scales in the image processing system 38 as needed to reduce the possibility of increased costs in the public cloud 11, which is billed based on resource usage.
[0127] The tenant management system 30 performs a scale-out process (S125) before the image processing system 38 executes the save process (S131-S134) for each save process, thereby reducing the possibility of the image processing system 38 performing too many or too few scale-out operations. Therefore, the tenant management system 30 can effectively perform scale-out.
[0128] The tenant management system 30 does not perform a scale-out of the image processing system 38 (S145) if the number of currently running save processes is not below a certain number of processes (NO in S142), thus preventing the image processing system 38 from being scaled out indefinitely. Therefore, the tenant management system 30 can perform scale-out effectively.
[0129] The tenant management system 30 does not perform a scale-out of the image processing system 38 (S145) if the number of save processes waiting to be executed is not equal to or greater than the scale-out number (NO in S144). This prevents the image processing system 38 from being scaled out even though the expected load from future save processes by the image processing system 38 is small. Therefore, the tenant management system 30 can perform scale-out effectively.
[0130] The tenant management system 30 performs a scale-out of the image processing system 38 by the number of scale-outs required when the number of save processes currently running is less than or equal to the standard number of processes (YES in S142) and when the number of save processes waiting to be executed is greater than or equal to the scale-out number (YES in S144) (S145). Therefore, when a scale-out of the image processing system 38 is necessary, the image processing system 38 can be scaled out by the amount required. Thus, the tenant management system 30 can effectively perform scale-out.
[0131] The cloud control unit 39 may perform the scaling out of the image processing system 38 by means of other methods, either in addition to or instead of the method described above. For example, the cloud control unit 39 may perform the scaling out of the image processing system 38 at a time other than "the timing before the image processing system 38 performs the saving process for each saving process."
[0132] The tenant management system 30 periodically performs scale-in processing on the image processing system 38 (S161-S168), so that the scale-in of the image processing system 38 can be performed at the appropriate timing. Therefore, the tenant management system 30 can effectively perform scale-in.
[0133] The tenant management system 30 does not perform a scale-in (S168) on the image processing system 38 if the number of currently running save processes is not below the standard number of processes (NO in S162). Therefore, it can reduce the possibility of disrupting the execution of save processes by performing a scale-in on the image processing system 38 even when there are many currently running save processes. Thus, the tenant management system 30 can perform scale-in effectively.
[0134] The tenant management system 30 does not perform a scale-in (S168) on the image processing system 38 if there are save processes waiting to be executed (NO in S164). Therefore, it can reduce the possibility of disrupting future save processes by performing a scale-in on the image processing system 38 even though there are save processes waiting to be executed. Thus, the tenant management system 30 can perform scale-in effectively.
[0135] The tenant management system 30 does not perform the scale-in operation (S168) of the image processing system 38 if the elapsed time from the end time of the last completed save process is not equal to or greater than the scale-in reference time (NO in S167). Therefore, it is possible to reduce the possibility of disrupting future save processes by performing the scale-in operation of the image processing system 38 immediately after the completion of a save process. Thus, the tenant management system 30 can perform scale-in effectively.
[0136] The tenant management system 30 performs a scale-in of the image processing system 38 by the required number of scale-in units (S168) when the number of save processes currently running is less than or equal to the standard number of processes, there are no save processes waiting to be executed (YES in S162 and S164), and the elapsed time from the end time of the last completed save process is equal to or greater than the scale-in standard time (YES in S167). Therefore, when a scale-in of the image processing system 38 is necessary, the image processing system 38 can be scaled in by the required amount. Thus, the tenant management system 30 can effectively perform scale-in.
[0137] The cloud control unit 39 may perform the scaling-in of the image processing system 38 by a method other than, or in addition to, the method described above. For example, the cloud control unit 39 may perform the scaling-in of the image processing system 38 at a time other than the regular timing.
[0138] The tenant management system 30 may experience prolonged delays in the saving process if, for example, the size of at least one of the image data and document data targeted for saving is too large, or if there are problems with the conversion process during saving. Furthermore, since the number of saving operations is likely to increase as the number of tenants and at least one of the tenant-specific applications increases, the likelihood of prolonged delays in the saving process increases when the number of tenants and at least one of the tenant-specific applications increases.
[0139] The tenant management system 30 stops the web server (S189) or recovers from errors in the web server if the elapsed time from the start time of a save process being executed by the web server exceeds the timeout period (YES in S185). This reduces the possibility of continuing to use the web server that implements the image processing system 38 if processing is stalled for a long time. Therefore, the tenant management system 30 can efficiently use the web server that implements the image processing system 38.
[0140] The tenant management system 30 periodically performs timeout processing for the image processing system 38 (S181-S189), so that the timeout processing for the image processing system 38 can be performed at the appropriate time. Therefore, the tenant management system 30 can efficiently use the web server that implements the image processing system 38. [Explanation of Symbols]
[0141] 30 Tenant Management System (Cloud System) 38. Image Processing System (Data Storage System) 39 Cloud Control Unit 40. Database services (specific location) 41. Storage services (specific location) 83 Web servers (servers)
Claims
1. A data storage system that performs a storage process, which is the process of saving data received from an external source to a specific location, The cloud control unit performs a scale-out process, which is a process that performs scaling 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 storage process. A cloud system characterized in that the scale-out process is a process in which the cloud control unit does not perform the scale-out when the number of save processes currently in execution is not less than or equal to the number of standard processes set as the criterion for executing the scale-out, and the number of save processes waiting to be executed is not greater than or equal to the number of scale-outs set as the number of one scale-out.
2. A data storage system that performs a storage process, which is the process of storing data received from an external source in a specific location, The cloud control unit performs a scale-out process, which is a process that performs scaling 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 storage process. The cloud system is characterized in that the scale-out process is a process in which the cloud control unit does not perform the scale-out if the number of save processes currently in execution is not less than or equal to the number of standard processes set as the criterion for performing the scale-out, and when the number of save processes currently in execution is less than or equal to the number of standard processes set as the criterion for performing the scale-out, and the number of save processes waiting to be executed is equal to or greater than the number of scale-outs set as the number of one scale-out, the cloud control unit performs the scale-out for the number of scale-outs.
3. A data storage system that performs a storage process, which is the process of saving data received from an external source to a specific location, A cloud control unit that performs a scale-in process, which is a process that performs scaling in the data storage system as needed, Equipped with, The cloud control unit periodically executes the scale-in process, The cloud system is characterized in that the scale-in process is a process in which the cloud control unit does not perform the scale-in if the number of save processes currently in execution is not less than or equal to the number of standard processes set as the criterion for executing the scale-in.
4. The cloud system according to claim 3, characterized in that the scale-in process is a process in which the cloud control unit does not execute the scale-in when there is a save process waiting to be executed.
5. The cloud system according to claim 4, characterized in that the scale-in process is a process in which the cloud control unit does not perform the scale-in if the elapsed time from the end time of the last saved process to be completed is not equal to or greater than the scale-in reference time set as the reference time for performing the scale-in.
6. The cloud system according to claim 5, characterized in that the scale-in process is a process in which the cloud control unit performs the scale-in for a number of scale-ins set as the number of scale-ins for one instance, when the number of save processes currently in execution is less than or equal to the reference number of processes, there are no save processes waiting to be executed, and the elapsed time from the end time of the last saved process that has finished execution is equal to or greater than the scale-in reference time.
7. The cloud system according to claim 3, characterized in that the scale-in process is a process in which the cloud control unit performs the scale-in for a number of scale-ins set as the number of scale-ins for one instance, when the number of save processes currently in execution is less than or equal to the number of standard processes set as the basis for executing the scale-in, and there are no save processes waiting to be executed, and the elapsed time from the end time of the last saved process that has finished execution is greater than or equal to the scale-in standard time set as the basis for executing the scale-in.
Citation Information
Patent Citations
Apparatus and method for managing server
JP2011090594A
System and method using the same
JP2019139591A
Information processing device and program
JP2020038517A
Information processing system and control method
JP2021196704A