US2014244721A1PendingUtilityA1

Real-time communications using a restlike api

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

Abstract

A computing device executes a client-side instance of an application that supports bi-directional real-time synchronous communication and real-time asynchronous communication with a server computing device by way of an application programming interface (API) that conforms to representative state transfer (RESTlike) design principles. An eventing framework on the server computing device is used to aggregate updates to resources on the server that are requested by the client computing device, and is further used to transmit metadata to the client computing device that indicates which updates are available. Real-time sensitive updates are included in the metadata, and the client computing device can decide when and how to retrieve other available updates. An asynchronous operation is modeled on the server computing device by an operation resource that can modify other resources on the server computing device and cause updates regarding status of the operation to be sent to the client computing device.

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 an application, the client-side instance of the application executed by the processor module, the application supporting real-time synchronous communication and real-time asynchronous communication between the computing device and a second computing device using an application programming interface (API) that is compliant with to a representational state transfer (REST) architecture.   
     
     
         2 . The computing device of  claim 1 , the client-side instance of the application comprising:
 a requester component that transmits a request to the second computing device using the API, the request comprising a global identifier for a resource; and   a receiver component that receives a reply from the second computing device that is based upon the request, the reply comprising at least one of a representation of the resource, an update to the resource, or metadata for the resource.   
     
     
         3 . The computing device of  claim 2 , wherein the resource comprises a global identifier of another resource. 
     
     
         4 . The computing device of  claim 1 , the client-side instance of the application further comprising:
 an update requester component that transmits a hanging request to the second computing device for an event resource, the event resource comprising data pertaining to an update to a resource maintained by the second computing device, the hanging request comprising a global identifier for the event resource; and   a receiver component that receives a reply to the hanging request, the reply comprising metadata based upon the data included in the event resource, the metadata comprising an indication of a type of the update and a global identifier for the resource.   
     
     
         5 . The computing device of  claim 4 , wherein metadata further comprises the update. 
     
     
         6 . The computing device of  claim 4 , wherein the reply fails to comprise the update, and the client-side instance of the application further comprising a decider component that determines a retrieval type for the update based at least in part upon at least one of a capability of the computing device, an urgency of the update, or a network traffic condition, the decider component causes the update requester component to transmit the hanging request based upon the retrieval type. 
     
     
         7 . The computing device of  claim 6 , the retrieval type being eager retrieval, wherein the decider component causes the update requester component to immediately transmit a request for the update. 
     
     
         8 . The computing device of  claim 6 , the retrieval type being lazy retrieval, wherein the decider component causes the update requester component to transmit a request for the update when a benefit of retrieving the update is below a threshold. 
     
     
         9 . The computing device of  claim 6 , the retrieval type being non-retrieval, wherein the decider component fails to cause the update requester component to transmit a request for the update. 
     
     
         10 . The computing device of  claim 4 , wherein the type of the update is one of an addition of the resource on the second computing device, a modification of the resource, or a deletion of the resource from the second computing device. 
     
     
         11 . The computing device of  claim 1 , the client-side instance of the application further comprising a requester component that transmits a request to perform an asynchronous operation to the second computing device using the API, wherein the request is configured to cause the second computing device to create an operation resource on the second computing device, the operation resource usable to update a resource on the second computing device based upon at least one step of the asynchronous operation, the operation resource further usable to cause the second computing device to update an event resource on the second computing device. 
     
     
         12 . The computing device of  claim 1 , the first computing device being on of a mobile telephone or a tablet computing device. 
     
     
         13 . The computing device of  claim 1 , wherein the real-time asynchronous communication is at least one of a file transfer, an electronic message, an event scheduling request, a presence indication, an update to a contacts list, or an update to a groups list. 
     
     
         14 . The computing device of  claim 1 , wherein real-time synchronous communication comprises at least one of video stream, a video conference, a voice communication, or data pertaining to application sharing. 
     
     
         15 . A method executed by a processor module of a computing device, the method comprising:
 executing a client-side instance of an application that supports real-time synchronous communication and real-time asynchronous communication between the computing device and a second computing device by way of an application programming interface (API) that is compliant with a representational state transfer (REST) architecture; and   asynchronously and/or synchronously transmitting and receiving data in real-time by way of the application.   
     
     
         16 . The method of  claim 15 , wherein asynchronously and/or synchronously transmitting and receiving data in real-time by way of the application comprises:
 transmitting a request to the second computing device by way of the API for a resource, the request comprising a global identifier for the resource; and   receiving a reply to the request from the second computing device, the reply comprising at least one of a representation of the resource, an update to the resource, or metadata for the resource.   
     
     
         17 . The method of  claim 15 , further comprising;
 transmitting a hanging request for an event resource to the server by way of the API, the event resource comprising information pertaining to an update to a resource, the request comprising a global identifier of the event resource; and   receiving a reply to the hanging request from the second computing device by way of the API, the reply comprising metadata that is based upon the information, the metadata comprising an indication of a type of the update and a global identifier for the resource.   
     
     
         18 . The method of  claim 17 , the method further comprising:
 determining a retrieval type for retrieving the update based at least in part upon at least one of a capability of the computing device, the application, a network traffic condition, or an urgency of the update; and   retrieving the update in accordance with the retrieval type, wherein the retrieval type is one of eager retrieval, lazy retrieval, or non-retrieval.   
     
     
         19 . The method of  claim 15 , the computing device being a mobile telephone. 
     
     
         20 . A computer readable data storage device comprising instructions that, when executed by a processor, cause the processor module to perform acts comprising:
 executing a client-side instance of an application that supports real-time synchronous communication and real-time asynchronous communication between the computing device and a server using an application programming interface (API) that complies with a representational state transfer (REST) architecture, wherein executing the client side instance of the application comprises:
 transmitting a request to the server for data pertaining to a resource, the request comprising a global identifier for the resource, wherein the resource comprises data and a global identifier of a second resource; 
 receiving a data packet that is based upon the resource, wherein the data packet is in one of an XML or a JSON format; 
 transmitting a request to the server, the requesting comprising a global identifier for an event resource, the event resource comprising information pertaining to an update for the resource; and 
 receiving the update for the resource responsive to transmitting the request to the server, the update for the resource being identified as a real-time sensitive update.

Join the waitlist — get patent alerts

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

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