Optimization Hints for Business Process Flow Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Optimizing business process flows is inefficient as existing methods require recoding and redesigning executable processes, which is time-consuming and does not guarantee improved performance, especially when certain branches are rarely executed.

Innovation Solution

Incorporating optimization hints into business process flows that guide the runtime engine to pre-process likely branches, reducing idle time by starting processing before conditional evaluations, based on profiling information about the business process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the business process flow is redesigned to optimize performance, then the execution efficiency may be improved, but the time required for recoding and redesigning increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoidtime for recoding and redesigning
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the business process flow to identify optimization opportunities before execution. Profiling information is collected and stored in advance, allowing the runtime engine to make informed optimization decisions during execution without requiring prior recoding or redesign of the process flow.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the business process flow is redesigned to optimize frequently executed branches, then performance improves, but branches that are rarely executed cannot be optimized effectively

Engineering Contradiction:
Improveperformance of frequently executed branchesVSAvoidability to optimize rarely executed branches
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system collects runtime execution information and profiling data to feedback about which branches are actually executed and their execution patterns. This feedback mechanism allows the runtime engine to dynamically adjust optimization strategies based on actual execution frequencies, enabling optimization of both frequently and rarely executed branches based on real performance data rather than static assumptions.

Inventive Principle:
Principle #23Feedback

3Reliability

If the runtime engine waits for conditional evaluations to complete before executing branches, then execution accuracy is maintained, but idle time increases

Engineering Contradiction:
Improveexecution accuracyVSAvoididle time during conditional evaluation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The runtime engine performs preliminary actions by pre-processing branches based on profiling information about likely execution paths. While conditional evaluations are ongoing, the engine can start preparing and pre-executing tasks for branches that are predicted to be taken, utilizing the evaluation time productively rather than sitting idle.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts execution strategies based on runtime conditions and profiling data. The runtime engine can switch between different execution modes - sequential execution for accuracy-critical paths and parallel/pre-processed execution for performance-optimized paths - allowing flexible adaptation to maintain both accuracy and reduce idle time.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9043772B2Optimization hints for a business process flow
Publication Date: 2015.05.26 ORACLE INT CORP
  • US9043772B2 patent drawing
  • US9043772B2 patent drawing
  • US9043772B2 patent drawing

AI summary

In one embodiment, an optimization hint may be included in a business process flow. An executable process may be generated from the business process flow where the optimization hint is included in the executable process. While executing the executable process, the runtime engine encounters an optimization hint and determines an optimization to perform. The optimization hint may be related to an aspect of a business process being orchestrated by the business process flow. The optimization is then performed while executing the executable process. For example, the runtime engine may start pre-processing the branch while the condition is being evaluated. If the condition evaluates such that the pre-processed branch should be executed, then the runtime engine has already started processing of that branch. The processing is thus optimized in that the runtime engine is not sitting idle while waiting for the condition to be evaluated.