Client-Agnostic Router for Heterogeneous Input Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed applications face challenges in versioning and upgrading servers, requiring multiple clients on user machines to handle diverse data types and versions, which complicates data processing and communication between clients and servers.
Innovation Solution
A client-agnostic software routing component is introduced that registers as a file extension handler and protocol handler during client application installation, enabling it to route input data to the most appropriate client application version and type, with features like internal forwarding and external verification to ensure data integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple client applications are installed to handle different data types and versions, then the system can support diverse functionalities and server versions, but the device complexity and difficulty of data routing increase
Solution Approach 1:
The patent introduces a router component as an intermediary between the operating system and multiple client applications. This router intercepts all input data, parses it to identify type and version, and routes it to the appropriate client application. By placing this intermediary layer, the system achieves versatile support for multiple data types and server versions without requiring each application to directly handle all routing logic, thus managing complexity centrally rather than distributing it across all applications.
Solution Approach 2:
The patent segments the data handling architecture by separating the routing function from the application logic. The router component is divided into distinct modules: an input data receiver, a parser that extracts type and version information, a routing decision maker, and an output sender. This segmentation allows each component to focus on a specific task, making the overall system more manageable and maintainable while supporting diverse data types and applications.
2Ease of operation
If each client application registers as the file extension handler and protocol handler, then the application can directly receive input data, but other applications cannot handle the same data types and versioning becomes problematic
Solution Approach 1:
The router component is designed as a universal handler that can process all input data types and versions for all client applications. Instead of each application registering as the handler for specific data types (which would limit other applications), the router registers as the universal handler for all relevant data types. It then uses internal logic to determine which application should receive which data based on type and version, enabling multiple applications to coexist and handle different versions simultaneously.
Solution Approach 2:
The router acts as an intermediary between the operating system's file extension and protocol handlers and the multiple client applications. When data arrives, the router intercepts it, parses the type and version information, and then forwards it to the appropriate application. This intermediary approach allows the system to maintain direct data reception efficiency while enabling versatile multi-application support through centralized routing logic.
3Extent of automation
If the router is installed as a shared component, then router upgrades are automatically guaranteed with new client installations, but multiple routers may be installed by different users with different access levels
Solution Approach 1:
The router is designed to be self-upgrading through the installation of new client applications. When a new client application is installed, it automatically brings the updated router component with it, ensuring the router is upgraded without requiring separate manual updates. The router also performs self-verification by checking for the presence of other router instances and determining which one should be active, thereby maintaining reliability despite multiple installations by different users with varying access levels.
Data Source
AI summary
A client-agnostic software routing component for routing input data of a type and version to a most appropriate type and version of client application of a family of related applications. The router, rather than the client application, registers as the file extension handler and as the protocol handler, and thus, receives all input data targeting the client applications. On startup, the router creates a list of available client applications, the client versions and types, and versions of input data the clients can handle. On receiving the input, the router determines if the router can parse the version of the input. The router refers to the list of available clients to determine if one or more of the client applications can handle a particular version and type of the input data. After this determination, the router routes the input to the most appropriate client.


