Emulated Network Channel for Cross-Platform Code Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveplatform optimizationVSAvoiddevelopment and maintenance cost
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

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.

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

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveplatform-specific functionalityVSAvoidbug detection timing
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata transmission capabilityVSAvoidcommunication speed
Core Design Contradiction:
Quantity of substanceVSSpeed

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvecommunication speedVSAvoidemulated channel development and testing
Core Design Contradiction:
SpeedVSEase of manufacture

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3797356B1Code base sharing between standalone and web-based versions of an application due to the implementing of an emulated network communication channel
Publication Date: 2022.11.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP3797356B1 patent drawingFigure 1
  • EP3797356B1 patent drawingFigure 2
  • EP3797356B1 patent drawingFigure 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.