IP Library Granted Patent US 9,483,286
Granted Patent B2
US 9,483,286 · App. 14/038,532 · Granted Nov 1, 2016

Distributed network services

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,483,286
App. No.
14/038,532
Granted
Nov 1, 2016
Kind
B2
Abstract

Providing a distributed network service includes: receiving network traffic at a first physical device; and executing a service engine to participate in the distributed network service. The distributed network service is provided to at least the first target application instance executing in a first VM on the first physical device, and a second target application instance executing in a second VM on a second physical device; and a shared state of the distributed network service is maintained with respect to the first physical device and the second physical device.

Claims (105)

1. A physical server comprising:

one or more communication interfaces configured to receive network traffic; and

one or more processors coupled to the one or more communication interfaces, configured to:

execute a service engine to participate in a distributed network service; and

execute a first target application instance in a first virtual machine (VM);

wherein:

the distributed network service is provided to at least the first target application instance executing in the first VM on the physical server, and to a second target application instance executing in a second VM on a second physical server;

the distributed network service is provided by receiving the network traffic on a plurality of virtual switches executing on respective physical servers, at least one virtual switch directing the network traffic to a service engine in a same physical server as the at least one virtual switch; and

a shared state of the distributed network service is maintained with respect to the physical server and with respect to the second physical server.

2. The physical server of claim 1 , wherein the service engine is a part of a network service layer shared by at least the physical server and the second physical server.

3. The physical server of claim 1 , wherein the distributed network service includes one or more of: a load balancing service, a security service, a content acceleration and transportation service, a network analytics service, or a compression service.

4. The physical server of claim 1 , wherein to execute the service engine to participate in the distributed network service includes to:

receive a request to establish the distributed network service for at least the first target application instance and the second target application instance; and

configure the at least one virtual switch on a hypervisor to intercept traffic that is received by the at least one virtual switch and designated for the first VM.

5. The physical server of claim 4 , wherein the at least one virtual switch is configured to be in-line with respect to the first VM.

6. The physical server of claim 1 , wherein to configure the service engine to provide the distributed network service to the first target application instance further includes to activate the distributed network service.

7. The physical server of claim 1 , wherein the shared state is a part of synchronized global information that is synchronized across the physical server and other physical servers.

8. The physical server of claim 1 , wherein:

network traffic designated for the first target application instance is intercepted by the at least one virtual switch and redirected to the service engine; and

the distributed network service is applied to the network traffic designated for the first target application instance.

9. The physical server of claim 1 , wherein:

the first target application instance is configured to operate in a first tier; and

the one or more processors are further configured to:

execute a third target application instance in a second tier;

perform the distributed network service on the network traffic with respect to target application instances that belong to the first tier; and

perform the distributed network service on the network traffic with respect to target application instances that belong to the second tier.

10. The physical server of claim 1 , wherein:

the distributed network service includes a load balancing service; and

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet.

11. The physical server of claim 1 , wherein:

the distributed network service includes a load balancing service;

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet; and

the selected target application instance is selected based at least in part on topological information.

12. A physical server comprising:

one or more communication interfaces configured to receive network traffic; and

one or more processors coupled to the one or more communication interfaces, configured to:

execute a service engine to participate in a distributed network service; and

execute a first target application instance in a first virtual machine (VM);

wherein:

the distributed network service is provided to at least the first target application instance executing in the first VM on the physical server, and to a second target application instance executing in a second VM on a second physical server;

a shared state of the distributed network service is maintained with respect to the physical server and with respect to the second physical server;

the distributed network service includes a load balancing service;

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet;

the selected target application instance is selected based at least in part on topological information including a topological load L ij =C i *(H ij +1);

L ij corresponds to a load measurement of target application i with respect to load balancing component j;

C i corresponds to number of connections being handled by application i; and

H ij corresponds to number of hops between target application i and the load balancing component j.

13. A method of providing a distributed network service, comprising:

receiving network traffic at a first physical server;

executing a service engine to participate in the distributed network service; and

executing a first target application instance in a first virtual machine (VM);

wherein:

the distributed network service is provided to at least the first target application instance executing in the first VM on the first physical server, and to a second target application instance executing in a second VM on a second physical server;

the distributed network service is provided by receiving the network traffic on a plurality of virtual switches executing on respective physical servers, at least one virtual switch directing the network traffic to a service engine in a same physical server as the at least one virtual switch; and

a shared state of the distributed network service is maintained with respect to the physical server and with respect to the second physical server.

14. The method of claim 13 , further comprising sharing a network service layer with at least the second physical server, wherein the service engine is included in the network service layer.

15. The method of claim 13 , wherein the distributed network service includes one or more of: a load balancing service, a security service, a content acceleration and transportation service, a network analytics service, or a compression service.

16. The method of claim 13 , wherein executing the service engine to participate in the distributed network service includes:

receiving a request to establish the distributed network service for at least the first target application instance and the second target application instance; and

configuring at least one virtual switch on a hypervisor to intercept traffic that is received by the at least one virtual switch and designated for the first VM.

17. The method of claim 16 , wherein the at least one virtual switch is configured to be in-line with respect to the first VM.

18. The method of claim 13 , wherein configuring the service engine to provide the distributed network service to the first target application instance further includes to activate the distributed network service.

19. The method of claim 13 , wherein the shared state is a part of synchronized global information that is synchronized across at least the first physical server and the second physical server.

20. The method of claim 13 , wherein:

network traffic designated for the first target application instance is intercepted by the at least one virtual switch and redirected to the service engine; and

the distributed network service is applied to the network traffic designated for the first target application instance.

21. The method of claim 13 , wherein:

the first target application instance is configured to operate in a first tier; and

the method further comprises:

executing a third target application instance in a second tier;

performing the distributed network service on the network traffic with respect to target application instances that belong to the first tier; and

performing the distributed network service on the network traffic with respect to target application instances that belong to the second tier.

22. The method of claim 13 , wherein:

the distributed network service includes a load balancing service; and

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet.

23. The method of claim 13 , wherein:

the distributed network service includes a load balancing service;

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet; and

the selected target application instance is selected based at least in part on topological information.

24. A method of providing a distributed network service, comprising:

receiving network traffic at a first physical server;

executing a service engine to participate in the distributed network service; and

executing a first target application instance in a first virtual machine (VM);

wherein:

the distributed network service is provided to at least the first target application instance executing in the first VM on the physical server, and to a second target application instance executing in a second VM on a second physical server;

a shared state of the distributed network service is maintained with respect to the physical server and with respect to the second physical server;

the distributed network service includes a load balancing service;

one of a plurality of target application instances executing on a respective plurality of physical servers is selected by the load balancing service as a selected target application instance to process a received packet;

the selected target application instance is selected based at least in part on topological information including a topological load L ij =C i *(H ij +1);

L ij corresponds to a load measurement of target application i with respect to load balancing component j;

C i corresponds to number of connections being handled by application i; and

H ij corresponds to number of hops between target application i and the load balancing component j.

25. A computer program product for providing a distributed network service, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving network traffic at a first physical server;

executing a service engine to participate in the distributed network service;

executing a first target application instance in a first virtual machine (VM);

wherein:

the distributed network service is provided to at least the first target application instance executing in the first VM on the physical server, and to a second target application instance executing in a second VM on a second physical server;

the distributed network service is provided by receiving the network traffic on a plurality of virtual switches executing on respective physical servers, at least one virtual switch directing the network traffic to a service engine in a same physical server as the at least one virtual switch; and

a shared state of the distributed network service is maintained with respect to the physical server and with respect to the second physical server.

26. The physical server of claim 1 , wherein:

the service engine is configured to execute on the physical server;

a second service engine is configured to execute on the second physical server; and

the shared state is distributed to the service engine executing on the physical server and to the second service engine executing on the second physical server.

27. The physical server of claim 1 , wherein the physical server and the second physical server cooperate to provide the distributed network service.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
NUNC PRO TUNC ASSIGNMENT Recorded Oct 24, 2019
From: AVI NETWORKS, INC.
To: VMWARE, INC.
Reel/Frame 050826/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2013
From: BASAVAIAH, MURALI; RAJAGOPALAN, RANGANATHAN
To: AVI NETWORKS
Reel/Frame 031654/0302 →