Application bandwidth allocation method and system and storage medium
By acquiring and analyzing the usage and historical data of user equipment applications, predicting bandwidth requirements and determining allocation coefficients, and dynamically adjusting network bandwidth, the problem of network latency and priority requirements during operation of multiple applications is solved, and the user experience is improved.
Patent Information
- Application Number
- CN202510169552.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-23
- Publication Date
- 2025-05-13
AI Technical Summary
When multiple applications are run on a terminal device at the same time, the network may experience transmission delay and other problems, and users have different priorities for different applications, which is difficult to meet.
By obtaining the usage and historical usage of user equipment applications, predict the bandwidth requirements for the target time period, determine the allocation coefficient for each application, and perform bandwidth allocation based on the allocation coefficient and total bandwidth.
It realizes dynamic adjustment of network bandwidth according to users' priorities for different applications, improves users' online experience, and reduces network congestion when the network is busy.
Smart Images

Figure CN119996336A_ABST
Abstract
Description
Description of the case
[0001] This application is a divisional application filed for a Chinese application with a filing date of December 23, 2022, application number 202211660311.1, and invention name “A network priority adjustment method, system, device and storage medium”. Technical Field
[0002] The present invention relates to the field of communication technology, and in particular to an application bandwidth allocation method, system and storage medium. Background Art
[0003] With the development of the Internet, people are increasingly relying on applications (APPs) installed on terminal devices for social interaction, entertainment, video work, and life information acquisition. APPs are gradually penetrating into people's work and life. However, when multiple APPs on the same terminal device are running at the same time, the network may experience problems such as transmission delays.
[0004] In practice, users often have different priority requirements for different application software. For example, in a critical video conference, users hope that the network transmission of the conference software can always remain stable.
[0005] Therefore, it is necessary to provide a network priority adjustment method to meet the user's priority requirements for different applications and improve the user's Internet experience. Summary of the invention
[0006] One of the embodiments of the present specification provides an application bandwidth allocation method, including: obtaining the usage of at least one application of a user device; based on the usage of each application in the at least one application, obtaining the historical usage of each application; based on the historical usage and a target time period, determining the bandwidth demand of each application in the target time period, the bandwidth demand including a bandwidth demand prediction value; at least based on the bandwidth demand, determining an allocation coefficient for each application in the target time period; the allocation coefficient is an allocation ratio of the total bandwidth corresponding to each application; based on the allocation coefficient and the total bandwidth, determining the bandwidth allocation of each application.
[0007] One of the embodiments of the present specification provides an application bandwidth allocation system, including: an acquisition module, configured to acquire the usage of at least one application of a user device; a first determination module, configured to acquire the historical usage of each application based on the usage of each application in the at least one application; determine the bandwidth demand of each application in the target time period based on the historical usage and the target time period, the bandwidth demand including a bandwidth demand prediction value; determine the allocation coefficient of each application in the target time period based at least on the bandwidth demand; the allocation coefficient is the allocation ratio of the total bandwidth corresponding to each application; a second determination module, configured to determine the bandwidth allocation of each application based on the allocation coefficient and the total bandwidth.
[0008] One of the embodiments of this specification provides a computer-readable storage medium, wherein the storage medium stores computer instructions. When a computer reads the computer instructions, the computer executes the application bandwidth allocation method. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] This specification will be further described in the form of exemplary embodiments, which will be described in detail by the accompanying drawings. These embodiments are not restrictive, and in these embodiments, the same number represents the same structure, wherein:
[0010] Figure 1 is a schematic diagram of an application scenario of a network priority adjustment system according to some embodiments of this specification;
[0011] Figure 2 is an exemplary flow chart of a network priority adjustment method according to some embodiments of this specification;
[0012] Figure 3 is an exemplary schematic diagram of a distribution model according to some embodiments of this specification;
[0013] Figure 4 is an exemplary flow chart of determining the priority level of each application according to some embodiments of this specification;
[0014] Figure 5 is an exemplary schematic diagram of an application knowledge graph according to some embodiments of this specification;
[0015] Figure 6 It is an exemplary system module diagram of a network priority adjustment system according to some embodiments of this specification. DETAILED DESCRIPTION
[0016] In order to more clearly illustrate the technical solutions of the embodiments of this specification, the following is a brief introduction to the drawings required for the description of the embodiments. Obviously, the drawings described below are only some examples or embodiments of this specification. For ordinary technicians in this field, this specification can also be applied to other similar scenarios based on these drawings without creative work. Unless it is obvious from the language environment or otherwise explained, the same reference numerals in the figures represent the same structure or operation.
[0017] It should be understood that the "system", "device", "unit" and / or "module" used herein are a method for distinguishing different components, elements, parts, portions or assemblies at different levels. However, if other words can achieve the same purpose, the words can be replaced by other expressions.
[0018] As shown in this specification and claims, unless the context clearly indicates an exception, the words "a", "an", "an" and / or "the" do not refer to the singular and may also include the plural. Generally speaking, the terms "comprise" and "include" only indicate the inclusion of the steps and elements that have been clearly identified, and these steps and elements do not constitute an exclusive list. The method or device may also include other steps or elements.
[0019] Flowcharts are used in this specification to illustrate the operations performed by the system according to the embodiments of this specification. It should be understood that the preceding or following operations are not necessarily performed precisely in order. Instead, the steps may be processed in reverse order or simultaneously. At the same time, other operations may also be added to these processes, or one or more operations may be removed from these processes.
[0020] Figure 1 It is a schematic diagram of an application scenario of a network priority adjustment system according to some embodiments of this specification.
[0021] In some embodiments, the application scenario 100 of the network priority adjustment system can be used for adjusting the network priority of various applications (such as office applications or store applications, entertainment applications, etc.) of the user terminal. The network priority adjustment system can adjust the network priority by implementing the network priority adjustment method disclosed in this application to meet the actual usage needs of the user. For more information about the user terminal and the application, please refer to the description below.
[0022] like Figure 1 As shown, in some embodiments, an application scenario 100 of a network priority adjustment system may include a server 110 , a storage device 130 , a user terminal 140 , a network 150 , and an application 160 .
[0023] The server 110 may be used to manage resources and process data and / or information from at least one component of the system or an external data source (e.g., a cloud data center). For example, the server 110 may be used to obtain the usage and / or application information of at least one application of the user terminal and send it to the processor 120 to determine the priority level of each application. For another example, the server 110 may update the priority level of the current application in real time.
[0024] In some embodiments, server 110 can be a single server or a server group. The server group can be centralized or distributed, can be dedicated, and can also be provided by other devices or systems at the same time. In some embodiments, server 110 can be regional or remote. In some embodiments, server 110 can be implemented on a cloud platform, or provided in a virtual manner. As an example only, the cloud platform can include private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, internal cloud, multi-layer cloud, etc. or any combination thereof.
[0025] In some embodiments, a processor 120 may be provided in the server 110. The processor 120 may process data and / or information obtained from other devices or system components. The processor may execute program instructions based on these data, information and / or processing results to perform one or more functions described in the present application. For example, the processor 120 may allocate bandwidth to multiple applications in the application 160 in the user terminal 140 through the network 150. For another example, the processor 120 may receive a priority adjustment instruction from the server 110, process the predicted value of the bandwidth demand, usage time, usage duration and running status of each application, and determine the priority of each application.
[0026] In some embodiments, the processor 120 may include one or more sub-processing devices (e.g., a single-core processing device or a multi-core multi-core processing device). As an example only, the processor 120 may include a central processing unit (CPU), an application-specific integrated circuit (ASIC), an application-specific instruction processor (ASIP), a graphics processing unit (GPU), a physical processing unit (PPU), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a microcontroller unit, a reduced instruction set computer (RISC), a microprocessor, etc., or any combination thereof.
[0027] The storage device 130 may be used to store data and / or instructions. The storage device 130 may include one or more storage components, each of which may be an independent device or part of another device. In some embodiments, the storage device 130 may be used to store the historical usage of the application 160 over a historical time period. In some embodiments, the storage device may include a reference vector library (not shown) to store reference vectors corresponding to each application. In some embodiments, the reference vector may include at least one of the historical usage time, historical usage duration, or historical operating mode of each application. For more information about the reference vector library, please refer to Figure 4 and its related description.
[0028] In some embodiments, the storage device 130 may include a random access memory (RAM), a read-only memory (ROM), a mass storage, a removable memory, a volatile read-write memory, etc. or any combination thereof. Exemplarily, the mass storage may include a magnetic disk, an optical disk, a solid-state disk, etc. In some embodiments, the storage device 130 may be implemented on a cloud platform.
[0029] The user terminal 140 refers to one or more terminal devices or software used by the user. In some embodiments, the user terminal 140 may be used by one or more users, including users who directly use the service, or other related users. In some embodiments, the user terminal 140 may be one of the mobile devices 140-1, tablet computers 140-2, laptop computers 140-3, desktop computers 140-4, or any combination thereof, which have input and / or output functions.
[0030] In some embodiments, the mobile device 140-1 may include a wearable device and a smart mobile device, etc. or any combination thereof. In some embodiments, the smart mobile device may include a smart phone, a personal digital assistant (PDA), a gaming device, a navigation device, a handheld terminal (POS), etc. or any combination thereof.
[0031] In some embodiments, the desktop computer 140 - 4 may be a vehicle-mounted computer, a vehicle-mounted television, etc. For example, other devices with input and / or output functions The mobile device 140 - 1 may include a dedicated question-answering terminal set up in a public place.
[0032] In some embodiments, the user may refer to a network administrator, office staff, store manager, or other network user.
[0033] The above examples are only used to illustrate the wide range of the user terminal 140 device range rather than to limit its scope.
[0034] The network 150 can enable communication between the components and with other components outside the system to facilitate the exchange of data and / or information. In some embodiments, one or more components (e.g., server 110, storage device 130, terminal device 140, application 160) in the network priority adjustment system can exchange information and / or data through the network 150. For example, the terminal device 140 can send application information of the application 160 to the server 110 through the network 150. For another example, the terminal device 140 can send the historical usage time, historical usage duration, and historical operation status of the application 160 to the storage device 130 through the network 150 for storage.
[0035] In some embodiments, the network 150 may be any one or more of a wired network or a wireless network. For example, the network 150 may include a cable network, a fiber optic network, a telecommunications network, the Internet, a local area network (LAN), a wide area network (WAN), a wireless local area network (WLAN), a metropolitan area network (MAN), a public switched telephone network (PSTN), a Bluetooth network, a ZigBee network (ZigBee), a near field communication (NFC), an in-device bus, an in-device line, a cable connection, etc. or any combination thereof. In some embodiments, the network 150 may include one or more network access points. For example, the network 150 may include a wired or wireless network access point, such as a base station and / or a network switching point 150-1, 150-2, ..., through which one or more components of the inbound and outbound network priority adjustment system can be connected to the network 150 to exchange data and / or information.
[0036] Application 160 refers to software installed on user terminal 140, which can provide users with a platform for communication, social interaction, entertainment, work, etc. Figure 1 As shown, the application 160 may be an office application, including an email application 160-1, a music player application 160-2, a video conference application 160-3, etc. The application 160 may also be other types of applications (not shown in the figure), including POS, monitoring, IOT applications, current and power control applications, ticket printing applications, electronic menu playing applications, user management applications, network management applications, web browsing, file and audio and video download or upload, video communication (voice, video), online game applications, etc. In some embodiments, the processor 120 may determine the bandwidth allocation of various applications such as the email application 160-1, the music player application 160-2, the video conference application 160-3, etc. through the network 150.
[0037] It should be noted that the application scenarios are provided for illustrative purposes only and are not intended to limit the scope of this specification. For those of ordinary skill in the art, various modifications or variations can be made based on the description of this specification. For example, the application scenario may also include a router. For another example, the application scenario may implement similar or different functions on other devices. However, the changes and modifications will not deviate from the scope of this specification.
[0038] Figure 2 is an exemplary flow chart of a method for adjusting network priority according to some embodiments of this specification. Figure 2 As shown, the process 200 includes the following steps. In some embodiments, the process 200 may be executed by the processor 120 .
[0039] S210 , obtaining usage status and / or application information of at least one application of the user equipment. In some embodiments, step S210 may be performed by the obtaining module 610 .
[0040] User equipment refers to one or more terminal devices or software used by a user, for example, a user equipment may be a mobile phone, a computer, etc. For more information about user equipment, please refer to the description of user terminal 140 above. Application refers to functional software installed on user equipment, such as office software, entertainment software, etc. For more information about application, please refer to Figure 1 160 is described in detail in FIG.
[0041] The usage of an application can reflect the operation of the application. In some embodiments, the usage of an application can be represented based on the data transmission speed when the application is running. For example, the usage of a video conferencing application can be that the real-time data transmission rate of the video conferencing application is 25MB / S.
[0042] In some embodiments, the usage of the application may also include the usage time of the application. The usage time of the application may include the time characteristics when the application is used, and the time characteristics may include date, day or night, time period, etc. For example, the usage time of the music player application 160-2 may be 22:30-23:30 on February 9, 2022. For more information about the usage time of the application, see Figure 4 .
[0043] Application information refers to information related to the application in use. For example, application information may include the application usage time and running status, etc. For example, the application information of an online game application may include the usage time of 3 hours and the application is running, etc.
[0044] In some embodiments, the acquisition module 610 may acquire the usage and / or application information of the user device through the network 150. For example, the acquisition module 610 may receive the usage data of the mail application 160-1, the music player application 160-2, and the video conference application 160-3 through the network 150, that is, the average data transmission rate used by the mail application 160-1 during the period from 09:00 in the morning to 18:00 in the evening on 2022.02.08 is 20Kbps, the average data transmission rate used by the music player application 160-2 during the period from 20:00 to 22:00 in the evening on 2022.02.08 is 225Kbps, and the average data transmission rate used by the video conference application 160-3 during the period from 11:00 to 12:00 in the morning on 2022.02.08 is 50Kbps.
[0045] For example, the acquisition module 610 can also obtain application information data of the email application 160-1, the music player application 160-2, and the video conferencing application 160-3 through the network 150, that is, the email application 160-1 has been running for 2 hours, the music player application is not running, and the video conferencing application 160-3 will run in 1 hour, etc.
[0046] S220, based on the usage of at least one application and / or the application information, determine the allocation coefficient of each application in the at least one application. In some embodiments, the allocation coefficient may be an allocation ratio of the total bandwidth corresponding to each application. In some embodiments, step S220 may be performed by the first determination module 620.
[0047] The allocation ratio of the total bandwidth corresponding to the application refers to the bandwidth share of the application, which can be expressed as a percentage or a value between 0 and 1. The higher the allocation ratio, the greater the bandwidth share of the application.
[0048] The total bandwidth is a fixed bandwidth, which is related to the specific installation service selected by the user when installing the bandwidth. For example, the total bandwidth can be 20M, 50M, 100M or 1000M, etc. The acquisition module 610 can acquire the total bandwidth through the parameters of network devices such as routers.
[0049] In some embodiments, the first determination module 620 may determine the allocation coefficient of each application in a variety of ways. For example, the first determination module 620 may set different allocation coefficients for different applications based on a pre-set allocation coefficient allocation rule, and determine the allocation coefficients of the corresponding applications based on the allocation coefficient allocation rule. For example only, the allocation coefficient allocation rule may include that the allocation coefficient set for the video conferencing application is 0.3, and the allocation coefficient set for the mail application is 0.01.
[0050] In some embodiments, the first determination module 620 may determine the allocation coefficient of each application in the target time period based on the usage of each application.
[0051] The target time period refers to a certain time period in the future. For example, the target time period may be a certain time period after 1 hour. In some embodiments, the target time period may be selected based on the historical usage of the application. For example, based on the historical usage of the application, it is determined that 20:00-21:00 p.m. is the peak period for users to use the application, so this time period may be selected as the target time period.
[0052] In some embodiments, the first determination module 620 can determine the allocation coefficient of each application in the target time period in a variety of ways. For example, the first determination module 620 can determine the allocation coefficient of each application in the target time period based on the real-time usage of the application. For example, the greater the real-time data transmission speed of the application, the greater the allocation coefficient of the application. As an example only, the allocation coefficient of the application can be expressed as: allocation coefficient = real-time transmission speed of the application / sum of real-time transmission speeds of all applications.
[0053] In one or more embodiments of the present specification, a dynamic allocation coefficient is determined based on the real-time usage of each application, so that dynamic bandwidth adjustment can be achieved, the bandwidth required by different applications can be adapted, and the occurrence of slow network speeds during busy network hours can be reduced.
[0054] In some embodiments, the first determination module 620 can obtain the historical usage of each application based on the usage of each application; predict the bandwidth demand of each application in the target time period based on the historical usage; and determine the allocation coefficient of each application in the target time period based at least on the bandwidth demand.
[0055] Historical usage refers to the running status of an application in the past period of time. For example, the application types of applications used by users in the past week and the historical data transmission speeds corresponding to each application can be used as the historical usage of the corresponding application.
[0056] In some embodiments, the historical usage may also include historical bandwidth and historical allocation coefficient. The historical allocation coefficient may be the allocation coefficient corresponding to each application in the historical target time period. The historical bandwidth may be the bandwidth allocated to the application under the historical allocation coefficient or the bandwidth actually occupied by the application in the historical target time period. For more information about historical bandwidth and historical allocation coefficient, see Figure 3 .
[0057] In some embodiments, the first determination module 620 may obtain historical usage of the application through the storage device 130 .
[0058] For example, the storage device 130 can receive historical allocation coefficients of the email application 160-1, the music player application 160-2, and the video conferencing application 160-3 through the network 150, such as the historical allocation coefficient of the email application 160-1 from 09:00 in the morning to 18:00 in the evening on 2022.02.08 is 0.3, and the historical bandwidth is 100KB; the historical allocation coefficient of the music player application 160-2 from 20:00 to 22:00 in the evening on 2022.02.08 is 0.05, and the historical bandwidth is 0.5M; the historical allocation coefficient of the video conferencing application 160-3 from 11:00 to 12:00 in the morning on 2022.02.08 is 0.5, and the historical bandwidth is 2M.
[0059] The first determination module 620 may obtain from the storage device 130 the historical allocation coefficients and historical bandwidths of the email application 160 - 1 , the music player application 160 - 2 , and the video conference application 160 - 3 used by the user in the past period of time.
[0060] Bandwidth can be used to indicate the ability of a channel in a network to transmit data. The bandwidth requirement of an application can be expressed based on the minimum bandwidth that needs to be allocated to the application to ensure smooth operation of the application when the user uses the application. For example, assuming that the user is only browsing web pages, the average size of the web page is 2KB, and the web page is required to be opened within two seconds, the transmission speed of each web page must be greater than or equal to 1KB / s, that is, the user's bandwidth requirement is greater than or equal to 1KB / s, that is, 1×8, which is about 8Kbps; if the web page is required to be opened within one second, the bandwidth requirement is greater than or equal to 16Kbps.
[0061] In some embodiments, the user may determine in advance the applications to be used in the target time period, and the first determination module 620 predicts the bandwidth requirements of each application in the target time period based on the historical usage of each application.
[0062] For example, a user needs to use video conferencing during the target time period from 15:00 to 16:00 in the afternoon, and needs to open a web application at the same time during the target time period. The historical data shows that the transmission speed of video conferencing is 200Kbps. Based on the historical data, it can be predicted that the bandwidth requirement of the video conferencing application during 15:00 to 16:00 in the afternoon is 200Kbps. The historical data shows that the transmission speed of web browsing is 30Kbps. Based on the historical data, it can be predicted that the bandwidth requirement of web browsing during 15:00 to 16:00 in the afternoon is 30Kbps. Therefore, it can be predicted that under the condition of ensuring the operation of the video conferencing application and the web page process, the total bandwidth requirement of the user during 15:00 to 16:00 in the afternoon is 230Kbps.
[0063] In some embodiments, the first determination module 620 may also predict the bandwidth demand of the application in the target time period based on the historical bandwidth demand corresponding to the application in the historical target time period. For example, the historical bandwidth demand of the video conferencing application in the historical target time period 2022.04.05 09:00-10:00 is 300Kbps, then according to the historical data, it can be predicted that under the condition of guaranteeing the video conferencing application, the bandwidth demand of the video conferencing application in the morning of 2022.04.08 09:00-10:00 is 300Kbps.
[0064] In some embodiments, the first determination module 620 may determine the allocation coefficient of each application according to the predicted bandwidth demand of the application. For example, the proportion of the bandwidth demand of each application in the total bandwidth demand may be calculated, and the greater the proportion, the greater the allocation coefficient.
[0065] In some embodiments, the bandwidth requirements and allocation coefficients of the applications may also be determined by machine learning models. For more information on predicting application bandwidth requirements and determining application allocation coefficients by machine learning models, see Figure 3 .
[0066] The description of determining the bandwidth requirement of an application and the allocation coefficient in the embodiments of this specification is for illustrative purposes only and is not intended to limit the scope of this specification. The application bandwidth requirement and the application allocation coefficient may also be determined in other ways.
[0067] One or more embodiments in this specification can predict the bandwidth demand of an application within a target time period in a variety of ways, and further determine the allocation coefficient of the application based on the predicted bandwidth demand, so as to set the bandwidth allocation rules in advance and avoid possible network delays in real-time dynamic adjustment of bandwidth, so that the network can meet the bandwidth demand of users for applications within the target time period even during peak usage, thereby improving the user's Internet experience.
[0068] In some embodiments, based on the usage of at least one application and / or application information, the allocation coefficient (i.e., Figure 2 In some embodiments, the following steps may be performed by the server 110 (such as the processor 120), the acquisition module 610 or the first determination module 620.
[0069] S2201, determining the priority level of each application based on application information of each application.
[0070] The priority level of an application can be expressed as the user's requirement for the smoothness of the application when in use. The higher the priority level of an application, the higher the smoothness level the user requires of the application when in use, that is, the more the application needs to be allocated bandwidth to ensure smooth operation when in use.
[0071] In some embodiments, the first determination module 620 may determine the priority level of each application in a variety of ways. For example, the first determination module 620 may determine the priority level of the application based on a preset rule in combination with the usage time and running status of the application.
[0072] Just as an example, during working hours, the priority of applications such as applications needed for work meetings and email applications can be set higher, while the priority of applications such as game entertainment can be set lower. For another example, the priority of applications that are in the background and invisible for a long time can be set lower, while the priority of applications that are in the foreground and visible and active for a long time can be set higher.
[0073] In some embodiments, the applications may be arranged in a priority list in descending order of priority and stored in a storage device so as to be quickly retrieved when needed.
[0074] In some embodiments, the priority level of the application can also be determined based on the target vector corresponding to each application. For more information about determining the priority level of the application based on the target vector, see Figure 4 .
[0075] It should be noted that the description of determining the application priority level in the embodiments of this specification is for illustrative purposes only and is not intended to limit the scope of this specification.
[0076] S2202: Determine the bandwidth satisfaction of each application based on the priority level of each application.
[0077] Bandwidth satisfaction refers to the degree to which the bandwidth requirements of an application need to be met. The first determination module 620 can determine the bandwidth satisfaction of each application based on a preset bandwidth satisfaction rule. For example, the bandwidth satisfaction rule can be that if the priority level is level 1, the bandwidth satisfaction of the application is not less than 90%; if the priority level is level 2, the bandwidth satisfaction of the application is not less than 80%.
[0078] S2203: Determine an allocation coefficient for each application based on the bandwidth satisfaction, bandwidth demand, and total bandwidth.
[0079] In some embodiments, the higher the bandwidth satisfaction, the greater the bandwidth demand, and the greater the allocation coefficient. In some embodiments, when the bandwidth satisfaction of applications is similar, the first determination module 620 can set a larger allocation coefficient for the application with a greater bandwidth demand; when the bandwidth demands of applications are similar, the first determination module 620 can set a larger allocation coefficient for the application with a greater bandwidth satisfaction.
[0080] In some embodiments, when bandwidth is limited, it is necessary to first satisfy the bandwidth satisfaction of the application with the highest priority, and then, if there is remaining bandwidth resources, it is used to satisfy the bandwidth satisfaction of the application with the second highest priority.
[0081] Exemplarily, the first determination module 620 predicts that the bandwidth requirement for a user browsing a web page is 100 Kbps, the bandwidth requirement for the application management software is 150 Kbps, and the bandwidth requirement for the video conferencing application is 1 Mbps (i.e., 1024 Kbps). The acquisition module 610 can obtain a total bandwidth of 1 Mbps (i.e., 1024 Kbps). The first determination module 620 can determine the bandwidth satisfaction of each application (sorted from high to low in priority) according to the priority of the application: 90% for video conferencing application, 60% for web browsing, and 30% for application management software; then the allocation coefficient of the video conferencing application is 90%×1024÷1024≈0.9; after satisfying the bandwidth satisfaction of the video conferencing application, the remaining 102.4Kbps bandwidth resources can be used to satisfy web browsing, and the bandwidth requirement of web browsing is 80Kbps, then the bandwidth satisfaction of web browsing is 60%, that is, the remaining 102.4Kbps bandwidth resources can satisfy its bandwidth satisfaction, then the allocation coefficient of web browsing is 60%×100÷1024≈0.059, after satisfying the bandwidth satisfaction of web browsing, the remaining 42.4Kbps bandwidth resources can be used for application management software, then the allocation coefficient of application management software is 42.4÷1024≈0.041.
[0082] In some embodiments, if the total bandwidth still has remaining bandwidth resources after satisfying the bandwidth satisfaction of various applications running simultaneously, the remaining bandwidth resources can be allocated according to the preset allocation rules. For example, the preset allocation rule can be to increase the bandwidth satisfaction of applications with high priority levels in order from high to low priority, such as increasing the bandwidth satisfaction of applications with a priority level of 1 from the lowest 90% to 100%, etc., so as to increase the network resources that can be allocated to applications of each priority level in turn, so as to make full use of network resources; when a new application is added, the allocation coefficient is determined for all applications including the new application in the above manner based on the bandwidth satisfaction before the increase.
[0083] One or more embodiments of the present specification determine the priority level based on the actual needs of the user for the current application, and associate bandwidth allocation with the priority level, so that bandwidth allocation for applications with higher priority levels can be met first, avoiding network congestion when the network is busy.
[0084] S230 , determining bandwidth allocation for each application based on the allocation coefficient and the total bandwidth. In some embodiments, step S230 may be performed by the second determination module 630 .
[0085] The bandwidth allocation of the application can satisfy the following formula: Bandwidth allocation = allocation coefficient × total bandwidth
[0086] Still using the above example to explain the bandwidth allocation for each application, when the total bandwidth is 1Mbps, the bandwidth for web browsing is 1024×0.059≈60Kbps, the bandwidth allocation for application management software is 1024×0.041≈42Kbps, and the bandwidth allocation for video conferencing applications is 1024×0.9=922Kbps.
[0087] One or more embodiments of the present specification determine the allocation coefficient of each application based on bandwidth satisfaction, bandwidth demand and total bandwidth. When allocating bandwidth, the priority level of the corresponding network during bandwidth allocation can be automatically adjusted for different services to meet the actual usage needs of users. The server presets rules for the priority level of applications, and bandwidth satisfaction or bandwidth limitation for specific applications is achieved based on the preset rules, so as to realize background control of user terminal applications.
[0088] Figure 3 is an exemplary schematic diagram of an allocation model according to some embodiments of the present specification.
[0089] In some embodiments, at least based on bandwidth demand, determining the allocation coefficient of each application in the target time period may include: determining the allocation coefficient of each application in the target time period through an allocation model based on historical usage, the target time period, and the total bandwidth. In some embodiments, the allocation model may include a bandwidth demand prediction layer and an allocation coefficient prediction layer. The bandwidth demand prediction layer is used to determine the bandwidth demand prediction value of each application in the target time period based on historical usage and the target time period; the allocation coefficient prediction layer is used to determine the allocation coefficient of each application in the target time period based on the bandwidth demand prediction value, historical usage, and the total bandwidth.
[0090] In some embodiments, the first determination module 620 may determine the allocation coefficient of each application in the target time period based on historical usage, the target time period, and the total bandwidth through the allocation model 330. The allocation model 330 may be a machine learning model.
[0091] like Figure 3 As shown, in some embodiments, the allocation model 330 can process the historical usage 310 of at least one application, the target time period 320, and the total bandwidth 370 to determine the allocation coefficient 340 of the application. For more information about the target time period and the total bandwidth, see Figure 2 .
[0092] The historical usage 310 may include the usage time of the application, the historical bandwidth, etc. For example, the usage time may be that the usage time of a certain historical video conference was 10:00-11:30 on Monday. The historical bandwidth may be the average data transmission rate of the application during the historical usage. For example, the historical bandwidth may be that the average data transmission rate of a certain historical video conference was 0.5 Mbps.
[0093] For example, the usage time and data transmission speed of the music player application and the online game application in the past week can be used as the historical usage 310 of the corresponding applications, "next Monday night 20:00-22:00" can be used as the target time period 320, the total bandwidth of 10Mbps is input into the allocation model, and the output allocation coefficients of the music player application and the online game application in the target time period are 0.2 and 0.05 respectively.
[0094] In some embodiments, the allocation model 330 may be obtained through model training. The first training sample may include the usage of the historical sample application, the historical sample target time period, and the total bandwidth of the historical sample target time period. The first label of the first training sample may include the allocation coefficient of the historical sample application in the historical sample target time period.
[0095] During training, the usage of the historical sample application of the first training sample, the historical sample target time period, and the total bandwidth of the historical sample target time period can be input into the allocation model 330, and the first loss function can be constructed based on the allocation coefficient output by the allocation model 330 and the first label, and the parameters of the initial allocation model can be iteratively updated based on the first loss function until the first preset condition is met, the parameters in the allocation model 330 are determined, and the trained allocation model is obtained. The first preset condition may include but is not limited to the convergence of the first loss function and the reaching of a threshold value during the training cycle.
[0096] In some embodiments, Figure 3 As shown, the allocation model 330 may include a bandwidth requirement prediction layer 331 and an allocation coefficient prediction layer 333 .
[0097] The bandwidth demand prediction layer 331 may process the historical usage 310 and the target time period 320 of at least one application to determine a bandwidth demand prediction value 332 of the application within the target time period.
[0098] For example, the historical usage of the video surveillance application of the user's store, such as the usage time from 08:00 am to 20:00 pm on April 10, 2022, and the data transmission rate is 2Mbps, the usage time of the receipt printing application is from 09:00 am to 20:00 pm on April 10, 2022, and the data transmission rate is 0.5Mbps, the usage time of the audio playback application is from 09:00 am to 20:00 pm on April 10, 2022, and the data transmission rate is 128Kbps, and the target time period 320, for example, from 08:00 am to 20:00 pm on April 11, 2022, can be used as the input of the bandwidth demand prediction layer 331, and the corresponding output bandwidth demand prediction value of the video surveillance application, for example, 2.5Mbps, the bandwidth demand prediction value of the receipt printing application, for example, 0.6Mbps, and the bandwidth demand prediction value of the audio playback application, for example, 150Kbps.
[0099] In some embodiments, the allocation coefficient prediction layer 333 is used to determine the allocation coefficient 340 based on the bandwidth demand prediction value 332, the historical bandwidth 350, the historical allocation coefficient 360, and the total bandwidth 370. The historical allocation coefficient may be the allocation coefficient corresponding to each application in the historical target time period. The historical bandwidth may be the bandwidth allocated to the application under the historical allocation coefficient. For example, the historical allocation coefficient may be 0.02 for the application corresponding to the video communication last Tuesday, and the historical bandwidth corresponding to the application and the historical allocation coefficient is 0.2M.
[0100] In some embodiments, the historical bandwidth 350, the historical allocation coefficient 360, the total bandwidth 370 and the bandwidth demand prediction value 332 output by the bandwidth demand prediction layer 331 may be used as inputs to the allocation coefficient prediction layer 333, and the allocation coefficient prediction layer 333 may output the allocation coefficient 340 for each application.
[0101] For example, the allocation coefficient prediction layer 333 can process the bandwidth demand prediction value of 2.5Mbps for the video surveillance application, the bandwidth demand prediction value of 0.6Mbps for the receipt printing application, and the bandwidth demand prediction value of 150Kbps for the audio playback application, and output the allocation coefficient of the video surveillance application, for example, 0.7, the allocation coefficient of the receipt printing application, for example, 0.09, and the allocation coefficient of the audio playback application, for example, 0.2.
[0102] The allocation model 330 may be obtained by jointly training the bandwidth demand prediction layer 331 and the allocation coefficient prediction layer 333. The second training sample may include the usage of the historical sample application, the historical sample target time period, the bandwidth of the historical sample application, the allocation coefficient of the historical sample application, and the total bandwidth of the historical sample, and the second label of the second training sample may include the allocation coefficient of the historical sample application in the historical sample target time period.
[0103] During training, the usage of the historical sample application of the second training sample and the target time period of the historical sample can be input into the bandwidth demand prediction layer 331, and the bandwidth of the historical sample application, the allocation coefficient of the historical sample application, the total bandwidth of the historical sample and the output of the bandwidth demand prediction layer 331 can be input into the allocation coefficient prediction layer 333, and a second loss function can be constructed based on the output of the allocation coefficient prediction layer 333 and the second label, and the parameters of the initial bandwidth demand prediction layer and the initial allocation coefficient prediction layer can be iteratively updated based on the second loss function until the second preset condition is met, and the parameters in the bandwidth demand prediction layer 331 and the allocation coefficient prediction layer 333 are determined to obtain a trained allocation model. The second preset condition can include but is not limited to the convergence of the second loss function and the reaching of a threshold value by the training cycle.
[0104] In some embodiments, the input of the allocation coefficient prediction layer 333 may also include the application priority level 380. For example, the allocation coefficient prediction layer 333 processes the priority level (e.g., level 1), the bandwidth demand prediction value (e.g., 100 Kbps), the historical bandwidth (e.g., 80 Kbps), the historical allocation coefficient (e.g., 0.1), and the total bandwidth (e.g., 20M) of the mail application 160-1, and outputs the allocation coefficient of the mail application 160-1, e.g., 0.15.
[0105] In some embodiments, when the input of the allocation coefficient prediction layer 333 may include the priority level 380 of the application, the second training sample may also include the priority level of the historical sample application.
[0106] In one or more embodiments of the present specification, the allocation coefficient of the application can be determined in combination with the priority level of the application. For applications with high priority levels, the allocation coefficient can be increased to meet the user's usage needs as much as possible, making bandwidth allocation more reasonable.
[0107] One or more embodiments of the present specification predict the bandwidth demand of an application through a bandwidth demand prediction layer based on the historical situation of at least one application; predict the bandwidth allocation of each application target time period through an allocation coefficient prediction layer based on the bandwidth demand and historical allocation of the application, so as to better achieve reasonable bandwidth allocation according to the actual bandwidth demand of each application; the application allocation model predicts the allocation coefficient, which can make the determination of the allocation coefficient more accurate and improve the stability of the network.
[0108] Figure 4 FIG. 1 is an exemplary flow chart of determining the priority level of each application according to some embodiments of this specification. Figure 4 As shown, the process 400 includes the following steps. In some embodiments, the process 400 may be executed by the server 110 (eg, the processor 120 ) or the first determination module 620 .
[0109] S410, determining a current vector of each application based on the usage time, usage duration, and running status of each application.
[0110] The usage time of an application is the time period or time attribute of the time when the application is used by the user. The time period can be a period of time when the application is used continuously, and the time attribute can include morning, afternoon, weekend, weekday, morning, evening, usage date, etc. For example, the usage time of the shopping mall video surveillance application is from 09:00 am to 21:00 pm on May 23, 2022, and the usage time of the user game application in the home scene can be from 21:00 to 22:00 on weekend nights.
[0111] In some embodiments, the usage time of each application in the user terminal can be obtained through the server 110. For example, the server 110 can obtain the usage time of the running application based on the start time and end time of the application. The server 110 can also obtain the usage time of each application in the user terminal based on third-party applications, such as calendars, application management software, etc.
[0112] The usage time of an application is the duration of time that the application is used by the user. In some embodiments, the usage time of each application in the user terminal can be further obtained by the processor 120 based on the usage time obtained by the server 110. For example, when the usage time of a game application obtained by the server 110 is 21:00-23:00, the processor 120 can receive the usage time data and the instruction for calculating the usage time issued by the server, and calculate that the usage time corresponding to the game application is 2 hours.
[0113] The running status is used to reflect the activity level of the application. For example, the running status may include running, terminated, paused, background running, etc. The server 110 or the first determination module 620 may determine the running status of the application by the data transmission speed. For example, if the data transmission speed is greater than the running threshold, the application running status may be judged to be active; if the data transmission speed is less than the background running speed threshold, the application running status may be judged to be background running; if the data transmission speed is 0, the application running status may be judged to be paused; if the duration of the data transmission speed being 0 exceeds the duration threshold, the application running status may be judged to be terminated. The running threshold, the background running speed threshold, and the duration threshold may be set manually or as a system default value.
[0114] The current vector of an application may be vector data used to characterize the characteristics of the usage time, usage duration, and running status of each application. In some embodiments, the current vector may be constructed based on the characteristics (a, t, c, l, s) of the usage time, usage duration, and running status of the application, where a represents the name of the current application, t represents the usage time of the application, c represents the usage time attribute of the application, l represents the usage duration of the application, and s represents the running status of the application. For example, t = 09:00-10:00, c = Sunday, l = 1, s = r means that the usage time of the current application is 9:00-10:00 on Sundays, the usage duration is 1h, and the running status is running; for another example, t = 09:00-10:00, l = 1, s = o means that the usage time of the current application is 9:00-10:00 on weekdays, the usage duration is 1h, and the running status is suspended.
[0115] S420: Determine a target vector corresponding to each application based on a matching result of the current vector in the reference vector library.
[0116] The reference vector library is composed of multiple reference vectors. The reference vectors can be represented by the historically used application name, historical usage time, historical usage duration, and feature vectors representing the running status.
[0117] The target vector is the reference vector in the reference vector library that is closest to the current vector. In some embodiments, the reference vector with a distance less than a distance threshold and a minimum distance value can be used as the target vector. The distance between the reference vector and the current vector can be calculated in a variety of ways. For example, the distance between the reference vector and the current vector can be determined by calculating the Euclidean distance, cosine distance, Mahalanobis distance, Chebyshev distance, Manhattan distance, etc.
[0118] S430: Determine the priority level of each application based on the target vector corresponding to each application.
[0119] In some embodiments, the historical priority level corresponding to the target vector may be used as the priority level of the current vector.
[0120] In some embodiments, the application information of each application also includes a bandwidth demand prediction value, and the priority level of each application can be determined based on the bandwidth demand prediction value, usage time, usage duration and running status.
[0121] The bandwidth demand prediction value is a specific value of the predicted bandwidth demand. In some embodiments, the output of the bandwidth demand prediction layer 331 in the allocation model 330 can be used as the bandwidth demand prediction value.
[0122] In some embodiments, the current vector of each application can be determined based on the usage time, usage duration, running status and predicted value of bandwidth demand of each application, for example, current vector = (a, t, c, l, s, e). Where a represents the name of the current application, t represents the usage time of the application, c represents the usage time attribute of the application, l represents the usage duration of the application, s represents the running status of the application, and e represents the predicted value of bandwidth demand. For example, a = game application, t = 22:00-23:30, c = weekend, l = 0.5, s = r, e = 80, the current vector can indicate that the usage time of the game application is 22:00-23:30 on weekends, the usage duration is 0.5h, the running status is running, and the bandwidth demand is 80Kbps.
[0123] In some embodiments, the reference vectors in the reference vector library can be represented by the historically used application name, historical usage time, historical usage duration, running status representative, and feature vectors of broadband requirements. In some embodiments, the target vector corresponding to each application can be determined based on the matching result of the current vector in the reference vector library; the priority level of each application can be determined based on the target vector corresponding to each application. In some embodiments, the historical priority level corresponding to the target vector can be used as the priority level of the current vector.
[0124] For more information on determining the priority of each application, see Figure 5 .
[0125] One or more embodiments of the present specification also consider the bandwidth demand prediction value when determining the priority level, which can make the determination of the priority level of the current vector more reasonable.
[0126] In some embodiments, in response to the vector distance between the target vector and the current vector being greater than a preset distance threshold, the current vector can be uploaded to the server 110, and the server 110 generates a new reference vector based on the current vector and updates the reference vector library based on the new reference vector.
[0127] In some embodiments, the current vector can be directly used as a new reference vector, and the priority level of the current vector can be determined by the priority levels known by other applications. For example, the priority level of the current vector A is unknown, and the priority level of the current vector B is level 3, and the priority level of the current vector A can be determined to be level 2 through user settings.
[0128] One or more embodiments of the present specification determine a target vector based on a current vector and a reference vector, so that the determined target vector is more reliable; when the target vector cannot be matched from a reference vector library, an approximate reference vector is used instead, and the server subsequently supplements the missing reference vector to improve the vector library for subsequent target vector matching, which can reasonably allocate computing resources, ensure that the target vector is as reliable as possible, and also take into account the normal operation of network applications.
[0129] In some embodiments, the reference priority level of the reference application corresponding to the new reference vector can be determined based on the priority level corresponding to the analog application of the reference application. The functional similarity and / or usage synergy between the analog application of the reference application and the reference application meets the first preset condition. The functional similarity is used to characterize the functional similarity between the analog application and the reference application; the usage synergy is used to characterize the probability that the start time difference between the analog application and the reference application is within a preset time difference range.
[0130] The reference application is an application corresponding to the reference vector in the reference vector library. For example, if the value of the first element in the reference vector is a=game application, then the game application is the reference application of the current application.
[0131] The analog application is an application whose functional similarity and / or usage synergy with the reference application meets a first preset condition.
[0132] Functional similarity refers to the degree of functional similarity between different applications. For example, both the conference video application and the work chat application have voice, text, picture, and video input functions, which can satisfy the communication and interaction between different users. Therefore, the application function similarity between the conference video application and the work chat application is relatively high. In some embodiments, the functional similarity between different applications can be set in advance. For example, the functional similarity between the conference video application and the work chat application can be set to 80%, and the functional similarity between the mail application and the game application can be set to 5%. In some embodiments, the feature vector corresponding to each application can be constructed based on the functions, usage scenarios, etc. of the application, and the vector distance (such as cosine distance) between different applications can be calculated to determine the functional similarity between different applications. For example, the smaller the vector distance, the greater the functional similarity.
[0133] The degree of usage synergy refers to the degree to which two applications are used simultaneously. The historical usage of each application (e.g., usage time and usage duration) can be statistically analyzed to obtain the degree of usage synergy between applications. In some embodiments, the degree of usage synergy can be expressed by the probability of two applications being used simultaneously. For example, the two applications, POS machine and receipt printing, are always used in collaboration within a short period of time with a probability of 90%, and the degree of usage synergy between the POS machine and the receipt printing application is 90%.
[0134] In some embodiments, the use synergy can be determined by the probability that the difference in start time of the analog application and the reference application is within a preset time difference range. For example, the preset time difference can be manually preset to 10 minutes, and the server 110 obtains that the start time of the POS machine is 09:30 and the start time of the printing receipt application is 09:31. Then, the use synergy of the POS machine and the printing receipt application is (10-1)÷10×100%=90%.
[0135] The first preset condition refers to a threshold value that satisfies the functional similarity and / or usage synergy. For example, the first preset condition may be set as the functional similarity and / or usage synergy of two applications being greater than 80%.
[0136] Figure 5 It is an exemplary schematic diagram of the application knowledge graph shown in some embodiments of this specification.
[0137] In some embodiments, the determination of the reference priority level of the reference application corresponding to the new reference vector may include: determining an application knowledge graph 530 based on the functional similarity 510 and the usage synergy 520 between different applications, and determining the priority level 550 of the current application according to the application knowledge graph 530. The current application refers to the application for which the priority level needs to be determined. For more information about the functional similarity and usage synergy between applications, please refer to Figure 4 .
[0138] The application knowledge graph refers to a graph used to reflect the functional similarity and usage synergy between applications. It consists of nodes and edges. Each node represents an entity, and each edge is the relationship between entities.
[0139] The nodes of the knowledge graph refer to the data points corresponding to a single application, for example Figure 5 As shown, the node may be "Application A", "Application B" or "Application C". In some embodiments, the node attribute may include the priority level of the application corresponding to the node. For example, the node attribute may be "The priority level of Application A is level 1". In some embodiments, the priority level of the node to be tested may be preset, such as using a default priority level or a preset priority level. After the priority level of the node to be tested is subsequently determined, the default priority level or the preset priority level may be updated to the determined priority level of the node to be tested. The default priority level or the preset priority level may be level 0, etc.
[0140] In some embodiments, the edge attributes may include the functional similarity and usage synergy between the applications corresponding to the nodes. In some embodiments, the edges of the application knowledge graph 530 include first-class edges and second-class edges. The first-class edges (such as Figure 5 The solid line edge in the figure can reflect the functional similarity between the applications represented by the two nodes connected by the edge. The second type of edge (such as Figure 5 The dashed edge in the figure may reflect the usage synergy between the applications represented by the two nodes connected by the edge. For example, the edge between "Application A" and "Application B" may include "531" and "532", where edge 531 represents the functional similarity between Application A and Application B, and edge 532 represents the usage synergy between Application A and Application B.
[0141] In some embodiments, the priority level of the application corresponding to the current node can be determined based on the sum of the functional similarity represented by the first type of edge and the usage synergy represented by the second type of edge between the current node and the connected nodes. The current node can be the aforementioned node to be tested, that is, the node whose priority level needs to be determined, which corresponds to the application whose priority level needs to be determined.
[0142] In some embodiments, there may be first-type edges and second-type edges between any two nodes of the application knowledge graph 530, and the edge attributes of the first-type edges and the second-type edges may respectively represent the functional similarity and usage synergy between the applications corresponding to the two connected nodes.
[0143] In some embodiments, in the nodes of the application knowledge graph 530, only when the functional similarity and usage synergy between the two nodes meet the threshold conditions, the first type of edge and the second type of edge can be generated between the two nodes, and the edge attributes of the first type of edge and the second type of edge can respectively represent the functional similarity and usage synergy between the two connected nodes. The threshold conditions may include that the functional similarity between the two nodes needs to be greater than a first threshold, and the usage synergy needs to be greater than a second threshold, wherein the first threshold and the second threshold can be preset in advance.
[0144] When determining the priority of the current node, based on the attributes of the edge, the node with the largest sum of functional similarity and usage coordination among the nodes connected to the current node can be screened out from the application knowledge graph 530, and the priority of the node can be used as the priority of the current node.
[0145] As an example only, application A is the current node. Based on the attributes of the first type of edge between application B and application A, it is determined that the functional similarity between application B and application A is 90%. Based on the attributes of the second type of edge between application B and application A, it is determined that the usage synergy between application B and application A is 60%. Based on the attributes of the first type of edge between application C and application A, it is determined that the functional similarity between application C and application A is 50%. Based on the attributes of the second type of edge between application C and application A, it is determined that the usage synergy between application C and application A is 30%. It can be seen that among the nodes currently connected to application A, the sum of the functional similarity and usage synergy between the node corresponding to application B and the node corresponding to application A is the largest, so the priority level of application B is used as the priority level of the current node, i.e., application A.
[0146] One or more embodiments of the present specification predict the priority of the current node based on the application knowledge graph 530, which can more effectively associate the functional similarity and usage synergy between applications. The priority of an application can be determined based on the priority of related applications with similar functions or higher usage synergy, thereby reducing the computing resource space occupied by the network system, thereby making the network operation more stable.
[0147] In some embodiments, the priority of the node corresponding to the current application can be determined based on the processing of the application knowledge graph 530 by the priority inference model 540. In some embodiments, the priority inference model is a machine learning model. For example, the machine learning model may include but is not limited to a recurrent neural network model (RNN), a graph neural network model (GNN), etc.
[0148] In some embodiments, the input of the priority inference model may be an application knowledge graph 530 or a subgraph, and the output may be the priority level 550 of the corresponding application output by each node of the application knowledge graph 530. Based on the output of the priority inference model, the priority level 550 of the current application may be determined.
[0149] A subgraph refers to a graph obtained by dividing an application knowledge graph. For example, an office application subgraph, an entertainment application subgraph, etc. In some embodiments, the processor 120 may divide the application knowledge graph into multiple subgraphs based on the node attributes of the application knowledge graph. The subgraph of the application knowledge graph is input into a priority inference model, and the priority between applications of the same type may be determined based on the output of the priority inference model.
[0150] In some embodiments, the priority inference model can be obtained by training multiple third training samples with third labels. For example, multiple third training samples with third labels can be input into the initial priority inference model, and a loss function can be constructed by the third label and the result of the initial priority inference model. The parameters of the initial priority inference model are iteratively updated based on the loss function by gradient descent or other methods. When the third preset condition is met, the model training is completed and a trained priority inference model is obtained. Among them, the third preset condition can be that the loss function converges, the number of iterations reaches a threshold, etc.
[0151] In some embodiments, the third training sample may include at least a sample application knowledge graph constructed based on a large amount of application data, wherein the sample application knowledge graph has determined the priority of the application corresponding to each node based on historical data, and the priority of the application corresponding to some of the nodes may be masked, and the actual priority of the application corresponding to all the nodes may be used as the third label. The third label may be based on manual annotation.
[0152] One or more embodiments of the present specification can further increase the accuracy of determining application priority by applying a knowledge graph in combination with a machine learning model to infer the priority of the application represented by the current node, thereby achieving more reasonable bandwidth allocation and improving the stability and reliability of network operation.
[0153] It should be noted that the above description of the process 200 and the process 400 is only for example and explanation, and does not limit the scope of application of this specification. For those skilled in the art, various modifications and changes can be made to the process 200 and the process 400 under the guidance of this specification. However, these modifications and changes are still within the scope of this specification.
[0154] Figure 6 It is an exemplary system module diagram of a network priority adjustment system according to some embodiments of this specification.
[0155] like Figure 6 As shown, the network priority adjustment system 600 may include an acquisition module 610 , a first determination module 620 , and a second determination module 630 .
[0156] In some embodiments, the acquisition module 610 is used to acquire at least one application of the user device, including acquiring application data such as application information, usage, historical priority level, etc. of each application.
[0157] In some embodiments, the first determination module 620 is used to determine the allocation coefficient of each application in at least one application based on the at least one application. In some embodiments, the first determination module 620 is also used to determine the allocation coefficient of each application in the target time period based on the usage or to predict the bandwidth demand of each application in the target time period based on the historical usage; and to determine the allocation coefficient of each application in the target time period based on the bandwidth demand. In some embodiments, the first determination module 620 can also be used to determine the priority of each application based on the application information of each application; determine the bandwidth satisfaction of each application based on the priority of each application; and determine the allocation coefficient of each application based on the bandwidth satisfaction, bandwidth demand and total bandwidth. In some embodiments, the first determination module 620 is further used to determine the current vector of each application based on the usage time, usage duration and running status of each application; determine the target vector corresponding to each application based on the matching result of the current vector in the reference vector library; and determine the priority of each application based on the target vector corresponding to each application.
[0158] In some embodiments, the second determination module 630 is configured to determine the bandwidth allocation for each application based on the allocation coefficient and the total bandwidth.
[0159] It should be noted that the above description of the network priority adjustment system 600 is for illustrative purposes only and is not intended to limit the scope of this specification. For those of ordinary skill in the art, various variations and modifications may be made according to this specification. However, these variations and modifications do not depart from the scope of this specification. For example, one or more modules of the above-mentioned network priority adjustment system 600 may be omitted or integrated into a single module. For another example, the network priority adjustment system 600 may include one or more additional modules, such as a storage module for data storage, etc.
[0160] The basic concepts have been described above. Obviously, for those skilled in the art, the above detailed disclosure is only for example and does not constitute a limitation of this specification. Although not explicitly stated here, those skilled in the art may make various modifications, improvements and corrections to this specification. Such modifications, improvements and corrections are suggested in this specification, so such modifications, improvements and corrections still belong to the spirit and scope of the exemplary embodiments of this specification.
[0161] At the same time, this specification uses specific words to describe the embodiments of this specification. For example, "one embodiment", "an embodiment", and / or "some embodiments" refer to a certain feature, structure or characteristic related to at least one embodiment of this specification. Therefore, it should be emphasized and noted that "one embodiment" or "an embodiment" or "an alternative embodiment" mentioned twice or more in different positions in this specification does not necessarily refer to the same embodiment. In addition, certain features, structures or characteristics in one or more embodiments of this specification can be appropriately combined.
[0162] In addition, unless explicitly stated in the claims, the order of the processing elements and sequences described in this specification, the use of alphanumeric characters, or the use of other names are not intended to limit the order of the processes and methods of this specification. Although the above disclosure discusses some invention embodiments that are currently considered useful through various examples, it should be understood that such details are only for illustrative purposes, and the attached claims are not limited to the disclosed embodiments. On the contrary, the claims are intended to cover all modifications and equivalent combinations that are consistent with the essence and scope of the embodiments of this specification. For example, although the system components described above can be implemented by hardware devices, they can also be implemented only by software solutions, such as installing the described system on an existing server or mobile device.
[0163] Similarly, it should be noted that in order to simplify the description disclosed in this specification and thus help understand one or more embodiments of the invention, in the above description of the embodiments of this specification, multiple features are sometimes combined into one embodiment, figure or description thereof. However, this disclosure method does not mean that the features required by the subject matter of this specification are more than the features mentioned in the claims. In fact, the features of the embodiments are less than all the features of the single embodiment disclosed above.
[0164] In some embodiments, numbers describing the number of components and attributes are used. It should be understood that such numbers used in the description of the embodiments are modified by the modifiers "about", "approximately" or "substantially" in some examples. Unless otherwise specified, "about", "approximately" or "substantially" indicate that the numbers are allowed to vary by ±20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximate values, which may change according to the required features of individual embodiments. In some embodiments, the numerical parameters should take into account the specified significant digits and adopt the general method of retaining digits. Although the numerical domains and parameters used to confirm the breadth of their range in some embodiments of this specification are approximate values, in specific embodiments, the setting of such numerical values is as accurate as possible within the feasible range.
[0165] Each patent, patent application, patent application publication, and other materials, such as articles, books, specifications, publications, documents, etc., cited in this specification are hereby incorporated by reference in their entirety. Except for application history documents that are inconsistent with or conflicting with the contents of this specification, documents that limit the broadest scope of the claims of this specification (currently or later attached to this specification) are also excluded. It should be noted that if the descriptions, definitions, and / or use of terms in the materials attached to this specification are inconsistent or conflicting with the contents described in this specification, the descriptions, definitions, and / or use of terms in this specification shall prevail.
[0166] Finally, it should be understood that the embodiments described in this specification are only used to illustrate the principles of the embodiments of this specification. Other variations may also fall within the scope of this specification. Therefore, as an example and not a limitation, alternative configurations of the embodiments of this specification may be considered consistent with the teachings of this specification. Accordingly, the embodiments of this specification are not limited to the embodiments explicitly introduced and described in this specification.
Claims
1. A method for allocating application bandwidth, comprising: Obtaining usage status of at least one application of a user device; Based on the usage of each application in the at least one application, obtaining a historical usage of each application; Based on the historical usage and the target time period, determining the bandwidth demand of each application in the target time period, wherein the bandwidth demand includes a bandwidth demand prediction value; Determining, based at least on the bandwidth requirement, an allocation coefficient for each of the applications in the target time period; The allocation coefficient is the allocation ratio of the total bandwidth corresponding to each application; Based on the allocation coefficient and the total bandwidth, bandwidth allocation for each application is determined.
2. The method according to claim 1, wherein determining the allocation coefficient of each application in the target time period based at least on the bandwidth requirement comprises: The allocation coefficient of each application in the target time period is determined based on the bandwidth demand prediction value, the historical usage, and the total bandwidth.
3. The method according to claim 1, wherein determining the allocation coefficient of each application in the target time period based at least on the bandwidth requirement comprises: Determining a priority level of each application based on the application information of each application; Determining bandwidth satisfaction of each application based on the priority level of each application; An allocation coefficient for each application is determined based on the bandwidth satisfaction, the bandwidth requirement and the total bandwidth.
4. The method according to claim 3, wherein determining the priority level of each application based on the application information of each application comprises: Determining a current vector of each application based on the usage time, usage duration, and running state of each application; Determine the target vector corresponding to each application based on the matching result of the current vector in the reference vector library; The priority level of each application is determined based on the target vector corresponding to each application.
5. The method according to claim 4, wherein the target vector is the reference vector in the reference vector library having the smallest vector distance with the current vector; In response to the vector distance between the target vector and the current vector being greater than a preset distance threshold, the method further includes: The current vector is uploaded to a server, and the server generates a new reference vector based on the current vector, and updates the reference vector library based on the new reference vector.
6. The method according to claim 5, wherein the reference priority level of the reference application corresponding to the new reference vector is determined based on the priority level corresponding to the analog application of the reference application; The functional similarity and / or usage synergy between the analog application of the reference application and the reference application meets a first preset condition; The functional similarity is used to characterize the functional similarity between the analog application and the reference application; The usage coordination degree is used to represent the probability that the usage start time difference between the analog application and the reference application is within a preset time difference range.
7. The method according to claim 6, wherein the determination of the reference priority level of the reference application corresponding to the new reference vector comprises: Determine the application knowledge graph based on the functional similarity and usage synergy between different applications; Among them, one node of the application knowledge graph corresponds to one application; the attribute of the node includes the priority level of the application corresponding to the node; two nodes of the application knowledge graph are connected based on an edge; the edge of the application knowledge graph includes a first edge and a second edge; the attribute of the first edge includes the functional similarity between the two connected nodes; the attribute of the second edge includes the usage synergy between the two connected nodes; Determine the priority of the current application based on the application knowledge graph.
8. According to the method of claim 7, determining the priority level of the current application according to the application knowledge graph comprises: Based on the node attributes of the application knowledge graph, dividing the application knowledge graph into multiple subgraphs; Based on the multiple subgraphs, a priority level of an application corresponding to each node in the multiple subgraphs is determined.
9. An application bandwidth allocation system, comprising: An acquisition module, configured to acquire usage of at least one application of a user device; A first determination module is configured to obtain a historical usage of each application based on the usage of each application in the at least one application; determine a bandwidth requirement of each application in the target time period based on the historical usage and the target time period, wherein the bandwidth requirement includes a bandwidth requirement prediction value; and determine an allocation coefficient of each application in the target time period based at least on the bandwidth requirement; The allocation coefficient is the allocation ratio of the total bandwidth corresponding to each application; The second determining module is configured to determine the bandwidth allocation for each application based on the allocation coefficient and the total bandwidth.
10. A computer-readable storage medium, wherein the storage medium stores computer instructions. When a computer reads the computer instructions, the computer executes the method according to any one of claims 1 to 8.