Business flow orchestration method, device, computing equipment and computer storage medium
By adopting a two-dimensional business orchestration method based on business characteristics, the problems of large number of slices and low orchestration efficiency in API gateways are solved, and dynamic orchestration and efficient business flow processing are realized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD
- Filing Date
- 2022-11-07
- Publication Date
- 2026-05-29
AI Technical Summary
Existing API gateways in microservice architectures suffer from problems such as a large number of slices, low orchestration efficiency, and lack of flexibility, making them unable to perform dynamic orchestration and control.
By dividing business tasks according to business characteristics to form a set of slices, and building processors to store the mapping relationship between attributes and slice sets, two-dimensional business orchestration is achieved by using sensitivity matrix and trigger frequency for process orchestration.
It improves orchestration flexibility, reduces the search depth of one-dimensional chains, improves processor and internal slice traversal efficiency, and optimizes business processing efficiency.
Smart Images

Figure CN116264573B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of information technology, and specifically to a business flow orchestration method, apparatus, computing device, and computer storage medium. Background Technology
[0002] With the rise of microservices, API gateways have become indispensable in microservice architectures. Furthermore, API gateways integrate an increasing number of functions, including IP access control, route matching, authentication, traffic forwarding, rate limiting, circuit breaking, and request header processing. These functional modules logically form a processing chain. As the number of integrated functional modules increases, the processing chain becomes longer. If every request is processed through all modules at the gateway, it will reduce the gateway's business processing efficiency and increase traffic forwarding latency. Therefore, it is necessary to provide a simplified functional module processing chain for various types of traffic to improve business processing efficiency.
[0003] The existing approach involves slicing the overall business logic (breaking down business functions into independent modules, collectively referred to as slices), and then combining these slices in a chained or template-like manner to form a complete business processing chain or template. However, the existing approach has the following problems:
[0004] For complex business scenarios (such as API gateway scenarios), when slicing according to a single dimension of function, the number of slices will be large. If the slices are rearranged, the number of slices to be selected will be large, the arrangement efficiency will be low, and there will be many generated link templates, making management complex.
[0005] Existing processing methods mostly require pre-slicing based on business needs, and then arranging the slices according to a fixed template. Once the arrangement is completed, it is impossible to dynamically arrange and control the business flow according to the real-time results of business processing, which is not flexible enough. Summary of the Invention
[0006] In view of the above problems, the present invention is proposed to provide a business flow orchestration method, apparatus, computing device and computer storage medium that overcomes or at least partially solves the above problems.
[0007] According to one aspect of the present invention, a service flow orchestration method is provided, the method comprising:
[0008] The business is divided into multiple slices based on its characteristics.
[0009] Based on the execution dependencies between slices and / or the impact of each attribute in the input request on the execution result, the slices are aggregated to obtain at least one slice set.
[0010] A corresponding processor is constructed for each slice set, wherein the processor stores the mapping relationship between attributes and slice sets;
[0011] The process orchestration of each processor is performed to obtain the business flow orchestration result.
[0012] Optionally, based on the execution dependencies between slices and / or the impact of each attribute in the input request on the execution result, the slices are aggregated to obtain at least one slice set, including:
[0013] Based on the impact of each attribute in the input request on the execution result of each slice, determine the sensitivity of each slice to each attribute;
[0014] Construct a sensitivity matrix between each slice and each attribute;
[0015] The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated according to the influence to obtain at least one set of slices.
[0016] Optionally, determining the sensitivity of each slice to each attribute based on the impact of each attribute in the input request on the execution result of each slice further includes:
[0017] Calculate and statistically analyze whether the execution result of each slice changes when the attribute value of any one of the attributes in the input request sample changes;
[0018] Based on the statistical results, the sensitivity values of each slice to each attribute were calculated.
[0019] Optionally, the attributes include: request header attributes, request parameter attributes, and request body attributes;
[0020] The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated based on the influence to obtain at least one set of slices. This process further includes:
[0021] If the number of non-zero columns in each row of the product matrix is 1, then each slice is aggregated according to the attribute corresponding to the number of non-zero columns;
[0022] If each row of the product matrix has 2 non-zero columns, then each slice is aggregated based on the combination of the 2 attributes corresponding to the number of non-zero columns.
[0023] If each row of the product matrix has 3 non-zero columns, then each slice is aggregated based on the attribute combination corresponding to the number of non-zero columns.
[0024] Optionally, process orchestration is performed on each of the processors to obtain the service flow orchestration result, including:
[0025] Calculate the trigger frequency of each slice set, and sort the slice sets according to the order of the trigger frequencies;
[0026] The processors corresponding to the slice set are arranged sequentially according to the sorting.
[0027] Optionally, calculating the trigger frequency of each of the said slice sets further includes:
[0028] The trigger frequency of the slice set is determined based on the frequency of operation of at least one of the attributes and the number of slices in the slice set that execute the at least one attribute.
[0029] Optionally, after obtaining the service flow orchestration result, the method further includes:
[0030] Receive pending input requests;
[0031] Based on the order of the processors, the processors are traversed sequentially. It is determined whether the attributes of the input request to be processed match the attributes in the mapping relationship stored in the processor. If they match, the tasks corresponding to each slice in the slice set corresponding to the processor are executed, and the traversal ends. If they do not match, the traversal continues.
[0032] According to another aspect of the present invention, a traffic orchestration apparatus is provided, the apparatus comprising:
[0033] The slicing module is suitable for dividing business tasks according to business characteristics, resulting in multiple slices;
[0034] The slice aggregation module is adapted to aggregate slices based on the execution dependencies between slices and / or the influence of each attribute in the input request on the execution result, to obtain at least one slice set.
[0035] A processor building module is adapted to build a corresponding processor for each of the slice sets, wherein the processor stores a mapping relationship between attributes and slice sets;
[0036] The process orchestration module is suitable for orchestrating the processes of each processor to obtain the business flow orchestration result.
[0037] According to another aspect of the present invention, a computing device is provided, comprising: a processor, a memory, a communication interface, and a communication bus, wherein the processor, the memory, and the communication interface communicate with each other via the communication bus;
[0038] The memory is used to store at least one executable instruction, which causes the processor to perform the operation corresponding to the above-described service flow orchestration method.
[0039] According to another aspect of the present invention, a computer storage medium is provided, the storage medium storing at least one executable instruction that causes a processor to perform an operation corresponding to the above-described traffic flow orchestration method.
[0040] According to the business flow orchestration scheme of the present invention, dynamic orchestration and processing of business flows can be realized. First, referring to the partitioning method of microservices, the business is divided into tasks according to business characteristics to obtain multiple slices. Second, based on factors such as the execution dependencies between slices and the influence of each attribute in the input request on the execution result, the slices are aggregated and classified to obtain at least one slice set. Then, a corresponding processor is constructed for each slice set, and the processor is used to process the slices within a single slice set. Finally, the process orchestration of each processor is performed to form a business flow orchestration result. Through the above scheme, the present invention realizes a business-driven two-dimensional business orchestration method, which does not require the pre-generation of orchestration templates and can perform real-time orchestration according to business input attributes, improving the flexibility of orchestration. At the same time, the processor-based process orchestration method can reduce the search depth of one-dimensional chains and improve the traversal efficiency of processors and slices within processors.
[0041] The above description is merely an overview of the technical solution of the present invention. In order to better understand the technical means of the present invention and to implement it in accordance with the contents of the specification, and in order to make the above and other objects, features and advantages of the present invention more apparent and understandable, specific embodiments of the present invention are described below. Attached Figure Description
[0042] Various other advantages and benefits will become apparent to those skilled in the art upon reading the following detailed description of preferred embodiments. The accompanying drawings are for illustrative purposes only and are not intended to limit the invention. Furthermore, the same reference numerals denote the same parts throughout the drawings. In the drawings:
[0043] Figure 1 A flowchart of a service flow orchestration method according to an embodiment of the present invention is shown;
[0044] Figure 2 A schematic diagram of a two-dimensional chain structure provided in an embodiment of the present invention is shown;
[0045] Figure 3 A flowchart of a two-dimensional business process orchestration provided in an embodiment of the present invention is shown;
[0046] Figure 4A schematic diagram of the structure of a service flow orchestration apparatus provided in an embodiment of the present invention is shown;
[0047] Figure 5 A schematic diagram of the structure of a computing device provided in an embodiment of the present invention is shown. Detailed Implementation
[0048] Exemplary embodiments of the invention will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the invention are shown in the drawings, it should be understood that the invention may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this invention will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
[0049] Figure 1 A flowchart illustrating an embodiment of the service flow orchestration method of the present invention is shown, which is applied in a computing device. The computing device includes, but is not limited to, smart gateways, smart terminal devices, computer equipment, and / or the cloud. The smart terminal devices include, but are not limited to, smartphones and tablets; the computer equipment includes, but is not limited to, personal computers, laptops, industrial computers, network hosts, single network servers, and multiple sets of network servers; the cloud consists of a large number of computers or network servers based on cloud computing, where cloud computing is a type of distributed computing, consisting of a virtual supercomputer composed of a group of loosely coupled computer sets.
[0050] According to the business orchestration scheme disclosed in the embodiments of the present invention, a whole business is first sliced into independent sub-functions, and these slices of independent functions are then combined according to the execution needs of the business scenario to form different business processing logics.
[0051] Specifically, analysis of actual business operations revealed that although slices are functionally decoupled, some slices have business execution dependencies (for example, in an API gateway scenario, if a request does not require authentication, then authentication-related request header operations do not need to be executed). Therefore, when reorganizing slices based on business requirements, it is not necessary to screen all slices to see if they meet the business conditions for combination, as is required in existing solutions. Instead, these slices can be first divided into sets based on conditions such as execution dependencies. When reorganizing slices, the sets are arranged sequentially as one dimension (the first dimension). After the sets are arranged, the slices within the sets are arranged (the second dimension). This forms a two-dimensional chain structure, where the first dimension is the execution chain formed by the sets, and the second dimension is the execution chain formed by the slices within the sets.
[0052] like Figure 1 As shown, the method includes the following steps:
[0053] Step 110: Divide the business into tasks based on business characteristics to obtain multiple slices.
[0054] Specifically, when dividing the service, you can refer to the microservice division method in the API gateway, divide the task according to the business corresponding to a certain request, and obtain multiple slices corresponding to the functional modules.
[0055] According to the guiding principles of microservice partitioning, the boundary condition for identical slices is high cohesion of business functions and low coupling between slices. For example, based on this principle, a whole business function can be split into 10 relatively independent functional slices.
[0056] Step 120: Aggregate the slices based on the execution dependencies between them and / or the impact of each attribute in the input request on the execution result to obtain at least one slice set.
[0057] Since different business requests require different slices, in order to accurately identify the slices required for a certain business request and classify and aggregate the slices according to conditions, this step 120 utilizes the execution dependencies between slices or the influence of each attribute in the input request on the execution result to select and aggregate each slice. Through this step, at least one slice set is obtained, thereby reducing the complexity and depth of slice retrieval during business processing.
[0058] Specifically, in combination Figure 2 The diagram shows a two-dimensional chain structure. Each set of slices is considered a second-dimensional (slice) set, and each set includes at least one slice.
[0059] Step 130: Construct a corresponding processor for each slice set, wherein the processor stores the mapping relationship between attributes and slice sets.
[0060] After clustering the slices to form sets, corresponding processors are constructed for each slice set, and the business flow orchestration result of the requested business is obtained by orchestrating each processor, thus forming the first-dimensional chain based on the orchestration of each processor.
[0061] Each processor also stores a mapping relationship between the attributes of the request and the slice set. Through this mapping relationship, when the attributes in the request correspond to the slice set, the slice set is used for business processing, which actually achieves the effect of real-time orchestration of the business flow based on the attributes in the business request.
[0062] Therefore, the main function of the processor is to handle the triggering conditions of the current slice set. Its triggering logic is as follows: According to the established mapping relationship between each attribute and the slice set, the processor corresponding to each slice set saves the mapping relationship. When a request enters the processor, the processor obtains the attribute of the current request and determines whether the attribute matches the attribute in the mapping relationship it maintains. If the match is found, the slice chain in the set is triggered to perform business processing.
[0063] Step 140: Perform process orchestration on each of the processors to obtain the service flow orchestration result.
[0064] In summary, the technical solution disclosed in this embodiment realizes a business-driven two-dimensional business orchestration method, which does not require the pre-generation of orchestration templates and can perform real-time orchestration based on business input attributes, thereby improving the flexibility of orchestration. At the same time, the processor-based process orchestration method can reduce the search depth of one-dimensional chains and improve the traversal efficiency of processors and processor internal slices.
[0065] In one or more embodiments, the slices are aggregated based on the execution dependencies between them and / or the impact of each attribute in the input request on the execution result, to obtain at least one slice set, including:
[0066] Based on the impact of each attribute in the input request on the execution result of each slice, determine the sensitivity of each slice to each attribute;
[0067] Construct a sensitivity matrix between each slice and each attribute;
[0068] The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated according to the influence to obtain at least one set of slices.
[0069] The sensitivity is determined as follows: if the execution result of a slice is affected and changed when a certain attribute value in the request is changed, it means that the slice is sensitive to the attribute value; otherwise, it is not sensitive.
[0070] Optionally, determining the sensitivity of each slice to each attribute based on the impact of each attribute in the input request on the execution result of each slice further includes:
[0071] Calculate and statistically analyze whether the execution result of each slice changes when the attribute value of any one of the attributes in the input request sample changes;
[0072] Based on the statistical results, the sensitivity values of each slice to each attribute were calculated.
[0073] The specific sensitivity value can be determined by calculating the statistical results of multiple past slice execution samples.
[0074] In one or more embodiments, the attributes include: request header attributes, request parameter attributes, and request body attributes;
[0075] Then, based on the product matrix of the sensitivity matrix and the diagonal matrix formed by each attribute, the influence degree of each attribute on each slice is determined. The slices are then aggregated according to the influence degree to obtain at least one set of slices, further comprising:
[0076] If the number of non-zero columns in each row of the product matrix is 1, then each slice is aggregated according to the attribute corresponding to the number of non-zero columns;
[0077] If each row of the product matrix has 2 non-zero columns, then each slice is aggregated based on the combination of the 2 attributes corresponding to the number of non-zero columns.
[0078] If each row of the product matrix has 3 non-zero columns, then each slice is aggregated based on the attribute combination corresponding to the number of non-zero columns.
[0079] Specifically, according to the above embodiments of the present invention, the specific steps for clustering slices to obtain a slice set include:
[0080] 1) Calculate the dependencies of task slices and determine the sensitivity of task slices based on the dependencies;
[0081] Since software execution depends on input request information, which can be divided into request header attributes, request parameter attributes, and request body attributes, the request header attributes are defined as H. i=(1..n) (where i is the request header attribute value number), and the request parameter attribute is P. j=(1...n) (where j is the request parameter attribute number), and the request body attribute is B. k=(1...n) (where k is the request body attribute number).
[0082] When modifying a certain attribute value in the input information affects the execution result of a slice, it indicates that the slice is sensitive to that attribute value. This sensitivity is defined as... Where o(i) represents the slice output value sample, defined as 1 when the attribute value changes and the slice output value changes, and defined as 0 when it remains unchanged. The average value of the slice samples is represented by r(i), where r(i) is the sample value of the attribute. A value of 1 is defined when the value changes, and 0 when it remains constant. R represents the average value of an attribute. o,r This indicates the positive correlation between slice o and attribute r. When R o,rA value of 0 indicates that the slice is unrelated to the attribute value, while a value of 1 indicates strong correlation. In other words, correlation indicates whether the slice is sensitive to changes in the attribute value. Based on this sensitivity, it's easy to determine whether a slice needs to be processed when a request inputs.
[0083] 2) Construct sensitivity matrices for slices and attributes, using the number of slices (n) and the number of attribute categories as dimensions, respectively.
[0084] 3) Based on sensitivity, determine the degree to which a slice is affected by the requested information, and aggregate the task slices based on the degree of impact on the information:
[0085] A. If the product matrix of the sensitivity matrix and the diagonal matrices formed by each attribute is... In this case, when the number of columns with non-zero values in each row is 1, it means that the slice is only affected by one of the request header, request body, or request parameters. In this case, the slice can be combined according to the single influencing factor. For example, the slice can be aggregated into a slice set at the H, P, and B levels.
[0086] B. If the product matrix In the context of request headers, when the number of non-zero columns in each row is 2, the slice is affected by two of the request headers, request body, and request parameters. In this case, the collection slice can be aggregated according to the attribute combination corresponding to the number of non-zero columns.
[0087] C. If the product matrix In this case, when there are 3 non-zero columns in each row, the slice is affected by three of the request header, request body, and request parameters. In this case, it is only necessary to aggregate the slices corresponding to the non-zero values in the matrix into a set.
[0088] 4) Establish the relationship between attribute values and slice collections. For example: attribute H i The corresponding set can be represented as:
[0089]
[0090] In one or more embodiments, process orchestration is performed on each of the processors to obtain service flow orchestration results, including:
[0091] Calculate the trigger frequency of each slice set, and sort the slice sets according to the order of the trigger frequencies;
[0092] The processors corresponding to the slice set are arranged sequentially according to the sorting.
[0093] Specifically, the process orchestration of each processor can be achieved through the management of the first-dimensional chain. In order to achieve more efficient matching of processors in the first dimension, this embodiment preferably orchestrates the processors corresponding to the slice sets with high trigger frequencies to the front of the processing chain, so that they are matched and processed first.
[0094] Therefore, in one or more embodiments, calculating the trigger frequency of each of the slice sets further includes:
[0095] The trigger frequency of the slice set is determined based on the frequency of operation of at least one of the attributes and the number of slices in the slice set that execute the at least one attribute.
[0096] Specifically, the frequency of a slice set being triggered is assessed as follows: the number of times or frequency of the set being triggered is calculated based on the frequency of attribute operations combined with the number of slices in the set that perform that attribute operation.
[0097] Define F r(r为属性标号 This is the attribute operation frequency value (calculated by statistically analyzing the number of times each attribute is accessed or carried in the business process). This represents the set operation frequency, which is calculated by multiplying the number of slices in the slice set affected by the attribute by the attribute operation frequency value. The higher the attribute operation frequency and the larger the number of slices in the set that process that attribute, the higher the set's trigger frequency.
[0098] In summary, the above method embodiments have resulted in the following: Figure 2 The two-dimensional chain structure shown has the advantage that, by setting the triggering conditions, it can ensure that all slices in the triggered second-dimensional set are valid slices that need to be executed. This reduces the need to traverse all slices in a normal one-dimensional chain to determine whether a slice needs to be executed, which can significantly improve business execution efficiency and reduce business execution latency.
[0099] In one or more embodiments, after obtaining the service flow orchestration result, the method further includes:
[0100] Receive pending input requests;
[0101] Based on the order of the processors, the processors are traversed sequentially. It is determined whether the attributes of the input request to be processed match the attributes in the mapping relationship stored in the processor. If they match, the tasks corresponding to each slice in the slice set corresponding to the processor are executed, and the traversal ends. If they do not match, the traversal continues.
[0102] Combination Figure 3 As shown, firstly, a service request is received, and then the first-dimensional processing module processes the service according to the processors corresponding to the pre-sorted second-dimensional set. Specifically, the judgment logic of the first-dimensional processing module for each set of processors includes:
[0103] Determine whether the input request attributes match the attributes in the mapping relationship maintained within the processor. If the matching condition is met, execute the slice in the corresponding second-dimensional set.
[0104] Once all slices in the second dimension set have been processed, the process ends, and no further processor traversal is required. If the matching condition is not met, processor traversal continues until a matching second dimension set is found.
[0105] In summary, based on the above method embodiments, the advantages of the business-driven orchestration method disclosed in this invention are that it eliminates the need to generate orchestration templates in advance, instead performing real-time orchestration based on business input attributes, thus offering high flexibility. Furthermore, sorting the second-dimensional set according to attribute frequency allows placing sets with high trigger probabilities at the front of the first-dimensional chain, reducing the search depth of the first-dimensional chain and improving traversal efficiency.
[0106] Figure 4 A schematic diagram of an embodiment of the service flow orchestration device of the present invention is shown. Figure 4 As shown, the device 400 includes:
[0107] The slice division module 410 is suitable for dividing business tasks according to business characteristics to obtain multiple slices;
[0108] The slice aggregation module 420 is adapted to aggregate each slice according to the execution dependency between each slice and / or the influence of each attribute in the input request on the execution result, so as to obtain at least one slice set.
[0109] The processor construction module 430 is adapted to construct a corresponding processor for each of the slice sets, wherein the processor stores a mapping relationship between attributes and slice sets.
[0110] The process orchestration module 440 is adapted to perform process orchestration on each of the processors to obtain the business flow orchestration result.
[0111] In summary, through Figure 4 The above-described technical solution disclosed in the illustrated device embodiment realizes a business-driven two-dimensional business orchestration method. It does not require the pre-generation of orchestration templates and can perform real-time orchestration based on business input attributes, thereby improving the flexibility of orchestration. At the same time, the processor-based process orchestration method can reduce the search depth of one-dimensional chains and improve the traversal efficiency of processors and internal slices.
[0112] In one or more embodiments, the slice aggregation module 420 is further adapted to:
[0113] Based on the impact of each attribute in the input request on the execution result of each slice, determine the sensitivity of each slice to each attribute;
[0114] Construct a sensitivity matrix between each slice and each attribute;
[0115] The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated according to the influence to obtain at least one set of slices.
[0116] In one or more embodiments, the slice aggregation module 420 is further adapted to:
[0117] Calculate and statistically analyze whether the execution result of each slice changes when the attribute value of any one of the attributes in the input request sample changes;
[0118] Based on the statistical results, the sensitivity values of each slice to each attribute were calculated.
[0119] In one or more embodiments, the attributes include: request header attributes, request parameter attributes, and request body attributes;
[0120] The slice aggregation module 420 is further adapted to:
[0121] If the number of non-zero columns in each row of the product matrix is 1, then each slice is aggregated according to the attribute corresponding to the number of non-zero columns;
[0122] If each row of the product matrix has 2 non-zero columns, then each slice is aggregated based on the combination of the 2 attributes corresponding to the number of non-zero columns.
[0123] If each row of the product matrix has 3 non-zero columns, then each slice is aggregated based on the attribute combination corresponding to the number of non-zero columns.
[0124] In one or more embodiments, the process orchestration module 440 is further adapted to:
[0125] Calculate the trigger frequency of each slice set, and sort the slice sets according to the order of the trigger frequencies;
[0126] The processors corresponding to the slice set are arranged sequentially according to the sorting.
[0127] In one or more embodiments, the process orchestration module 440 is further adapted to:
[0128] The trigger frequency of the slice set is determined based on the frequency of operation of at least one of the attributes and the number of slices in the slice set that execute the at least one attribute.
[0129] In one or more embodiments, the apparatus further includes a service execution module, adapted to:
[0130] Receive pending input requests;
[0131] Based on the order of the processors, the processors are traversed sequentially. It is determined whether the attributes of the input request to be processed match the attributes in the mapping relationship stored in the processor. If they match, the tasks corresponding to each slice in the slice set corresponding to the processor are executed, and the traversal ends. If they do not match, the traversal continues.
[0132] In summary, the key points and advantages of the embodiments of the present invention include:
[0133] (1) A structure for two-dimensional slices of complex business was proposed, and a scheme to construct business slices into a two-dimensional chain structure based on this structure was proposed. This scheme fully explores the functional singleness of slices and the relationship between the business logic dependencies between some slices. For businesses that do not need to go through full functional slice processing, their execution links can be greatly simplified and shortened.
[0134] (2) A quantitative evaluation method for slice aggregation is proposed, which can accurately perform slice aggregation;
[0135] (3) Compared with the existing slice orchestration, the original one-dimensional chain orchestration is evolved into two-dimensional chain orchestration. When orchestrating business in each scenario, it is not necessary to traverse all slices for matching and filtering. It is only necessary to match in the second dimension set. The set that meets the conditions is then matched with slices within the set. In most scenarios, the complexity of slice reorganization can be reduced and the business execution efficiency can be improved.
[0136] (4) The above solution does not require pre-arrangement into templates according to the characteristics of the business flow for management. Instead, it dynamically matches based on the current business flow input, which is highly flexible.
[0137] (5) Based on each slice, the above scheme fully explores the business dependencies between slices, divides the dependent slices into sets, and then arranges them in two dimensions. The first dimension is to arrange the set (processor) and the second dimension is to arrange the slices in the set. Therefore, in complex scenarios, the depth of the first dimension set arrangement is small. When the second dimension set as a whole does not meet the conditions, there is no need to traverse the slices in the set, which can improve the efficiency of business execution.
[0138] (6) By identifying the slice processing result and the next set processor number in the context of the business processing flow, the execution logic of the subsequent set processor is guided. Based on the business execution situation, the slice to be executed next is determined. There is no need to arrange the link or template in advance, and there is no need to design a separate template management module. It is highly flexible and has low management cost.
[0139] This invention also provides a non-volatile computer storage medium storing at least one executable instruction that can execute the service flow orchestration method in any of the above method embodiments.
[0140] Figure 5 The diagram shows a structural schematic of an embodiment of the computing device of the present invention. The specific embodiments of the present invention do not limit the specific implementation of the computing device.
[0141] like Figure 5 As shown, the computing device may include: a processor 502, a communications interface 504, a memory 506, and a communications bus 508.
[0142] The processor 502, communication interface 504, and memory 506 communicate with each other via communication bus 508. Communication interface 504 is used to communicate with other network elements such as clients or other servers. The processor 502 executes program 510, specifically performing the relevant steps in the above-described embodiment of the service flow orchestration method for computing devices.
[0143] Specifically, program 510 may include program code that includes computer operation instructions.
[0144] Processor 502 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention. The computing device includes one or more processors, which may be processors of the same type, such as one or more CPUs; or processors of different types, such as one or more CPUs and one or more ASICs.
[0145] Memory 506 is used to store program 510. Memory 506 may include high-speed RAM memory, and may also include non-volatile memory, such as at least one disk storage device.
[0146] Specifically, program 510 can be used to cause processor 502 to perform the operations corresponding to the service flow orchestration method embodiment.
[0147] The algorithms or displays provided herein are not inherently related to any particular computer, virtual system, or other device. Various general-purpose systems can also be used in conjunction with the teachings herein. The required structure for constructing such systems is apparent from the above description. Furthermore, the embodiments of the present invention are not directed to any particular programming language. It should be understood that the content of the invention described herein can be implemented using various programming languages, and the above description of specific languages is for the purpose of disclosing the best mode of implementation of the invention.
[0148] Numerous specific details are set forth in the specification provided herein. However, it will be understood that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures, and techniques have not been shown in detail so as not to obscure the understanding of this specification.
[0149] Similarly, it should be understood that, in order to simplify the invention and aid in understanding one or more of the various inventive aspects, features of the embodiments of the invention are sometimes grouped together in a single embodiment, figure, or description thereof in the above description of exemplary embodiments of the invention. However, this disclosure should not be construed as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as reflected in the following claims, inventive aspects lie in fewer than all features of a single foregoing disclosed embodiment. Therefore, the claims following the detailed description are hereby expressly incorporated into this detailed description, wherein each claim itself is a separate embodiment of the invention.
[0150] Those skilled in the art will understand that modules in the device of the embodiments can be adaptively changed and placed in one or more devices different from that embodiment. Modules, units, or components in the embodiments can be combined into a single module, unit, or component, and further, they can be divided into multiple sub-modules, sub-units, or sub-components. Except where at least some of such features and / or processes or units are mutually exclusive, any combination can be used to combine all features disclosed in this specification (including the accompanying claims, abstract, and drawings) and all processes or units of any method or device so disclosed. Unless expressly stated otherwise, each feature disclosed in this specification (including the accompanying claims, abstract, and drawings) may be replaced by an alternative feature that serves the same, equivalent, or similar purpose.
[0151] Furthermore, those skilled in the art will understand that although some embodiments herein include certain features included in other embodiments but not others, combinations of features from different embodiments are intended to be within the scope of the invention and form different embodiments. For example, in the following claims, any of the claimed embodiments can be used in any combination.
[0152] The various component embodiments of the present invention can be implemented in hardware, or as software modules running on one or more processors, or a combination thereof. Those skilled in the art will understand that microprocessors or digital signal processors (DSPs) can be used in practice to implement some or all of the functions of some or all of the components according to the embodiments of the present invention. The present invention can also be implemented as a device or apparatus program (e.g., a computer program and computer program product) for performing part or all of the methods described herein. Such programs implementing the present invention can be stored on a computer-readable medium, or can be in the form of one or more signals. Such signals can be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.
[0153] It should be noted that the above embodiments are illustrative of the invention and not restrictive, and that those skilled in the art can devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several different elements and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third, etc., does not indicate any order. These words can be interpreted as names. The steps in the above embodiments, unless otherwise specified, should not be construed as limiting the order of execution.
Claims
1. A business flow orchestration method, the method comprising: The business is divided into tasks based on business characteristics, resulting in multiple slices corresponding to functional modules. Based on the execution dependencies between slices and / or the impact of each attribute in the input request on the execution result, the slices are aggregated to obtain at least one slice set. A corresponding processor is constructed for each of the slice sets, wherein the processor stores the mapping relationship between attributes and slice sets; wherein, when a request enters the processor, if the attributes in the request match the attributes in the maintained mapping relationship, the slice chain in the slice set is triggered to perform business processing; the attributes include: request header attributes, request parameter attributes, and request body attributes; The process orchestration of each processor is performed to obtain the business flow orchestration result.
2. The method according to claim 1, characterized in that, Based on the execution dependencies between slices and / or the impact of each attribute in the input request on the execution result, the slices are aggregated to obtain at least one slice set including: Based on the impact of each attribute in the input request on the execution result of each slice, determine the sensitivity of each slice to each attribute; Construct a sensitivity matrix between each slice and each attribute; The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated according to the influence to obtain at least one set of slices.
3. The method according to claim 2, characterized in that, Determining the sensitivity of each slice to each attribute, based on the impact of each attribute in the input request on the execution result of each slice, further includes: Calculate and statistically analyze whether the execution result of each slice changes when the attribute value of any one of the attributes in the input request sample changes; Based on the statistical results, the sensitivity values of each slice to each attribute were calculated.
4. The method according to claim 3, characterized in that, The influence of each attribute on each slice is determined by multiplying the sensitivity matrix with the diagonal matrix formed by each attribute. The slices are then aggregated based on the influence to obtain at least one set of slices. This process further includes: If the number of non-zero columns in each row of the product matrix is 1, then each slice is aggregated according to the attribute corresponding to the number of non-zero columns; If each row of the product matrix has 2 non-zero columns, then each slice is aggregated based on the combination of the 2 attributes corresponding to the number of non-zero columns. If each row of the product matrix has 3 non-zero columns, then each slice is aggregated based on the attribute combination corresponding to the number of non-zero columns.
5. The method according to any one of claims 1-4, characterized in that, The process orchestration of each processor yields the following service flow orchestration results: Calculate the trigger frequency of each slice set, and sort the slice sets according to the order of the trigger frequencies; The processors corresponding to the slice set are arranged sequentially according to the sorting.
6. The method according to claim 5, characterized in that, Calculating the trigger frequency of each of the aforementioned slice sets further includes: The trigger frequency of the slice set is determined based on the frequency of operation of at least one of the attributes and the number of slices in the slice set that execute the at least one attribute.
7. The method according to claim 6, characterized in that, After obtaining the service flow orchestration result, the method further includes: Receive pending input requests; Based on the order of the processors, the processors are traversed sequentially. It is determined whether the attributes of the input request to be processed match the attributes in the mapping relationship stored in the processor. If they match, the tasks corresponding to each slice in the slice set corresponding to the processor are executed, and the traversal ends. If they do not match, the traversal continues.
8. A service flow orchestration apparatus, the apparatus comprising: The slicing module is suitable for dividing business tasks according to business characteristics, resulting in multiple slices corresponding to functional modules; The slice aggregation module is adapted to aggregate slices based on the execution dependencies between slices and / or the influence of each attribute in the input request on the execution result, to obtain at least one slice set. The processor construction module is adapted to construct a corresponding processor for each of the slice sets, wherein the processor stores a mapping relationship between attributes and slice sets; wherein, when a request enters the processor, if the attributes in the request match the attributes in the maintained mapping relationship, the slice chain in the slice set is triggered to perform business processing; the attributes include: request header attributes, request parameter attributes, and request body attributes; The process orchestration module is suitable for orchestrating the processes of each processor to obtain the business flow orchestration result.
9. A computing device, comprising: The processor, memory, communication interface, and communication bus are provided, wherein the processor, memory, and communication interface communicate with each other via the communication bus. The memory is used to store at least one executable instruction, which causes the processor to perform the operation corresponding to the service flow orchestration method according to any one of claims 1-7.
10. A computer storage medium storing at least one executable instruction that causes a processor to perform an operation corresponding to the traffic flow orchestration method according to any one of claims 1-7.