Server-Side ICA Protocol State Snapshots for Random Seeking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for recording and playing back remote presentation protocol data streams are inefficient, requiring client-side components and generating large file sizes due to the need for keyframes, and lack the ability for server-side recording and random seeking.
Innovation Solution
A system and method for recording and playing back remote presentation protocols that intercept and regenerate the protocol data stream on the server-side, eliminating the need for client-side components and keyframes, allowing for real-time seeking and compact storage by using state-snapshots to recreate display data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If conventional screen capture technologies are used, then display data can be recorded, but processor-intensive encoding or transcoding is required for playback
Solution Approach 1:
Instead of capturing and encoding screen data on the client device, the patent inverts the approach by having the server capture and encode the display data stream before transmission. The server-side ICA encoder captures the display data and encodes it into the ICA protocol stream, which is then transmitted to the client for direct decoding and display. This eliminates the need for client-side screen capture and encoding operations.
Solution Approach 2:
The patent introduces an intermediary encoding layer on the server side that translates display data into the ICA protocol format. This intermediary encoder acts as a mediator between the display system and the network transmission, performing the encoding work centrally on the server rather than requiring intensive processing on each client device.
2Ease of operation
If keyframes are stored within the stream for seeking capability, then random access is enabled, but file size increases by several orders of magnitude
Solution Approach 1:
The patent extracts the seeking capability function from the video stream data itself and implements it as a separate indexing mechanism. Instead of embedding keyframes within the ICA protocol stream, the system maintains an external index that maps time positions in the stream to corresponding state snapshot identifiers. This separates the seeking functionality from the data stream, allowing random access without increasing the stream's data volume.
Solution Approach 2:
The patent creates compact state snapshots that copy only the essential protocol state information at specific time points, rather than storing complete video frames. These state snapshots are much smaller than traditional keyframes and serve as reference points for seeking. The system copies only the necessary protocol state data needed to reconstruct display information at seek points.
3Reliability
If remote presentation protocols are recorded sequentially from the beginning, then the stateful nature of the protocol is maintained, but playback time is excessive
Solution Approach 1:
The patent performs preliminary encoding and state snapshot creation during the initial recording phase. The server-side encoder captures display data and creates state snapshots at predetermined intervals as the stream is generated. This preliminary preparation of encoded data and reference points enables fast seeking during playback without requiring sequential processing of the entire stream.
Solution Approach 2:
The patent segments the continuous ICA protocol stream into discrete, manageable state snapshots at specific time intervals. Each state snapshot represents a discrete state of the protocol at a particular moment. This segmentation allows the playback system to jump directly to specific segments (state snapshots) rather than processing the entire stream sequentially, significantly reducing playback time while maintaining protocol state integrity.
Data Source
AI summary
A method for real-time seeking during real-time playback of presentation layer protocol data streams includes the step of receiving, by a foreground protocol engine, a request for rendering the contents of a packet in a presentation layer protocol data stream comprising a first plurality of packets already received and a second plurality of packets yet to be received. The foreground protocol engine identifies a state-snapshot having an associated timestamp previous to that of the requested packet. The foreground protocol engine displays during transmission of the presentation layer protocol data stream from a first device to a second device, the requested packet responsive to the identified state-snapshot.


