Generic Transcoding Service for Microsoft RPC Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Client-server computing systems face challenges in interfacing between client devices with arbitrary operating systems and servers using proprietary protocols, such as Microsoft's Remote Procedure Call (RPC), which limits compatibility and requires a large code footprint, restricting access to Microsoft products only.
Innovation Solution
A client-side solution that utilizes a specialized packet filter to bridge RPC requirements without implementing an RPC software stack, allowing non-Microsoft clients to access Microsoft Terminal Services Gateway (TSGW) by hardcoding input and output packets with data structures, enabling tunneling through firewalls and supporting standard Microsoft services.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a proprietary protocol stack (e.g., Microsoft RPC) is implemented on the client side, then compatibility with Microsoft services is improved, but device complexity and code footprint increase significantly
Solution Approach 1:
The patent introduces a protocol translation service acting as an intermediary between the client and Microsoft services. The client uses a lightweight generic protocol stack, while the translation service on the server side converts between the generic protocol and proprietary Microsoft RPC protocol, eliminating the need for clients to implement complex proprietary stacks
Solution Approach 2:
The patent creates a universal generic protocol stack that can interface with multiple different proprietary protocols through a translation service. This single generic stack serves multiple functions by communicating with different backend services through protocol translation, rather than requiring separate protocol implementations for each service
2Adaptability or versatility
If a proprietary protocol stack is implemented on the client side, then service compatibility is improved, but ease of manufacture and deployment worsens due to large code requirements
Solution Approach 1:
The translation service acts as a deployment intermediary that handles protocol conversion on the server side. This allows clients to be deployed with minimal code since the complex protocol translation logic resides in the centrally-managed translation service rather than in each client deployment
Solution Approach 2:
Instead of copying and distributing large proprietary protocol stacks to each client, the patent uses a lightweight generic protocol implementation that references centralized translation capabilities. The actual proprietary protocol knowledge is copied and maintained in the translation service rather than in each client
3Adaptability or versatility
If firewall tunneling is implemented to allow non-Microsoft clients to access Microsoft services, then adaptability is improved, but device complexity increases due to packet filtering requirements
Solution Approach 1:
The translation service acts as a mediator that handles firewall tunneling requirements on the server side. It receives generic protocol requests from clients, translates them to proprietary Microsoft RPC format, and manages the tunneling through firewalls, eliminating the need for complex packet filtering in client devices
Solution Approach 2:
The patent replaces the mechanical approach of implementing packet filtering and protocol translation in client hardware/software with a centralized service-based approach. The translation service performs all protocol conversion and tunneling management through software services, eliminating the need for complex client-side filtering mechanisms
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In particular embodiments, a method includes receiving a connection from a client and assigning the client a unique socket. A generic transcoding service attached to a runtime library is launched, and the library may be able to intercept system calls from an instance of an application executing on a remote client for exporting to the client. A termination of the connection may be received by the client, and load-balancing information is updated. In particular embodiments, a method includes receiving a first connection from a client and assigning the client a first communication pathway. A transcoding remote desktop client is launched and a second connection, including a reference identifier, is received from the client. The method determines whether the identifier is associated with the transcoding remote desktop client. If so, the second connection is accepted, assigned to a second communication pathway, and related to the transcoding remote desktop client.