JavaScript Expression Language in SOA Middleware
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
Data Source
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.


