Software Annotations for Business Process Definition
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current business process definition languages, such as BPEL, increase complexity and require developers to learn new languages and infrastructure, making it difficult to define and execute simple business processes efficiently.
Innovation Solution
The use of software annotations to define process abstractions and control program behavior, where a process engine parses these annotations to determine transition rules and execute processes, eliminating the need for specialized languages like BPEL and simplifying the development process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dedicated business process languages like BPEL are used to define business processes, then process definition capability is improved, but system complexity and learning curve increase
Solution Approach 1:
The patent applies universality by enabling standard programming language constructs to serve dual purposes: both general-purpose programming and specialized business process definition. By using annotations in existing languages like Java, the system eliminates the need for separate dedicated process languages, allowing the same language to fulfill multiple functions without increasing overall system complexity.
Solution Approach 2:
The patent merges the functionality of dedicated process definition languages with standard programming languages. By integrating process definition capabilities directly into existing programming languages through annotations and metadata, the patent combines what were previously separate systems into a unified approach, reducing the number of languages and tools developers need to learn and manage.
2Adaptability or versatility
If dedicated business process languages like BPEL are used to define business processes, then process definition capability is improved, but ease of use and accessibility deteriorate
Solution Approach 1:
The patent enables standard programming languages to serve dual purposes as both general-purpose programming and specialized process definition languages. This universality means developers can use their existing language skills without needing to learn new dedicated process languages, significantly improving ease of use while maintaining process definition capability.
Solution Approach 2:
The patent allows developers to define business processes using their existing programming knowledge and language skills. By leveraging annotations and metadata in standard languages, developers serve themselves by eliminating the need for specialized training in dedicated process languages, making the system more accessible and easier to use.
3Device complexity
If standard programming languages are used to define processes via annotations, then complexity is reduced and ease of use is improved, but process definition power may be limited
Solution Approach 1:
The patent changes the parameters of standard programming languages by adding annotations and metadata that provide process definition capabilities. By modifying how standard languages can be used (through add-on constructs rather than core language changes), the patent maintains simplicity while extending functionality to support complex business process definitions.
Solution Approach 2:
The patent introduces annotations and metadata as intermediary elements between standard programming languages and process definition requirements. These intermediaries bridge the gap by adding process-specific functionality to general-purpose languages without requiring developers to learn new languages, thus maintaining ease of use while enhancing process definition power.
Data Source
AI summary
A computer-implemented technique for executing a process is provided. The technique includes providing a class having at least one annotation that defines at least a portion of the process. The annotation is a run-time-readable, non-executable declarative programming construct that is associated with a first method of the class, and specifies at least one transition rule and a second method of the class associated with the transition rule. A process engine, which runs on a computer and is not an instance of the class, parses the annotation to extract the transition rule. The process engine receives a message from a source external to the process engine, and evaluates whether the transition rule is satisfied, responsively to the message. Upon finding that the transition rule is satisfied, the process engine invokes the second method, so as to generate an output with respect to the message. Other embodiments are also described.


