US 11,687,610 B2
Application remoting across a network using draw commands
Darren Remington, Mesa, AZ (US); Trevor Sundberg, Kirkland, WA (US); Killian Koenig, Seattle, WA (US); Benjamin Buzbee, Woodinville, WA (US); Michael Conrad, Monroe, WA (US); and David Harnett, Seattle, WA (US)
Assigned to CLOUDFLARE, INC., San Francisco, CA (US)
Filed by CLOUDFLARE, INC., San Francisco, CA (US)
Filed on Feb. 4, 2020, as Appl. No. 16/781,861.
Claims priority of provisional application 62/800,948, filed on Feb. 4, 2019.
Claims priority of provisional application 62/800,937, filed on Feb. 4, 2019.
Prior Publication US 2020/0250372 A1, Aug. 6, 2020
Int. Cl. G06F 9/451 (2018.01); G06F 16/957 (2019.01); G06F 16/958 (2019.01); G06F 21/62 (2013.01); G06F 21/71 (2013.01); G06F 40/14 (2020.01); H04L 67/131 (2022.01)
CPC G06F 16/9574 (2019.01) [G06F 9/452 (2018.02); G06F 16/9577 (2019.01); G06F 16/972 (2019.01); G06F 16/986 (2019.01); G06F 21/629 (2013.01); G06F 21/6245 (2013.01); G06F 21/6281 (2013.01); G06F 21/71 (2013.01); G06F 40/14 (2020.01); H04L 67/131 (2022.05)] 21 Claims
OG exemplary drawing
 
1. A non-transitory computer-readable medium that provides instructions that, when executed by a processor, cause the processor to perform operations, comprising:
instantiating an instance of a remote application in a server, the remote application instance being instantiated responsive to a request from a client device remote from the server;
intercepting, at the remote application instance, a first set of one or more draw commands associated with output of the remote application instance, the first set of one or more draw commands including a first set of vector commands;
providing the first set one or more draw commands to the client device to cause a client application executing on the client device to render one or more portions of output on the client application based on the first set of vector commands;
receiving, at the remote application instance, an input event from the client application; and
providing a second set of one or more draw commands to the client device, the second set of one or more draw commands including a second set of vector commands to cause the client application to render one or more portions of output on the client application based on the second set of vector commands.