IP Library › Granted Patent US 9,544,202
Granted Patent B2
US 9,544,202 · App. 14/014,004 · Granted Jan 10, 2017

Dynamic assignment and enforcement of application-driven per-connection service level agreements

Inventors: Bhargava K. Yenduri (Santa Clara, CA); Nicolas G. Droux (Rio Rancho, NM)
Assignee: Oracle International Corporation
H04L41/5051H04L63/00H04L41/5077
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,544,202
App. No.
14/014,004
Granted
Jan 10, 2017
Kind
B2
Abstract

A method for handling connection requests. The method includes receiving, by an operating system (OS), a request from an application to create a connection, wherein the request comprises a connection identifier and a service-level agreement (SLA), determining that the application is authorized to create the connection, creating the connection targeting the application in response to the determination that the application is authorized to create the connection, and applying the SLA to the connection in response to the determination that the application is authorized to create the connection. The method further includes receiving incoming data targeting the connection identifier from a network, processing, by a network protocol stack on the OS, the incoming data according to the SLA to obtain processed incoming data, and providing the processed incoming data to the application. Similar processing may be done on outgoing data from the application to the network.

Claims (117)

1. A method for handling connection requests comprising:

receiving, by an operating system (OS), a first request from an application to create a first connection,

wherein the first request comprises a first connection identifier and a first service-level agreement (SLA) comprising a value for each of a plurality of SLA parameters, and

wherein the first SLA is set by the application via the OS;

determining, by the OS, that the application is authorized to create the first connection,

wherein determining that the application is authorized to create the first connection comprises:

retrieving an entry for the application from an application permissions table, the entry mapping an application identifier of the application to an OS task that sets the first SLA for the first connection, the entry comprising a restriction on the value for a first SLA parameter of the plurality of SLA parameters;

comparing the value for the first SLA parameter with the restriction to determine that the application is authorized;

setting the value for the first SLA parameter in a first SLA data structure corresponding to the first SLA based on the value satisfying the restriction;

creating, by the OS, the first connection targeting the application in response to the determination that the application is authorized to create the first connection;

mapping, in response to the determination that the application is authorized to create the first connection, the first connection to the first SLA in the first SLA data structure;

receiving first incoming data targeting the first connection identifier from a network;

processing, by a network protocol stack on the OS, the first incoming data according to the first SLA in the first SLA data structure to obtain first processed incoming data; and

providing, by the OS, the first processed incoming data to the application.

2. The method of claim 1 , further comprising:

receiving outgoing data for the first connection identifier from the application;

processing, by the network protocol stack, the outgoing data according to the first SLA to obtain processed outgoing data; and

sending the processed outgoing data to a destination address on the network.

3. The method of claim 1 , further comprising:

receiving, by the OS, a second request from the application to create a second connection, wherein the second request comprises a second connection identifier and a second SLA;

determining, by the OS, that the application is authorized to create the second connection;

creating, by the OS, the second connection targeting the application in response to the determination that the application is authorized to create the second connection;

mapping the second connection to the second SLA in response to the determination that the application is authorized to create the second connection;

receiving second incoming data targeting the second connection identifier from the network;

processing, by the network protocol stack, the second incoming data according to the second SLA to obtain second processed incoming data; and

providing, by the OS, the second processed incoming data to the application.

4. The method of claim 3 ,

wherein the first SLA comprises a first priority,

wherein the second SLA comprise a second priority,

wherein processing the first incoming data according to the first SLA to obtain first processed incoming data comprises processing the first data according to the first priority, and

wherein processing the second incoming data according to the second SLA to obtain second processed incoming data comprises processing the second incoming data according to the second priority.

5. The method of claim 1 , further comprising:

receiving, by the OS, a second request from the application comprising the first connection identifier and a second SLA, wherein the second request is sent by the application in response to a determination that the first processed incoming data is received at a rate exceeding a desired maximum bandwidth;

mapping the first connection to the second SLA in response to the determination that the application is authorized to set the second SLA for the first connection;

receiving second incoming data targeting the first connection identifier from the network;

processing, by the network protocol stack, the second incoming data according to the second SLA to obtain second processed incoming data; and

providing, by the OS, the second processed incoming data to the application.

6. A non-transitory computer readable medium comprising instructions that, when executed by a computer processor, perform a method for handling connection requests, the method comprising:

receiving, by an operating system (OS), a first request from an application to create a first connection,

wherein the first request comprises a first connection identifier and a first service-level agreement (SLA) comprising a value for each of a plurality of SLA parameters, and

wherein the first SLA is set by the application via the OS;

determining, by the OS, that the application is authorized to create the first connection,

wherein determining that the application is authorized to create the first connection comprises:

retrieving an entry for the application from an application permissions table, the entry mapping an application identifier of the application to an OS task that sets the first SLA for the first connection, the entry comprising a restriction on the value for a first SLA parameter of the plurality of SLA parameters;

comparing the value for the first SLA parameter with the restriction to determine that the application is authorized;

setting the value for the first SLA parameter in a first SLA data structure corresponding to the first SLA based on the value satisfying the restriction:

creating, by the OS, the first connection targeting the application in response to the determination that the application is authorized to create the first connection;

mapping, in response to the determination that the application is authorized to create the first connection, the first connection to the first SLA in the first SLA data structure;

receiving first incoming data targeting the first connection identifier from a network;

processing, by a network protocol stack on the OS, the first incoming data according to the first SLA in the first SLA data structure to obtain first processed incoming data; and

providing, by the OS, the first processed incoming data to the application.

7. The non-transitory computer readable medium of claim 6 , the method further comprising:

receiving outgoing data for the first connection identifier from the application;

processing, by the network protocol stack, the outgoing data according to the first SLA to obtain processed outgoing data; and

sending the processed outgoing data to a destination address on the network.

8. The non-transitory computer readable medium of claim 6 , the method further comprising:

receiving, by the OS, a second request from the application to create a second connection, wherein the second request comprises a second connection identifier and a second SLA;

determining, by the OS, that the application is authorized to create the second connection;

creating, by the OS, the second connection targeting the application in response to the determination that the application is authorized to create the second connection;

mapping the second connection to the second SLA in response to the determination that the application is authorized to create the second connection;

receiving second incoming data targeting the second connection identifier from the network;

processing, by the network protocol stack, the second incoming data according to the second SLA to obtain second processed incoming data; and

providing, by the OS, the second processed incoming data to the application.

9. The non-transitory computer readable medium of claim 8 ,

wherein the first SLA comprises a first priority,

wherein the second SLA comprise a second priority,

wherein processing the first incoming data according to the first SLA to obtain first processed incoming data comprises processing the first incoming data according to the first priority, and

wherein processing the second incoming data according to the second SLA to obtain second processed incoming data comprises processing the second incoming data according to the second priority.

10. The non-transitory computer readable medium of claim 6 , the method further comprising:

receiving, by the OS, a second request from the application comprising the first connection identifier and a second SLA, wherein the second request is sent by the application in response to a determination that the first processed incoming data is received at a rate exceeding a desired maximum bandwidth;

mapping the first connection to the second SLA in response to the determination that the application is authorized to set the second SLA for the first connection;

receiving second incoming data targeting the first connection identifier from the network;

processing, by the network protocol stack, the second incoming data according to the second SLA to obtain second processed incoming data; and

providing, by the OS, the second processed incoming data to the application.

11. A system for handling connection requests comprising:

a computer processor;

an operating system (OS), executing on the computer processor, configured to:

receive a first request from an application to create a first connection,

wherein the first request comprises a first connection identifier and a first service-level agreement (SLA) comprising a value for each of a plurality of SLA parameters, and

wherein the first SLA is set by the application via the OS;

determine that the application is authorized to create the first connection,

wherein determining that the application is authorized to create the first connection comprises:

retrieving an entry for the application from an application permissions table, the entry mapping an application identifier of the application to an OS task that sets the first SLA for the first connection, the entry comprising a restriction on the value for a first SLA parameter of the plurality of SLA parameters;

comparing the value for the first SLA parameter with the restriction to determine that the application is authorized;

setting the value for the first SLA parameter in a first SLA data structure corresponding to the first SLA based on the value satisfying the restriction;

create the first connection targeting the application in response to the determination that the application is authorized to create the first connection; and

map, in response to the determination that the application is authorized to create the first connection, the first connection to the first SLA in the first SLA data structure; and

a network protocol stack configured to:

receive first incoming data targeting the first connection identifier from a network;

process the first incoming data according to the first SLA in the first SLA data structure to obtain first processed incoming data; and

provide the first processed incoming data to the application.

12. The system of claim 11 ,

wherein the network protocol stack is further configured to:

receive outgoing data for the first connection identifier from the application;

process the outgoing data according to the first SLA to obtain processed outgoing data; and

send the processed outgoing data to a destination address on the network.

13. The system of claim 11 ,

wherein the OS is further configured to:

receive a second request from the application to create a second connection, wherein the second request comprises a second connection identifier and a second SLA;

determine that the application is authorized to create the second connection;

create the second connection targeting the application in response to the determination that the application is authorized to create the second connection; and

map the second connection to the second SLA in response to the determination that the application is authorized to create the second connection, and

wherein the network protocol stack is further configured to:

receive second incoming data targeting the second connection identifier from the network;

process the second incoming data according to the second SLA to obtain second processed incoming data; and

provide the second processed incoming data to the application.

14. The system of claim 11 ,

wherein the OS is further configured to:

receive a second request from the application comprising the first connection identifier and a second SLA, wherein the second request is sent by the application in response to a determination that the first processed incoming data is received at a rate exceeding a desired maximum bandwidth;

map the first connection to the second SLA in response to the determination that the application is authorized to set the second SLA for the first connection, and

wherein the network protocol stack is further configured to:

receive second incoming data targeting the first connection identifier from the network;

process the second incoming data according to the second SLA to obtain second processed incoming data; and

provide the second processed incoming data to the application.

15. The system of claim 11 ,

wherein the system further comprises a network interface, and

wherein the network protocol stack is executing on the network interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2013
From: YENDURI, BHARGAVA K.; DROUX, NICOLAS G.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 031117/0200 →
Continuity (1)
Related Publication 20150063372A1 · Mar 5, 2015