JVM Exchange Mediates Cross-Language Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Java Virtual Machines (JVMs) were not originally designed to host multiple programming languages, making it complex and cumbersome for programs written in different languages to communicate and interoperate seamlessly within a single JVM environment.

Innovation Solution

An exchange system running on the JVM intercepts external calls, identifies and directs them to appropriate programs written in different programming languages, receives responses, and formats them for use by the originating program, utilizing metaprogramming and dynamic method identification to facilitate communication among diverse languages hosted on the JVM.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple programming languages are hosted on a JVM, then language versatility and integration capabilities are improved, but communication complexity and interoperability difficulty increase

Engineering Contradiction:
Improvelanguage versatilityVSAvoidcommunication complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an exchange as an intermediary component that mediates communication between programs written in different programming languages hosted on the JVM. The exchange intercepts external calls, identifies the target program in a different language, and facilitates the call through appropriate formatting and routing, thereby simplifying cross-language communication without requiring direct complex interactions between language runtimes

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The exchange is designed as a universal intermediary that can handle calls between any combination of programming languages hosted on the JVM (Java, Python/Jython, Ruby/JRuby, Scala, etc.). It provides a single multi-functional platform for cross-language communication rather than requiring separate mechanisms for each language pair, reducing overall system complexity

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

2Adaptability or versatility

If external calls between different programming languages are enabled, then interoperability is improved, but call formatting and processing overhead increase

Engineering Contradiction:
ImproveinteroperabilityVSAvoidcall processing overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The exchange performs preliminary actions by pre-establishing knowledge of which programs are hosted in which programming languages and what formatting requirements each language has. This advance preparation allows the exchange to quickly intercept and appropriately format calls without requiring complex real-time analysis, reducing processing overhead

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The exchange acts as a mediator that standardizes the call formatting process. Instead of each program needing to understand and handle formatting for every possible target language, the exchange centralizes this functionality, intercepting calls and applying appropriate formatting rules based on the target program's language requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9158512B1Systems, processes and computer program products for communicating among different programming languages that are hosted on a Java Virtual Machine (JVM)
Publication Date: 2015.10.13 CA TECH INC
  • US9158512B1 patent drawing
  • US9158512B1 patent drawing
  • US9158512B1 patent drawing

AI summary

An exchange provides communication among programs that run on a Java Virtual Machine (JVM) and that are written in different programming languages that are hosted on the JVM. The exchange intercepts an external call from a first program that runs on the JVM and is written in a first programming language. The exchange identifies a second program that runs on the JVM and is written in a second programming language, to which the external call from the first program may be directed. The exchange directs the external call to the second program and receives a response to the external call from the second program. The response to the external call that is received from the second program is then forwarded back to the first program. Related systems, processes and computer program products are described.