IP Library › Granted Patent US 10,523,721
Granted Patent B2
US 10,523,721 · App. 15/187,789 · Granted Dec 31, 2019

Preserving long running sessions during side-by-side upgrade

Inventors: Anthony Bloesch (Suzhou, CN); Petru Moldovanu (Redmond, WA); Ji Liang (Suzhou, CN)
Assignee: Microsoft Technology Licensing, LLC
H04L65/1083G06F8/656
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,523,721
App. No.
15/187,789
Granted
Dec 31, 2019
Kind
B2
Abstract

The present disclosure is directed to preserving running sessions during a side-by-side upgrade of system resources. Example aspects include deploying a first version and a second version of a system resource to a server within a network, the first version and the second version of the system resource both maintained within the system network and accessible via a version agnostic Application Programming Interface. Example aspects can receive, at a front-end server, a request for interaction with the system resource from a first client system, the request from the first client system including a header including version-identifying information. The systems and methods can determine, at a session version redirector, that the client system should be provided the first version and not the second version based on the version-identifying information in the header.

Claims (75)

1. A system for preserving running sessions during side-by-side upgrade, the system comprising:

one or more processors;

a memory coupled to the one or more processors, the memory storing a session preservation application comprising computer-executable instructions that, when executed by the one or more processors, causes the system to:

deploy a first version and a second version of a system resource to a server within a network, wherein the first version and the second version of the system resource are both maintained within the system network and accessible via a version agnostic Application Programming Interface, the second version of the system resource being updated relative to the first version by integrating a customization layer to the first version of the system resource to create the second version of the system resource, wherein the customization layer includes a custom solution;

add a deployment layer to the second version of the system resource, the deployment layer including a location within the system network;

receive, at a front-end server, a request for interaction with the system resource from a first client system, the request from the first client system including a header including version-identifying information;

determine, at a session version redirector and in response to receipt of the request at the front end server, that the client system should be provided the first version of the system resource and not the second version of the system resource based on the version-identifying information in the header; and

in response to the request from the first client system, provide the first version of the system resource to the first client system.

2. The system of claim 1 , wherein the header included in the request from the first client system indicates that the first client system has an existing session utilizing the first version of the system resource.

3. The system of claim 1 , further comprising computer-executable instructions that cause the system to:

receive, at the front-end server, a request from a second client system for interaction with the system resource, the request from the second client system;

determine, at the system version redirector, that the second client system should be provided the second version of the system resource has no existing session associated with the first version of the system resource; and

provide the second version of the system resource to the second client system.

4. The system of claim 1 , further comprising computer-executable instructions that cause the system to:

determine, at a session version redirector, that traffic is to be directed to either the first or second version of the system resource; and

initiate use of the version agnostic API to perform an operation on the system resource.

5. The system of claim 4 , wherein the version agnostic API is used to perform one or more operations on both the first version of the resource and the second version of the resource.

6. The system of claim 1 , further comprising computer-executable instructions that cause the system to:

lock an administrator-defined subset of traffic to the second version of the system resource; and

analyze the compatibility of the traffic.

7. The system of claim 6 , further comprising computer-executable instructions that cause the system to:

direct compatible traffic to the second version of the system resource; and

direct incompatible traffic to the first version of the system resource.

8. The system of claim 7 , further comprising computer-executable instructions that cause the system to:

identify incompatible traffic, wherein the incompatible traffic exceeds a rollback threshold; and

upon identifying incompatible traffic exceeding the rollback threshold, direct all traffic to the first version of the system resource.

9. The system of claim 7 , further comprising computer-executable instructions that cause the system to:

identify compatible traffic, wherein the compatible traffic exceeds an upgrade threshold; and

direct all traffic to the second version of the system resource.

10. A computer-implemented method for preserving running sessions during side-by-side upgrade, the method comprising:

receiving, at a front-end server, a first request from a client system for interaction with a system resource hosted at a server within a server network;

providing a first version of the system resource to the client system;

integrating a customization layer to the first version of the system resource to create a second version of the system resource, wherein the customization layer includes a custom solution;

adding a deployment layer to the second version of the system resource, the deployment layer including a location within the system network;

deploying the second version of the system resource to a server within the system network, such that the first version and the second version of the system resource are both maintained within the system network, the second version of the system resource being updated relative to the first version;

receiving, at the front-end server, a second request for interaction with the system resource from the client system, the request from the client system including a header including version-identifying information;

determining, at a session version redirector and in response to receipt of the request at the front end server, that the client system should be provided the first version of the system resource and not the second version of the system resource based on the version-identifying information in the header; and

in response to the request from the first client system, providing the first version of the system resource to the first client system.

11. The computer-implemented method of claim 10 , further comprising

receiving, at the front-end server, a request from a second client system for interaction with the system resource;

determining, at the system version redirector, that the second client system has no existing session associated with the first version of the system resource; and

providing the second version of the system resource to the second client system.

12. The computer-implemented method of claim 11 , wherein the request from the second client system is received prior to the second request from the first client system.

13. The computer-implemented method of claim 10 , further comprising:

determining, at a session version redirector, that traffic is to be directed to either the first or second version of the system resource; and

initiating use of one or more APIs to perform an operation on either the first or second version of the system resource.

14. The computer-implemented method of claim 10 , further comprising:

locking an administrator-defined subset of traffic to the second version of the system resource; and

analyzing compatibility of the traffic with the second version.

15. The computer-implemented method of claim 14 , further comprising:

directing compatible traffic to the second version of the system resource; and

directing incompatible traffic to the first version of the system resource.

16. The computer-implemented method of claim 14 , further comprising:

identifying a plurality of incompatible traffic, wherein the plurality of incompatible traffic exceeds a rollback threshold; and

directing all traffic to the first version of the system resource.

17. The computer-implemented method of claim 14 , further comprising:

identifying a plurality of compatible traffic, wherein the plurality of compatible traffic exceeds an upgrade threshold; and

directing all traffic to the second version of the system resource.

18. A computer-readable storage memory encoded with computer-executable instructions that, when executed by a computer, cause the computer to:

receive, at a front-end server, a first request from a client system for interaction with a system resource hosted at a server within a server network;

provide a first version of the system resource to the client system;

deploy a second version of the system resource to a server within the system network, such that the first version and the second version of the system resource are both maintained within the system network, the second version of the system resource being updated relative to the first version;

receive, at the front end server, a second request for interaction with the system resource from the client system, the request from the client system including a header including version-identifying information;

determine, at a session version redirector and in response to receipt of the request at the front end server, that the client system has an existing session associated with the first version of the system resource;

determine, at the session version redirector, that the client system should be provided the first version of the system resource and not the second version of the system resource based on the version-identifying information in the header; and

in response to the second request, provide the first version of the system resource to the client system.

19. A computer-implemented method for preserving running sessions during side-by-side upgrade, the method comprising:

receiving, at a front-end server, a first request from a client system for interaction with a system resource hosted at a server within a server network;

providing a first version of the system resource to the client system;

deploying a second version of the system resource to a server within the system network, such that the first version and the second version of the system resource are both maintained within the system network, the second version of the system resource being updated relative to the first version;

receiving, at the front-end server, a second request for interaction with the system resource from the client system, the request from the client system including a header including version-identifying information;

determining, at a session version redirector and in response to receipt of the request at the front end server, that the client system should be provided the first version of the system resource and not the second version of the system resource based on the version-identifying information in the header;

in response to the request from the first client system, providing the first version of the system resource to the first client system;

locking an administrator-defined subset of traffic to the second version of the system resource; and

analyzing compatibility of the traffic with the second version.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2016
From: BLOESCH, ANTHONY; MOLDOVANU, PETRU; LIANG, JI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 038999/0111 →
Continuity (1)
Related Publication 20170366586A1 · Dec 21, 2017