Prosecution Insights
Last updated: October 02, 2026
Application No. 17/937,133

APPLICATION STATE SYNCHRONIZATION ACROSS COMPUTING ENVIRONMENTS

Final Rejection §103
Filed
Sep 30, 2022
Priority
Jul 19, 2022 — provisional 63/390,433
Examiner
XU, ZUJIA
Art Unit
2195
Tech Center
2100 — Computer Architecture & Software
Assignee
Microsoft Technology Licensing, LLC
OA Round
2 (Final)
68%
Grant Probability
Favorable
3-4
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 68% — above average
68%
Career Allowance Rate
130 granted / 190 resolved
+13.4% vs TC avg
Strong +76% interview lift
Without
With
+75.7%
Interview Lift
resolved cases with interview
Typical timeline
3y 4m
Avg Prosecution
23 currently pending
Career history
207
Total Applications
across all art units

Statute-Specific Performance

§101
14.8%
-25.2% vs TC avg
§103
47.3%
+7.3% vs TC avg
§102
2.5%
-37.5% vs TC avg
§112
31.3%
-8.7% vs TC avg
Black line = Tech Center average estimate • Based on career data from 190 resolved cases

Office Action

§103
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This Office Action is in response to Applicant’s Amendment and Remarks filed on 07 May 2026. Claims 1-4 and 6-21 are pending for examination. Claim 5 was cancelled. Claim 21 is newly added. Claim Rejections - 35 USC § 103 The following is a quotation of pre-AIA 35 U.S.C. 103(a) which forms the basis for all obviousness rejections set forth in this Office action: (a) A patent may not be obtained though the invention is not identically disclosed or described as set forth in section 102, if the differences between the subject matter sought to be patented and the prior art are such that the subject matter as a whole would have been obvious at the time the invention was made to a person having ordinary skill in the art to which said subject matter pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1, 7, 9-10 and 12-14 are rejected under 35 U.S.C. 103 as being unpatentable over Chan et al. (US Pub. 2014/0289333 A1) in view of Shaya Potter et al. (“WebPod: Persistent Web Browsing Sessions with Pocketable Storage Devices” in proceedings of the ACM 14th international conference on world wide web, May 10, 2005, pp. 603-612; Hereafter Potter) and further in view of Nave et al. (US Pub. 2011/0157196 A1), Fukuda et al. (US Pub. 2009/0180138 A1) and Stanger et al. (US Pub. 2008/0079851 A1). Chan, Potter, Nave and Fukuda were cited in the previous Office Action. As per claim 1, Chan teaches the invention substantially as claimed including A system for synchronizing a state of a first instance of a software application executing on a first computing environment with a second instance of the software application to be executed on a second computing environment, the system comprising (Chan, Fig. 3, 312, 308, computing device 302A, 302B (as including first and second computing environment), 304A App state and 304B App state; Fig. 9B; [0045] lines 16-17, data synchronization among more than two computing devices; [0054] lines 6-10, The computing devices 302 can share application states (e.g., an application state 304A, an application state 304B, and an application state 304C, collectively as the "application states 304") for an application 306 directly amongst each other): the first computing environment, comprising: a memory system, comprising a runtime memory and a persistent memory, that stores program code (Chan, Fig. 1, 130, 138 memory; Fig. 7, 720 memory; [0061] lines 2-4, the operational memory can be a portion of a volatile memory (e.g., random access memory or a processor cache) in the computing device that the computer application is running on; [0088] lines 1-4, memory 720 is or includes the main memory of the computing device 700. The memory 720 represents any form of random access memory (RAM), read-only memory (ROM), flash memory, the like, or a combination of such devices); and a processing system, comprising a processor, that receives the program code from the memory system and, in response to at least receiving the program code (Chan, Fig. 7, 710 processor, 770 code; [0051] lines 1-3, instructions on a tangible storage memory capable of being executed by a processor): scans at least one of the runtime memory or the persistent memory to identify memory state information that is specific to the first instance of the software application (Chan, Fig. 8, 802, identify application data associated with a target application in a memory device of the computing device, 804 generate an application state of the target application based on the identified application data; Fig. 4, 400 application state, 402 application memory data (as memory state); [0061] lines 1-2, The application memory data 402 describes an operational state of an operational memory of the computer application; [0094] lines 6-12, The method 800 begins in step 802 to identify application data (e.g., gameplay state data in the case of a computer game application) associated with a target application in a memory device of the computing device. The application data can be associated with the first user profile; ); writes the memory state information to a data structure in a synchronization file stored in the memory system (Chan, Fig. 3, 302A computing device, APP state 304A; Fig. 4, 400 application state, 402 application memory data, 404, 406, 408 410 (as data structure); Fig. 1, 1st memory, 136 state synchronization; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900); writes the execution state information to the data structure (Chan, Fig. 4, 400 application state; [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game (as execution state), the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof); synchronize at least a portion of a network configuration for the first instance of the software application stored in the runtime memory of the first computing environment to the second computing environment (Chan, [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof…the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof; [0101] an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another); synchronize the at least a portion of the network configuration to the second computing environment (Chan, [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another; also see [0101]); and transmits the synchronization file to the second computing environment (Chan, Fig. 9B, [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0101] lines 1-10, FIG. 9B is a diagram illustrating an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. For example, this feature can be implemented by an app-share agent, such as the application share module 230, running within the user devices. The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). Chan fails to specifically teach locks the first instance of the software application preventing user inputs thereto and generation of a new instance thereof. However, Potter teaches locks the first instance of the software application preventing user inputs thereto and generation of a new instance thereof (Potter, Page 603, Abstract, lines 1-20, We present WebPod, a portable system that enables mobile users to use the same persistent, personalized web browsing session on any Internet-enabled device. No matter what computer is being used, WebPod provides a consistent browsing session, maintaining all of a user’s plugins, bookmarks, browser web content, open browser windows, and browser configuration options and preferences. This is achieved by leveraging rapid improvements in capacity, cost, and size of portable storage devices. WebPod provides a virtualization and checkpoint/restart mechanism that decouples the browsing environment from the host, enabling web browsing sessions to be suspended to portable storage, carried around, and resumed from the storage device on another computer. WebPod virtualization also isolates web browsing sessions from the host, protecting the browsing privacy of the user and preventing malicious web content from damaging the host. We have implemented a Linux WebPod prototype and demonstrate its ability to quickly suspend and resume web browsing sessions, enabling a seamless web browsing experience for mobile users as they move among computers; Page 608, right Col, lines 7-17, To eliminate possible dependencies on low-level kernel details, WebPod’s checkpoint-restart mechanism requires processes to be suspended prior to being checkpointed. Suspending processes creates a quiescent state necessary to guarantee the correctness of the checkpointed image, and it also minimizes the amount of information that needs to be saved. As a representative example, consider the case of semaphore wait queues. Although semaphore values can be easily obtained and restored through well-known interfaces, saving and restoring the state of the wait queue involves the manipulation of kernel internals. However, by taking advantage of existing semantics which direct the kernel to release a process from a wait queue upon receipt of a signal, WebPod is able to empty the wait queues by suspending all processes, and therefore avoid having to save the state of the queue [Examiner noted: the webpage of browsing session is suspended for seamless web browsing experience for mobile users as they move among computers, therefore, locks the first instance of the software application preventing user inputs thereto and generation of a new instance thereof (i.e., due to suspended]). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan with Potter because Potter’s teaching of suspending (as locking) the web browsing sessions and resuming after synchronization would have provided Chan’s system with the advantage and capability to guarantee the correctness of the checkpointed image, and minimizes the amount of information that needs to be saved which improving the system performance and efficiency (see Potter, Page 608, right Col, lines 7-17, “guarantee the correctness of the checkpointed image, and it also minimizes the amount of information that needs to be saved”). Chan and Potter fail to specifically teach intercepts render commands for the first instance of the software application via an operating system level system filter to identify execution state information that is specific to the first instance of the software application. However, Nave teaches intercepts render commands for the first instance of the software application via an operating system level system filter to identify execution state information that is specific to the first instance of the software application (Nave, Fig. 1, 108 software application; Fig. 2, 216 interceptor; Fig. 10, 1004 intercept the command on the server, 1006 server saves the updated render state; [0035] lines 1-7, software application 108 is executed within a sandbox environment 118 on server 102. Sandbox environment 118 captures the graphics and audio commands generated by software application 108 and selectively redirects them to one of remote UIs 106.sub.1-106.sub.N via data communication network 104. This allows software application 108 to be displayed on the remote UI using the hardware of the remote UI (as synchronization); [0055] lines 11-12, software executing (as an operating system level system filter) on server 202 intercepts commands from game executable 210; [0060] lines 1-3, a video game that is executed within the context of the operating system; [0174] lines 1-4, Graphics libraries provide an API for querying the render state of a GPU. Sometimes, video games use this API to determine if a GPU is in a correct state or to determine whether to change the render state to a new state; [0155] line 7, re-render commands; [0177] The state block object captures the full current state of a GPU, including, for example, a current texture of stage; [0181] lines 1-7, a video game issues a command that updates a render state of a GPU on a server. Such commands may include, for example and without limitation, SetLight, SetMaterial, or the like. At step 1004, the command issued during step 1002 is intercepted. At step 1006, the server saves the updated render state of the GPU (as to intercept render commands for the first instance of the software application (i.e., Fig. 1, 108 software application) via an operating system level system filter (i.e., interceptor) to identify execution state information in order to displaying it on the remote UI (Fig. 1, 106); also see [0008] identifying and compressing repeated sequences of intercepted graphics commands, compressing at least one texture object associated with at least one graphics command, identifying and removing data associated with one or more of the intercepted graphics commands that is used to represent particles, identifying and removing intercepted graphics commands used to render objects that are less than a predetermined size, and replacing vertex changes associated with at least one intercepted graphics command with a matrix representative thereof). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan and Potter with Nave because Nave’s teaching of intercepting the rendering commands for determining the execution state (i.e., render state) would have provided Chan and Potter’s system with the advantage and capability to allow the system to manipulate graphics commands that are reduced in size as compared to the intercepted graphics commands, and transferring the manipulated graphics commands from the server to the client for rendering thereon which improving the system performance and efficiency (see Nave, Abstract). Chan, Potter and Nave fail to specifically teach determines an inability to synchronize. However, Fukuda teaches determines an inability to synchronize (Fukuda, Fig. 7, S12 synchronization ok? No to end; [0007] synchronizing use restriction settings information that indicates use restriction settings for each user with other multifunction machines that are connected via a network; [0015] in the multifunction machine according to the present invention, the settings information may include operational settings information relating to operational settings of various functions for respective users; [0107] when a response indicating that synchronization is not possible is made from the synchronization target multifunction machine 1, a determination of "No" is made, and the synchronization/setting processing is ended). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter and Nave with Fukuda because Fukuda’s teaching of stopping the synchronization when determination that synchronization is not possible is made would have provided Chan, Potter and Nave’s system with the advantage and capability to allow the system to preventing any potential errors due to the synchronization in order to improving the system performance and efficiency. Chan, Potter, Nave and Fukuda fail to specifically teach auto-remediates the inability to synchronize. However, Stanger teaches auto-remediates the inability to synchronize (Stanger, [0033] The synchronizer 122 may also comprise a statistical analysis module (SAM) 132. The SAM 132 collects information regarding the synchronization errors detected from the synchronization detector 120, and uses this information to increase the accuracy or efficiency of the synchronizer. In one embodiment, the SAM 132 is programmed to correct for synchronization errors only when a sufficient number consecutive measurements of .DELTA.t have been provided by the synchronization detector 120). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave and Fukuda with Stanger because Stanger’s teaching of auto-remediates/correct the synchronization errors would have provided Chan, Potter, Nave and Fukuda’s system with the advantage and capability to allow the system to auto remediate the synchronization errors in order to improving the system reliability and performance. As per claim 7, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Potter further teaches wherein the identified execution state information that is specific to the first instance of the software application comprises one or more of active window or sub window handles; open menus, tabs, toolbars, or ribbons; a current page; a current web page; characteristics of mouse selection; characteristics of keyboard selection; or characteristics of pen input (Potter, Page 603, Abstract, lines 1-20, We present WebPod, a portable system that enables mobile users to use the same persistent, personalized web browsing session on any Internet-enabled device. No matter what computer is being used, WebPod provides a consistent browsing session, maintaining all of a user’s plugins, bookmarks, browser web content, open browser windows, and browser configuration options and preferences. This is achieved by leveraging rapid improvements in capacity, cost, and size of portable storage devices. WebPod provides a virtualization and checkpoint/restart mechanism that decouples the browsing environment from the host, enabling web browsing sessions to be suspended to portable storage, carried around, and resumed from the storage device on another computer. WebPod virtualization also isolates web browsing sessions from the host, protecting the browsing privacy of the user and preventing malicious web content from damaging the host. We have implemented a Linux WebPod prototype and demonstrate its ability to quickly suspend and resume web browsing sessions, enabling a seamless web browsing experience for mobile users as they move among computers). As per claim 9, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan further teaches wherein the processing system captures application agnostic state information and writes the application agnostic state information to the data structure (Chan, Fig. 4, 400 application state; [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game, the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration (as agnostic state information) and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof). As per claim 10, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 9 above. Potter further teaches wherein the application agnostic state information comprises at least one of mouse cursor properties; keyboard cursor properties; window display properties; or opened uniform resource locators (URL) (Potter, Page 603, Abstract, lines 1-20, We present WebPod, a portable system that enables mobile users to use the same persistent, personalized web browsing session on any Internet-enabled device. No matter what computer is being used, WebPod provides a consistent browsing session, maintaining all of a user’s plugins, bookmarks, browser web content, open browser windows, and browser configuration options and preferences. This is achieved by leveraging rapid improvements in capacity, cost, and size of portable storage devices. WebPod provides a virtualization and checkpoint/restart mechanism that decouples the browsing environment from the host, enabling web browsing sessions to be suspended to portable storage, carried around, and resumed from the storage device on another computer. WebPod virtualization also isolates web browsing sessions from the host, protecting the browsing privacy of the user and preventing malicious web content from damaging the host. We have implemented a Linux WebPod prototype and demonstrate its ability to quickly suspend and resume web browsing sessions, enabling a seamless web browsing experience for mobile users as they move among computers). As per claim 12, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan further teaches wherein the first computing environment comprises a local computing device, a virtual cloud computing machine, or a container, and the second computing environment comprises a local computing device, a virtual cloud computing machine, or a container (Chan, Fig. 9B, 902B (as first computing environment comprises a local computing device); 904B (as the second computing environment comprises a local computing device)). As per claim 13, Chan teaches the invention substantially as claimed including A method for synchronizing a state of a first instance of a software application executing on a first computing environment with a second instance of the software application to be executed on a second computing environment, the method comprising: (Chan, Fig. 3, 312, 308, computing device 302A, 302B (as including first and second computing environment), 304A App state and 304B App state; Fig. 9B; [0045] lines 16-17, data synchronization among more than two computing devices; [0054] lines 6-10, The computing devices 302 can share application states (e.g., an application state 304A, an application state 304B, and an application state 304C, collectively as the "application states 304") for an application 306 directly amongst each other): writes the execution state information to a data structure in a synchronization file (Chan, Fig. 4, 400 application state; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game (as execution state), the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof); synchronize at least a portion of a network configuration for the first instance of the software application stored in the runtime memory of the first computing environment to the second computing environment (Chan, [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof…the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof; [0101] an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another); synchronize the at least a portion of the network configuration to the second computing environment (Chan, [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another; also see [0101]); and transmits the synchronization file to the second computing environment (Chan, Fig. 9B, [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0101] lines 1-10, FIG. 9B is a diagram illustrating an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. For example, this feature can be implemented by an app-share agent, such as the application share module 230, running within the user devices. The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). Chan fails to specifically teach locking the first instance of the software application executing in the first computing environment preventing user inputs thereto and generation of a new instance thereof. However, Potter teaches locking the first instance of the software application executing in the first computing environment preventing user inputs thereto and generation of a new instance thereof (Potter, Page 603, Abstract, lines 1-20, We present WebPod, a portable system that enables mobile users to use the same persistent, personalized web browsing session on any Internet-enabled device. No matter what computer is being used, WebPod provides a consistent browsing session, maintaining all of a user’s plugins, bookmarks, browser web content, open browser windows, and browser configuration options and preferences. This is achieved by leveraging rapid improvements in capacity, cost, and size of portable storage devices. WebPod provides a virtualization and checkpoint/restart mechanism that decouples the browsing environment from the host, enabling web browsing sessions to be suspended to portable storage, carried around, and resumed from the storage device on another computer. WebPod virtualization also isolates web browsing sessions from the host, protecting the browsing privacy of the user and preventing malicious web content from damaging the host. We have implemented a Linux WebPod prototype and demonstrate its ability to quickly suspend and resume web browsing sessions, enabling a seamless web browsing experience for mobile users as they move among computers; Page 608, right Col, lines 7-17, To eliminate possible dependencies on low-level kernel details, WebPod’s checkpoint-restart mechanism requires processes to be suspended prior to being checkpointed. Suspending processes creates a quiescent state necessary to guarantee the correctness of the checkpointed image, and it also minimizes the amount of information that needs to be saved. As a representative example, consider the case of semaphore wait queues. Although semaphore values can be easily obtained and restored through well-known interfaces, saving and restoring the state of the wait queue involves the manipulation of kernel internals. However, by taking advantage of existing semantics which direct the kernel to release a process from a wait queue upon receipt of a signal, WebPod is able to empty the wait queues by suspending all processes, and therefore avoid having to save the state of the queue [Examiner noted: the webpage of browsing session is suspended for seamless web browsing experience for mobile users as they move among computers, therefore, locks the first instance of the software application preventing user inputs thereto and generation of a new instance thereof (i.e., due to suspended]). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan with Potter because Potter’s teaching of suspending (as locking) the web browsing sessions and resuming after synchronization would have provided Chan’s system with the advantage and capability to guarantee the correctness of the checkpointed image, and minimizes the amount of information that needs to be saved which improving the system performance and efficiency (see Potter, Page 608, right Col, lines 7-17, “guarantee the correctness of the checkpointed image, and it also minimizes the amount of information that needs to be saved”). Chan and Potter fail to specifically teach intercepting render commands for the first instance of the software application via an operating system level system filter to identify execution state information that is specific to the first instance of the software application. However, Nave teaches intercepting render commands for the first instance of the software application via an operating system level system filter to identify execution state information that is specific to the first instance of the software application (Nave, Fig. 1, 108 software application; Fig. 2, 216 interceptor; Fig. 10, 1004 intercept the command on the server, 1006 server saves the updated render state; [0035] lines 1-7, software application 108 is executed within a sandbox environment 118 on server 102. Sandbox environment 118 captures the graphics and audio commands generated by software application 108 and selectively redirects them to one of remote UIs 106.sub.1-106.sub.N via data communication network 104. This allows software application 108 to be displayed on the remote UI using the hardware of the remote UI (as synchronization); [0055] lines 11-12, software executing (as an operating system level system filter) on server 202 intercepts commands from game executable 210; [0060] lines 1-3, a video game that is executed within the context of the operating system; [0174] lines 1-4, Graphics libraries provide an API for querying the render state of a GPU. Sometimes, video games use this API to determine if a GPU is in a correct state or to determine whether to change the render state to a new state; [0155] line 7, re-render commands; [0177] The state block object captures the full current state of a GPU, including, for example, a current texture of stage; [0181] lines 1-7, a video game issues a command that updates a render state of a GPU on a server. Such commands may include, for example and without limitation, SetLight, SetMaterial, or the like. At step 1004, the command issued during step 1002 is intercepted. At step 1006, the server saves the updated render state of the GPU (as to intercept render commands for the first instance of the software application (i.e., Fig. 1, 108 software application) via an operating system level system filter (i.e., interceptor) to identify execution state information in order to displaying it on the remote UI (Fig. 1, 106); also see [0008] identifying and compressing repeated sequences of intercepted graphics commands, compressing at least one texture object associated with at least one graphics command, identifying and removing data associated with one or more of the intercepted graphics commands that is used to represent particles, identifying and removing intercepted graphics commands used to render objects that are less than a predetermined size, and replacing vertex changes associated with at least one intercepted graphics command with a matrix representative thereof). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan and Potter with Nave because Nave’s teaching of intercepting the rendering commands for determining the execution state (i.e., render state) would have provided Chan and Potter’s system with the advantage and capability to allow the system to manipulate graphics commands that are reduced in size as compared to the intercepted graphics commands, and transferring the manipulated graphics commands from the server to the client for rendering thereon which improving the system performance and efficiency (see Nave, Abstract). Chan, Potter and Nave fail to specifically teach determines an inability to synchronize. However, Fukuda teaches determines an inability to synchronize (Fukuda, Fig. 7, S12 synchronization ok? No to end; [0007] synchronizing use restriction settings information that indicates use restriction settings for each user with other multifunction machines that are connected via a network; [0015] in the multifunction machine according to the present invention, the settings information may include operational settings information relating to operational settings of various functions for respective users; [0107] when a response indicating that synchronization is not possible is made from the synchronization target multifunction machine 1, a determination of "No" is made, and the synchronization/setting processing is ended). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter and Nave with Fukuda because Fukuda’s teaching of stopping the synchronization when determination that synchronization is not possible is made would have provided Chan, Potter and Nave’s system with the advantage and capability to allow the system to preventing any potential errors due to the synchronization in order to improving the system performance and efficiency. Chan, Potter, Nave and Fukuda fail to specifically teach auto-remediates the inability to synchronize. However, Stanger teaches auto-remediates the inability to synchronize (Stanger, [0033] The synchronizer 122 may also comprise a statistical analysis module (SAM) 132. The SAM 132 collects information regarding the synchronization errors detected from the synchronization detector 120, and uses this information to increase the accuracy or efficiency of the synchronizer. In one embodiment, the SAM 132 is programmed to correct for synchronization errors only when a sufficient number consecutive measurements of .DELTA.t have been provided by the synchronization detector 120). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave and Fukuda with Stanger because Stanger’s teaching of auto-remediates/correct the synchronization errors would have provided Chan, Potter, Nave and Fukuda’s system with the advantage and capability to allow the system to auto remediate the synchronization errors in order to improving the system reliability and performance. As per claim 14, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 13 above. Chan further teaches scanning at least one of a runtime memory or the persistent memory to identify memory state information that is specific to the first instance of the software application (Chan, Fig. 8, 802, identify application data associated with a target application in a memory device of the computing device, 804 generate an application state of the target application based on the identified application data; Fig. 4, 400 application state, 402 application memory data (as memory state); [0061] lines 1-2, The application memory data 402 describes an operational state of an operational memory of the computer application; [0094] lines 6-12, The method 800 begins in step 802 to identify application data (e.g., gameplay state data in the case of a computer game application) associated with a target application in a memory device of the computing device. The application data can be associated with the first user profile; ); and writing the memory state information to the data structure in the synchronization file stored in the memory system for said transmits the synchronization file to the second computing environment. (Chan, Fig. 3, 302A computing device, APP state 304A; Fig. 4, 400 application state, 402 application memory data, 404, 406, 408 410 (as data structure); Fig. 1, 1st memory, 136 state synchronization; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900; Fig. 9B). Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of Chaudhri (US Pub. 2023/0216861 A1). Chaudhri was cited in the previous Office Action. As per claim 2, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Potter teaches the state synchronization of the software application is in progress in conjunction with locking the first instance of the software application (Potter, Page 603, Abstract, lines 1-20, We present WebPod, a portable system that enables mobile users to use the same persistent, personalized web browsing session on any Internet-enabled device. No matter what computer is being used, WebPod provides a consistent browsing session, maintaining all of a user’s plugins, bookmarks, browser web content, open browser windows, and browser configuration options and preferences. This is achieved by leveraging rapid improvements in capacity, cost, and size of portable storage devices. WebPod provides a virtualization and checkpoint/restart mechanism that decouples the browsing environment from the host, enabling web browsing sessions to be suspended to portable storage, carried around, and resumed from the storage device on another computer. WebPod virtualization also isolates web browsing sessions from the host, protecting the browsing privacy of the user and preventing malicious web content from damaging the host. We have implemented a Linux WebPod prototype and demonstrate its ability to quickly suspend and resume web browsing sessions, enabling a seamless web browsing experience for mobile users as they move among computers; Page 608, right Col, lines 7-17, To eliminate possible dependencies on low-level kernel details, WebPod’s checkpoint-restart mechanism requires processes to be suspended prior to being checkpointed. Suspending processes creates a quiescent state necessary to guarantee the correctness of the checkpointed image, and it also minimizes the amount of information that needs to be saved). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach wherein the processing system displays a screen indicating that the state synchronization of the software application is in progress. However, Chaudhri teaches wherein the processing system displays a screen indicating that the state synchronization of the software application is in progress (Chaudhri, Fig. 8, GUI, syncing; [0022] lines 1-3, FIG. 8 is a diagrammatic illustration of the MAgent graphical user interface (GUI) showing the File service in the synchronization state with a file transfer in progress in accordance with yet another embodiment). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with Chaudhri because Chaudhri’s teaching of a GUI that indicating the synchronization progress would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the user to easily understanding the synchronization progress in order to improving the user experience. Claims 3-4 are rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of XU et al. (US Pub. 2015/0186370 A1). XU was cited in the previous Office Action. As per claim 3, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan further taches wherein further in response to said at least receiving the program code, the processing system: locates data files specific to the first instance of the software application in the persistent memory, wherein the located data files store at least one of version information of the first instance of the software application, installation information, configuration information, dependent component information, user identity information, or access token information (Chan, Fig. 4, application state, 406 hardware configuration data; [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as include data files) and synchronized between the computing devices); [0059] lines 1-10, one or more modules of the operating system of the computing device are responsible for organizing, monitoring, and synchronizing the application state 400. Such modules can run in the computing devices as background services or programs. The computer applications can be developed without any code dedicated to the organization, monitoring, or synchronization of the application state data. The application state data maintained by the operating system includes sufficient information for the operating system to restore a previous snapshot of the application state 400 specified by the application state data (as including locates data files specific to the first instance of the software application in order to restoring)). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach in response to determining that a first data file of the located data files does not match a corresponding second data file on the second computing environment, copies a difference of information between the first data file and the second data file; and transmits the difference of information to the second computing environment for state synchronization; However, XU teaches in response to determining that a first data file of the located data files does not match a corresponding second data file on the second computing environment, copies a difference of information between the first data file and the second data file; and transmits the difference of information to the second computing environment for state synchronization (XU, Fig. 26, 2602, 2604, 2606, 2608 generate a difference based on the first view, the second view, and the first file set, 2610, 2612 compare the first view and the second view, 2618 transfer the difference to the destination; [0226] A first view of the first file set is generated (2604). A V(T) is generated at the source side (e.g., by the data transport system 104); [0227] A second view of a second file set of a second plurality of files is received from a destination (2606). The source side (e.g., the data transport system 104) receives a V(R) of a file set R from the destination side; [0229] generating a difference based on the first view, the second view, and the first file set includes determining a sequence of operations based on the first view and the second view, the sequence of operations including one or more copy operations and one or more add operations (2610), identifying, from the first file set, data corresponding to the add operations (2614), and associating the data corresponding to the add operations with the sequence of operations (2616). Generating the difference .DELTA. (as including copies the difference) includes determining a sequence of COPY and ADD operations based on V(T) and V(R), identifying data (e.g., chunks of files) in T and not in R (and thus are the data to be added by the ADD operations), and associating the data with the difference A. As described above, the data transport system 104 uses V(T) and V(R) to determine a sequence of COPY and ADD operations, and fills the data parameters in the ADD operations with chunk data from T. The result of these steps is the difference .DELTA.). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with XU because XU’s teaching of determining the difference between the first view and second view (as determining does not match), generating the delta and transmit the delta to the destination would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the system to minimizing the data to be transferred by only sending the difference which improving the system data transmission efficiency and performance. As per claim 4, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach in response to determining that a file open in the first instance of the software application in the first computing environment is not synchronized in the second computing environment, transmitting the file to the second computing environment for synchronization. However, XU teaches in response to determining that a file open in the first instance of the software application in the first computing environment is not synchronized in the second computing environment, transmitting the file to the second computing environment for synchronization (XU, [0003] Examples include file replication, disaster recovery, remote backup, file sharing and synchronizing; Fig. 26, 2602, 2604, 2606, 2608, 2610, 2612 compare the first view and the second view, 2618 transfer the difference to the destination; [0226] A first view of the first file set is generated (2604). A V(T) is generated at the source side (e.g., by the data transport system 104); [0227] A second view of a second file set of a second plurality of files is received from a destination (2606). The source side (e.g., the data transport system 104) receives a V(R) of a file set R from the destination side; [0229] generating a difference based on the first view, the second view, and the first file set includes determining a sequence of operations based on the first view and the second view, the sequence of operations including one or more copy operations and one or more add operations (2610), identifying, from the first file set, data corresponding to the add operations (2614), and associating the data corresponding to the add operations with the sequence of operations (2616). Generating the difference .DELTA. (as including copies the difference) includes determining a sequence of COPY and ADD operations based on V(T) and V(R), identifying data (e.g., chunks of files) in T and not in R (and thus are the data to be added by the ADD operations), and associating the data with the difference A. As described above, the data transport system 104 uses V(T) and V(R) to determine a sequence of COPY and ADD operations, and fills the data parameters in the ADD operations with chunk data from T. The result of these steps is the difference .DELTA.). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with XU because XU’s teaching of determining the difference between the first view and second view (as determining does not match), generating the delta and transmit the delta to the destination would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the system to minimizing the data to be transferred by only sending the difference which improving the system data transmission efficiency and performance. Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of ZHANG (US Pub. 2019/0361609 A1). ZHANG was cited in the previous Office Action. As per claim 6, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan further teaches wherein the processing system scans at least one of the runtime memory or the persistent memory to identify memory state information that is specific to the software application, and writes the memory state information to a data structure in a synchronization file stored in the memory system by (Chan, Fig. 8, 802, identify application data associated with a target application in a memory device of the computing device, 804 generate an application state of the target application based on the identified application data; Fig. 4, 400 application state, 402 application memory data (as memory state); [0061] lines 1-2, The application memory data 402 describes an operational state of an operational memory of the computer application; [0094] lines 6-12, The method 800 begins in step 802 to identify application data (e.g., gameplay state data in the case of a computer game application) associated with a target application in a memory device of the computing device. The application data can be associated with the first user profile; Fig. 3, 302A computing device, APP state 304A; Fig. 4, 400 application state, 402 application memory data, 404, 406, 408 410 (as data structure); Fig. 1, 1st memory, 136 state synchronization; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900); identifying a first portion of the memory state information that is stored in the runtime memory and a second portion of the memory state information that is stored to the persistent memory (Chan, Fig. 4, 402 and 404; [0060] The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game, the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof; [0061] The application memory data 402 describes an operational state of an operational memory of the computer application. For example, the operational memory can be a portion of a volatile memory (e.g., random access memory or a processor cache) in the computing device that the computer application is running on. For another example, the operational memory can be a portion of a flash memory in the computing device. The operational memory dynamically evolves throughout the execution of the computer application. The application local storage data 404 represents certain data in a local storage of the computing device that the computer application running on. The application local storage data 404 can change based on specific instructions from the computer application to write to a persistent storage device. For example, the local storage can be a portion of a persistent storage device, such as a hard disk or a flash drive); and capturing the memory state information for said write the memory state information by: capturing the first portion of the memory state information and capturing the second portion of the memory state information, and writing the captured first portion of the memory state information and the captured second portion of the memory state information to the data structure in the synchronization file; capturing the first portion of the memory state information and paging the first portion of the memory state information to the persistent memory according to the cold state format, capturing the first portion of the memory state information and the second portion of the memory state information from the persistent memory, and writing the captured first portion of the memory state information and the captured second portion of memory state information to the data structure in the synchronization file according to the cold state format; or un-paging the second portion of the memory state information stored in the cold state in persistent memory and storing the second portion of the memory state information in runtime memory according to the hot state format, capturing the first portion of the memory state information and the second portion of the memory state information from the runtime memory, and writing the captured first portion of the memory state information and the captured second portion of memory state information to the data structure in the synchronization file according to the hot state format (Chan, Fig. 4, 400 application state, 402 application memory data (as memory state); [0061] lines 1-2, The application memory data 402 describes an operational state of an operational memory of the computer application; [0094] lines 6-12, The method 800 begins in step 802 to identify application data (e.g., gameplay state data in the case of a computer game application) associated with a target application in a memory device of the computing device. The application data can be associated with the first user profile; Fig. 3, 302A computing device, APP state 304A; Fig. 4, 400 application state, 402 application memory data, 404, 406, 408 410 (as data structure); Fig. 1, 1st memory, 136 state synchronization; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach a first portion of the memory state information that is stored in a hot state in the runtime memory and a second portion of the memory state information that is stored in a cold state paged to the persistent memory, and when capturing the first and second portions, it is according to a hot state format and a cold state format respectively. However, ZHANG teaches a first portion of the memory state information that is stored in a hot state in the runtime memory and a second portion of the memory state information that is stored in a cold state paged to the persistent memory, and when capturing the first and second portions, it is according to a hot state format and a cold state format respectively (ZHANG, [0074] A service layer in the server stores a data to be stored in the hot data state, into a memory, and a RockDB storage engine stores a data to be stored in the cold data state, into a disk. In addition, a cold-hot data converting engine transfers the data, which has been converted from the hot data state to the cold data state, from the memory into the disk, and transfers the data, which has been converted from the cold data state to the hot data state; [0105] Since the data to be stored in the hot data state is stored in the memory and the data to be stored in the cold data state is stored in the disk, the system may be prevented from frequently accessing the disk, thereby providing large capacity throughput while providing data access with high throughput and low latency; [0111] The cold-hot data converting engine in the server stores the key in the cold data state into the disk, i.e., index information that is infrequently accessed is flushed to the disk in page.). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with ZHANG because ZHANG’s teaching of portion of the data stored in the hot state, and another portion is stored in the cold state paged would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to prevent from frequently accessing the disk, thereby providing large capacity throughput while providing data access with high throughput and low latency. Claim 8 is rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of Underwood et al. (US Pub. 2020/0257555 A1) and Chan (US Pub. 2021/0200697 A1; hereafter Chan ‘697’). Underwood and Chan ‘697’ were cited in the previous Office Action. As per claim 8, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan further teaches wherein the processing system writes to the data structure for said transmitting the synchronization file to the second computing environment (Chan, Fig. 9B, [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0101] lines 1-10, FIG. 9B is a diagram illustrating an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. For example, this feature can be implemented by an app-share agent, such as the application share module 230, running within the user devices. The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900; [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach wherein the processing system writes a last sequence of chained render commands to the data structure. However, Underwood teaches wherein the processing system writes a last sequence of chained render commands to the data structure (Underwood, [0126] The (and each) command stream interface is operable to cause the graphics processor to execute a respective command stream that has been assigned to that command stream interface. Thus, a (and each) command stream interface can have associated with it (assigned to it) a command stream buffer storing a sequence of commands (a command stream) to be implemented). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with Underwood because Underwood’s teaching of writing the sequence of commands to the data structure would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the system to minizine the transferring time which improving the system performance and efficiency. Chan, Potter, Nave, Fukuda, Stanger and Underwood fail to specifically teach does not write a first render command and a second render command to the data structure in instances where the second render command cancels an operation performed based on the first render command. However, Chan ‘697’ teaches does not write a first render command and a second render command to the data structure in instances where the second render command cancels an operation performed based on the first render command (Chan ‘697’, Claim 13, determine that the first write command, the second write command, and the third write command write data to a same address of the memory device; and mark the first write command and the second write command as erroneous utilizing error circuitry responsive to determining that the first write command, the second write command, and the third write command write data to the same address of the memory device (as where the second render command cancels an operation performed based on the first render command; please note, render command was taught by Nave) and that the third write command is received after the first command and second write command; wherein the processing device is configured to delete the first write command and the second write command in response to the first write command and the second write command being marked as erroneous). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda, Stanger and Underwood with Chan ‘697’ because Chan ‘697’’s teaching of removing (as does not write) the first and second command if the second command cancels the operation performed based on the first command would have provided Chan, Potter, Nave, Fukuda, Stanger and Underwood’s system with the advantage and capability to preventing potential system errors due to the operations performed on the same address which improving the system reliability and performance. Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of QUAN et al. (US Pub. 2015/0365463 A1). QUAN was cited in the previous Office Action. As per claim 11, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Chan teaches writing at least one of memory state information, execution state information, or agnostic state information to the data structure in the synchronization file (Chan, Fig. 3, 302A computing device, APP state 304A; Fig. 4, 400 application state, 402 application memory data, 404, 406, 408 410 (as data structure); Fig. 1, 1st memory, 136 state synchronization; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach when writing at least one of memory state information, execution state information, or agnostic state information to the data structure in the synchronization file, it is for any other software applications the software application depends on. However, QUAN teaches when writing at least one of memory state information, execution state information, or agnostic state information to the data structure in the synchronization file, it is for any other software applications the software application depends on (QUAN, Fig. 3, 142 APP state information; [0003] an application management module may remove an application from the electronic device, and may store the application and associated data at a network-accessible storage location. Subsequently, when the user attempts to execute the application on the electronic device, the application may be executed remotely by a service computing device while the application is also downloaded to the electronic device. As one example, the service computing device may use an emulator to execute the application and send application execution data to the electronic device. For instance, the emulator may emulate execution of the application on the electronic device. The user may interact with the remotely executing application while the application is been downloaded and reinstalled on the electronic device. Application state information may be obtained from the remotely executing application and used to initiate execution of the application locally on the electronic device so that local execution may resume at a point at which remote execution left off (as execution state information that is for any other software applications the software application depends on (i.e., application that will be running in the client side). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with QUAN because QUAN’s teaching of writing the application state that currently executed and for later sending it to client that allow the client application to resume would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the system to executing the application without down time which improving the user experience and system performance. Claims 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over Chan et al. (US Pub. 2014/0289333 A1) in view of Allen et al. (US Pub. 2011/0153690 A1) and further in view of Adbo et al. (US Patent. 7,590,750 B2), Fukuda et al. (US Pub. 2009/0180138 A1) and Stanger et al. (US Pub. 2008/0079851 A1). Chan, Allen and Adbo were cited in the previous Office Action. As per claim 15, Chan teaches the invention substantially as claimed including A system for synchronizing a state of a first instance of a software application executing on a first computing environment with a second instance of the software application to be executed on a second computing environment, the system comprising (Chan, Fig. 3, 312, 308, computing device 302A, 302B (as including first and second computing environment), 304A App state and 304B App state; Fig. 9B; [0045] lines 16-17, data synchronization among more than two computing devices; [0054] lines 6-10, The computing devices 302 can share application states (e.g., an application state 304A, an application state 304B, and an application state 304C, collectively as the "application states 304") for an application 306 directly amongst each other): the first computing environment, comprising: a first memory that stores first program code; and a first processing system, comprising a processor, that receives the first program code from the first memory and, in response to at least receiving the first program code (Chan, Fig. 1, 130, 138 memory; Fig. 3, 302A (as first computing environment); Fig. 7, 720 memory; [0061] lines 2-4, the operational memory can be a portion of a volatile memory (e.g., random access memory or a processor cache) in the computing device that the computer application is running on; [0088] lines 1-4, memory 720 is or includes the main memory of the computing device 700. The memory 720 represents any form of random access memory (RAM), read-only memory (ROM), flash memory, the like, or a combination of such devices): synchronize at least a portion of a network configuration for the first instance of the software application stored in the runtime memory of the first computing environment to the second computing environment (Chan, [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof…the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof; [0101] an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another); synchronize the at least a portion of the network configuration to the second computing environment (Chan, [0044] the cloud storage service 110 can perform the synchronization by routing the application state updates from one electronic device to another; also see [0101]); transmits a synchronization file to the second computing environment (Chan, Fig. 9B, [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0101] lines 1-10, FIG. 9B is a diagram illustrating an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. For example, this feature can be implemented by an app-share agent, such as the application share module 230, running within the user devices. The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). the second computing environment comprising: a second memory system, that stores second program code (Chan, Fig. 1, 130, 138 memory; Fig. 3, 302B; Fig. 7, 720 memory; [0061] lines 2-4, the operational memory can be a portion of a volatile memory (e.g., random access memory or a processor cache) in the computing device that the computer application is running on; [0088] lines 1-4, memory 720 is or includes the main memory of the computing device 700. The memory 720 represents any form of random access memory (RAM), read-only memory (ROM), flash memory, the like, or a combination of such devices); and a second processing system, comprising a processor, that receives the second program code from the second memory system and, in response to at least receiving the second program code: (Chan, Fig. 7, 710 processor, 770 code; [0051] lines 1-3, instructions on a tangible storage memory capable of being executed by a processor): receives the synchronization file of the first instance of the software application, the synchronization file including a data structure having memory state information and execution state information therein that is specific to the first instance of the software application executing on the first computing environment (Chan, Fig. 9B, [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files (as synchronization file) and synchronized between the computing devices); [0061] lines 1-2, The application memory data 402 describes an operational state of an operational memory of the computer application; [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game (as execution state); [0101] lines 1-10, FIG. 9B is a diagram illustrating an example system environment of implementing user devices (e.g., a first computing device 902B and a second computing device 904B) capable of sharing application states directly with each other, in accordance with various embodiments. The example system environment illustrates the first computing device 902B directly sharing its application state with the second computing device 904B. For example, this feature can be implemented by an app-share agent, such as the application share module 230, running within the user devices. The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900). writes the memory state information to the second memory system at a respective location; (Chan, Fig. 3, computing device 302B, App state 304B; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files and synchronized between the computing devices); [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0101] lines 10-13, The app-share agent in the user devices can serve the functionalities of the app state broker agent 908 of the application sharing system 900); initiates execution of the second instance of the software application on the second computing environment (Chan, [0080] Upon receiving the instance of the application state, the app-share agent configures, in step 606, the target application with the instance of the application state for executing on an operating system of the computing device); updates, at an operating system level, said update performed subsequent to said initiate execution of the second instance of the software application (Chan, [0074] the application state broker system 502 can configure whether the sharing copy is sharable to a third computing device. As another example, the application state broker system 502 can configure whether new application data, generated after executing the sharing copy of the target application, is to re-integrate with the application data of the application state associated with the user profile A in the application state storage 504. The application state broker system 504 can further configure whether new application data, generated after executing the sharing copy of the target application, is to synchronize to a new application state associated with the user profile B in the application state storage 504. The new application state can also be associated with the user profile A as well. In embodiments, the application state broker system 504 can configure the sharing copy as a session-only instance of the target application that expires in accordance with a schedule or a condition that can be met while executing the session-only instance (as to update based on the execution); and synchronizes the second instance of the software application to the execution state information (Chan, Fig. 3, app state shared between different computing devices; Fig. 9B; [0074] the application state broker system 502 can configure whether the sharing copy is sharable to a third computing device. As another example, the application state broker system 502 can configure whether new application data, generated after executing the sharing copy of the target application, is to re-integrate with the application data of the application state associated with the user profile A in the application state storage 504. The application state broker system 504 can further configure whether new application data, generated after executing the sharing copy of the target application, is to synchronize to a new application state associated with the user profile B in the application state storage 504. The new application state can also be associated with the user profile A as well. In embodiments, the application state broker system 504 can configure the sharing copy as a session-only instance of the target application that expires in accordance with a schedule or a condition that can be met while executing the session-only instance (as to update based on the execution). Chan fails to specifically teach the memory state information having a respective first memory pointer pointing thereto, and when updating, it is a second memory pointer associated with the second instance of the software application to the respective first memory pointer. However, Allen teaches the memory state information having a respective first memory pointer pointing thereto, and when updating, it is a second memory pointer associated with the second instance of the software application to the respective first memory pointer (Allen, [0050] A pointer update message format 312 includes an address of pointer field 306 identical to that described above. The pointer update message format 312 further includes a pointer value field 314. As such, the pointer update message format 312 may be used to indicate, as described above, an address of a pointer and a value to be associated with that pointer for both newly-created pointers and for updated pointers. The pointer update message format 312 also includes the message type field 308 described above. The message type field 308 may include, for purposes of the present example, a value of "01" binary to represent that the message was formed using the pointer update message format 312; [0023] coprocessor may create one or more (e.g., multiple) memory pointer elements for a given memory allocation header element in response to multiple pointer update messages received from the main processor. The coprocessor may further update previously created memory pointer elements in response to pointer update messages that reference storage addresses of previously created pointers in the main memory. As such, memory pointer elements may be both created and updated with a new value using pointer update messages sent to the coprocessor from the main processor). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan with Allen because Allen’s teaching of updating the second memory pointer with the first memory pointer would have provided Chan’s system with the advantage and capability to allow the system to ensuring the correctness of the memory pointer in order to preventing any potential system errors which improving the system reliability and performance. Chan and Allen fail to specifically teach when synchronize the second instance of the software application to the execution state information, it including altering at least one user interface element associated with the second instance of the software application. However, Adbo teaches when synchronize the second instance of the software application to the execution state information, it including altering at least one user interface element associated with the second instance of the software application (Adbo, claim 8, tracking, at the server, user initiated changes to a window display geometry and a position of the first media application window and the second media application window on the remote desktop, including tracking of a clipping of the first media application window by the second media application window; relaying to the remote desktop changes in the relative window position of the first and the second media presentation target window relative to changes in the relative window position of the respective first and second media application window such that the first media application window on the client is synchronized with the first media application window on the server). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan and Allen with Adbo because Adbo’s teaching of window position synchronization between client and server would have provided Chan and Allen’s system with the advantage and capability to improve the user experience and system efficiency. Chan, Allen and Adbo fail to specifically teach determines an inability to synchronize. However, Fukuda teaches determines an inability to synchronize (Fukuda, Fig. 7, S12 synchronization ok? No to end; [0007] synchronizing use restriction settings information that indicates use restriction settings for each user with other multifunction machines that are connected via a network; [0015] in the multifunction machine according to the present invention, the settings information may include operational settings information relating to operational settings of various functions for respective users; [0107] when a response indicating that synchronization is not possible is made from the synchronization target multifunction machine 1, a determination of "No" is made, and the synchronization/setting processing is ended). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Allen and Adbo with Fukuda because Fukuda’s teaching of stopping the synchronization when determination that synchronization is not possible is made would have provided Chan, Allen and Adbo’s system with the advantage and capability to allow the system to preventing any potential errors due to the synchronization in order to improving the system performance and efficiency. Chan, Allen, Adbo and Fukuda fail to specifically teach auto-remediates the inability to synchronize. However, Stanger teaches auto-remediates the inability to synchronize (Stanger, [0033] The synchronizer 122 may also comprise a statistical analysis module (SAM) 132. The SAM 132 collects information regarding the synchronization errors detected from the synchronization detector 120, and uses this information to increase the accuracy or efficiency of the synchronizer. In one embodiment, the SAM 132 is programmed to correct for synchronization errors only when a sufficient number consecutive measurements of .DELTA.t have been provided by the synchronization detector 120). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Allen, Adbo and Fukuda with Stanger because Stanger’s teaching of auto-remediates/correct the synchronization errors would have provided Chan, Allen, Adbo and Fukuda’s system with the advantage and capability to allow the system to auto remediate the synchronization errors in order to improving the system reliability and performance. As per claim 16, Chan, Allen, Adbo, Fukuda and Stanger teach the invention according to claim 15 above. Chan further teaches wherein state information specific to the first instance of the software application is synchronized in the second computing environment with respect to the first computing environment, and wherein the synchronized state information includes at least one of version information of the first instance of the software application, installation information, configuration information, dependent component information, user identity information, or access token information stored in a persistent memory included in the second memory system, files to be opened in the second instance of the software application, and a network configuration for the second instance of the software application stored in a run-time memory included in the second memory system of the second computing environment. (Chan, Fig. 4, application state, 406 hardware configuration data; [0080] lines 8-10, the app-share agent can back up the current instance of the application state in sub step 608. For example, the current instance can be stored locally on the computing device; [0058] lines 1-7, FIG. 4 is a block diagram of an example of an application state 400 of a computer application (e.g., one of the computer applications 134, 144, or 244), in accordance with various embodiments…For instance, application state data can be organized as files and synchronized between the computing devices); [0059] lines 1-10, one or more modules of the operating system of the computing device are responsible for organizing, monitoring, and synchronizing the application state 400. Such modules can run in the computing devices as background services or programs. The computer applications can be developed without any code dedicated to the organization, monitoring, or synchronization of the application state data. The application state data maintained by the operating system includes sufficient information for the operating system to restore a previous snapshot of the application state 400 specified by the application state data)). As per claim 17, Chan, Allen, Adbo, Fukuda and Stanger teach the invention according to claim 15 above. Adbo further teaches wherein the processing system synchronizes the second instance of the software application to the execution state information including altering at least one user interface element associated with the second instance of the software application by executing, in the second computing environment, render commands that are based on the execution state information, wherein the at least one user interface element associated with the second instance of the software application comprises at least one of active window or sub window handles; open menus, tabs, toolbars, or ribbons; a current page; a current web page; characteristics of mouse selection; characteristics of keyboard selection; or characteristics of pen input (Adbo, Fig. 2, Fig. 3, Fig. 4; window application synchronization (media player window); Col 2, lines 60-62, media presentation 302 corresponds to a media presentation window or video render window which is situated within the media player window; Claim 8, a user-interface component including a first and a second media application window from a server to a remote client during a terminal services session; streaming a first and a second media component for presentation in a respective first and second media presentation target window on the remote desktop in combination with the user-interface component, wherein the streaming occurs in the terminal services session; tracking, at the server, user initiated changes to a window display geometry and a position of the first media application window and the second media application window on the remote desktop, including tracking of a clipping of the first media application window by the second media application window; relaying to the remote desktop changes in the relative window position of the first and the second media presentation target window relative to changes in the relative window position of the respective first and second media application window such that the first media application window on the client is synchronized with the first media application window on the server; relaying to the remote client changes in the relative window geometry of the first and the second media presentation target window relative to changes in the relative window geometry of the respective first and second media application window such that the second media application window on the client is synchronized with the second media application window on the server; and streaming a new first and a new second media component from the server to the remote desktop with a changed window display geometry and position corresponding to the user initiated changes for presentation on the remote client in combination with the respective changed first and second media application window without ever presenting the media component in a format for display within the first or the second media presentation window on the server). As per claim 18, Chan, Allen, Adbo, Fukuda and Stanger teach the invention according to claim 15 above. Chan further teaches wherein the data structure further includes agnostic state information therein that is agnostic with respect to the first instance of the software application, and the processing system synchronizes the second instance of the software application in the second computing environment to the agnostic state information (Chan, Fig. 4, 400 application state; [0060] lines 1-14, The application state 400 of a computer application may include application memory data 402, application local storage data 404, hardware configuration data 406, user account configuration data 408, permission settings data 410, or any combination thereof. The application state 400 may also include other functional memory portions or configurations that is specific to a type of computer application. For example, when the application state 400 is configured to store a run-time state of a computer game, the application state 400 can include game progress data, game control configuration, multimedia output configuration including display configuration (as agnostic state information) and speaker configuration, network configuration, virtual character attribute data, virtual property data, virtual finance or accounting data, or any combination thereof). As per claim 19, Chan, Allen, Adbo, Fukuda and Stanger teach the invention according to claim 18 above. Adbo further teaches wherein the agnostic state information comprises at least one of mouse cursor properties; keyboard cursor properties; window display properties; or uniform resource locators (URL) (Adbo, Claim 8, user initiated changes to a window display geometry and a position of the first media application window and the second media application window on the remote desktop, including tracking of a clipping of the first media application window by the second media application window; relaying to the remote desktop changes in the relative window position of the first and the second media presentation target window relative to changes in the relative window position of the respective first and second media application window such that the first media application window on the client is synchronized with the first media application window on the server; relaying to the remote client changes in the relative window geometry of the first and the second media presentation target window relative to changes in the relative window geometry of the respective first and second media application window such that the second media application window on the client is synchronized with the second media application window on the server; and streaming a new first and a new second media component from the server to the remote desktop with a changed window display geometry and position corresponding to the user initiated changes for presentation on the remote client in combination with the respective changed first and second media application window without ever presenting the media component in a format for display within the first or the second media presentation window on the server). As per claim 20, Chan, Allen, Adbo, Fukuda and Stanger teach the invention according to claim 18 above. Adbo further teaches wherein the processing system synchronizes the second instance of the software application in the second computing environment to the agnostic state information by applying window display properties of the agnostic state information in the second computing environment including at least one of window position, size, focus, z-order, dots-per-inch aware window x, y coordinates, width, or height. (Adbo, Claim 8, user initiated changes to a window display geometry and a position of the first media application window and the second media application window on the remote desktop, including tracking of a clipping of the first media application window by the second media application window; relaying to the remote desktop changes in the relative window position of the first and the second media presentation target window relative to changes in the relative window position of the respective first and second media application window such that the first media application window on the client is synchronized with the first media application window on the server; relaying to the remote client changes in the relative window geometry of the first and the second media presentation target window relative to changes in the relative window geometry of the respective first and second media application window such that the second media application window on the client is synchronized with the second media application window on the server; and streaming a new first and a new second media component from the server to the remote desktop with a changed window display geometry and position corresponding to the user initiated changes for presentation on the remote client in combination with the respective changed first and second media application window without ever presenting the media component in a format for display within the first or the second media presentation window on the server). Claim 21 is rejected under 35 U.S.C. 103 as being unpatentable over Chan, Potter, Nave, Fukuda and Stanger, as applied to claim 1 above, and further in view of Kawakita (US Pub. 2008/0046333 A1). As per claim 21, Chan, Potter, Nave, Fukuda and Stanger teach the invention according to claim 1 above. Stanger teaches perform the auto-remediates (Stanger, [0033] The synchronizer 122 may also comprise a statistical analysis module (SAM) 132. The SAM 132 collects information regarding the synchronization errors detected from the synchronization detector 120, and uses this information to increase the accuracy or efficiency of the synchronizer. In one embodiment, the SAM 132 is programmed to correct for synchronization errors only when a sufficient number consecutive measurements of .DELTA.t have been provided by the synchronization detector 120). Chan, Potter, Nave, Fukuda and Stanger fail to specifically teach determining an available port in the second computing environment; and switching to a same port on the first computing environment. However, Kawakita teaches determining an available port in the second computing environment; and switching to a same port on the first computing environment (Kawakita, Fig. 2, synchronization, 4, 3; Fig. 4; Abstract, transmitting to the collaboration server or the customer terminal an instruction for connecting the customer terminal to the collaboration server via the port, and transmitting the selected port number and a contact number to the customer terminal; [0012] selecting one available port which can be used in the collaboration server upon receipt of information of consultation instructions from the customer terminal, transmitting to the collaboration server or the customer terminal an instruction for connecting the customer terminal with the collaboration server via the port, and transmitting the selected port number and contact number to the customer terminal; [0099] The port to be used for the connection is within the range of the number of ports pre-assigned to the store, and is one of the ports made available for the clerk check-in means when a store clerk comes in for work. For example, if the store has 15 ports assigned thereto, and there are 10 clerks at work, then 10 out of 15 are available ports, and one of the unused ones among them is selected; [0105] The collaboration server 2 has ports via which synchronization of the displayed shop site between the store clerk terminal 4 and the customer terminal 3 is performed over a network. The synchronization is done via a port made available by the store clerk calling means 6). It would have been obvious to one having ordinary skill in the art before the effective filling date of the claimed invention to have combined the teaching of Chan, Potter, Nave, Fukuda and Stanger with Kawakita because Kawakita’s teaching of selecting an available port and switching the port to the same port with clerk terminal and customer terminal for communication/synchronization would have provided Chan, Potter, Nave, Fukuda and Stanger’s system with the advantage and capability to allow the system to identifying an available port for enabling the synchronization when the synchronization error is detected in order to improving the system performance and efficiency. Response to Arguments Applicant’s arguments with respect to claims 1-4 and 6-21 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument. Conclusion Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZUJIA XU whose telephone number is (571)272-0954. The examiner can normally be reached M-F 9:30-5:30 EST. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee J Li can be reached at (571) 272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /Z.X./Examiner, Art Unit 2195 /Aimee Li/Supervisory Patent Examiner, Art Unit 2195
Read full office action

Prosecution Timeline

Sep 30, 2022
Application Filed
Nov 12, 2025
Non-Final Rejection (signed) — §103
Jan 12, 2026
Non-Final Rejection mailed — §103
May 07, 2026
Response Filed
Aug 20, 2026
Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12748620
DYNAMIC MEMORY POWER CAPPING WITH CRITICALITY AWARENESS
10y 0m to grant Granted Sep 29, 2026
Patent 12743313
PORTABLE PREDICTABLE EXECUTION OF SERVERLESS FUNCTIONS
5y 4m to grant Granted Sep 22, 2026
Patent 12743319
DISTRIBUTED CONTROL PLANE FOR REFORMATTING COMMUNICATION BETWEEN A CONTAINER ORCHESTRATION PLATFORM AND A DISTRIBUTED STORAGE ARCHITECTURE
4y 5m to grant Granted Sep 22, 2026
Patent 12743307
QUANTUM JOB SUBMISSION AND OPTIMIZATION FOR END-TO-END ALGORITHMS
4y 2m to grant Granted Sep 22, 2026
Patent 12743698
DYNAMIC AUTOSCALING OF SERVER RESOURCES USING INTELLIGENT DEMAND ANALYTIC SYSTEMS
4y 4m to grant Granted Sep 22, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
68%
Grant Probability
99%
With Interview (+75.7%)
3y 4m (~0m remaining)
Median Time to Grant
Moderate
PTA Risk
Based on 190 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month