Proxy Application for Inter-Environment Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software architectures face challenges in enabling efficient and secure interoperability between applications written in different programming languages and compiled into various formats, particularly in heterogeneous environments, leading to restricted communication between applications executing in different application environments or instances.
Innovation Solution
A system architecture that includes a first application environment capable of executing native and non-native applications, a proxy software application for coordinating communication, and client-side data stores for caching and storage, utilizing an interface definition language for standardized communication between front-end and back-end elements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications are executed in different application environments or instances, then application diversity and language support are improved, but communication efficiency and interoperability are restricted
Solution Approach 1:
The patent introduces a proxy application as an intermediary component that mediates communication between applications running in different application environments. The proxy application receives requests from one application, translates them into the appropriate format for the target application's environment, and forwards them accordingly. This mediator approach enables heterogeneous applications to communicate efficiently without requiring direct integration between different environments, thus resolving the contradiction between application diversity and communication efficiency.
2Adaptability or versatility
If standardized communication protocols are implemented across different application environments, then interoperability is improved, but system complexity increases
Solution Approach 1:
The patent segments the communication system into distinct layers: the application layer, the proxy application layer, and the target application layer. Each layer handles specific communication tasks independently. The proxy application layer acts as a separate segment that manages the complexity of protocol translation and environment-specific adaptations, while the application layers remain simple and focused on their core functions. This segmentation reduces overall system complexity by localizing complexity management to a dedicated intermediary layer.
3Speed
If direct communication between applications in different environments is enabled, then communication speed is improved, but security and stability are compromised
Solution Approach 1:
The proxy application serves as a security intermediary that validates, authorizes, and monitors all communications between applications in different environments. It implements security policies, authentication mechanisms, and data validation rules before forwarding requests. This intermediary approach maintains communication speed by optimizing request routing while simultaneously ensuring security and stability through centralized control and validation, resolving the contradiction between speed and security.
Data Source
AI summary
A system architecture can be used to facilitate communication among applications that are native and/or non-native to an application environment. The system architecture can include a first application environment executed on a client-side computing device. The first application environment can execute software applications that are native thereto. The first application environment can further execute software applications that are native thereto, but which software applications themselves comprise second application environments of types different from the first application environment, and which software applications can therefore execute additional software applications that are non-native to the first application environment. The first application environment can further execute a computation engine that is configured to store and execute instructions received from the first software application, the second software application, or both.


