Techniques for minimally invasive application updates and data transfer
First Claim
Patent Images
1. A computer-implemented method, comprising:
- initializing an original application at a first location monitored by a listener by at least;
copying binary code of the original application to a second location, thereby generating a copy of the original application; and
activating the copy of the original application to respond to activity at one or more communication endpoints and hold handles to the one or more communication endpoints to which the activity relates, thereby creating an active original application;
at a time after the listener detects that the original application has been replaced by a replacement application at the first location, at least;
copying binary code of the replacement application to a third location, thereby generating an active replacement application;
capturing a state of the active original application including information identifying the one or more communication endpoints to which the active original application has handles;
transferring the state corresponding to the handles to the active replacement application;
configuring the active original application to pass, to the active replacement application, further activity at the one or more communication endpoints to which the handles are held;
configuring the active replacement application to interface with the active original application to access the one or more communication endpoints to which the handles are held; and
removing the active original application after handles on the one or more communication endpoints are no longer held.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques described and suggested herein include systems and methods for updating applications by reconfiguring an active original application to serve as a proxy for an active replacement application. An original application may be initialized in a way that allows updates to the original application to occur without adversely affecting the operation of the original application. A replacement application may be configured to connect to one or more communication endpoints via the active original application.
19 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
initializing an original application at a first location monitored by a listener by at least; copying binary code of the original application to a second location, thereby generating a copy of the original application; and activating the copy of the original application to respond to activity at one or more communication endpoints and hold handles to the one or more communication endpoints to which the activity relates, thereby creating an active original application; at a time after the listener detects that the original application has been replaced by a replacement application at the first location, at least; copying binary code of the replacement application to a third location, thereby generating an active replacement application; capturing a state of the active original application including information identifying the one or more communication endpoints to which the active original application has handles; transferring the state corresponding to the handles to the active replacement application; configuring the active original application to pass, to the active replacement application, further activity at the one or more communication endpoints to which the handles are held; configuring the active replacement application to interface with the active original application to access the one or more communication endpoints to which the handles are held; and removing the active original application after handles on the one or more communication endpoints are no longer held. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
one or more processors; and memory that includes instructions that, as a result of being executed by the one or more processors, cause the system to; monitor a location for changes related to an active original application that communicates via one or more communication endpoints; and at a time after detecting that a replacement application exists at the monitored location, at least; capture a subset of a state of the active original application including information identifying the one or more communication endpoints to which the active original application has handles; transfer the state corresponding to the handles to an active version of the replacement application; cause the active replacement application to interface with the active original application to communicate with the one or more communication endpoints; and remove the active original application after handles on the one or more communication endpoints are no longer held. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
-
at a time after being notified of a pending update to an active original application that communicates via one or more communication endpoints to which the active original application has handles, at least; reroute communications between the active original application and the one or more communication endpoints to a buffer; cache requests, in the buffer, related to the one or more communication endpoints; transfer at least a portion of a task state corresponding to the handles of the active original application to an active replacement application; configure the active replacement application to interface with the active original application to communicate with the one or more communication endpoints to which the handles are held; reroute the communications to the active replacement application, by at least causing the active replacement application to process the cached requests; and remove the active original application after handles on the one or more communication endpoints are no longer held. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification