Business processing method, apparatus, device, and storage medium

By splitting the service chain into multiple sub-services with a high probability of concurrent execution, the performance optimization problem of logically related services in the upstream and downstream of the service chain is solved, improving the calling efficiency and the accuracy of the execution results.

CN116126538BActive Publication Date: 2026-11-06ADVANCED NEW TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310134767.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-03-07
Publication Date
2026-11-06
Estimated Expiration
2039-03-07

AI Technical Summary

Technical Problem

In existing technologies, it is difficult to optimize the performance of services with logical connections between upstream and downstream service links through parallel processing.

Method used

The target service is split into multiple sub-services, each containing multiple branches. The branches are determined based on the input parameters of the sub-services, and the branches with the highest probability of concurrent execution are merged and processed.

Benefits of technology

It improves the efficiency of service chain invocation, reduces the rollback time caused by branch execution errors, and optimizes the performance of backend services and the accuracy of execution results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116126538B_ABST
    Figure CN116126538B_ABST
Patent Text Reader

Abstract

This specification provides a business processing method, apparatus, device, and storage medium, relating to the field of computer technology. The method includes: upon receiving a request to invoke a target service, determining multiple sub-services of the target service, each sub-service containing multiple branches, the branches being determined based on input parameters of the sub-services; determining the execution probability of each branch of each sub-service; selecting the corresponding branch of each sub-service based on the determined execution probabilities of each branch of each sub-service, and concurrently executing the selected branches of each sub-service; and merging the execution results of each sub-service to determine the execution result of the target service.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This patent application is a divisional application of Chinese patent application No. 201910170430.0, filed on March 7, 2019, entitled "Business Processing Method, Apparatus, Equipment and Storage Medium". Technical Field

[0002] This document relates to the field of computer technology, and in particular to a business processing method, a business processing apparatus, a business processing device, and a computer-readable storage medium. Background Technology

[0003] With the rapid development of internet technology, more and more people are choosing to conduct business online and provide various services to users. As businesses grow, the services that business systems need to provide become increasingly complex, placing higher demands on the performance of internet services.

[0004] One technical solution utilizes the parallel processing capabilities of computers to concurrently execute services with unrelated business logic. However, in this solution, it is difficult to optimize the service performance of services with logical connections between their upstream and downstream links through parallel processing. Summary of the Invention

[0005] This specification provides one or more embodiments of a business processing method. The method includes, upon receiving a request to invoke a target service, determining multiple sub-services of the target service. Each sub-service contains multiple branches. The multiple branches are determined based on input parameters of the sub-services. A branch corresponding to each sub-service is selected based on the execution probability of each branch of each sub-service. The selected branches of each sub-service are executed concurrently. The execution results of each sub-service are merged to determine the execution result of the target service.

[0006] This specification provides a business processing apparatus according to one or more embodiments. The apparatus includes a sub-service determination unit, which, upon receiving a call request for a target service, determines multiple sub-services of the target service. Each sub-service contains multiple branches. The multiple branches are determined based on input parameters of the sub-services. The apparatus also includes a concurrent execution unit, used to select a branch corresponding to each sub-service based on the execution probability of each branch of each sub-service. The selected branches of each sub-service are executed concurrently. The apparatus further includes a result processing unit, used to merge the execution results of each sub-service to determine the execution result of the target service.

[0007] This specification provides one or more embodiments of a business processing apparatus. The apparatus includes a processor. The apparatus also includes a memory arranged to store computer-executable instructions. When executed, the computer-executable instructions cause the processor to determine multiple sub-services of the target service upon receiving a request to invoke the target service. Each sub-service contains multiple branches. The multiple branches are determined based on input parameters of the sub-services. A branch corresponding to each sub-service is selected based on the magnitude of the execution probability of each branch of each sub-service. The selected branches of each sub-service are executed concurrently. The execution results of each sub-service are merged to determine the execution result of the target service.

[0008] This specification provides one or more embodiments of a storage medium for storing computer-executable instructions. When executed by a processor, upon receiving a request to invoke a target service, the computer-executable instructions determine multiple sub-services of the target service. Each sub-service contains multiple branches. The multiple branches are determined based on input parameters of the sub-services. A branch corresponding to each sub-service is selected based on the execution probability of each branch of each sub-service. The selected branches of each sub-service are executed concurrently. The execution results of each sub-service are merged to determine the execution result of the target service. Attached Figure Description

[0009] To more clearly illustrate the technical solutions in the embodiments or prior art of this document, the accompanying drawings used in the description of the embodiments or prior art will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments recorded in this document. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0010] Figure 1 A schematic block diagram illustrating an application scenario of a business processing method provided according to some embodiments of this specification is shown.

[0011] Figure 2 A flowchart illustrating a business processing method provided according to some embodiments of this specification is shown;

[0012] Figure 3 A flowchart illustrating the determination of the execution probability of each branch of each sub-service is shown according to some embodiments of this specification;

[0013] Figure 4 This document illustrates a flowchart illustrating the merging of execution results of various sub-services according to some embodiments of this specification.

[0014] Figure 5A flowchart illustrating a business processing method provided according to some other embodiments of this specification is shown;

[0015] Figure 6 A schematic block diagram of a service processing apparatus provided according to some embodiments of this specification is shown;

[0016] Figure 7 A schematic block diagram of a concurrent execution unit provided according to some embodiments of this specification is shown;

[0017] Figure 8 A schematic block diagram of an execution probability prediction unit provided according to some embodiments of this specification is shown; and

[0018] Figure 9 A schematic block diagram of a service processing apparatus provided according to some embodiments of this specification is shown; Detailed Implementation

[0019] To enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this specification, and not all embodiments. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this document.

[0020] Figure 1 A schematic block diagram illustrating an application scenario of a business processing method provided according to some embodiments of this specification is shown. (Refer to...) Figure 1 As shown, this application scenario may include at least one client 110 and a server 120. The client 110 and server 120 communicate via network 130. The client 110 initiates a request to the server 120 to call a target service. After receiving the request from the client 110, the server 120 executes multiple sub-services of the target service, merges the execution results of each sub-service, and returns the final execution result to the client 110.

[0021] It should be noted that the client 110 can be a mobile phone, tablet computer, desktop computer, laptop computer, or POS (Point of Sales) terminal, etc. The server 120 can be a physical server containing independent hosts, a virtual server hosted in a host cluster, or a cloud server. The network 130 can be a wired network or a wireless network; for example, network 130 can be a Public Switched Telephone Network (PSTN) or the Internet.

[0022] It should be noted that the steps in the business processing method in the example embodiments of this specification may be partially executed by the client 110, partially executed by the server 120, or all executed by the server 120. This invention does not impose any special limitations on this.

[0023] The following is combined Figure 1 Application scenarios, refer to Figure 2 This specification describes a business processing method according to exemplary embodiments. It should be noted that the above application scenarios are shown only to facilitate understanding of the spirit and principles of the invention, and the embodiments of the invention are not limited in any way. Rather, the embodiments of the invention can be applied to any applicable scenario.

[0024] Figure 2 This specification illustrates a flowchart of a business processing method provided according to some embodiments, which can be applied to... Figure 1 Server 120 in the middle. (Refer to...) Figure 2 As shown, the business processing method includes steps S210 to S240. The following describes... Figure 2 The business processing methods in the example embodiments are described in detail.

[0025] Reference Figure 2 As shown, in step S210, when a call request for the target service is received, multiple sub-services of the target service are determined. Each sub-service contains multiple branches, and the multiple branches are determined based on the input parameters of the sub-services.

[0026] In the example embodiment, the target service is a serial service chain, such as an internet backend service. This service chain contains multiple sub-services or execution units. Each sub-service is one or a group of relatively small and independent functional units or execution units. These multiple sub-services together constitute an execution flow with actual business meaning. There are logical dependencies between the sub-services in the serial service chain; that is, the input of a later sub-service depends on the output of a previous sub-service, but there are no direct dependencies between the sub-services. Furthermore, each sub-service contains multiple branches determined by its input parameters.

[0027] In the example embodiments, the target service can be an order placement service, an insurance purchase service, or other suitable services such as a ticket purchase service or a login service; this specification does not impose any special limitations on this. The following description uses an order placement service as an example.

[0028] The order placement service can include multiple sub-services or execution units. Each sub-service contains multiple branches, which are determined based on the input parameters of the sub-service. For example, the order placement service for a target product can include: product selection sub-service, order confirmation sub-service, payment sub-service, etc. Among them, the product selection sub-service can provide business logic for color and size selection, with each color and its corresponding size forming a branch, such as black size S branch to black size XL branch, white size S branch to white size XL branch, and red size S branch to red size XL branch; the order confirmation sub-service can provide business logic for selecting and confirming the delivery address and delivery method, with each delivery address and its corresponding delivery method forming a branch, such as delivery on holidays for the first delivery address, delivery on weekdays for the first delivery address, etc.; the payment sub-service includes branches such as Alipay payment branch, bank card payment branch, and balance payment branch.

[0029] Furthermore, in the example embodiment, the various sub-services of the target service are arranged into an ordered sub-service queue according to their logical order in the entire service chain, and the service queue is stored. For example, the various sub-services can be sorted according to their logical order in the entire service chain, and the calling interfaces of each sub-service can be stored in the form of a linked list or array according to the sorting result, so as to facilitate calling each sub-service through the linked list or array.

[0030] In step S220, the execution probability of each branch of each of the sub-services is determined.

[0031] In the example embodiment, historical execution data of each sub-service corresponding to the target service is obtained, and the execution probability of each branch of each sub-service is determined based on the historical execution data of each sub-service of the target service. Specifically, input parameters of each sub-service can be extracted from the historical execution data of the target service, statistics can be performed on the input parameters of each sub-service, and the execution probability of each branch of each sub-service can be determined based on the statistical results.

[0032] For example, if the target service is the order placement service for a target product, the input parameters of each sub-service of the order placement service can be extracted from the historical order data of the target product order placement service. For example, historical color and size information can be extracted from the product selection sub-service; historical delivery address and delivery method information can be extracted from the order confirmation sub-service; and payment method information can be extracted from the payment sub-service. The extracted historical color and size information, historical delivery address and delivery method information, and payment method information can be statistically analyzed. Based on the statistical results, the execution probability of each branch of each sub-service, i.e., the sub-service under each input parameter, can be determined. For example, based on the statistical results, the number of times each color and size branch of the product selection sub-service is executed can be determined, and the ratio of the number of times each color and size branch is executed to the total number of times is executed can be used as the execution probability of each color and size branch.

[0033] In step S230, the branches corresponding to each sub-service are selected based on the determined execution probabilities of each branch of each sub-service, and the selected branches of each sub-service are executed concurrently.

[0034] In the example embodiment, after obtaining the execution probability of each branch of each sub-service, the corresponding branch of each sub-service is selected based on the determined execution probability of each branch of each sub-service, and the selected branches of each sub-service are executed concurrently. For example, sub-service 1 has three branches, namely branch 1, branch 2, and branch 3, and the execution probability of branch 1 of sub-service 1 is 15%, the execution probability of branch 2 is 60%, and the execution probability of branch 3 is 25%; sub-service 2 has three branches, namely branch 1, branch 2, and branch 3, and the execution probability of branch 1 of sub-service 2 is 70%, the execution probability of branch 2 is 20%, and the execution probability of branch 3 is 10%. In this case, branch 2 of sub-service 1 and branch 1 of sub-service 2 are selected first, and the selected branches 2 of sub-service 1 and branch 1 of sub-service 2 are executed concurrently.

[0035] Further, in the example embodiment, a branch queue for each sub-service is generated based on the determined execution probability of each branch of each sub-service; the branches in the branch queue of each sub-service are sorted according to the magnitude of the execution probability of each branch; and the corresponding branches are selected sequentially from the branch queue of each sub-service in descending order of execution probability. For example, sorting the branches in the branch queue of sub-service 1 yields a sorted branch queue of sub-service 1 {branch 2 (60%); branch 3 (25%); branch 1 (15%)}, and sorting the branches in the branch queue of sub-service 2 yields a sorted branch queue of sub-service 2 {branch 1 (70%); branch 2 (20%); branch 1 (10%)}. The corresponding branches are then selected sequentially from the branch queues of sub-service 1 and sub-service 2, and the selected branches are executed concurrently.

[0036] In step S240, the execution results of each of the sub-services are merged to determine the execution result of the target service.

[0037] In the example embodiment, the execution results of each subservice are sorted according to their logical execution order. The execution result of the previous subservice is then matched against the input parameters of the completed branches of the next subservice, and so on, until all subservices are matched. If no matching input parameter is found for a corresponding branch, the execution result of the previous subservice is used as the input parameter for the next subservice, and the next subservice is re-executed. After re-execution, the execution result of the next subservice is matched against the input parameters of the completed branches of the next subservice, and so on, until all subservices are matched. After all subservices are matched, the execution result of the last subservice is used as the merged execution result.

[0038] For example, if the target service is an order placement service, the execution results of these three sub-services are sorted according to the logical order of the product selection sub-service, order confirmation sub-service, and payment sub-service. The execution result of the product selection sub-service is matched against the input result of the order confirmation sub-service. If a match is found, the execution result of the order confirmation sub-service is matched against the input result of the payment sub-service. If a match is found, the execution result of the payment sub-service is used as the final execution result of the target service. Furthermore, if no match is found, the execution result of the product selection sub-service (product type, color, and size) is used as the input result for the order confirmation sub-service, and the order confirmation sub-service is re-executed. The next round of matching is based on the re-execution result. After the product selection, order confirmation, and payment sub-services are matched, the execution result of the payment sub-service, for example, deducting the corresponding amount from a bank card, is used as the execution result of the target service.

[0039] according to Figure 2 The business processing method in the example embodiment, on the one hand, determines multiple sub-services of the target service, each sub-service containing multiple branches, which can split the service chain of the target service with logical connections between upstream and downstream into multiple sub-services, thereby facilitating performance optimization of the target service; on the other hand, it predicts the execution probability of each branch of each sub-service of the target service, and executes the selected branches of each sub-service concurrently based on the execution probability of each branch, which can not only reduce the rollback time caused by branch execution errors, but also optimize the calling efficiency of backend services; furthermore, it merges the execution results of each sub-service, which can avoid the impact of branch prediction errors on the execution results and improve the accuracy of the execution results of the target service.

[0040] Furthermore, in some example embodiments, the selected branches of each sub-service are submitted to a concurrent task pool. The concurrent task pool executes each branch of the sub-service concurrently in descending order of execution probability. For example, the concurrent task pool can be a thread pool. The selected branches of each sub-service are submitted to the thread pool, and the thread pool prioritizes branches with higher execution probabilities from among the sub-services for concurrent execution. The concurrent task pool can provide the runtime context of the sub-services, including functional dependencies and basic parameters. In addition, it can isolate the runtime environment of the sub-services, providing them with independent transaction execution space and avoiding mutual interference of execution results. By concurrently executing the branches of each sub-service through a concurrent task pool, data processing efficiency can be further improved.

[0041] Furthermore, in the example embodiment, after the sub-service is executed, the sub-service is marked as merging-ready; when all sub-services are in the merging-ready state, the execution results of each sub-service are merged.

[0042] Figure 3 A flowchart illustrating the process of determining the execution probability of each branch of each subservice according to some embodiments of this specification is shown.

[0043] Reference Figure 3 As shown, in step S310, historical execution data of each branch of each sub-service is obtained.

[0044] In the example embodiment, historical execution data of each branch of each sub-service is obtained from the server. For example, suppose the target service is an order placement service for a target product. The sub-services of the order placement service include a product selection sub-service, an order confirmation sub-service, and a payment sub-service, etc. The input parameters of each sub-service of the order placement service are extracted from the historical order data of the order placement service. For example, the historical color information and size information corresponding to the target product are extracted from the product selection sub-service; the historical delivery address and historical delivery method information corresponding to the target product are extracted from the order confirmation sub-service; and the payment method information corresponding to the target product is extracted from the payment sub-service, etc.

[0045] In step S320, the number of executions of each branch of each sub-service is counted based on historical execution data.

[0046] In the example embodiment, after obtaining the historical execution data of each branch of each sub-service, the execution count of each branch of each sub-service is statistically analyzed based on the historical execution data. For example, suppose the target service is an order placement service for a target product. The order placement service may include: a product selection sub-service, an order confirmation sub-service, and a payment sub-service. The execution count of each color size branch is statistically analyzed based on the extracted historical color size information; the execution count of each delivery address and delivery method branch is statistically analyzed based on the historical delivery address and delivery method information; and the execution count of each payment method branch is statistically analyzed based on the historical payment method information.

[0047] In step S330, the proportion of the number of executions of each branch to the total number of executions is determined based on the statistical results, and the proportion is used as the execution probability of the corresponding branch.

[0048] In the example embodiment, after counting the execution counts of each branch of each sub-service, the proportion of each branch's execution count to the total execution count is determined, and this proportion is used as the execution probability of each branch. For example, suppose the black S-code branch has 10 execution counts, the black L-code branch has 50 execution counts, the black XL-code branch has 10 execution counts, the white S-code branch has 10 execution counts, the white L-code branch has 20 execution counts, and the total execution count is 100. Then, the execution probability of the black S-code branch is 10%, the execution probability of the black L-code branch is 50%, the execution probability of the black XL-code branch is 10%, the execution probability of the white S-code branch is 10%, and the execution probability of the white L-code branch is 20%. Furthermore, the execution counts of the corresponding branches and the proportion of their execution counts to the total execution counts can be dynamically updated based on the execution results of each sub-service.

[0049] Furthermore, in the example embodiment, the execution probability of each branch of each sub-service can be determined using a statistical model. For example, taking the color size selection sub-service as an example, let the total number of executions be n, the number of executions of the black S-code branch be a, the number of executions of the black L-code branch be b, the number of executions of the black XL-code branch be c, the number of executions of the white S-code branch be d, and the number of executions of the white L-code branch be e. The execution probability of the black S-code branch is f1 = a / n, the execution probability of the black L-code branch is f2 = b / n, the execution probability of the black XL-code branch is f3 = c / n, the execution probability of the white S-code branch is f4 = d / n, and the execution probability of the white L-code branch is f5 = e / n. After the color size selection sub-service is completed, the execution probability of the corresponding branch is updated based on the input parameters of the color size selection sub-service, i.e., the color size parameters. For example, after executing the black S-code branch, the execution probability of the black S-code branch is f1 = (a+1) / (n+1).

[0050] Furthermore, in the example embodiment, the execution probability of each branch of each sub-service can also be determined by a probability prediction model based on statistical methods. For example, historical execution features such as historical execution quantity features of each branch of each sub-service can be extracted, and the probability prediction model can be trained based on the historical execution features. The execution probability of each branch of each sub-service can then be determined by the trained probability prediction model.

[0051] Furthermore, in the example embodiment, the parameters of the probability prediction model can be adjusted based on the execution results of each sub-service to optimize the probability prediction model. For example, in some embodiments, if the probability prediction model correctly predicts and matches the input parameters of the corresponding branch during the result merging process, the matching result is fed back to the probability prediction model, and the parameters of the probability prediction model are adjusted based on the matching result.

[0052] It should be noted that the probability prediction model can be a Bayesian model, a support vector machine model, or a decision tree model, or other appropriate statistical models such as neural network models or logistic regression models. This specification does not impose any special limitations on this.

[0053] Figure 4 A flowchart illustrating the merging of execution results of various sub-services according to some embodiments of this specification is shown.

[0054] Reference Figure 4 As shown, in step S410, the execution results of each sub-service are sorted, and the execution results of the previous sub-service after sorting are matched with the input parameters of the branches that have been completed in the current sub-service.

[0055] In the example embodiment, after each sub-service has been executed once, the execution results of the branches of each executed sub-service are sorted according to the logical order of the sub-services. The execution result of the previous sub-service after sorting is then matched with the input parameters of the branches of the currently executed sub-service. For example, suppose the target service is an order placement service. The sub-services of the order placement service include a product selection sub-service, an order confirmation sub-service, and a payment sub-service. The input parameters of the completed execution of the order confirmation sub-service are "first delivery address, weekday delivery" and "first delivery address, holiday delivery". The execution result of the product selection sub-service is matched with the input parameters of the completed branches of the order confirmation sub-service. For example, the execution result of the product selection sub-service includes product information and default address delivery method information. The default address delivery method information is matched with the input parameters of the order confirmation sub-service, namely the delivery address delivery method parameter.

[0056] Furthermore, in the example embodiment, an execution result queue is generated based on the execution results of one or more branches of each sub-service of the target service; the execution results of each sub-service in the execution result queue are sorted according to the logical order of each sub-service.

[0057] In step S420, if a matching input parameter for the corresponding branch is found, the execution result of the matching branch is matched with the input parameter of the completed branch of the next sub-service, until all sub-services are matched. For example, when matching the execution result of the "Select Goods" sub-service with the input result of the "Confirm Order" sub-service, if a matching input result is found, the execution result of the "Confirm Order" sub-service is matched with the input result of the "Payment" sub-service. If a matching input result is found, the execution result of the "Payment" sub-service is used as the final execution result of the target service.

[0058] In step S430, if no matching input parameter is found for the corresponding branch, the execution result of the previous service is used as the input parameter for the current sub-service, and the current sub-service is re-executed. For example, if no matching input result is found for the order confirmation sub-service, the execution result of the product selection sub-service (i.e., product type and color / size) is used as the input result for the order confirmation sub-service, and the order confirmation sub-service is re-executed. The next round of matching is then performed based on the re-execution result.

[0059] In step S440, after re-execution, the execution result of the current sub-service is matched with the input parameters of the completed branch of the next sub-service until all sub-services are matched.

[0060] In step S450, after all sub-services have been matched, the execution result of the last sub-service is used as the execution result of the merged process. For example, after the product selection sub-service, order confirmation sub-service, and payment sub-service have been matched, the execution result of the payment sub-service, such as deducting the corresponding product amount from the bank card, is used as the execution result of the target service.

[0061] Figure 5 A flowchart illustrating a business processing method provided according to some other embodiments of this specification is shown.

[0062] Reference Figure 5 As shown, in step S510, the serial target service service link is split into independent sub-services or sub-execution units according to a predetermined granularity. The predetermined granularity can be a service unit with independent functions. The sub-services only have data state logical relationship dependencies and no direct dependencies. By splitting the serial target service into multiple sub-services, the sub-services of the target service can be executed concurrently, thereby improving the efficiency of calling the target service.

[0063] In step S520, the branches of each sub-service are determined based on the input parameters of each sub-service. For example, the output parameters of each type of each sub-service are used as branches of the sub-service. Taking the product selection sub-service as an example, each color and its corresponding size is a branch, such as the black S-size branch to the black XL-size branch, the white S-size branch to the white XL-size branch, and the red S-size branch to the red XL-size branch.

[0064] In step S530, a branch queue is generated based on the branches of each sub-service. The branch queue of sub-service 2 includes branch 1, branch 2, and branch 3, and the branch queue of sub-service 3 includes branch 1, branch 2, and branch 3.

[0065] In step S540, the execution probability of each branch of each sub-service is predicted based on the probability prediction model example.

[0066] In the example embodiment, the execution probability of each branch of the sub-service is predicted using a probability prediction model. For example, the execution probability of branch 1 of sub-service 2 is 70%, the execution probability of branch 2 is 20%, and the execution probability of branch 3 is 10%; the execution probability of branch 1 of sub-service 3 is 15%, the execution probability of branch 2 is 60%, and the execution probability of branch 3 is 25%. Furthermore, in the example embodiment, the branches of the sub-service are sorted according to the magnitude of their execution probabilities.

[0067] Furthermore, the parameters of the probability prediction model can be adjusted based on the prediction results, and the current execution probability of each branch of each sub-service can be predicted based on the adjusted probability prediction model.

[0068] It should be noted that the probability prediction model can be a Bayesian model, a support vector machine model, or a decision tree model, or other appropriate statistical models or machine learning models such as neural network models or logistic regression models, etc. This specification does not impose any special limitations on it.

[0069] In step S550, the predicted branches of each sub-service are submitted to a concurrent task pool for concurrent execution. The concurrent task pool executes each sub-service branch concurrently in descending order of execution probability. For example, the concurrent task pool can be a thread pool. The selected branches of each sub-service are submitted to the thread pool, which prioritizes branches with higher execution probabilities for concurrent execution. The concurrent task pool can provide the runtime context of the sub-service, including functional dependencies and basic parameters. Furthermore, it can isolate the runtime environment of the sub-service, providing each sub-service with an independent transaction execution space to prevent mutual interference of execution results. Executing the branches of each sub-service concurrently through the concurrent task pool improves data processing efficiency. Further, during concurrent execution, based on server performance and computing resources, high-probability branches are prioritized for execution, eliminating the need to execute all branches of the sub-service, thus reducing the consumption of computing resources and further improving data processing efficiency.

[0070] In the example implementation, the concurrent task pool retrieves branches of sub-services from the branch queue of sub-services based on the load of the business system, ensuring that the branch with the highest probability in each sub-service is executed. After the sub-service branch is completed, the execution result is added to the execution result queue, and the sub-service with the completed branch is marked as merging-ready. When all sub-services are in the merging-ready state, the sub-services of the entire target service are submitted for result merging.

[0071] In step S560, the execution results of each sub-service are merged. Step S560 includes steps S562 to S568, which are described in detail below.

[0072] In step S562, the execution results of each sub-service are sorted, for example, according to the logical execution order of each sub-service on the service link of the target service.

[0073] In step S564, the execution result of the previous sub-service after sorting is matched with the input parameters of the completed branch of the current sub-service. If the input parameters of the corresponding branch are matched, the execution result of the corresponding branch is matched with the input parameters of the completed branch of the next sub-service, until all sub-services are matched.

[0074] In step S566, if no input parameter for the corresponding branch is matched, the execution result of the previous service is used as the input parameter for the current sub-service, and the current sub-service is re-executed. After re-execution, the execution result of the current sub-service is matched with the input parameter of the completed branch of the next sub-service until all sub-services are matched.

[0075] In step S568, after all sub-services have been matched, the execution result of the last sub-service is used as the execution result after merging.

[0076] In addition, in step S570, the matching results in step S564 and / or step S566 can be fed back to the probabilistic prediction model. The parameters of the probabilistic prediction model can be adjusted based on the feedback matching results, thereby improving the prediction accuracy of the probabilistic prediction model, avoiding the rollback overhead caused by re-executing the misjudged branch, and further improving data processing efficiency.

[0077] In the exemplary embodiments of this specification, a business processing apparatus is also provided. (Refer to...) Figure 6 As shown, the business processing device 600 may include: a sub-service determination unit 610, an execution probability prediction unit 620, a concurrent execution unit 630, and a result processing unit 640. Specifically, the sub-service determination unit 610, upon receiving a call request for a target service, determines multiple sub-services of the target service, each sub-service containing multiple branches, the multiple branches being determined based on the input parameters of the sub-services; the execution probability prediction unit 620 determines the execution probability of each branch of each sub-service; the concurrent execution unit 630 selects the corresponding branch of each sub-service based on the determined execution probabilities of each branch of each sub-service, and concurrently executes the selected branches of each sub-service; the result processing unit 640 merges the execution results of each sub-service to determine the execution result of the target service.

[0078] In some example embodiments of this specification, based on the foregoing scheme, refer to Figure 7 As shown, the concurrent execution unit 630 includes: a branch queue generation unit 710, used to generate a branch queue for each sub-service based on the determined execution probability of each branch of each sub-service; a branch sorting unit 720, used to sort each branch in the branch queue of each sub-service based on the magnitude of the execution probability of each branch; and a selection unit 730, used to select the corresponding branch from the branch queue of each sub-service in descending order of execution probability.

[0079] In some example embodiments of this specification, based on the foregoing scheme, the result processing unit 640 includes: a marking unit, used to mark the sub-service as merging-ready after execution; and a result merging unit, used to merge the execution results of each sub-service when all sub-services are in merging-ready state.

[0080] In some example embodiments of this specification, based on the foregoing scheme, the business processing device 600 further includes: a result queue generation queue, used to generate an execution result queue based on the execution results of one or more branches of each of the sub-services of the target service before merging the execution results of each of the sub-services; and a result sorting unit, used to sort the execution results of each sub-service in the execution result queue based on the logical order of each of the sub-services.

[0081] In some example embodiments of this specification, based on the foregoing scheme, the result merging unit is configured to: match the execution result of the previous sub-service in the execution result queue with the input parameters of the completed branches of the current sub-service; if a matching input parameter of the corresponding branch is found, match the execution result of the matching corresponding branch with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; if no matching input parameter of the corresponding branch is found, use the execution result of the previous service as the input parameter of the current sub-service and re-execute the current sub-service; after re-execution, match the execution result of the current sub-service with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; after all sub-services are matched, use the execution result of the last sub-service as the merged execution result.

[0082] In some example embodiments of this specification, based on the foregoing scheme, the business processing device further includes: a feedback unit, used to update the execution probability of the corresponding branch based on the matching result if the input parameters of the corresponding branch are matched.

[0083] In some example embodiments of this specification, based on the foregoing scheme, refer to Figure 8 As shown, the execution probability prediction unit 620 includes: a data acquisition unit 810, used to acquire historical execution data of each branch of each sub-service; a statistics unit 820, used to count the number of executions of each branch of each sub-service based on the historical execution data; and a probability determination unit 830, used to determine the proportion of the number of executions of each branch to the total number of executions based on the statistics results, and to use the proportion as the execution probability of the corresponding branch.

[0084] In some example embodiments of this specification, based on the foregoing scheme, the concurrent execution unit includes: a task submission unit, used to submit the selected branches of each of the sub-services to a concurrent task pool; and an execution unit, used to concurrently execute each branch of the sub-services in descending order of their execution probabilities through the concurrent task pool.

[0085] In some example embodiments of this specification, based on the foregoing scheme, the sub-service determination unit includes: a service splitting unit, used to split the target service into multiple sub-services according to a predetermined granularity; and a branch determination unit, used to determine the multiple branches of each sub-service based on the range of input parameters of each sub-service.

[0086] according to Figure 6 In the example embodiment of the business processing device, on the one hand, multiple sub-services of the target service are determined, each sub-service containing multiple branches. This allows the service chain of the target service with logical connections between upstream and downstream to be split into multiple sub-services, thereby facilitating performance optimization of the target service. On the other hand, the execution probability of each branch of each sub-service of the target service is predicted, and the selected branches of each sub-service are executed concurrently based on the execution probability of each branch. This not only reduces the rollback time caused by branch execution errors but also optimizes the calling efficiency of backend services. Furthermore, the execution results of each sub-service are merged to avoid the impact of branch prediction errors on the execution results and improve the accuracy of the execution results of the target service.

[0087] The business processing apparatus provided in the embodiments of this specification can implement the various processes in the foregoing method embodiments and achieve the same functions and effects, which will not be repeated here.

[0088] Furthermore, embodiments of this specification also provide a business processing device, such as... Figure 9 As shown.

[0089] The business processing device can vary significantly due to differences in configuration or performance. It may include one or more processors 901 and memory 902, and the memory 902 may store one or more application programs or data. The memory 902 may be temporary or persistent storage. The application programs stored in the memory 902 may include one or more modules (not shown in the figure), and each module may include a series of computer-executable instructions for the business processing device. Furthermore, the processor 901 may be configured to communicate with the memory 902 and execute the series of computer-executable instructions stored in the memory 902 on the business processing device. The business processing device may also include one or more power supplies 903, one or more wired or wireless network interfaces 904, one or more input / output interfaces 905, one or more keyboards 906, etc.

[0090] In one specific embodiment, the service processing device includes a memory and one or more programs, wherein the one or more programs are stored in the memory, and the one or more programs may include one or more modules, and each module may include a series of computer-executable instructions for the service processing device, and is configured to be executed by one or more processors. The one or more programs include computer-executable instructions for performing the following: upon receiving a call request for a target service, determining multiple sub-services of the target service, each sub-service containing multiple branches, the multiple branches being determined based on input parameters of the sub-services; determining the execution probability of each branch of each sub-service; selecting the branch corresponding to each sub-service based on the determined execution probabilities of each branch of each sub-service, and concurrently executing the selected branches of each sub-service; merging the execution results of each sub-service to determine the execution result of the target service.

[0091] Optionally, when the computer-executable instructions are executed, the branch corresponding to each of the sub-services is selected based on the determined execution probability of each branch of each of the sub-services, including: generating a branch queue for each of the sub-services based on the determined execution probability of each branch of each of the sub-services; sorting each branch in the branch queue of each of the sub-services based on the execution probability of each branch; and selecting the corresponding branch from the branch queue of each of the sub-services in descending order of execution probability.

[0092] Optionally, when the computer-executable instructions are executed, the execution results of the various sub-services are merged, including: marking the sub-services as mergeable after execution; and merging the execution results of the various sub-services when all sub-services are in a mergeable state.

[0093] Optionally, when the computer-executable instructions are executed, before merging the execution results of the various sub-services, the business processing method further includes: generating an execution result queue based on the execution results of one or more branches of the various sub-services of the target service; and sorting the execution results of each sub-service in the execution result queue based on the logical order of the various sub-services.

[0094] Optionally, when the computer-executable instruction is executed, it merges the execution results of each sub-service, including: matching the execution result of the previous sub-service in the execution result queue with the input parameters of the completed branches of the current sub-service; if a matching input parameter of the corresponding branch is found, matching the execution result of the matching corresponding branch with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; if no matching input parameter of the corresponding branch is found, using the execution result of the previous service as the input parameter of the current sub-service, and re-executing the current sub-service; after re-executing, matching the execution result of the current sub-service with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; after all sub-services are matched, using the execution result of the last sub-service as the merged execution result.

[0095] Optionally, when the computer-executable instructions are executed, the business processing method further includes: if no matching input parameter for the corresponding branch is found, feeding back the matching result to the probability prediction model; and adjusting the parameters of the probability prediction model based on the matching result.

[0096] Optionally, when the computer-executable instructions are executed, determining the execution probability of each branch of each sub-service includes: obtaining historical execution data of each branch of each sub-service; statistically analyzing the execution count of each branch of each sub-service based on the historical execution data; determining the proportion of the execution count of each branch to the total execution count based on the statistical results, and using the proportion as the execution probability of the corresponding branch.

[0097] Optionally, when the computer-executable instructions are executed, the branches of the selected sub-services are executed concurrently, including: submitting the branches of the selected sub-services to a concurrent task pool; and executing the branches of the sub-services concurrently in descending order of their execution probabilities through the concurrent task pool.

[0098] Optionally, when the computer-executable instructions are executed, determining multiple sub-services of the target service includes: splitting the target service into multiple sub-services according to a predetermined granularity; and determining the multiple branches of each sub-service based on the range of input parameters of each sub-service.

[0099] The business processing equipment provided in the embodiments of this specification can implement the various processes in the foregoing method embodiments and achieve the same functions and effects, which will not be repeated here.

[0100] Furthermore, embodiments of this specification also provide a storage medium for storing computer-executable instructions. In one specific embodiment, the storage medium can be a USB flash drive, optical disc, hard disk, etc. When the computer-executable instructions stored in the storage medium are executed by a processor, they can achieve the following process: upon receiving a call request for a target service, determining multiple sub-services of the target service, each sub-service containing multiple branches, the multiple branches being determined based on the input parameters of the sub-services; determining the execution probability of each branch of each sub-service; selecting the corresponding branch of each sub-service based on the determined execution probabilities of each branch of each sub-service, and concurrently executing the selected branches of each sub-service; merging the execution results of each sub-service to determine the execution result of the target service.

[0101] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the branch corresponding to each of the sub-services is selected based on the determined execution probability of each branch of each sub-service, including: generating a branch queue for each sub-service based on the determined execution probability of each branch of each sub-service; sorting each branch in the branch queue of each sub-service based on the execution probability of each branch; and selecting the corresponding branch from the branch queue of each sub-service in descending order of execution probability.

[0102] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the execution results of the various sub-services are merged, including: marking the sub-services as mergeable after execution; and merging the execution results of the various sub-services when all sub-services are in a mergeable state.

[0103] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, before merging the execution results of the various sub-services, the business processing method further includes: generating an execution result queue based on the execution results of one or more branches of the various sub-services of the target service; and sorting the execution results of each sub-service in the execution result queue based on the logical order of the various sub-services.

[0104] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the execution results of each of the sub-services are merged, including: matching the execution result of the previous sub-service in the execution result queue with the input parameters of the completed branches of the current sub-service; if a matching input parameter of the corresponding branch is found, matching the execution result of the matching corresponding branch with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; if no matching input parameter of the corresponding branch is found, using the execution result of the previous service as the input parameter of the current sub-service, and re-executing the current sub-service; after re-executing, matching the execution result of the current sub-service with the input parameters of the completed branches of the next sub-service, until all sub-services are matched; after all sub-services are matched, using the execution result of the last sub-service as the merged execution result.

[0105] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the business processing method further includes: if no matching input parameter for the corresponding branch is found, feeding back the matching result to the probability prediction model; and adjusting the parameters of the probability prediction model based on the matching result.

[0106] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the execution probability of each branch of each of the sub-services is determined, including: obtaining historical execution data of each branch of each of the sub-services; statistically analyzing the number of executions of each branch of each of the sub-services based on the historical execution data; determining the proportion of the number of executions of each branch to the total number of executions based on the statistical results, and using the proportion as the execution probability of the corresponding branch.

[0107] Optionally, when the computer-executable instructions stored in the storage medium are executed by the processor, the selected branches of each sub-service are executed concurrently, including: submitting the selected branches of each sub-service to a concurrent task pool; and executing the branches of each sub-service concurrently in descending order of their execution probabilities through the concurrent task pool.

[0108] Optionally, when the computer-executable instructions stored in the storage medium are executed by a processor, they determine multiple sub-services of the target service, including: splitting the target service into multiple sub-services according to a predetermined granularity; and determining the multiple branches of each sub-service based on the range of input parameters of each sub-service.

[0109] The computer-readable storage medium provided in the embodiments of this specification can implement the various processes in the foregoing method embodiments and achieve the same functions and effects, which will not be repeated here.

[0110] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (e.g., a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program a digital system themselves to "integrate" it onto a PLD, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages ​​and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.

[0111] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, ASICs, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0112] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.

[0113] For ease of description, the above apparatus is described by dividing it into various functional units. Of course, when implementing the embodiments of the specification, the functions of each unit can be implemented in one or more software and / or hardware.

[0114] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0115] This specification is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this specification. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0116] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0117] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0118] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0119] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0120] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0121] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0122] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, one or more embodiments of this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0123] One or more embodiments of this specification can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.

[0124] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0125] The above description is merely an embodiment of this document and is not intended to limit the scope of this document. Various modifications and variations can be made to this document by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this document should be included within the scope of the claims of this document.

Claims

1. A business processing method, comprising: Upon receiving a request to invoke a target service, multiple sub-services of the target service are identified. Each sub-service contains multiple branches, and the multiple branches are determined based on the input parameters of the sub-service. Based on the historical execution data of each sub-service, determine the execution probability of each branch of each sub-service, or predict the execution probability of each branch of each sub-service based on the probability prediction model, and determine the execution probability of each branch of each sub-service. Based on the execution probability of each branch of each sub-service, select the corresponding branch of each sub-service and execute the selected branches of each sub-service concurrently. The execution results of each of the sub-services are merged to determine the execution result of the target service.

2. The business processing method according to claim 1, wherein selecting the branch corresponding to each of the sub-services based on the execution probability of each branch of each sub-service includes: Generate a branch queue for each of the sub-services based on the execution probability of each branch of each sub-service; The branches in the branch queue of each sub-service are sorted according to the execution probability of each branch; The corresponding branches are selected sequentially from the branch queues of each sub-service in descending order of execution probability.

3. The business processing method according to claim 1, wherein merging the execution results of each of the sub-services includes: After executing the sub-service, mark the sub-service as mergeable. When all sub-services are in a mergeable state, the execution results of each sub-service are merged.

4. The business processing method according to claim 3, wherein before merging the execution results of each of the sub-services, the business processing method further includes: An execution result queue is generated based on the execution results of one or more branches of each of the sub-services of the target service; The execution results of each sub-service in the execution result queue are sorted according to the logical order of each sub-service.

5. The business processing method according to claim 4, wherein merging the execution results of each of the sub-services includes: The execution result of the previous sub-service in the execution result queue is matched with the input parameters of the completed branches of the current sub-service. If the input parameter of the corresponding branch is matched, the execution result of the corresponding branch is matched with the input parameter of the branch that has been executed in the next sub-service, until all sub-services are matched. If no matching input parameter is found for the corresponding branch, the execution result of the previous sub-service is used as the input parameter for the current sub-service, and the current sub-service is re-executed. After re-execution, the execution result of the current sub-service is matched with the input parameters of the completed branch of the next sub-service until all sub-services are matched. After all sub-services have been matched, the execution result of the last sub-service is used as the final execution result after merging.

6. The business processing method according to claim 5, further comprising: If the input parameters of the corresponding branch are matched, the execution probability of the corresponding branch is updated based on the matching result.

7. The business processing method according to any one of claims 1 to 6, wherein, based on a probability prediction model, the execution probability of each branch of each sub-service is predicted, and the execution probability of each branch of each sub-service is determined, the concurrent execution of the selected branches of each sub-service comprises: Submit each of the selected subservice branches to the concurrent task pool; The branches of each sub-service are executed concurrently in descending order of their execution probability using a concurrent task pool.

8. The business processing method according to claim 7, wherein determining the plurality of sub-services of the target service includes: The target service is divided into multiple sub-services according to a predetermined granularity; The multiple branches of each sub-service are determined based on the range of input parameters of each sub-service.

9. A business processing apparatus, comprising: A sub-service determination unit is used to determine multiple sub-services of the target service when a call request for the target service is received. The sub-services contain multiple branches, and the multiple branches are determined based on the input parameters of the sub-services. The execution probability prediction unit is used to determine the execution probability of each branch of each sub-service based on the historical execution data of each sub-service, or to predict the execution probability of each branch of each sub-service based on the probability prediction model, and determine the execution probability of each branch of each sub-service. The concurrent execution unit is used to select the corresponding branch of each sub-service based on the execution probability of each branch of each sub-service, and concurrently execute the selected branches of each sub-service; The result processing unit is used to merge the execution results of each of the sub-services to determine the execution result of the target service.

10. A business processing device, comprising: processor; and a memory configured to store computer-executable instructions, which, when executed, cause the processor to: Upon receiving a request to invoke a target service, multiple sub-services of the target service are identified. Each sub-service contains multiple branches, and the multiple branches are determined based on the input parameters of the sub-service. Based on the historical execution data of each sub-service, determine the execution probability of each branch of each sub-service, or predict the execution probability of each branch of each sub-service based on the probability prediction model, and determine the execution probability of each branch of each sub-service. Based on the execution probability of each branch of each sub-service, select the corresponding branch of each sub-service and execute the selected branches of each sub-service concurrently. The execution results of each of the sub-services are merged to determine the execution result of the target service.

11. A storage medium for storing computer-executable instructions, characterized in that, When the computer-executable instructions are executed, the following process is implemented: Upon receiving a request to invoke a target service, multiple sub-services of the target service are identified. Each sub-service contains multiple branches, and the multiple branches are determined based on the input parameters of the sub-service. Based on the historical execution data of each sub-service, determine the execution probability of each branch of each sub-service, or predict the execution probability of each branch of each sub-service based on the probability prediction model, and determine the execution probability of each branch of each sub-service. Based on the execution probability of each branch of each sub-service, select the corresponding branch of each sub-service and execute the selected branches of each sub-service concurrently. The execution results of each of the sub-services are merged to determine the execution result of the target service.

Citation Information

Patent Citations

  • Method, device and system for providing World Wide Web service

    CN101997731A

  • Business processing method and device

    CN107133090A