Distributed Business Process Management via Event-Driven Orchestration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current business process management systems face inefficiencies in managing complex workflows due to reliance on polling-based solutions, which lead to high resource utilization and limited scalability, and lack the ability to independently manage and orchestrate flows effectively.

Innovation Solution

The implementation of a distributed business process management system using configuration-driven orchestration with event-driven architectures, where software components like microservices are managed independently, and flow management engines enable autosys jobs and other schedulers to trigger flows based on context availability, allowing for efficient resource utilization and scalability by isolating and managing process flows as independent units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If polling-based solutions are used to manage complex workflows, then system simplicity is maintained, but resource utilization increases and scalability is limited

Engineering Contradiction:
Improvesystem simplicityVSAvoidresource utilization
Core Design Contradiction:
Device complexityVSUse of energy by moving object

Solution Approach 1:

The system segments the workflow management into independent flow units that can be executed autonomously. Each flow is broken down into discrete steps that can be independently scheduled and executed, replacing the monolithic polling-based approach with modular, event-driven flow units that consume resources only when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Flow units are designed to be self-managing entities that automatically execute their steps without requiring continuous polling. The system implements self-service through event-driven triggers that activate flows based on context availability, eliminating the need for external polling mechanisms and reducing overall resource utilization.

Inventive Principle:
Principle #25Self-service

2Device complexity

If polling-based solutions are used to manage complex workflows, then system simplicity is maintained, but scalability is limited

Engineering Contradiction:
Improvesystem simplicityVSAvoidscalability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

By segmenting workflows into independent flow units with discrete executable steps, the system enables parallel execution and distributed processing. This segmentation allows the system to scale horizontally by adding more flow execution instances without increasing overall system complexity, as each unit remains independently manageable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements dynamic flow execution where flows can be created, modified, and executed in real-time based on business needs. Flow definitions are stored in repositories and can be dynamically instantiated, allowing the system to adapt and scale to varying workloads without requiring complex reconfiguration or centralized control.

Inventive Principle:
Principle #15Dynamics

3Use of energy by moving object

If flows are managed as independent units with event-driven architecture, then resource utilization is minimized and scalability is improved, but system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The system implements universal flow execution engines that can handle any flow definition stored in the repository. The same core execution infrastructure supports multiple flow types, contexts, and dependencies through standardized interfaces and mechanisms, reducing the need for separate management systems for different flow scenarios and thereby limiting complexity growth.

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

Solution Approach 2:

The patent introduces intermediary components such as flow repositories, context daemons, and event publishers that mediate between different system elements. These intermediaries manage the complexity of coordinating independent flows by providing standardized communication protocols and abstraction layers, allowing flows to interact without direct coupling and thereby containing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If parallel flow paths are allowed to execute independently, then processing efficiency is improved, but failure management becomes more complex

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidfailure management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting flows into independent executable steps with defined dependencies, the system enables parallel execution of independent paths while maintaining clear failure boundaries. Each step can fail independently without affecting other parallel paths, and failure management is simplified through localized retry logic and step-level error handling rather than system-wide failure management.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11704616B2Systems and methods for distributed business processmanagement
Publication Date: 2023.07.18 JPMORGAN CHASE BANK NA
  • US11704616B2 patent drawing
  • US11704616B2 patent drawing
  • US11704616B2 patent drawing

AI summary

Systems and methods for distributed business process management are disclosed. In one embodiment, in an information processing apparatus comprising at least one computer processor, a method for configuration-driven distributed orchestration using different software components to execute a complex business process may include: (1) receiving a request for a runtime flow from a flow management adapter; (2) reading a flow configuration from the request; (3) creating an instance of the runtime flow; (4) initiating a service call to each component in the runtime flow; (5) creating a runtime instance in a database along with a state of each dependency in the runtime flow; and in response to external dependencies being met: (6) building and sending message to the components using a message builder; (7) initiating flow actions via an event-driven scheduler; and (8) making a service call to at least one of the components using the message builders.