Emulated Network Channel for Cross-Platform Code Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing and maintaining standalone desktop and web-based versions of software applications is costly due to disparities in code bases, leading to bugs that are often detected late in deployment, and requires significant reengineering and synchronization efforts.
Innovation Solution
Implementing an emulated network communication channel that allows both client and server portions of the application to execute on the client, eliminating network latency and enabling the reuse of presentation logic, web interface wrappers, and business logic across both versions, thereby minimizing development and maintenance costs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate code bases are used for standalone and web-based versions, then each version can be optimized for its specific platform, but development and maintenance costs increase significantly
Solution Approach 1:
The patent implements a universal code base that serves both standalone and web-based versions through a shared framework. The business logic layer is designed to be platform-agnostic, allowing the same core code to function in multiple environments without requiring separate implementations for each platform.
Solution Approach 2:
The application is divided into distinct layers: a shared business logic layer and platform-specific presentation layers. This segmentation allows the business logic to be reused across platforms while each platform can customize its user interface and interaction mechanisms independently.
2Adaptability or versatility
If separate code bases are maintained, then platform-specific functionality can be optimized, but bugs are introduced and detected later causing higher costs
Solution Approach 1:
The patent implements a common business logic layer that is developed and tested once and then reused across both standalone and web-based versions. This preliminary development of shared core functionality reduces the likelihood of bugs being introduced in the first place and enables earlier detection through centralized testing.
3Quantity of substance
If real network communication is used between client and server portions, then data can be transmitted over the network, but network latency affects performance
Solution Approach 1:
The patent introduces an emulated network communication channel that acts as an intermediary between the client and server portions when running in offline mode. This emulator translates network protocol calls into direct method calls, allowing data to be transmitted without actual network latency while maintaining the same interface for data exchange.
4Speed
If web-based application runs offline with emulated network channel, then network latency is eliminated, but the emulated channel must be developed and tested
Solution Approach 1:
The emulated network communication channel is implemented as a simplified copy of the actual network protocol behavior. Instead of implementing full network stack functionality, the emulator copies only the essential data transmission patterns, making it easier to develop and test while achieving the performance benefits of local communication.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques are described herein for the development of an application that includes both standalone and web-based versions. Both versions share substantial portions of code, thereby minimizing the disparity between the versions in terms of function and user experience. The foregoing also enables the web-based application to be operable in an offline environment. This may be achieved by separating both the standalone and the offline web-based versions into a client portion and a server portion, but having both portions executing on the client. Instead of facilitating communication between these portions via a network communication channel, communication is performed via an emulated network communication channel, which translates network requests and responses provided by these portions into a format suitable for transmission over the emulated network communication channel. By doing so, these portions can be reused and function identically in standalone versions, online web-based versions, and offline web-based versions of the application.