US2014244708A1PendingUtilityA1

Backwards-compatible feature-level version control of an application using a restlike api

Assignee: MICROSOFT CORPPriority: Feb 28, 2013Filed: Jun 26, 2013Published: Aug 28, 2014
Est. expiryFeb 28, 2033(~6.6 yrs left)· nominal 20-yr term from priority
H04L 67/563H04L 63/0807H04L 67/10G06F 21/629H04L 67/63G06F 21/57H04L 67/02H04L 67/1095G06F 21/335H04L 65/40H04L 29/08135
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Client and server-side instances of an application leverage an application programming interface (API) that complies with a representational state transformation architecture and supports backwards-compatible feature-level version control. A resource maintained by the server-side instance of the application is revised independent of revisions of a remainder of the application. The server-side instance of the application maintains multiple versions of a resource and/or a resource that is a superset of revisions of the resource, such that a compatible version of the resource is served to the client-side instance of the application.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A computing device comprising:
 a processor module; and   a memory that comprises a client-side instance of a distributed application executed by the processor module, the distributed application supporting communication between the client-side instance of the application and a server-side instance of the application through use of an application programming interface (API) that complies with a representational state transfer (REST) architecture, the API supporting revision of a resource maintained by the server-side instance of the application independent of other revisions to the distributed application.   
     
     
         2 . The computing device of  claim 1 , the client-side instance of the distributed application comprising:
 a requester component that transmits a request to the server-side instance of the application for a first resource maintained by the server-side instance of the distributed application, the request comprising at least one of an identifier of the first resource or a relation attribute that describes content of the first resource; and   a receiver component configured to receive a reply to the request.   
     
     
         3 . The computing device of  claim 2 , the client-side instance of the distributed application being compatible with a first version of the first resource, the reply comprising a second version of the first resource, the second version of the first resource comprising the first version of the first resource and a revision to the first version of the first resource. 
     
     
         4 . The computing device of  claim 2 , the reply comprising a revision attribute for a second resource that identifies the second resource as being a Kth version of the second resource, the client-side instance of the application further comprising a revision detection component that determines that the second resource has been revised based at least in part upon a comparison between the revision attribute for the second resource and a revision attribute for a prior version of the second resource. 
     
     
         5 . The computing device of  claim 2 , the request comprising data that identifies a version of the client-side instance of the distributed application. 
     
     
         6 . The computing device of  claim 2 , the reply comprising data that identifies a version of the server-side instance of the distributed application, the client-side instance of the distributed application further comprising a revision detection component that infers a revision to the server-side instance of the application based at least in part upon a comparison between the data that identifies the version of the server-side instance of the distributed application and content of a previously received reply from the server-side instance of the distributed application. 
     
     
         7 . The computing device of  claim 2 , the reply comprising an indication that the first resource is to be deprecated. 
     
     
         8 . The computing device of  claim 2 , the reply comprising a link-relation comprised by the first resource, the link-relation identifying that a second resource is available to the client-side instance of the application, the link relation comprising:
 an identifier of the second resource;   a relation attribute that describes a subject matter of the second resource; and   a revision attribute that identifies a version of the second resource.   
     
     
         9 . The computing device of  claim 8 , the requester component further configured to transmit a request to the server-side instance of the distributed application for the second resource, the request comprising at least one of the identifier of the second resource or the relation attribute that describes the subject matter the second resource. 
     
     
         10 . The computing device of  claim 8 , the reply comprising a second link-relation comprised by the first resource, the second link-relation identifying a third resource that is available to the client-side instance of the application, the third resource being an independent version of the second resource that fails to comprise the second resource. 
     
     
         11 . The computing device of  claim 1 , the distributed application being a unified communications application. 
     
     
         12 . A method executed by a processor module of a computing device, the method comprising:
 receiving a command to execute a client-side instance of a distributed application that supports bi-directional communication between the client-side instance and a server-side instance of the distributed application, an application programming interface (API) supporting the bi-directional communication, the API complying with a representational state transfer (REST) architecture and supporting revision of a resource maintained by the server-side instance of the distributed application independent of revision to a remainder of the distributed application; and   executing the client-side instance of the distributed application responsive to receiving the command, wherein executing the client-side instance of the distributed application comprises transmitting a request for a first resource to the server-side instance of the distributed application.   
     
     
         13 . The method of  claim 12 , wherein the request comprises at least one of an identifier of the first resource or a relation attribute that describes a subject matter the first resource, and the method further comprising:
 receiving a reply to the request from the server-side instance of the distributed application.   
     
     
         14 . The method of  claim 13 , wherein the reply further comprises a first version of the first resource, the first version of the first resource comprising:
 a second version of the resource that is compatible with the client-side instance of the distributed application; and   a revision to the second resource.   
     
     
         15 . The method of  claim 13 , wherein the reply further comprises a revision attribute for a second resource, the revision attribute identifying a version of the second resource, the method further comprising:
 determining that the second resource has been revised based at least in part upon a comparison between the reply and a previously received reply pertaining to the first resource.   
     
     
         16 . The method of  claim 13 ; wherein the reply further comprises a link-relation comprised by the first resource, the link-relation identifying a second resource as being available to the client-side instance of the distributed application, the link-relation comprising:
 an identifier of the second resource;   a relation attribute that describes a subject matter of the second resource; and   a revision attribute that identifies a version of the second resource.   
     
     
         17 . The method of  claim 16 , wherein executing the client-side instance of the distributed application further comprises transmitting a request to the server-side instance of the application for the second resource, the request comprising at least one of an identifier of the second resource or the relation attribute that describes the subject matter of the second resource. 
     
     
         18 . The method of  claim 13 , wherein transmitting of the request further comprises requesting a particular version of the first resource, and wherein executing the client-side instance of the distributed application further comprises receiving a reply to the request, the reply comprising the particular version of the first resource. 
     
     
         19 . The method of  claim 13 , wherein executing the client-side instance of the distributed application further comprises receiving a reply to the request, the reply comprising an indication that at least one version of the first resource is to be deprecated. 
     
     
         20 . A computer readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform acts comprising:
 executing a client-side instance of a unified communications (UC) application, the UC application supporting multiple modes of communication between the client-side instance of the UC application and a server-side instance of the UC application by way of an application programming interface (API), the API complying with a representational state transfer (REST) architecture and supporting revision of a resource maintained by the server-side instance of the UC application independent of revision to a remainder of the UC application, wherein executing the client-side instance of the UC application comprises:   transmitting a request to the server-side instance of the UC application for a first resource, the request comprising at least one of an identifier of the first resource or a relation attribute that describes content of the first resource; and   receiving a reply to the request, the reply comprising a version of the first resource selected by the server from amongst a plurality of possible versions of the first resource that is compatible with the client-side instance of the UC application.

Join the waitlist — get patent alerts

Track US2014244708A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.