JavaScript Expression Language in SOA Middleware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current process execution languages in SOA middleware environments, such as BPEL, are inefficient and unfamiliar to modern developers due to their syntax and reliance on XML, which is cumbersome for data manipulation and integration with modern applications like mobile apps that require un-typed variables and flexible data handling.

Innovation Solution

The system supports JavaScript as an expression language within the process execution language, enabling the use of JavaScript to access and manipulate XML and object notation variables, and providing a JavaScript engine in the process execution engine to interpret JavaScript expressions, allowing for more efficient and flexible data handling and integration with external services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If process execution language uses traditional XML-based syntaxes and expressions, then it maintains compatibility with existing SOA frameworks, but it becomes inefficient and unfamiliar to modern developers

Engineering Contradiction:
Improvecompatibility with existing SOA frameworksVSAvoiddeveloper familiarity and efficiency
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent merges traditional XML-based process execution language with JavaScript expression language, allowing the system to maintain XML compatibility while integrating JavaScript's modern syntax and capabilities. This combination enables developers to use familiar JavaScript for data manipulation while preserving XML structure for formal process definition.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The process execution language is extended to support multiple expression types (XML-based expressions and JavaScript expressions), making it universally applicable to both traditional SOA developers and modern JavaScript developers. This multi-functionality allows the same language framework to serve diverse developer skill sets and requirements.

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

2Stability of the object's composition

If process execution language relies on XML structures for data manipulation, then it maintains formal structure and type safety, but it becomes cumbersome for data access and manipulation

Engineering Contradiction:
Improveformal structure and type safetyVSAvoidcomplexity of data access and manipulation
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

JavaScript expressions serve as an intermediary between the formal XML structure and data manipulation needs. The JavaScript engine translates JavaScript code into XML-compatible operations, allowing developers to write simple JavaScript for data access while the system maintains XML's formal structure and type safety in the background.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the expression language parameter from strictly XML-based to supporting both XML and JavaScript expressions. This parameter change allows the system to switch between formal XML syntax and more flexible JavaScript syntax depending on the specific data manipulation task, reducing complexity while maintaining structure where needed.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If process execution language uses XPath expressions for data access, then it provides standardized XML navigation, but it cannot access certain functions and variables available in JavaScript

Engineering Contradiction:
Improvestandardized XML navigationVSAvoidaccess to functions and variables
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The expression language is designed to be universal by accepting both XPath expressions and JavaScript expressions. This allows the system to use standardized XML navigation when needed while also providing access to the full range of JavaScript functions and variables, making the language adaptable to various data access requirements.

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

Solution Approach 2:

The patent substitutes the mechanical XPath navigation system with a more flexible JavaScript-based system that can perform the same XML navigation tasks while also providing access to additional functions and variables. The JavaScript engine acts as a replacement that maintains XML compatibility while extending capabilities.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Stability of the object's composition

If SOA composite applications use traditional process execution languages, then they maintain formal process definition, but they reduce development speed and require learning new syntaxes

Engineering Contradiction:
Improveformal process definitionVSAvoiddevelopment speed
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent changes the syntax parameter of the process execution language to support JavaScript expressions alongside traditional XML definitions. This allows developers to write processes in familiar JavaScript syntax, improving development speed while the system maintains formal process definition through XML-based process execution language semantics.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10223143B2System and method for supporting javascript as an expression language in a process defined by a process execution language for execution in a SOA middleware environment
Publication Date: 2019.03.05 ORACLE INT CORP
  • US10223143B2 patent drawing
  • US10223143B2 patent drawing
  • US10223143B2 patent drawing

AI summary

In accordance with an embodiment, described herein is a system and method for supporting JavaScript as an expression language in an executable process defined by a process execution language. An extension namespace to the process execution language can be used to define additional attributes for supporting JavaScript as an expression language. Used as an expression language, JavaScript can be used to access contents of XML variables in the executable process without the need to walk through complicated XML structures of the XML variables. A JavaScript expression can be used anywhere an XPath expression can be used, and can additionally be used to access a plurality of functions and variables that cannot be accessed using an XPath expression. A process execution engine can be provided on one or more application servers in a SOA middleware environment to host the executable process, wherein the process execution engine can include a JavaScript engine to interpret JavaScript expressions in the executable process.