BPM Engine Multi-Language Runtime Invocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional BPM engines are limited to supporting a single business process language, lacking flexibility to adapt to different business process languages depending on the nature of the processes being modeled, which can lead to inefficiencies when dealing with heterogeneous systems beyond Java implementations.

Innovation Solution

A BPM process engine that determines the business process language used for a definition and invokes the corresponding runtime environment, enabling execution and monitoring of business processes in multiple languages such as jPDL and BPEL, providing uniform user interfaces for interaction and analysis across languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a BPM engine is designed to support a single business process language, then the engine's design is simple and focused, but the system lacks flexibility to adapt to different business process languages and heterogeneous systems

Engineering Contradiction:
Improvelanguage support flexibilityVSAvoidengine architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The BPM engine is designed to support multiple business process languages (jPDL, BPEL, and custom languages) through a universal execution framework. The engine can invoke appropriate runtime environments based on the process definition language, enabling a single engine to handle diverse process modeling needs without requiring separate specialized engines for each language.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary mechanism that detects the business process language type and routes process definitions to appropriate runtime environments. This mediator layer allows the engine to manage multiple languages without direct complexity in the core execution logic, as the intermediary handles language-specific routing and environment invocation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a BPM engine supports multiple business process languages, then the system becomes flexible and adaptable, but the engine's complexity increases

Engineering Contradiction:
Improvemulti-language supportVSAvoidruntime environment management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The BPM engine architecture is segmented into distinct runtime environments for different business process languages (jPDL runtime, BPEL runtime, and custom runtime). Each language type has its own dedicated runtime environment, allowing the engine to manage complexity by dividing the system into independent, language-specific execution contexts while maintaining a unified entry point.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The engine dynamically selects and invokes the appropriate runtime environment based on the detected business process language type. This dynamic behavior allows the system to adapt its execution environment at runtime rather than being statically configured, managing complexity through flexible, context-dependent environment selection rather than rigid multi-language support.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8423955B2Method and apparatus for supporting multiple business process languages in BPM
Publication Date: 2013.04.16 RED HAT INC
  • US8423955B2 patent drawing
  • US8423955B2 patent drawing
  • US8423955B2 patent drawing

AI summary

A method and apparatus for supporting multiple business process languages in business process management (BPM). The method may include receiving user input identifying a definition of a business process, and determining which business process language was used for the definition of the business process. The method further includes invoking a runtime environment associated with the used business process language, and executing the business process in the invoked runtime environment.