Extending Java with Workflow Constructs for Automation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing workflow languages are incomplete and require developers to learn new programming languages, leading to inefficiencies and resource wastage, as they often rely on proprietary information and lack essential constructs like parallelism and efficient handling of XML.

Innovation Solution

Extending the JAVA programming language with constructs such as parallelism, asynchrony, and flexible XML handling to create a workflow definition language that allows for efficient orchestration of business processes, enabling developers to define virtual programs and manage workflows using familiar syntax.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If developers use existing workflow languages, then workflows can be automated, but developers must learn new proprietary languages and reinvent existing programming concepts

Engineering Contradiction:
Improveworkflow automationVSAvoidlearning time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The patent applies universality by making the workflow language compatible with and extendable from Java, allowing the same language to serve both general programming and workflow automation purposes. This eliminates the need for developers to learn a completely new proprietary language, as they can leverage their existing Java knowledge while gaining workflow capabilities through extensions.

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

2Ease of manufacture

If existing workflow languages are used, then basic workflow tasks can be performed, but essential constructs like parallelism and efficient XML handling are missing

Engineering Contradiction:
Improveworkflow implementationVSAvoidlanguage constructs
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent applies segmentation by dividing the workflow language into core Java constructs and workflow-specific extensions. This allows essential constructs like parallelism and XML handling to be added as modular extensions to the base Java language, maintaining ease of implementation while enhancing adaptability and versatility.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If proprietary workflow languages are used, then complete programming functionality can be achieved, but resource efficiency decreases due to language redundancy

Engineering Contradiction:
Improveprogramming functionalityVSAvoidresource efficiency
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The patent applies merging by combining workflow automation capabilities with the existing Java programming language. Instead of maintaining separate proprietary workflow languages that reinvent programming concepts, the solution merges workflow functionality into Java extensions, eliminating redundancy and improving resource efficiency while preserving complete programming functionality.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7752599B2Systems and methods extending an existing programming language with constructs
Publication Date: 2010.07.06 ORACLE INT CORP
  • US7752599B2 patent drawing
  • US7752599B2 patent drawing
  • US7752599B2 patent drawing

AI summary

An easy-to-use workflow language can be created by extending an existing, common language such as JAVA. The language can be extended by adding those constructs that are missing but desirable. Such desirable constructs can include parallelism, asynchrony, loops over asynchronous events, and flexible handling of XML. Such constructs can allow a user to define a virtual program using the extended JAVA syntax. For example, XML can be placed inside a JAVA class that defines the high-level orchestration logic a workflow should follow. That orchestration logic can refer to the JAVA class to carry out work, such that the logic to handle an incoming message is really in JAVA. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.