JVM Exchange Mediates Cross-Language Communication
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Adaptability or versatility
If external calls between different programming languages are enabled, then interoperability is improved, but call formatting and processing overhead increase
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
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
Data Source
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.


