y simplifies and reduces the process through a programmable definition of the service, thereby reducing the num- ber of documents created for interpretation. Basically, the business needs are captured in require- ments documents and the design organization uses a programming language to define the network service and/or network templates. These templates are compiled by the controller, which then can be validated through a field emulated test environment immediately. Iteration on this method can use the agile development process to get to service ready much more quickly. The designers have to pivot their skills from document writing to service programming based on business requirements. NETWORK CONTROLLER ARCHITECTURE This section describes the platform, environment, and the constructs for building an SDN network controller. This is based on adapting the information or data model-driven approach to network service and resource configuration management, drastically increasing the flexibility for service or feature creation and the agility in network development. Modeling of network services, network feature implementation designs, and network element device semantics allows code generation for feature delivery rather than custom coding of any new feature or function. In addition, design principles originally applied to programmable service logic for call processing networks (Network Control Points [NCPs]) are applied to make the determination of the flow logic to be specified in a script or template that can be flexibly changed without coding. The combination of programmable service or network flow logic and a model-driven approach to parameter specification should result in feature development times measured in minutes or hours instead of weeks or months. There are seven major components of this controller: Software-Defined Networking 1. Compiler function, compiles models to create service logic in configuring the network resources 2. Service control interpreter function, interprets customer or API requests for i