IP Library › Granted Patent US 10,764,354
Granted Patent B1
US 10,764,354 · App. 16/290,747 · Granted Sep 1, 2020

Transmitting data over a network in representational state transfer (REST) applications

Inventors: Alessio Soldano (Milan, IT); Ronald Sigal (New York, NY); Stephane Epardaud (Paris le Defense, FR)
Assignee: Red Hat, Inc.
H04L67/02H04L67/06H04L67/1097H04L69/08
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,764,354
App. No.
16/290,747
Granted
Sep 1, 2020
Kind
B1
Abstract

Techniques for transmitting data over a network in a representational state transfer (REST) application are provided. A request for data from a client computing device in a representational state transfer (REST) application is received and a wire protocol is selected based on user input from a plurality of wire protocols that will be used to transmit one or more objects to be returned by the request. The selected wire protocol is indicated to the client computing device and the one or more objects are transmitted to the client computing device using the determined wire protocol.

Claims (43)

1. A method comprising:

receiving, by a processing device, a request for data from a client computing device in a representational state transfer (REST) application and selecting a wire protocol from a plurality of wire protocols to transmit one or more objects to be returned by the request, the wire protocol being selected in view of a user input; and

indicating to the client computing device the selected wire protocol and transmitting the one or more objects to the client computing device using the selected wire protocol, wherein the selected wire protocol corresponds to a number of objects to be returned by the request, a type of each object to be returned by the request, and a timing of creation for each object to be returned by the request and wherein each wire protocol in the plurality of wire protocols transmits one or more objects of one or more types over one or more transmissions.

2. The method of claim 1 , wherein the plurality of wire protocols comprises:

a non-streaming protocol to transmit the one or more objects in a single transmission;

a bounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise a bounded number of objects;

an unbounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise an unbounded number of objects; and

a general streaming protocol to transmit the one or more objects oxer multiple transmissions when the one or more objects comprise one or more complex objects.

3. The method of claim 2 , wherein the one or more objects comprise one or more complex objects, and wherein transmitting the one or more objects using the general streaming protocol comprises:

embedding each of the one or more objects into a server sent event (SSE) data packet; and

transmitting each SSE data packet according to an SSE specification, wherein the general streaming protocol comprises one or more modifications to allow transmission of non-text data.

4. The method of claim 3 , wherein the general streaming protocol comprises functionality for modifying SSE specification packet demarcation characters that occur within SSE data packets.

5. The method of claim 2 , wherein the general streaming protocol, the bounded raw streaming protocol, and the unbounded raw streaming protocol each transmit the one or more objects incrementally.

6. The method of claim 1 , wherein indicating the determined wire protocol to the client comprises indicating whether the one or more objects comprise a bounded or unbounded number of objects.

7. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

receive, by the processing device, a request for data from a client computing device in a representational state transfer (REST) application and select a wire protocol from a plurality of wire protocols to transmit one or more objects to be returned by the request, the wire protocol being selected in view of a user input;

indicate to the client computing device the selected wire protocol and transmit the one or more objects to the client computing device using the selected wire protocol, wherein the selected wire protocol corresponds to a number of objects to be returned by the request, a type of each object to be returned by the request, and a timing of creation for each object to be returned by the request and wherein each wire protocol in the plurality of wire protocols transmits one or more objects of one or more types over one or more transmissions.

8. The system of claim 7 , wherein the plurality of wire protocols comprises:

a non-streaming protocol to transmit the one or more objects in a single transmission;

a bounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise a bounded number of objects;

an unbounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise an unbounded number of objects; and

a general streaming protocol to transmit the one or more objects oxer multiple transmissions when the one or more objects comprise one or more complex objects.

9. The system of claim 8 , wherein the one or more objects comprise one or more complex objects, and wherein to transmit the one or more objects using the general streaming protocol, the processing device is further to:

embed each of the one or more objects into a server sent event (SSE) data packet; and

transmit each SSE data packet according to an SSE specification, wherein the general streaming protocol comprises one or more modifications to allow transmission of non-text data.

10. The system of claim 9 , wherein the general streaming protocol comprises functionality for modifying SSE specification packet demarcation characters that occur within SSE data packets.

11. The system of claim 8 , wherein the general streaming protocol, the bounded raw streaming protocol, and the unbounded raw streaming protocol each transmit the one or more objects incrementally.

12. The system of claim 7 , wherein to indicate the determined wire protocol to the client, the processing device is further to indicate whether the one or more objects comprise a bounded or unbounded number of objects.

13. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

receive, by the processing device, a request for data from a client computing device in a representational state transfer (REST) application and select a wire protocol from a plurality of wire protocols to transmit one or more objects to be returned by the request, the wire protocol being selected in view of a user input; and

indicate to the client computing device the selected wire protocol and transmitting the one or more objects to the client computing device using the selected wire protocol, wherein the selected wire protocol corresponds to a number of objects to be returned by the request, a type of each object to be returned by the request, and a timing of creation for each object to be returned by the request and wherein each wire protocol in the plurality of wire protocols transmits one or more objects of one or more types over one or more transmissions.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the plurality of wire protocols comprises:

a non-streaming protocol to transmit the one or more objects in a single transmission;

a bounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise a bounded number of objects;

an unbounded raw streaming protocol to transmit the one or more objects over multiple transmissions when each of the one or more objects comprise a simple object and the one or more objects comprise an unbounded number of objects; and

a general streaming protocol to transmit the one or more objects over multiple transmissions when the one or more objects comprise one or more complex objects.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more objects comprise one or more complex objects, and wherein to transmit the one or more objects using the general streaming protocol, the processing device is further to:

embed each of the one or more objects into a server sent event (SSE) data packet; and

transmit each SSE data packet according to an SSE specification, wherein the general streaming protocol comprises one or more modifications to allow transmission of non-text data.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the general streaming protocol comprises functionality for modifying SSE specification packet demarcation characters that occur within SSE data packets.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the general streaming protocol, the bounded raw streaming protocol, and the unbounded raw streaming protocol each transmit the one or more objects incrementally.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: SOLDANO, ALESSIO; SIGAL, RONALD; EPARDAUD, STEPHANE
To: RED HAT, INC.
Reel/Frame 053220/0729 →