IP Library Granted Patent US 9,342,298
Granted Patent B2
US 9,342,298 · App. 13/826,477 · Granted May 17, 2016

Application compatibility checking in a distributed computing environment

Inventors: Daniel C. Wang (Kirkland, WA); Jun Wang (Redmond, WA); Ismet Erensoy Kahraman (Seattle, WA); Aaron Edward Spinks (Redmond, WA); Vikram Madhav Dhaneshwar (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/71G06F8/60G06F8/61
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 9,342,298
App. No.
13/826,477
Granted
May 17, 2016
Kind
B2
Abstract

In various embodiments, methods and systems for maintaining compatibility between applications, based on feature-set constraints are provided. A distributed computing system provides Platform as a service (PaaS) including a software framework in a service model of cloud computing. A known compatibility baseline is established for features of a first application and a second application. The known compatibility baseline inherently includes a baseline set of unenumerated features of the applications. It is determined that the first application is compatible with second application based on comparing an explicit enumeration of added features or removed features in a feature set of the applications. The added features or removed features are tracked after the baseline set of unenumerated features is defined. The determination whether the first application and the second application are compatible is communicated for processing the first application and/or the second application.

Claims (46)

1. One or more computer storage media storing computer-useable instructions that, when used by one or more distributed computing systems, cause the one or more distributed computing systems to perform a method for maintaining compatibility between applications based on feature-set constraints, the method comprising:

identifying a first application that is compatible with a second application, wherein the first application being compatible with the second application signals a known compatibility baseline having a baseline set of unenumerated features associated with the first application and the second application, the known compatibility baseline is defined without explicit enumeration of features in the first application and the second application;

without explicit enumeration of features of the first application and the second application prior to the known compatibility baseline, comparing a first explicit enumeration of added features or removed features in a feature set of the first application to a second explicit enumeration of added features or removed features in a feature set of the second application, wherein the added features or the removed features are tracked for the first application and the second application after the known compatibility baseline;

determining, based on the first explicit enumeration of added features or removed features in the feature set of the first application corresponding to the second explicit enumeration of added features or removed features in the feature set of the second application, that the first application is compatible with the second application; and

communicating a determination that the first application and the second application are compatible.

2. The media of claim 1 , wherein the first application is dependent on the second application.

3. The media of claim 2 , wherein the first application is associated with a required feature set, and the second application is associated with a provided feature set.

4. The media of claim 1 , wherein the baseline set of features are associated with the known compatibility baseline determined based on performing a compatibility test between the first application and the second application.

5. The media of claim 4 , wherein the baseline set of features are not explicitly enumerated, such that, compatibility is determined based on explicit changes over time not explicit enumeration of features of the first application and the second application.

6. The media of claim 4 , the known compatibility baseline is a duplicate of a known compatibility baseline of a different distributed system.

7. The media of claim 4 , wherein the known compatibility baseline is redefined based on a predefined threshold application evolution, wherein redefining the known compatibility baseline resets the baseline set of features from which to track feature changes of an application.

8. The media of claim 1 , wherein a major breaking change of an application triggers a new baseline feature set for the application, wherein the major breaking change alters a compatibility of a substantial number of applications.

9. The media of claim 1 , wherein the removed features are associated with a minor breaking change feature that does not alter a compatibility for a substantial number of applications such that an application opts into the removed features.

10. The media of claim 1 , wherein communicating the determination that the first application and the second application are compatible triggers a deployment procedure for the first application or the second application onto the distributed computing system.

11. One or more computer storage media storing computer-useable instructions that, when used by one or more distributed computing systems, cause the one or more distributed computing systems to perform a method for maintaining compatibility between applications based on feature-set constraints, the method comprising:

identifying a first application that is compatible with a second application based on a baseline set of unenumerated features associated with the first application and the second application, the baseline set of unenumerated features defines a known compatibility baseline based on the first application being compatible with the second application, without explicit enumeration of features in the first application and the second application;

determining without explicit enumeration of features in the first application and the second application, and based on an explicit enumeration of changes in a feature set of the first application and a feature set of the second application˜ whether the first application is compatible with the second application, wherein the changes are tracked after the known compatibility baseline wherein compatibility between the first application and the second application is based on the explicit enumeration of changes in the first application corresponding with the second application, wherein the feature set is published in a short form associated with a reference table that include a long form of each enumerated short form entry; and

communicating a compatibility determination for the first application and the second application.

12. The media of claim 11 , wherein determining whether the first application and the second application are compatible further comprises;

matching the known compatibility baseline of the first application and the second application; and

determining that the first application is compatible with the second application when the feature set of the first application comprises the feature set of the second application, wherein when the feature set of the second application is at least in part a subset of the first application.

13. The media of claim 11 , wherein the long form comprises a detailed description that acts a guide for a targeted application compatibility verification.

14. The media of claim 11 , further comprising:

determining that the first application is not compatible with the second application, wherein the feature set of the first application does not comprise the feature set of the second application;

comparing the first application with one or more versions of the second application, wherein the one or more versions of the second application enumerate the known compatibility baseline associated with the baseline set of unenumerated features; and

determining whether the first application is compatible with the one or more versions of the second application.

15. A system for maintaining application compatibility based on feature-set constraints, the system comprising a processing unit coupled to a computer storage medium, the computer storage medium having stored thereon a plurality of computer components executable by the processing unit, the computer components comprising:

an application development component configured for:

communicating one or more applications each with an explicit enumeration of one or more feature changes, wherein the one or more feature changes are tracked after a known compatibility baseline is defined for a baseline set of unenumerated features; and

receiving a compatibility check determination for at least one application from the one or more applications;

a deployment component configured for:

receiving a communication of the one or more applications; and

determining, based on the explicit enumeration of one or more feature changes in the one or more applications whether a first application is compatible with a second application, wherein the first application is compatible with the second application based on:

matching the known compatibility baseline of the first application and the second application, wherein the known compatibility baseline is matched based at least on a published tag corresponding to the known compatibility baseline, the baseline set of unenumerated features defines the known compatibility baseline based on the first application being compatible with the second application, without explicit enumeration of features in the first application and the second application; and

determining, without explicit enumeration of features in the first application and the second application prior the known compatibility baseline, that changes in the feature set of the first application correspond to changes in the feature set of the second application, wherein when changes in the feature set of the second application are at least in part a subset of changes in the first application, the first application is compatible with the second application; and

communicating a compatibility determination for the first application and the second application.

16. The system of claim 15 , wherein the system is further configured for providing cloud computing platform as a service (PaaS) having a computing platform and a solution stack.

17. The system of claim 15 , wherein the application development component is further configured for:

developing the one or more applications;

tagging the one or more applications with the explicit enumeration of one or more feature changes based on a defined syntax; and

publishing the one or more applications such that the explicit enumeration of one or more feature changes is available to application developers.

18. The system of claim 15 , wherein the application development component is further configured for:

determining an additive change, wherein the additive communicates non-breaking added features;

determining a major breaking change, wherein the major breaking change triggers the publishing of a new baseline compatibility set; and

determining a minor breaking change, wherein the minor breaking change is published for opting into removed features.

19. The system of claim 18 , wherein a determination of a breaking change type is based on compatibility testing verifying the breaking change type.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MIDDLE NAME OF ASSIGNOR AARON EDWARD SPINKS, PREVIOUSLY RECORDED ON REEL 030869 FRAME 0606. ASSIGNOR(S) HEREBY CONFIRMS THE THE ENTIRE RIGHT, TITLE AND INTEREST. Recorded Apr 9, 2014
From: WANG, DANIEL C.; WANG, JUN; KAHRAMAN, ISMET ERENSOY; SPINKS, AARON EDWARD; DHANESHWAR, VIKRAM MADHAV
To: MICROSOFT CORPORATION
Reel/Frame 032643/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2013
From: WANG, DANIEL C.; WANG, JUN; KAHRAMAN, ISMET ERENSOY; SPINKS, AARON EDWARDS; DHANESHWAR, VIKRAM MADHAV
To: MICROSOFT CORPORATION
Reel/Frame 030869/0606 →
Continuity (1)
Related Publication 20140282395A1 · Sep 18, 2014