Control device, control method, and program

The control device predicts user demand to manage application instances and service chaining, addressing service delays by proactive resource allocation for timely and high-quality service delivery.

JP7806884B2Active Publication Date: 2026-01-27NEC CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024510560
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-28
Publication Date
2026-01-27
Estimated Expiration
2042-03-28

AI Technical Summary

Technical Problem

Existing technologies face delays in service provision due to reactive scaling in response to increased service load, leading to temporary service disruptions and reduced quality.

Method used

A control device predicts user demand before service initiation, controlling application instances and service chaining based on predicted user numbers to proactively manage resource allocation.

Benefits of technology

This approach ensures timely and high-quality service delivery by preventing delays and meeting low-latency requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007806884000001
    Figure 0007806884000001
  • Figure 0007806884000002
    Figure 0007806884000002
  • Figure 0007806884000003
    Figure 0007806884000003
Patent Text Reader

Abstract

This control device (2000) predicts, for a target service to be provided at a service provision location, the number of users of the target service before the start of the provision. The control device (2000) performs control pertaining to instances of applications for providing the target service or control of service chaining between a plurality of applications, on the basis of the predicted number of users.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a technique for preventing service delays. [Background technology]

[0002] Services are provided via a network. Patent Document 1 discloses that service requests are distributed among service nodes in accordance with a service policy. It also discloses that one method of load distribution involves scaling out virtual machines or the like according to the service load. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2017-118575 Summary of the Invention [Problem to be solved by the invention]

[0004] Scaling out in response to service load involves dealing with increases in service load after the fact. As a result, service delays are likely to occur for a while after the service load increases. The present invention was made in light of these issues, and one of its objectives is to provide a new technology for preventing service delays. [Means for solving the problem]

[0005] The control device of the present disclosure has a prediction unit that predicts the number of users of a service provided at a specific location before the service begins to be provided, and a control unit that controls the instances of an application that provides the service or controls service chaining between multiple applications based on the predicted number of users.

[0006] A control method according to the present disclosure is executed by a computer and includes a prediction step of predicting the number of users of a service provided at a specific location before the service starts to be provided, and a control step of controlling an instance of an application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users.

[0007] The non-transitory computer-readable medium of the present disclosure stores a program that causes a computer to execute the control method of the present disclosure. [Effects of the Invention]

[0008] According to the present disclosure, a new technique for preventing service delays is provided. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 2 is a diagram illustrating an example of an outline of the operation of the control device of the first embodiment. [Figure 2] 2 is a block diagram illustrating a functional configuration of a control device according to the first embodiment. FIG. [Figure 3] FIG. 2 is a block diagram illustrating a hardware configuration of a computer that realizes a control device. [Figure 4] 4 is a flowchart illustrating a flow of processing executed by the control device of the first embodiment. [Figure 5] 10 is a diagram illustrating an example of information associating the predicted number of users with the required number of instances. FIG. [Figure 6] FIG. 1 is a diagram illustrating an example of multiple clusters located at separate locations. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In each drawing, the same or corresponding elements are designated by the same reference numerals, and duplicate explanations will be omitted as necessary for clarity. Furthermore, unless otherwise specified, predetermined values ​​such as predetermined values ​​and reference values ​​are stored in advance in any storage unit in a manner accessible from a device that uses the values. Furthermore, unless otherwise specified, the storage unit is composed of one or more any number of storage devices.

[0011] [Embodiment 1] <Summary> Fig. 1 is a diagram illustrating an example of an outline of the operation of the control device 2000 according to the first embodiment. Here, Fig. 1 is a diagram for facilitating understanding of the outline of the control device 2000, and the operation of the control device 2000 is not limited to that shown in Fig. 1.

[0012] Before the provision of a service begins, the control device 2000 controls the instances of the applications used to provide the service or controls the service chaining between applications. Hereinafter, an application is software that performs some or all of the processing required to provide the service. Hereinafter, an application that is the target of control by the control device 2000 will be referred to as a target application. Furthermore, a service provided using a target application will be referred to as a target service.

[0013] To provide the target service, one or more instances of the target application are used. Here, the target application used to provide the target service may be one type or multiple types. In the former case, one or more instances of one type of target application are generated. In the latter case, one or more instances are generated for each of the multiple types of target applications. Then, the target service is realized by the multiple types of target applications working together.

[0014] The target service is provided at a specific location. The location where the target service is provided is, for example, an event venue where an event related to the target service is held. For example, a video viewing service is provided at a stadium where a sports match is held, providing video of the match filmed from various angles. By using this video viewing service, people watching the match at the stadium can enjoy the match even more by watching the match live from the spectator seats and using the video viewing service on their own mobile device. In this situation, the target service is a video viewing service, the service providing location is the stadium, and the users of the target service are some or all of the spectators at the match.

[0015] A similar video viewing service can also be provided at a public viewing venue. At the public viewing venue, live game footage is played on a large display that can be viewed by many participants. At this time, the above-mentioned video viewing service is provided to the participants of the public viewing. Participants can enjoy the game even more by watching the game footage on the large display and using the video viewing service on their own mobile devices. In this situation, the target service is a video viewing service, the service provision location is the public viewing venue, and the users of the target service are some or all of the participants of the public viewing.

[0016] The system providing the video viewing service described above may use an encoding server, a processing server, or a distribution server. The encoding server encodes the video data generated by the camera into a format suitable for distribution. The processing server performs processes such as adding captions to the video data and converting the video data to focus on a specific person. The distribution server distributes the processed video data to the user's device.

[0017] Therefore, for example, each piece of software that realizes the functions of these servers is treated as a target application in the control device 2000. Also, an instance of a virtual machine or the like that realizes these servers is treated as an instance of the target application.

[0018] In some cases, it may be preferable to place a security VNF (Virtual Network Function) between the server and the user's terminal. Therefore, such a security VNF may be treated as the target application. In this case, an instance such as a virtual machine that realizes the security VNF is treated as an instance of the target application. Note that VNFs that can be treated as the target application are not limited to security VNFs, and any type of VNF can be treated as the target application.

[0019] The control device 2000 predicts the number of users of the target service and controls the instances of the target application or the service chaining between multiple target applications according to the predicted number of users (hereinafter referred to as the predicted number of users). The control of the instances of the target application includes, for example, control of the number of instances and control of the computer resources allocated to the instances.

[0020] In the example of the video viewing service mentioned above, the number of distribution servers and processing servers may be increased or decreased or their placement may be changed depending on the increase or decrease in the number of users. Furthermore, the number of security VNFs may also be increased or decreased or their placement may be changed depending on the increase or decrease in the number of distribution servers and processing servers. Service chaining is used to ensure that these dynamically increasing or decreasing target applications work together appropriately on the network.

[0021] <Example of effects> According to the control device 2000 of this embodiment, before the provision of the target service is started, the number of users of the target service is predicted, and based on the predicted number of users, control of the instances of the target application or control of service chaining between the target applications is performed. This makes it possible to appropriately control the applications used to provide the target service before the provision of the target service is started.

[0022] Here, it is assumed that such control is not performed before the target service is provided, but is performed only after the target service has started to be provided. In this case, the target service will be dealt with retroactively depending on the actual load on the target service. As a result, there is a possibility that the target service will not be provided properly, such as large delays occurring for a while after the target service has started to be provided. Furthermore, if the number of users of the target service continues to increase, there is a risk that the situation in which delays occur will continue. This will reduce the convenience of the target service. Furthermore, for services that require low latency, the required service quality will not be met.

[0023] In this regard, according to the control device 2000 of this embodiment, control of the target application is appropriately performed before the provision of the target service is started. Therefore, the target service can be appropriately provided from the time the provision of the target service is started. This makes it possible to improve the convenience of the target service. Furthermore, it is possible to satisfy the required service quality for services that require low latency.

[0024] The control device 2000 of this embodiment will be described in more detail below.

[0025] <Example of functional configuration> 2 is a block diagram illustrating an example of the functional configuration of the control device 2000 according to the first embodiment. The control device 2000 includes a prediction unit 2020 and a control unit 2040. The prediction unit 2020 predicts the number of users of a target service before provision of the target service begins. The control unit 2040 controls instances of the target application or controls service chaining between target applications based on the predicted number of users of the target service.

[0026] <Example of hardware configuration> Each functional component of the control device 2000 may be realized by hardware that realizes the functional component (e.g., a hardwired electronic circuit, etc.), or may be realized by a combination of hardware and software (e.g., a combination of an electronic circuit and a program that controls it). Below, a case where each functional component of the control device 2000 is realized by a combination of hardware and software will be further described.

[0027] 3 is a block diagram illustrating an example of the hardware configuration of a computer 500 that realizes the control device 2000. The computer 500 is any computer. For example, the computer 500 is a stationary computer such as a PC (Personal Computer) or a server machine. Alternatively, the computer 500 may be a portable computer such as a smartphone or a tablet terminal. The computer 500 may be a dedicated computer designed to realize the control device 2000, or may be a general-purpose computer.

[0028] For example, by installing a predetermined application on the computer 500, the computer 500 realizes each function of the control device 2000. The application is configured with a program for realizing each functional component of the control device 2000. The method for acquiring the program is arbitrary. For example, the program can be acquired from a storage medium (such as a DVD disk or USB memory) on which the program is stored. Alternatively, the program can be acquired by downloading the program from a server device that manages the storage device on which the program is stored.

[0029] The computer 500 includes a bus 502, a processor 504, a memory 506, a storage device 508, an input / output interface 510, and a network interface 512. The bus 502 is a data transmission path for the processor 504, the memory 506, the storage device 508, the input / output interface 510, and the network interface 512 to transmit and receive data to and from each other. However, the method for connecting the processor 504 and other components to each other is not limited to a bus connection.

[0030] The processor 504 is a variety of processors, such as a central processing unit (CPU), a graphics processing unit (GPU), or a field-programmable gate array (FPGA). The memory 506 is a main storage device realized using a random access memory (RAM) or the like. The storage device 508 is an auxiliary storage device realized using a hard disk, a solid state drive (SSD), a memory card, or a read-only memory (ROM) or the like.

[0031] The input / output interface 510 is an interface for connecting the computer 500 to an input / output device. For example, the input / output interface 510 is connected to an input device such as a keyboard and an output device such as a display device.

[0032] The network interface 512 is an interface for connecting the computer 500 to a network. This network may be a LAN (Local Area Network) or a WAN (Wide Area Network).

[0033] The storage device 508 stores a program (a program that realizes the above-mentioned application) that realizes each functional component of the control device 2000. The processor 504 reads this program into the memory 506 and executes it, thereby realizing each functional component of the control device 2000.

[0034] The control device 2000 may be realized by one computer 500 or by multiple computers 500. In the latter case, the configurations of the computers 500 do not need to be the same, and can be different from each other.

[0035] <Processing flow> 4 is a flowchart illustrating the flow of processing executed by the control device 2000 according to the first embodiment. The prediction unit 2020 calculates the predicted number of users of the target service (S102). The control unit 2040 controls the instances of the target application or the service chaining between the target applications based on the predicted number of users (S104).

[0036] The control device 2000 may perform the above series of processes at various times. For example, the control device 2000 may perform the series of processes when it receives a predetermined user input. Alternatively, the control device 2000 may perform the series of processes at a predetermined timing. For example, the control device 2000 may perform the series of processes when it receives a predetermined time (e.g., 30 minutes or 1 hour) before the start date and time of the provision of the target service. This allows the instances of the target application and the service chaining between the target applications to be properly configured before the provision of the target service starts.

[0037] <Prediction of the number of users of the target service: S102> The prediction unit 2020 predicts the number of users of the target service (S102). For example, the number of users of the target service is predicted based on the number of people predicted to come to the location where the target service is provided. Hereinafter, people who come to the location where the target service is provided are referred to as visitors, and the predicted number of visitors is referred to as the predicted number of visitors. In the example of the video viewing service mentioned above, if the video viewing service is provided at a stadium, the spectators at the stadium are the visitors. Also, if the video viewing service is provided at a public viewing venue, the participants in the public viewing are the visitors.

[0038] The prediction unit 2020 calculates the predicted number of visitors. The predicted number of visitors is predicted, for example, using information obtained from various devices (such as IoT (Internet of Things) devices) installed near the location where the target service is provided. Some specific examples of this method are described below.

[0039] For example, the prediction unit 2020 acquires video data generated by a surveillance camera installed near the location where the target service is provided (e.g., a surveillance camera installed within a predetermined distance from the location where the target service is provided) and analyzes the video data to calculate the predicted number of attendees. For example, based on the results of past events, the ratio between the number of people detected from the video data and the number of attendees is determined in advance. The prediction unit 2020 acquires video data generated at least a predetermined time (e.g., two hours or three hours) before the start date and time of the provision of the target service, and analyzes the video data to identify the number of people captured by the surveillance camera. The prediction unit 2020 uses the value obtained by multiplying the number of people captured by the surveillance camera by the ratio as the predicted number of attendees.

[0040] In addition, for example, the prediction unit 2020 acquires usage record data indicating usage records of the nearest train station or nearest bus terminal (hereinafter, "nearest station") to the location where the target service is provided, and calculates the predicted number of visitors by analyzing the usage record data. For example, the ratio between the number of users of the nearest station and the number of visitors is determined in advance based on the results of past events. The prediction unit 2020 acquires usage record data from a predetermined time before the start date and time of the provision of the target service, and analyzes the usage record data to identify the number of users of the nearest station. The prediction unit 2020 uses the value obtained by multiplying the number of users of the nearest station by the ratio as the predicted number of visitors.

[0041] Alternatively, for example, it may be assumed that tickets must be purchased to use some or all of the locations where the target service is provided. In this case, the prediction unit 2020 may calculate the predicted number of attendees based on the number of tickets sold. For example, the prediction unit 2020 may use the number of tickets sold as the predicted number of attendees. Alternatively, for example, the ratio between the number of tickets sold and the number of attendees may be determined in advance based on the results of past events. In this case, the prediction unit 2020 uses the value obtained by multiplying the number of tickets sold by the ratio as the predicted number of attendees. Note that information indicating the number of tickets sold can be obtained, for example, from a server of a system that manages ticket sales.

[0042] The prediction unit 2020 calculates the predicted number of users (the predicted number of users of the target service) from the predicted number of attendees. For example, the ratio of users of the target service to all attendees is determined in advance based on the results of past events or the results of a preliminary survey. In this case, the prediction unit 2020 uses the value obtained by multiplying the predicted number of attendees by the ratio as the predicted number of users.

[0043] Alternatively, for example, the prediction unit 2020 may calculate the predicted number of users by further considering the attributes of the predicted visitors in addition to the predicted number of visitors. For example, age group can be used as the visitor attribute. These attributes can be identified by analyzing, for example, video data generated by the aforementioned surveillance camera or usage records of the nearest station, etc. When using video data, the prediction unit 2020 classifies people detected from the video data by age group and counts the number of people for each age group. This makes it possible to calculate the predicted number of visitors for each age group. Note that existing technology can be used to predict the ages of people included in the video data.

[0044] Here, the proportion of people using the target service may differ for each age group. For example, a video viewing service using a mobile device is likely to be used more by younger people than by the elderly. Therefore, for example, the ratio of the total number of visitors to the number of users of the target service is determined for each age group. This ratio can be determined, for example, based on the past usage history of the target service aggregated by age group or the past usage history of similar services. If the target service is the aforementioned video viewing service, for example, a similar service could be a video distribution service.

[0045] The prediction unit 2020 calculates the predicted number of users for each age group by multiplying the predicted number of visitors calculated for that age group by the ratio set for that age group.The prediction unit 2020 then calculates the overall predicted number of users by adding up the predicted numbers of users calculated for each age group.

[0046] When calculating the predicted number of users for each attribute as described above, the attribute to be used is not limited to age group, and various attributes related to people can be used.

[0047] <Control of instance or service chaining: S104> The control unit 2040 controls the instance of the target application or the service chaining between the target applications (S104). Below, specific examples of the control of the instance and the service chaining will be given for each type of control.

[0048] <<Controlling the number of instances>> For example, the control unit 2040 determines the number of instances required (hereinafter, the required number) for each target application based on the number of users of the target service. Then, the control unit 2040 increases or decreases the number of instances so that the number of instances of the target application matches the required number.

[0049] For example, for each target application, a correspondence between the predicted number of users of the target service and the required number of instances of the target application is determined in advance. This correspondence can be generated, for example, by using the results of past events or simulations.

[0050] FIG. 5 is a diagram illustrating information associating the predicted number of users with the required number of instances. Table 100 in FIG. 5 associates three pieces of data: application identification information 102, number of users 104, and number of instances 106. Application identification information 102 indicates identification information (such as a name or identifier) ​​of the target application. Number of users 104 indicates a numerical range of the predicted number of users. Number of instances 106 indicates the required number of instances of the target application. For example, the record in the first row of table 100 indicates that for a target application a001, if the predicted number of users is equal to or greater than Np1 and less than Np2, the required number of instances is Ni1.

[0051] Alternatively, for example, the control unit 2040 may use the predicted number of users to calculate the amount of computer resources required for the target application, and then use the amount of computer resources required for the target application to calculate the required number of instances of the target application. In this case, for example, the amount of computer resources that can be provided by one instance of the target application is determined in advance. Then, the control unit 2040 calculates the required number of instances of the target application based on the amount of computer resources required for the target application and the amount of computer resources that can be provided by one instance.

[0052] For example, for each target application, a correspondence relationship between the predicted number of users of the target service and the amount of computer resources required for that target application is determined in advance. This correspondence relationship can be generated, for example, by using the results of past events or simulations. The control unit 2040 calculates the amount of computer resources required by using the predicted number of users and this correspondence relationship.

[0053] The calculation of the amount of computer resources required by the target application may take into account parameters other than the predicted number of users. Examples of such parameters include the date, day of the week, the location where the target service is provided, the weather in the location where the target service is provided, the content of the target service, past performance data, network usage, and physical network design. For example, in the case of the video viewing service mentioned above, it is possible to predict that the number of visitors will decrease on rainy days or that visitors will concentrate in stadiums with roofs. Other parameters that may be used to calculate the amount of computer resources required by the target application include the amount of computer resources currently used by the target application and the amount of computer resources currently used by the physical machine on which the target application is running.

[0054] Therefore, for example, a calculation model (e.g., a linear regression model) for calculating the amount of computer resources required for the target application from the predicted number of users and the values ​​of the various parameters described above is prepared in advance. The control unit 2040 uses this calculation model to calculate the amount of computer resources required for the target application. The calculation model can be generated by learning using past performance, simulations, etc.

[0055] The control unit 2040 controls the number of instances for each target application so that the number of instances matches the required number calculated using the method described above. There are various specific methods for controlling the number of application instances. For example, the control unit 2040 transmits control information indicating the number of instances to control software on a computer on which the target application runs. The control information indicates, for example, the identification information of the target application and the required number of instances of the target application. In response to receiving the control information, the control software starts or stops the instances so that the number of instances of the target application matches the required number indicated in the control information.

[0056] Note that existing methods can be used as specific methods for starting and stopping application instances. For example, suppose that an instance of the target application is executed on an instance of an execution environment such as a virtual machine or a container. In this case, the number of instances of the target application can be increased or decreased by increasing or decreasing the number of instances of these execution environments (for example, the number of virtual machines or containers). However, multiple instances of the target application may run on one instance of the execution environment.

[0057] The computer on which the instance of the target application runs may be the same computer on which the control device 2000 runs. In other words, the control software that starts and stops the instance of the target application may run on the control device 2000.

[0058] The destination of the control information is not limited to the control software on the computer on which the target application instance is running. For example, suppose there are multiple computers available that can run the target application instance. Hereinafter, a group of such multiple computers will be referred to as a cluster. An example of an environment in which a cluster is available is a data center. In such an environment, a cluster control device that controls the cluster may be provided. The cluster control device monitors the operating status of each computer that makes up the cluster (such as the usage of each computer resource and the type of application currently running) and controls the placement of the application instance.

[0059] For example, the control unit 2040 transmits the above-described control information to the cluster control device. In response to receiving the control information, the cluster control device starts or stops instances of the target application on the cluster so that the number of instances of the target application matches the required number indicated in the control information. When starting an application instance, the cluster control device selects a computer from the cluster on which to start a new application instance, and starts the application instance on that computer. On the other hand, when stopping an application instance, the cluster control device selects an instance to stop from among the application instances already running on the cluster. Then, the cluster control device stops the selected instance.

[0060] In addition, existing methods can be used to determine which computer will start a new application instance and which application instance will be stopped, depending on the operating status of each computer that makes up the cluster.

[0061] Furthermore, the computer that realizes the cluster control device may be the same computer that realizes the control device 2000. In other words, the control device 2000 may have the function of the cluster control device.

[0062] Here, multiple clusters may be prepared in geographically separate locations (for example, different data centers). In this case, it is preferable that the control unit 2040 determines the number of instances of the target application and also the cluster in which the instances of the target application should be placed. In this case, for example, the control unit 2040 acquires location information indicating the service provision location. Then, the control unit 2040 determines the cluster in which the instances of the target application should be placed based on the service provision location indicated in the location information.

[0063] The cluster in which the target application instances are deployed is, for example, the cluster located closest to the service providing location. Here, the index for measuring the proximity between two locations may be the geographical distance (distance in the real world) between those locations, or the network distance (number of hops, etc.) connecting those locations.

[0064] 6 is a diagram illustrating an example of multiple clusters located at separate locations. In this example, three data centers, DC1, DC2, and DC3, are provided. Each data center has a cluster that can be used to provide a target service.

[0065] The control unit 2040 determines the cluster located closest to the service providing location as the cluster in which to place the target application. In this example, the cluster closest to the service providing location is installed in data center DC2. Therefore, the control unit 2040 places an instance of the target application in the cluster installed in data center DC2.

[0066] Here, when multiple clusters are provided in locations distant from each other in this way, a device (hereinafter referred to as a cluster group control device) that controls these multiple clusters may be provided. In this case, for example, the control unit 2040 transmits to the cluster group control device identification information of the cluster to be used, identification information of the target application, and information indicating the required number of instances of the target application. The cluster group control device further transmits identification information of the target application and information indicating the required number of instances of the target application to the cluster control device corresponding to the cluster indicated in the received information. The cluster control device that receives this information increases or decreases the number of instances of the target application according to the required number of instances of the target application indicated in this information.

[0067] In addition, when multiple clusters are provided in this manner, the instances of the target application may be transferred instead of starting or stopping the instances of the target application. For example, in the case of Figure 6, the instances of the target application can be increased by transferring the instances of the target application from a data center other than data center DC2 to data center DC2. On the other hand, the instances of the target application can be decreased by transferring the instances of the target application from data center DC2 to another data center.

[0068] Here, existing technologies can be used to transfer application instances between clusters. For example, if an application instance runs on a virtual machine, the application instance can be transferred by transferring the virtual machine between clusters.

[0069] <Service chaining control: S104> The control unit 2040 controls service chaining between target applications (S104). As described above, the control unit 2040 increases / decreases the number of instances of each target application and changes their placement depending on the predicted number of users of the target service, etc. Here, when the number of target applications is increased / decreased or their placement is changed, it is necessary to appropriately link the series of target applications that connect the source of data provided to the user's terminal to the terminal on the network. In the video viewing service described above, for example, the target applications are linked on the network in the following order: a camera that generates video; an encoding server that encodes the video data generated by the camera; a processing server that processes the encoded video data; a delivery server that delivers the processed video data to the user's terminal; a security VNF that intervenes between the delivery server and the user's terminal; and the user's terminal that receives the video data that has passed through the security VNF. The control unit 2040 appropriately links the series of target applications on the network (i.e., service chaining) depending on the increase / decrease of the number of target application instances and their placement.

[0070] For example, service chaining in response to an increase or decrease in instances or changes in placement is performed based on predetermined rules. Existing technologies can be used as a specific method for performing service chaining based on predetermined rules. The following rules, for example, can be considered as service chaining rules for the video viewing service described above. First, a video processing server is deployed between the encoding server and the distribution server. Furthermore, a VNF for load balancing is deployed between various servers. If a user adds a security service, an additional security VNF is deployed. Then, the user terminal, security VNF, video processing server, and distribution server are chained in this order so that comments can be added to the video via the security VNF.

[0071] Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

[0072] In the above examples, the program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable media or tangible storage media include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray (registered trademark) disc or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable media or communication media include electrical, optical, acoustic, or other forms of propagated signals.

[0073] A part or all of the above-described embodiments can be described as, but not limited to, the following supplementary notes. (Appendix 1) a prediction unit that predicts the number of users of a service provided at a specific location before the service starts; a control unit that controls the instances of the application that provides the service or controls service chaining between a plurality of the applications based on the predicted number of users. (Appendix 2) The control device described in Appendix 1, wherein the prediction unit predicts the number of visitors who will come to the specific location, and predicts the number of users of the service from the predicted number of visitors. (Appendix 3) The control device described in Appendix 1 or 2, wherein the control unit calculates the number of instances required to provide the service based on the predicted number of users, and increases or decreases the number of instances so that the number of instances becomes the calculated number. (Appendix 4) The control unit calculating the amount of computer resources required to provide the service based on the predicted number of users; 4. The control device according to claim 3, wherein the control device calculates the number of instances required to allocate the calculated amount of computer resources to the application as the number of instances required to provide the service. (Appendix 5) The control device according to any one of appendixes 1 to 4, wherein the control unit determines the cluster in which to operate the instance from among the plurality of clusters based on the location of the specific location and the locations of each of the plurality of clusters in which the instance can operate. (Appendix 6) A control method executed by a computer, comprising: a prediction step of predicting the number of users of a service provided at a specific location before the service starts; and a control step of controlling the instances of the application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users. (Appendix 7) A control method as described in Appendix 6, wherein in the prediction step, the number of visitors, who are people who will come to the specific location, is predicted, and the number of users of the service is predicted from the predicted number of visitors. (Appendix 8) 8. The control method described in Appendix 6 or 7, wherein in the control step, the number of instances required to provide the service is calculated based on the predicted number of users, and the number of instances is increased or decreased so that the number of instances becomes the calculated number. (Appendix 9) In the control step, calculating the amount of computer resources required to provide the service based on the predicted number of users; The control method according to claim 8, wherein the number of instances required to allocate the calculated amount of computer resources to the application is calculated as the number of instances required to provide the service. (Appendix 10) A control method according to any one of appendixes 6 to 9, wherein in the control step, the cluster in which the instance will be operated is determined from among the plurality of clusters based on the location of the specific location and the locations of each of the plurality of clusters in which the instance can be operated. (Appendix 11) On the computer, a prediction step of predicting the number of users of a service provided at a specific location before the service starts; A non-transitory computer-readable medium storing a program that executes a control step of controlling the instances of the application that provides the service or controlling service chaining between multiple of the applications based on the predicted number of users. (Appendix 12) The computer-readable medium of claim 11, wherein the prediction step predicts the number of visitors who will come to the specific location, and predicts the number of users of the service from the predicted number of visitors. (Appendix 13) 13. The computer-readable medium of claim 11, wherein in the control step, the number of instances required to provide the service is calculated based on the predicted number of users, and the number of instances is increased or decreased so that the number of instances becomes the calculated number. (Appendix 14) In the control step, calculating the amount of computer resources required to provide the service based on the predicted number of users; 14. The computer-readable medium of claim 13, wherein the number of instances required to allocate the calculated amount of computing resources to the application is calculated as the number of instances required to provide the service. (Appendix 15) A computer-readable medium according to any one of appendices 11 to 14, wherein in the control step, the cluster in which the instance will be operated is determined from among the plurality of clusters based on the location of the specific location and the locations of each of a plurality of clusters in which the instance can be operated. [Explanation of symbols]

[0074] 100 tables 102 Application Identity Information 104 Number of users 106 instances 500 computers 502 Bus 504 processor 506 memory 508 Storage Devices 510 Input / Output Interface 512 network interface 2000 Control Device 2020 Forecast Department 2040 Control Unit DC1, DC2, DC3 Data Centers

Claims

1. a prediction unit that predicts the number of users of a service provided at a specific location before the service starts; a control unit that controls an instance of an application that provides the service or controls service chaining between a plurality of the applications based on the predicted number of users, the control unit calculates the number of instances necessary to provide the service based on the predicted number of users, and increases or decreases the number of instances so that the number of instances becomes the calculated number; The control unit calculates the amount of computer resources required to provide the service based on the predicted number of users, and calculates the number of instances required to allocate the calculated amount of computer resources to the application as the number of instances required to provide the service.

2. The control device according to claim 1 , wherein the prediction unit predicts the number of visitors who will come to the specific location, and predicts the number of users of the service from the predicted number of visitors.

3. A prediction unit that predicts the number of users of a service provided at a specific location before the service starts; a control unit that controls an instance of an application that provides the service or controls service chaining between a plurality of the applications based on the predicted number of users, The control unit determines the cluster in which to operate the instance from among the plurality of clusters based on the location of the specific location and the locations of each of the plurality of clusters in which the instance can operate.

4. 1. A computer-implemented control method comprising: a prediction step of predicting the number of users of a service provided at a specific location before the service starts; a control step of controlling an instance of an application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users, In the control step, the number of instances required to provide the service is calculated based on the predicted number of users, and the number of instances is increased or decreased so that the number of instances becomes the calculated number; A control method in which, in the control step, the amount of computer resources required to provide the service is calculated based on the predicted number of users, and the number of instances required to allocate the calculated amount of computer resources to the application is calculated as the number of instances required to provide the service.

5. The control method according to claim 4 , wherein the prediction step predicts the number of visitors who will come to the specific location, and predicts the number of users of the service from the predicted number of visitors.

6. A control method executed by a computer, comprising: a prediction step of predicting the number of users of a service provided at a specific location before the service starts; a control step of controlling an instance of an application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users, A control method in which, in the control step, the cluster in which the instance will be operated is determined from among the plurality of clusters based on the location of the specific location and the locations of each of the plurality of clusters in which the instance can be operated.

7. On the computer, a prediction step of predicting the number of users of a service provided at a specific location before the service starts; a control step of controlling an instance of an application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users; In the control step, the number of instances required to provide the service is calculated based on the predicted number of users, and the number of instances is increased or decreased so that the number of instances becomes the calculated number; A program that, in the control step, calculates the amount of computer resources required to provide the service based on the predicted number of users, and calculates the number of instances required to allocate the calculated amount of computer resources to the application as the number of instances required to provide the service.

8. 8. The program according to claim 7, wherein the prediction step predicts the number of visitors who will come to the specific location, and predicts the number of users of the service from the predicted number of visitors.

9. A computer, a prediction step of predicting the number of users of a service provided at a specific location before the service starts; a control step of controlling an instance of an application that provides the service or controlling service chaining between a plurality of the applications based on the predicted number of users; A program that, in the control step, determines the cluster in which to run the instance from among the plurality of clusters based on the location of the specific location and the locations of each of the plurality of clusters in which the instance can run.

Citation Information

Patent Citations

  • Network capability opening method, network system, equipment and storage medium

    CN113300899A

  • Load distribution in data networks

    JP2017118575A

  • Event-to-spectator prediction and hosting tool

    US20180025366A1

  • Systems and methods for adaptively encoding video stream

    US20200092562A1