IP Library Granted Patent US 12,301,475
Granted Patent B2
US 12,301,475 · App. 18/372,627 · Granted May 13, 2025

Provisioning network services in a software defined data center

Inventors: Jayant Jain (Cupertino, CA); Raju Koganty (San Jose, CA); Anirban Sengupta (Saratoga, CA)
Assignee: VMWare LLC
H04L47/82G06F9/5072G06F9/5077H04L41/5048H04L41/5051H04L41/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 12,301,475
App. No.
18/372,627
Granted
May 13, 2025
Kind
B2
Abstract

A novel method for dynamic network service allocation that maps generic services into specific configurations of service resources in a network is provided. An application that is assigned to be performed by computing resources in the network is associated with a set of generic services, and the method maps the set of generic services to the service resources based on the assignment of the application to the computing resources. The mapping of generic services is further based on a level of service that is chosen for the application, where the set of generic services are mapped to different sets of network resources according to different levels of services.

Claims (30)

1. A method for deploying a multi-component application, the method comprising:

receiving a request to deploy an application with a plurality of components in the network, the request comprising (i) an application profile that describes the components of the application and (ii) a set of one or more service templates that describe network services associated with the different components of the application;

using the application profile to identify and assign each application component to a computing machine;

using the service templates to identify and assign a set of service resources in the network to implement one or more services that are specified in the set of service templates; and

generating and distributing configuration data to configure the assigned set of computing machines and assigned service resources to implement the application components and the set of network services.

2. The method of claim 1 , wherein using the set of service templates to assign the set of service resources is based on a current workload status of the network.

3. The method of claim 1 , wherein using the set of service templates to assign the set of service resources comprises assigning the set of service resources based at least partly on a proximity in the network of the set of service resources to a computing machine assigned to an application component for which a set of network services are being performed.

4. The method of claim 1 , wherein the set of templates specifies the set of network services to perform but does not refer to any specific service resource in the network.

5. The method of claim 1 , wherein at least one of the assigned service resources is provided by a service module that is part of virtualization software executing on a host computer.

6. The method of claim 1 , wherein at least one of the assigned service resources is a service virtual machine executing on a host computer, and at least one computing machine is another virtual machine executing on the host computer.

7. The method of claim 1 , wherein the assigned service resources comprise an edge service node that operates at a boundary of the network.

8. The method of claim 1 , wherein the set of network services comprises at least one of a load balancing service, a network address translation service, an encryption service, a DHCP service, a VPN service, and a firewall service.

9. The method of claim 1 , wherein using the service templates comprises:

identifying the network services specified in the set of service templates;

associating each application component with a set of service tags, each service tag identifying a network service that is needed for the associated application component.

10. A non-transitory machine readable medium storing a program that when executed by at least one processing unit deploys a multi-component application, the program comprising sets of instructions for:

receiving a request to deploy an application with a plurality of components in the network, the request comprising (i) an application profile that describes the components of the application and (ii) a set of one or more service templates that describe network services associated with the different components of the application;

using the application profile to identify and assign each application component to a computing machine;

using the service templates to identify and assign a set of service resources in the network to implement one or more services that are specified in the set of service templates; and

generating and distributing configuration data to configure the assigned set of computing machines and assigned service resources to implement the application components and the set of network services.

11. The non-transitory machine readable medium of claim 10 , wherein using the set of service templates to assign the set of service resources is based on a current workload status of the network.

12. The non-transitory machine readable medium of claim 10 , wherein the set of instructions for using the set of service templates to assign the set of service resources comprises a set of instructions for assigning the set of service resources based at least partly on a proximity in the network of the set of service resources to a computing machine assigned to an application component for which a set of network services are being performed.

13. The non-transitory machine readable medium of claim 10 , wherein the set of templates specifies the set of network services to perform but does not refer to any specific service resource in the network.

14. The non-transitory machine readable medium of claim 10 , wherein at least one of the assigned service resources is provided by a service module that is part of virtualization software executing on a host computer.

15. The non-transitory machine readable medium of claim 10 , wherein at least one of the assigned service resources is a service virtual machine executing on a host computer, and at least one computing machine is another virtual machine executing on the host computer.

16. The non-transitory machine readable medium of claim 10 , wherein the assigned service resources comprise an edge service node that operates at a boundary of the network.

17. The non-transitory machine readable medium of claim 10 , wherein the set of network services comprises at least one of a load balancing service, a network address translation service, an encryption service, a DHCP service, a VPN service, and a firewall service.

18. The non-transitory machine readable medium of claim 10 , wherein the set of instructions for using the service templates comprises sets of instructions for:

identifying the network services specified in the set of service templates;

associating each application component with a set of service tags, each service tag identifying a network service that is needed for the associated application component.

Assignments (3)
MERGER Recorded Mar 4, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070395/0535 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2025
From: JAIN, JAYANT; KOGANTY, RAJU; SENGUPTA, ANIRBAN
To: NICIRA, INC.
Reel/Frame 070006/0181 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
Continuity (5)
Continuation 17713163 · Apr 4, 2022
Continuation 16786867 · Feb 10, 2020
Continuation 14834979 · Aug 25, 2015
Provisional Application 62142667 · Apr 3, 2015
Related Publication 20240031307A1 · Jan 25, 2024
References Cited (63)
US 7254634B1 · Davis et al. · 2007 [cited by applicant]
US 7401137B1 · Gasser et al. · 2008 [cited by applicant]
US 8752160B1 · Delker et al. · 2014 [cited by applicant]
US 8805971B1 · Roth et al. · 2014 [cited by applicant]
US 8856077B1 · Roth et al. · 2014 [cited by applicant]
US 9858559B2 · Raleigh et al. · 2018 [cited by applicant]
US 9882968B1 · Holgers et al. · 2018 [cited by applicant]
US 10581755B2 · Jain et al. · 2020 [cited by applicant]
US 11297004B2 · Jain et al. · 2022 [cited by applicant]
US 20040098447A1 · Verbeke et al. · 2004 [cited by applicant]
US 20050114862A1 · Bisdikian et al. · 2005 [cited by applicant]
US 20050171746A1 · Thalhammer-Reyero · 2005 [cited by applicant]
US 20060104230A1 · Gidwani · 2006 [cited by applicant]
US 20070008884A1 · Tang · 2007 [cited by applicant]
US 20070171921A1 · Wookey et al. · 2007 [cited by applicant]
US 20080261593A1 · Wong et al. · 2008 [cited by applicant]
US 20090164832A1 · Kanso · 2009 [cited by examiner]
US 20100248643A1 · Aaron et al. · 2010 [cited by applicant]
US 20110225293A1 · Rathod · 2011 [cited by applicant]
US 20120089845A1 · Raleigh · 2012 [cited by applicant]
US 20120185913A1 · Martinez et al. · 2012 [cited by applicant]
US 20130060945A1 · Allam et al. · 2013 [cited by applicant]
US 20130132561A1 · Pasala et al. · 2013 [cited by applicant]
US 20130232480A1 · Winterfeldt et al. · 2013 [cited by applicant]
US 20130262685A1 · Shelton et al. · 2013 [cited by applicant]
US 20130282994A1 · Wires et al. · 2013 [cited by applicant]
US 20130304616A1 · Raleigh et al. · 2013 [cited by applicant]
US 20140059544A1 · Koganty et al. · 2014 [cited by applicant]
US 20140098671A1 · Raleigh et al. · 2014 [cited by applicant]
US 20140123135A1 · Huang et al. · 2014 [cited by applicant]
US 20140129719A1 · Weber et al. · 2014 [cited by applicant]
US 20140280961A1 · Martinez et al. · 2014 [cited by applicant]
US 20140330975A1 · Abuelsaad et al. · 2014 [cited by applicant]
US 20140372533A1 · Fu et al. · 2014 [cited by applicant]
US 20140378105A1 · Suryavanshi · 2014 [cited by applicant]
US 20150067171A1 · Yum et al. · 2015 [cited by applicant]
US 20150089034A1 · Stickle et al. · 2015 [cited by applicant]
US 20150120938A1 · Mordani · 2015 [cited by examiner]
US 20150312116A1 · Taheri et al. · 2015 [cited by applicant]
US 20150381515A1 · Mattson · 2015 [cited by examiner]
US 20160094483A1 · Johnston · 2016 [cited by examiner]
US 20160105489A1 · Llorca · 2016 [cited by examiner]
US 20160149763A1 · Ingram · 2016 [cited by examiner]
US 20160218918A1 · Chu et al. · 2016 [cited by applicant]
US 20160294728A1 · Jain et al. · 2016 [cited by applicant]
US 20170257432A1 · Fu et al. · 2017 [cited by applicant]
US 20200125575A1 · Ghoshal et al. · 2020 [cited by applicant]
US 20200177518A1 · Jain et al. · 2020 [cited by applicant]
US 20200183724A1 · Shevade et al. · 2020 [cited by applicant]
US 20220231967A1 · Jain et al. · 2022 [cited by applicant]
CN 102681899A · 2012 [cited by applicant]
CN 103064744A · 2013 [cited by applicant]
CN 103747059A · 2014 [cited by applicant]
CN 104123189A · 2014 [cited by applicant]
EP 3032412A1 · 2016 [cited by applicant]
EP 3278222A1 · 2018 [cited by applicant]
WO 2014066820A2 · 2014 [cited by applicant]
WO 2016161394A1 · 2016 [cited by applicant]
Hamdaqa et al., “Stratus ML: A Layered Cloud Modeling Framework”, Mar. 1, 2015, IEEE, 2015 IEEE International Conference on Cloud Engineering (2015, pp. 96-105) (Year: 2015). [cited by examiner]
Author Unknown, “What's New with VMware vCloud Director 5.1: Feature Overview,” Technical White Paper, Jul. 2012, 9 pages, VMware, Inc., Palo Alto, CA, USA, retrieved from https://www.vmware.com/content/dam/digitalmarke… [cited by applicant]
Nurmi, Daniel, et al., “The Eucalyptus Open-source Cloud-computing System,” 9th IEEE/ACM International Symposium on Cluster Computing and the Grid, May 2009, 8 pages, ACM, Washington D.C., USA. [cited by applicant]
PCT International Search Report and Written Opinion of Commonly Owned International Patent Application PCT/US2016/025763, mailed Jun. 20, 2016, 12 pages, International Searching Authority (EPO). [cited by applicant]
Powell, Courtney, et al., “Constructing a Robust Services-oriented Inter-cloud Portal Based on an Autonomic Model and FOSS,” 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing, Dec. 9-12, 2013, 6 … [cited by applicant]