# US 9,436,443 B2 · Software defined network controller

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,443 B2
- Document ID: US9436443B2
- Status: Granted
- Kind: B2
- Application number: 14/471,534
- Filed: 2014-08-28
- Published: 2016-03-03
- Granted: 2016-09-06
- Earliest claimed: 2014-08-28
- Assignees: AT&T Intellectual Property I, L.P.
- Applicants: AT&T Intellectual Property I, L.P.
- Inventors: Margaret Chiosi; Brian Dean Freeman; Han Q. Nguyen
- Web page: https://patentgrep.com/patent/US9436443B2

## CPC

- G06F 8/35: model driven
- G06F 8/41: Compilation
- G06F 8/60: Software deployment
- H04L 41/0843: {based on generic templates}
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5048: {Automatic or semi-automatic definitions, e.g. definition templates}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Concepts and technologies are disclosed herein for providing and using a software defined network controller. A software defined network controller can be provided by a computing system that includes a processor. A service model that represents a service can be obtained. A network model that represents network resources that support the service can be obtained. Resources that support the service can be determined. Templates can be accessed to identify templates that relate to the resources. The templates identified can be assembled to obtain a template-based representation of the service. The template-based representation can be executed to determine if the service is ready for deployment.

## Claims

### Claim 1

A method comprising:
compiling, at a computer system comprising a processor, a service model that represents a service;
compiling, at the processor, a network model that represents network resources that support the service;
determining, by the processor, resources that support the service;
accessing, by the processor, templates to identify templates that relate to the resources;
assembling, by the processor, the templates identified to obtain a template-based representation of the service;
executing, by the processor, the template-based representation to determine if the service is ready for deployment;
determining, by the processor, that the service is ready for deployment;
determining, by the processor, that the resources are ready to support the service;
issuing, by the processor, a first command to allocate the resources; and
issuing, by the processor, a second command to load a function to the resources.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving an event at a service logic control, the event being received from an autonomous algorithm running at a network resource autonomous control, wherein the autonomous algorithm runs against data in a data collection analysis engine.

### Claim 3 (depends on 1)

The method of claim 1, wherein the service model comprises a file in a modelling language.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining, by the processor, a process flow that supports the service; and
accessing, by the processor, the templates to identify further templates that relate to the process flow.

### Claim 5 (depends on 1)

The method of claim 1, wherein the resources comprise physical network functions and virtual network functions.

### Claim 6 (depends on 1)

The method of claim 1, wherein the templates comprise a network template and a service template.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
activating the service; and
monitoring the service.

### Claim 8 (depends on 1)

The method of claim 1, wherein obtaining the service model and the network model comprises:
obtaining a service request;
identifying, via analysis of the service request, a service feature to be included in the service requested; and
executing directed graph logic to implement the service model and the network model.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
selecting a directed graph based on a service model indicated in an application programming interface; and
operating the directed graph on the network model to
gather data items,
select and allocate the resources, and
pass a data set to an adaptor to change a network state.

### Claim 10

A system comprising:
a processor; and
a memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising
compiling a service model that represents a service,
compiling a network model that represents network resources that support the service,
accessing templates to identify templates that relate to the resources,
assembling the templates identified to obtain a template-based representation of the service,
executing the template-based representation to determine if the service is ready for deployment,
determining that the service is ready for deployment,
determining that the resources are ready to support the service,
issuing a first command to allocate the resources, and
issuing a second command to load a function to the resources.

### Claim 11 (depends on 10)

The system of claim 10, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
activating the service; and
monitoring the service.

### Claim 12 (depends on 10)

The system of claim 10, wherein the service comprises a service selected from a group of services consisting of an access service and a network service.

### Claim 13 (depends on 10)

The system of claim 10, wherein obtaining the service model and the network model comprises:
obtaining a service request;
identifying, via analysis of the service request, a service feature to be included in the service requested; and
executing directed graph logic to implement the service model and the network model.

### Claim 14 (depends on 10)

The system of claim 10, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
selecting a directed graph based on a service model indicated in an application programming interface; and
operating the directed graph on the network model to
gather data items,
select the resources, and
pass a data set to an adaptor to change a network state.

### Claim 15 (depends on 10)

The system of claim 10, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
determining a process flow that supports the service; and
accessing the templates to identify further templates that relate to the process flow.

### Claim 16

A computer storage medium having computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:
compiling a service model that represents a service;
compiling a network model that represents network resources that support the service;
accessing templates to identify templates that relate to the resources;
assembling the templates identified to obtain a template-based representation of the service;
executing the template-based representation to determine if the service is ready for deployment;
determining that the service is ready for deployment;
determining that the resources are ready to support the service;
issuing a first command to allocate the resources; and
issuing a second command to load a function to the resources.

### Claim 17 (depends on 16)

The computer storage medium of claim 16, wherein obtaining the service model and the network model comprises:
obtaining a service request;
identifying, via analysis of the service request, a service feature to be included in the service requested; and
executing directed graph logic to implement the service model and the network model.

### Claim 18 (depends on 16)

The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
selecting a directed graph based on a service model indicated in an application programming interface; and
operating the directed graph on the network model to
gather data items,
select the resources, and
pass a data set to an adaptor to change a network state.

### Claim 19 (depends on 16)

The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
activating the service; and
monitoring the service.

### Claim 20 (depends on 16)

The computer storage medium of claim 16, wherein the computer-executable instructions, when executed by the processor, cause the processor to perform operations further comprising:
determining a process flow that supports the service; and
accessing the templates to identify further templates that relate to the process flow.
