Cloud systems and cloud control methods

JP7917822B2Active Publication Date: 2026-09-09KYOCERA DOCUMENT SOLUTIONS INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022103678
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-06-28
Publication Date
2026-09-09
Estimated Expiration
2042-06-28

AI Technical Summary

Benefits of technology

【0010】 本発明のクラウドシステムは、定期的に実行されることが必要なスケールアウトを実行することができる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007917822000001
    Figure 0007917822000001
  • Figure 0007917822000002
    Figure 0007917822000002
  • Figure 0007917822000003
    Figure 0007917822000003
Patent Text Reader

Abstract

To provide a cloud system which can execute scale-out that is required periodically.SOLUTION: A tenant management system includes: an image processing system for executing a storage process which stores image data or document data received from the outside in a storage service or a database service; and a cloud control unit which executes scale-out of the image processing system. The cloud control unit is configured to execute, on the basis of a history of storage processes executed by the image processing system, a reservation for scale-out which is scheduled one hour before a reservation process interval for start time of a period in which the number of receptions for a target period is larger than an average number of receptions after correction, the number of receptions for a target period being the number of storage processes in a unit time (S229 and S230).SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

[0002] Conventionally, as a cloud system constructed 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).

Prior Art Literature

Patent Literature

[0003]

Patent Document 1

Summary of the Invention

Problem to be Solved by the Invention

[0004] However, conventional cloud systems have a problem in that scale-out that needs to be executed periodically may not be properly performed.

[0005] Therefore, an object of the present invention is to provide a cloud system capable of executing scale-out that needs to be executed periodically.

Means for Solving the Problem

[0006] The cloud system of the present invention comprises a data storage system that performs storage processing, which is the process of storing data received from an external source in a specific location, and a cloud control unit that performs scaling out of the data storage system, wherein the cloud control unit makes a reservation for the scale-out, the scheduled time being a specific time after the start time of a period in which the number of storage processing in a unit of time was greater than a specific number, based on the history of the storage processing performed by the data storage system.

[0007] With this configuration, the cloud system of the present invention can perform scale-outs that need to be performed periodically, by scheduling a scale-out at a specific time after the start time of a period in which the number of storage processes in a unit of time was greater than a certain number, based on the history of storage processes performed by the data storage system.

[0008] In the cloud system of the present invention, the cloud control unit may execute the reservation for each tenant based on the history for each tenant.

[0009] With this configuration, the cloud system of the present invention can execute scale-out reservations for each tenant based on the history of storage processes performed by the data storage system for each tenant, thereby enabling scale-out reservations to be made according to the tenant. [Effects of the Invention]

[0010] The cloud system of the present invention can perform scale-out operations, which are required to be performed periodically. [Brief explanation of the drawing]

[0011] [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 shows an example of a scale-out reservation table. [Figure 8] 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 9] 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 10] Figure 2 shows a flowchart illustrating the operation of the cloud control unit when performing scale-out processing. [Figure 11] Figure 2 shows a flowchart illustrating the operation of the cloud control unit when performing a scale-in process. [Figure 12] Figure 2 shows a flowchart of the operation of the cloud control unit when timeout processing is performed. [Figure 13] Figure 2 shows a flowchart illustrating the operation of the cloud control unit when scheduling a scale-out for an image processing system. [Figure 14] Figure 13 shows the flowchart for the reservation process. [Figure 15] Figure 2 shows a flowchart of the operation of the cloud control unit when scaling out the image processing system based on reservations. [Modes for carrying out the invention]

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

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

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

[0015] As shown in FIG. 1, a solution 12 is constructed on a public cloud 11. Here, as the solution 12, for example, a document management solution for managing documents can be adopted.

[0016] A provider of the solution 12 can lease at least part of the solution 12 to another party. A unit in which the provider of the solution 12 leases at least part of the solution 12 is referred to as a tenant. A plurality of tenants such as the tenant 13 can exist in the solution 12.

[0017] A plurality of users such as the user 14 can exist in the tenant 13. The configuration of any tenant other than the tenant 13 is the same as that of the tenant 13.

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

[0019] 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 which is a service for registering an FQDN (Fully Qualified Domain Name) of an external access point 31 described later; image forming apparatus programs such as an image forming apparatus program 60 which is a program executed by an image forming apparatus described later; and user terminal applications such as a user terminal application 70 which is an application executed by a user terminal described later.

[0020] The image forming apparatus program 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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] The database service 40 stores the following as data tables: a tenant management table 40a for managing tenants, a storage process management table 40b for managing storage processes, a configuration table 40c that shows the control settings for the Web server that implements the image processing system 38, and a scale-out reservation table 40d for managing reservations for scaling out the image processing system 38.

[0025] Figure 3 is a block diagram of the hardware configuration of system 20.

[0026] 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.

[0027] 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.

[0028] 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.

[0029] Image forming apparatuses are composed of, for example, MFPs (Multifunction Peripherals) and dedicated printers.

[0030] A user terminal is a computer that consists of, for example, a PC (Personal Computer) or a smartphone.

[0031] Figure 4 shows an example of a tenant management table 40a.

[0032] 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".

[0033] Figure 5 shows an example of the storage processing management table 40b.

[0034] 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.

[0035] Figure 6 shows an example of the setting table 40c.

[0036] The configuration table 40c shown in Figure 6 includes the tenant ID of the tenant to which the configuration applies, the base number of processes set as the number of ongoing save processes that serve as the basis for executing scale-out and scale-in of the image processing system 38, the scale-out number set as the number of scale-outs for one instance of the image processing system 38, the scale-in base time set as the base time for executing scale-in of the image processing system 38, the scale-in number set as the number of scale-ins for one instance of the image processing system 38, the timeout time set as the time for saving process timeouts, the reservation processing interval indicating the interval at which the image processing system 38 executes the scale-out reservation process, and the reservation execution difficulty indicating the difficulty of executing the scale-out reservation for the image processing system 38. The reservation execution difficulty is a number greater than or equal to 0, and a larger value indicates that it is more difficult to execute the scale-out reservation for the image processing system 38. Records in the configuration table 40c with a tenant ID of "000" are records for tenants in which the tenant ID is not explicitly specified in the configuration table 40c, i.e., records for standard configuration.

[0037] Figure 7 shows an example of a scale-out reservation table 40d.

[0038] The scale-out reservation table 40d shown in Figure 7 includes, for each reservation, the scheduled time of the reserved scale-out, the tenant ID of the tenant to which the reserved scale-out applies, and the target number of scale-outs.

[0039] Next, we will describe the operation of system 20.

[0040] 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.

[0041] 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.

[0042] Figure 8 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.

[0043] 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.

[0044] 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 8 to 10) will be "aap1".

[0045] 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 8. 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".

[0046] 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).

[0047] 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.

[0048] 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).

[0049] 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).

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

[0051] 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.

[0052] 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).

[0053] 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.

[0054] 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.

[0055] Figure 9 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.

[0056] 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 9).

[0057] 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 9 (S121).

[0058] 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).

[0059] 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".

[0060] 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.

[0061] 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).

[0062] Figure 10 is a flowchart showing the operation of the cloud control unit 39 when performing scale-out processing.

[0063] As shown in Figure 10, the cloud control unit 39 obtains the tenant ID in the corresponding record in the storage processing management table 40b from the request ID notified by the database service 40 in S124 (S141).

[0064] Next, the cloud control unit 39 aggregates the number of save processes in the save process management table 40b whose tenant ID is the tenant ID obtained in S141 (hereinafter referred to as the "obtained tenant ID" in the operation description shown in Figure 10) and whose processing status is "Processing" (S142).

[0065] Next, the cloud control unit 39 determines whether the number aggregated in S142 is less than or equal to the standard processing count for the record corresponding to the acquired tenant ID in the configuration table 40c (hereinafter referred to as the "target record" in the operation description shown in Figure 10) (S143). Here, if the acquired tenant ID is not explicitly stated as the tenant ID in the configuration table 40c, the cloud control unit 39 identifies the record with the tenant ID "000" as the target record.

[0066] If the cloud control unit 39 determines in S143 that the number aggregated in S142 is less than or equal to the standard number of processing steps in the target record of the setting table 40c, it aggregates the number of saving processes in the saving process management table 40b where the tenant ID is the acquired tenant ID and the processing status is "Ready" (S144).

[0067] Next, the cloud control unit 39 determines whether the number aggregated in S144 is equal to or greater than the scale-out number in the target record of the setting table 40c (S145).

[0068] If the cloud control unit 39 determines in S145 that the number aggregated in S144 is equal to or greater than the scale-out number in the target record of the configuration table 40c, it scales out the portion of the image processing system 38 for the target tenant by the same number of scale-outs in the target record of the configuration table 40c (S146). In other words, the cloud control unit 39 increases the number of web servers that implement the portion of the image processing system 38 for the target tenant by the same number of scale-outs in the target record of the configuration table 40c.

[0069] The cloud control unit 39 terminates the scale-out process shown in Figure 10 when it determines in S143 that the number aggregated in S142 is not less than or equal to the standard processing number for the target record in the setting table 40c, or when it determines in S145 that the number aggregated in S144 is not greater than or equal to the scale-out number for the target record in the setting table 40c, or when the process in S146 is completed.

[0070] As shown in Figure 9, when the scale-out process in S125 is completed, the cloud control unit 39 sets the URL of one of the Web servers that implements the portion of the image processing system 38 for the target tenant, which 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 (S146) in the scale-out process shown in Figure 10, it sets the URL of one of the Web servers newly secured by this scale-out as the processing server URL.

[0071] 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.

[0072] 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).

[0073] 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).

[0074] 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.

[0075] 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.

[0076] 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.

[0077] 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.

[0078] 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.

[0079] 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.

[0080] 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").

[0081] Figure 11 is a flowchart showing the operation of the cloud control unit 39 when performing scale-in processing.

[0082] The cloud control unit 39 executes the process shown in Figure 11 at regular intervals, such as every 5 minutes.

[0083] As shown in Figure 11, the cloud control unit 39 targets one tenant ID from the tenant management table 40a that has not yet been targeted in the operation shown in Figure 11 (S161).

[0084] Next, the cloud control unit 39 aggregates the number of save processes in the save process management table 40b whose tenant ID is the current target tenant ID and whose processing status is "Processing" (S162).

[0085] Next, the cloud control unit 39 determines whether the number aggregated in S162 is less than or equal to the standard processing count for the record corresponding to the current target tenant ID in the configuration table 40c (hereinafter referred to as the "target record" in the operation description shown in Figure 11) (S163). Here, if the current target tenant ID is not explicitly stated as the tenant ID in the configuration table 40c, the cloud control unit 39 identifies the record with tenant ID "000" as the target record.

[0086] If the cloud control unit 39 determines in S163 that the number aggregated in S162 is less than or equal to the standard number of processing steps for the target record in the setting table 40c, it aggregates the number of saving processes in the saving process management table 40b where the tenant ID is the current target tenant ID and the processing status is "Ready" (S164).

[0087] Next, the cloud control unit 39 determines whether the number aggregated in S164 is 0 or not (S165).

[0088] If the cloud control unit 39 determines in S165 that the number aggregated in S164 is 0, it identifies the most recent end time of all save processes in the save process management table 40b where the tenant ID is the current target tenant ID and the processing status is "End" (S166).

[0089] Next, the cloud control unit 39 calculates the elapsed time since the latest end time identified in S166 by subtracting the latest end time identified in S166 from the current time (S167).

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

[0091] If the cloud control unit 39 determines in S168 that the elapsed time calculated in S167 is equal to or greater than the scale-in reference time for the target record in the configuration table 40c, it scales in the portion of the image processing system 38 that corresponds to the current target tenant ID in the tenant management table 40a by the number of scale-ins for the target record in the configuration table 40c (S169). In other words, the cloud control unit 39 reduces the number of web servers that implement the portion of the image processing system 38 that corresponds to the current target tenant ID in the tenant management table 40a by the number of scale-ins for the target record in the configuration table 40c.

[0092] The cloud control unit 39 determines in S163 whether the number aggregated in S162 is not less than or equal to the standard number of processing steps for the target record in the configuration table 40c, or in S165 whether the number aggregated in S164 is not zero, or in S168 whether the elapsed time calculated in S167 is not greater than or equal to the scale-in standard time for the target record in the configuration table 40c, or when the processing in S169 is completed, whether there are any tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 11 (S170).

[0093] If the cloud control unit 39 determines in S170 that there are tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 11, it executes the process in S161.

[0094] If the cloud control unit 39 determines in S170 that there are no tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 11, it terminates the operation shown in Figure 11.

[0095] 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").

[0096] Figure 12 is a flowchart showing the operation of the cloud control unit 39 when timeout processing is performed.

[0097] The cloud control unit 39 executes the process shown in Figure 12 at regular intervals, such as every 5 minutes.

[0098] As shown in Figure 12, the cloud control unit 39 targets one tenant ID from the tenant management table 40a that has not yet been targeted in the operation shown in Figure 12 (S181).

[0099] Next, the cloud control unit 39 determines in the save processing management table 40b whether or not there is a save process whose tenant ID is the current target tenant ID and whose processing status is "Processing" (S182).

[0100] If the cloud control unit 39 determines in S182 that there is a save process in the save process management table 40b whose tenant ID is the current target tenant ID and whose processing status is "Processing", it identifies the request IDs of all save processes in the save process management table 40b whose tenant ID is the current target tenant ID and whose processing status is "Processing" as the request IDs of the save processes currently running (S183).

[0101] Next, the cloud control unit 39 processes only one request ID from the request IDs of ongoing save processes identified in S183 that has not yet been processed in S184 in the operation shown in Figure 12 (S184).

[0102] 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 (S185).

[0103] Next, the cloud control unit 39 determines whether the elapsed time calculated in S185 is equal to or greater than the timeout period for the record corresponding to the current target tenant ID in the configuration table 40c (hereinafter referred to as the "target record" in the operation description shown in Figure 12) (S186).

[0104] If the cloud control unit 39 determines in S186 that the elapsed time calculated in S185 is equal to or greater than the timeout period for the target record 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 (S187).

[0105] The cloud control unit 39 determines in S186 that the elapsed time calculated in S185 is not equal to or greater than the timeout period for the target record in the setting table 40c, or when the processing in S187 is completed, it determines in S183 whether there are any request IDs of ongoing save processes that have not yet been processed in S184 in the operation shown in Figure 12 (S188).

[0106] If the cloud control unit 39 determines in S188 that there are request IDs among the ongoing save processing request IDs identified in S183 that have not yet been processed in S184 in the operation shown in Figure 12, it executes the process in S184.

[0107] If the cloud control unit 39 determines in S182 that there is no save process in the save process management table 40b whose tenant ID is the current target tenant ID and whose processing status is "Processing", or if it determines in S188 that there are no request IDs among the request IDs of save processes currently in progress that have not yet been targeted for processing in S184 in the operation shown in Figure 12, it determines in S189 whether there are any tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 12.

[0108] If the cloud control unit 39 determines in S189 that there are tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 12, it executes the process in S181.

[0109] If the cloud control unit 39 determines in S189 that there are no tenant IDs among the tenant IDs shown in the tenant management table 40a that have not yet been targeted in the operation shown in Figure 12, it determines whether or not the request ID for the save process that is subject to the timeout was identified in S187 in the operation shown in Figure 12 (S190).

[0110] If the cloud control unit 39 determines in S190 that it has identified the request ID of the save process subject to the timeout in S187 in the operation shown in Figure 12, 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, which was identified in S187 in the operation shown in Figure 12 (S191).

[0111] The cloud control unit 39 terminates the operation shown in Figure 12 if it determines in S190 that it did not identify the request ID of the save process subject to the timeout in S187 in the operation shown in Figure 12, or if the process in S191 is completed.

[0112] 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 12 (S191). 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.

[0113] Next, we will describe the operation of the cloud control unit 39 when a scale-out of the image processing system 38 is reserved.

[0114] Figure 13 is a flowchart showing the operation of the cloud control unit 39 when a scale-out of the image processing system 38 is reserved.

[0115] The cloud control unit 39 executes the process shown in Figure 13 for each tenant ID shown in the tenant management table 40a, that is, for each tenant. In the following description of the operations shown in Figures 13 and 14, the tenant ID that is the target of the operations shown in Figures 13 and 14 will be referred to as the "target tenant ID," and the tenant corresponding to the target tenant ID in the tenant management table 40a will be referred to as the "target tenant."

[0116] As shown in Figure 13, the cloud control unit 39 determines whether the elapsed time since the last execution start time of the scale-out reservation process for the portion of the image processing system 38 for the target tenant is equal to or greater than the reservation process interval in the record corresponding to the target tenant ID in the configuration table 40c (hereinafter referred to as the "target record" in the operation description shown in Figures 13 and 14) (S201). Here, if there is no previous execution start time for the scale-out reservation process for the portion of the image processing system 38 for the target tenant, the cloud control unit 39 adopts the start time of the operation shown in Figure 13 as the previous execution start time for the scale-out reservation process for the portion of the image processing system 38 for the target tenant. Also, if the target tenant ID is not explicitly specified as the tenant ID in the configuration table 40c, the cloud control unit 39 identifies the record with a tenant ID of "000" as the target record.

[0117] If the cloud control unit 39 determines in S201 that the elapsed time since the start time of the previous execution of the scale-out reservation process for the portion of the image processing system 38 used by the target tenant is equal to or greater than the reservation process interval in the target record of the setting table 40c, it executes the scale-out reservation process for the portion of the image processing system 38 used by the target tenant (S202).

[0118] The cloud control unit 39 executes the process in S201 if it determines in S201 that the elapsed time since the last execution start time of the scale-out reservation process for the portion of the image processing system 38 for the target tenant is not equal to or greater than the reservation process interval in the target record in the setting table 40c, or if it executes the process in S202.

[0119] Figure 14 is a flowchart of the reservation process shown in Figure 13.

[0120] As shown in Figure 14, the cloud control unit 39 identifies the target range as the period past the reservation processing interval in the target record of the setting table 40c from the current time (S221).

[0121] Next, the cloud control unit 39 aggregates the number of save processes in the save process management table 40b where the tenant ID is the target tenant ID and the reception time falls within the target range identified in S221 (S222).

[0122] Next, the cloud control unit 39 calculates the average number of requests received per unit time for storage processing within the target range identified in S221 (hereinafter referred to as the "average number of requests received") (S223). In this embodiment, the unit time is 1 hour. Therefore, the cloud control unit 39 calculates the average number of requests received by dividing the number aggregated in S222 by the reservation processing interval in the target record of the setting table 40c. For example, if the reservation processing interval in the target record of the setting table 40c is 1 week, i.e., 168 hours, and the number aggregated in S222 is 1680, then the average number of requests received calculated in S223 will be the value obtained by dividing 1680 by 168, i.e., 10.

[0123] When the processing in S223 is completed, the cloud control unit 39 calculates a number obtained by multiplying the average number of reservations calculated in S223 by the difficulty of executing the reservation in the target record in the setting table 40c (hereinafter referred to as the "corrected average number of reservations") (S224). For example, if the average number of reservations calculated in S223 is 10 and the difficulty of executing the reservation in the target record in the setting table 40c is 0.8, the corrected average number of reservations calculated in S224 will be 10 multiplied by 0.8, i.e., 8.

[0124] When the processing in S224 is completed, the cloud control unit 39 identifies the first unit of time within the target range identified in S221 as the target period (S225).

[0125] Next, the cloud control unit 39 aggregates the number of save processes in the save process management table 40b whose tenant ID is the target tenant ID and whose reception time falls within the target period (hereinafter referred to as "number of receptions during the target period") (S226).

[0126] Next, the cloud control unit 39 determines whether the number of receptions for the target period aggregated in S226 is greater than the corrected average number of receptions calculated in S224 (S227).

[0127] If the cloud control unit 39 determines in S227 that the number of receptions for the target period aggregated in S226 is greater than the corrected average number of receptions calculated in S224, it determines in S226 whether the number of receptions for the target period aggregated in S226 is greater than the sum of the standard processing count and the scale-out count in the target records of the setting table 40c (S228).

[0128] If the cloud control unit 39 determines in S228 that the number of requests received for the target period aggregated in S226 is greater than the sum of the standard processing count and the scale-out count in the target record of the configuration table 40c, then it adds a reservation to the scale-out reservation table 40d where the scheduled time is one hour before the start time of the target period, the tenant ID is the target tenant ID, and the sum of the standard processing count and the scale-out count in the target record of the configuration table 40c is the target number (S229).

[0129] If the cloud control unit 39 determines in S228 that the number of reservations accepted for the target period aggregated in S226 is not greater than the sum of the number of standard processing and the number of scale-out reservations in the target record of the setting table 40c, then it adds a reservation to the scale-out reservation table 40d where the scheduled time is one hour before the start time of the target period in the target record of the setting table 40c, the tenant ID is the target tenant ID, and the number of reservations accepted for the target period aggregated in S226 is the target number (S230).

[0130] Furthermore, the scaling out of the image processing system 38 may not be completed in a short time. Therefore, in order to increase the likelihood that the appropriate scaling out of the image processing system 38 will be completed after the reserved processing interval relative to the start time of the target period, the cloud control unit 39 generates a reservation in S229 and S230 where the scheduled time is one hour before the reserved processing interval relative to the start time of the target period, rather than a reservation where the scheduled time is after the reserved processing interval relative to the start time of the target period. This "one hour" may be changed to any time.

[0131] The cloud control unit 39 determines in S227 that the number of receptions for the target period aggregated in S226 is not greater than the corrected average number of receptions calculated in S224, or, once the processing in S229 or S230 is completed, whether the end time of the target period is after the end time of the target range identified in S221 (S231).

[0132] If the cloud control unit 39 determines in S231 that the end time of the target period is not after the end time of the target range identified in S221, it identifies the period immediately following the current target period as the new target period within the target range identified in S221 (S232).

[0133] Next, the cloud control unit 39 executes the process in S226.

[0134] If the cloud control unit 39 determines in S231 that the end time of the target period is after the end time of the target range identified in S221, it terminates the operation shown in Figure 14.

[0135] Next, we will describe the operation of the cloud control unit 39 when scaling out the image processing system 38 based on reservations.

[0136] Figure 15 is a flowchart showing the operation of the cloud control unit 39 when scaling out the image processing system 38 based on reservations.

[0137] As shown in Figure 15, the cloud control unit 39 determines whether there are any reservations in the scale-out reservation table 40d whose scheduled time is earlier than the current time (S241).

[0138] If the cloud control unit 39 determines in S241 that there is a reservation in the scale-out reservation table 40d whose scheduled time is earlier than the current time, it targets the oldest reservation in the scale-out reservation table 40d whose scheduled time is earlier than the current time (S242).

[0139] Next, the cloud control unit 39 determines whether the number of web servers that implement the portion of the image processing system 38 for the tenant associated with the tenant ID in the current target reservation in the tenant management table 40a (hereinafter referred to as "target tenant" in the operation description shown in Figure 15) is equal to or greater than the target number for the current target reservation (S243).

[0140] If the cloud control unit 39 determines in S243 that the number of web servers that implement the portion of the image processing system 38 for the target tenant is not equal to or greater than the target number for the current reservation, it scales out the portion of the image processing system 38 for the target tenant so that the number of web servers that implement the portion of the image processing system 38 for the target tenant becomes equal to the target number for the current reservation (S244).

[0141] The cloud control unit 39 determines in S243 that the number of web servers that implement the portion of the image processing system 38 for the target tenant is equal to or greater than the target number for the current target reservation, or when the processing in S244 is completed, it deletes the current target reservation from the scale-out reservation table 40d (S245).

[0142] The cloud control unit 39 executes the process in S241 if it determines in S241 that there are no reservations in the scale-out reservation table 40d whose scheduled time is earlier than the current time, or if the process in S245 is completed.

[0143] 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.

[0144] 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.

[0145] The tenant management system 30 does not perform a scale-out of the image processing system 38 (S146) if the number of currently running save processes is not below a certain number of processes (NO in S143), thus preventing the image processing system 38 from being scaled out indefinitely. Therefore, the tenant management system 30 can perform scale-out effectively.

[0146] The tenant management system 30 does not perform a scale-out of the image processing system 38 (S146) if the number of save processes waiting to be executed is not equal to or greater than the scale-out number (NO in S145). 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.

[0147] 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 S143) and when the number of save processes waiting to be executed is greater than or equal to the scale-out number (YES in S145) (S146). 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.

[0148] The tenant management system 30 allows the maximum number of web servers that implement the tenant-specific portion of the image processing system 38, i.e., the sum of the baseline processing count and the scale-out count, to be set for each tenant (see Figure 6). Since the scale-out of the tenant-specific portion of the image processing system 38 is performed for each tenant (S146 and S244), scale-out can be performed according to the tenant. Therefore, the tenant management system 30 can efficiently operate as a whole while satisfying the needs of both tenants, for example, those who perform a large number of save processes or have a high processing load per process, and tenants who perform a small number of save processes or have a low processing load per process.

[0149] The tenant management system 30 allows a scale-out number, which indicates the number of scale-out operations per tenant, to be set for each tenant (see Figure 6), so that a scale-out operation can be performed according to the tenant (S146).

[0150] 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."

[0151] The tenant management system 30 executes a scale-out reservation, with the scheduled time being a specific time after the start time of a period in which the number of save processes per unit time (number of requests for the target period) was greater than a specific number (average number of requests after correction), based on the history of save processes performed by the image processing system 38, i.e., the save process management table 40b (S229 and S230). This allows the system to perform scale-outs that need to be executed periodically.

[0152] The tenant management system 30 allows each tenant to set both the reservation processing interval and the reservation execution difficulty level (see Figure 6). The tenant management system 30 then executes scale-out reservations for each tenant based on the history of the storage process performed by the image processing system 38, so that scale-out reservations can be executed according to the tenant.

[0153] The tenant management system 30 periodically performs scale-in processing on the image processing system 38 (S161-S170), 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.

[0154] The tenant management system 30 does not perform a scale-in (S169) on the image processing system 38 if the number of currently running save processes is not below the standard number of processes (NO in S163). 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.

[0155] The tenant management system 30 does not perform a scale-in (S169) on the image processing system 38 if there are save processes waiting to be executed (NO in S165). 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.

[0156] The tenant management system 30 does not perform the scale-in operation of the image processing system 38 (S169) 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 S168). 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.

[0157] The tenant management system 30 performs a scale-in of the image processing system 38 by the required number of scale-in units (S169) when the number of save processes currently running is less than or equal to the standard number of processes, and there are no save processes waiting to be executed (YES in S163 and S165), 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 S168). Therefore, when a scale-in of the image processing system 38 is necessary, the tenant management system 30 can scale in the image processing system 38 by the required amount. Thus, the tenant management system 30 can effectively perform scale-in.

[0158] The tenant management system 30 allows the standard number of processes, the scale-in standard time, and the scale-in number to be set for each tenant (see Figure 6), so that scale-in can be performed according to the tenant.

[0159] 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.

[0160] 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.

[0161] The tenant management system 30 stops the web server (S191) 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 S186). 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.

[0162] The tenant management system 30 periodically performs timeout processing for the image processing system 38 (S181-S191), 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.

[0163] The tenant management system 30 allows the timeout period to be set for each tenant (see Figure 6), so it can perform timeout processing according to the tenant (S181~S191). [Explanation of Symbols]

[0164] 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)

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 that performs the scale-out of the data storage system and Equipped with, The cloud control unit executes the reservation process if the elapsed time since the start time of the previous execution of the scale-out reservation process is equal to or greater than the reservation process interval, which indicates the interval between executions of the reservation process. In the reservation process, the cloud control unit obtains, for each unit of time period, the number of save processes, which is the number of save processes received within that period, based on the history of the save processes executed in the data storage system. The cloud control unit, in the reservation process, identifies the start time of the period in which the number of saved processes was greater than a certain number. The cloud control unit is characterized in that, in the reservation process, it executes the scale-out reservation in which the scheduled time is a predetermined time before the time after the reservation processing interval relative to the start time.

2. The cloud system according to claim 1, characterized in that the cloud control unit executes the reservation for each tenant based on the history for each tenant.

3. The cloud system according to claim 1 or 2, characterized in that the specific number is calculated based on the average number of receptions per unit time for the storage process in the past range from the current time to the reservation processing interval.

4. A cloud control method for scaling out 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 step of executing the reservation process if the elapsed time since the start time of the previous execution of the scale-out reservation process is equal to or greater than the reservation process interval, which indicates the interval between executions of the reservation process, In the aforementioned reservation process, for each unit of time period, the number of save processes, which is the number of save processes received within that period, is obtained based on the history of the save processes executed in the data storage system. The reservation process includes the step of identifying the start time of the period in which the number of saved processes was greater than a certain number, The reservation process involves the step of executing the scale-out reservation, where the scheduled time is a predetermined time before the time after the reservation processing interval relative to the start time. A cloud control method characterized by comprising the following features.

Citation Information

Patent Citations

  • Information processing device, information processing system, and program

    JP2019086949A

  • System and method using the same

    JP2019139591A

  • System and method for proactively provisioning resources to an application

    US10387810B1

  • Predictive auto scaling engine

    US20150113120A1

  • Monitoring data streams and scaling computing resources based on the data streams

    US20190268278A1