A method for controlling the topology of a network, comprising: obtaining a desired topology of a network, comprising network section descriptions for each of the network functional areas; determining a current topology of the network including discovering the network topology and its capabilities; comparing said desired topology to the current topology of said network to determine whether said desired topology and said current topology of said network are different; in response to determining that the desired topology and the current topology are different: determining if the current topology is capable of supporting the desired topology, wherein the method further comprises actively acquiring additional resources, for the current topology, to implement the desired topology if it is determined that the current topology is not capable of supporting the desired topology; after discovering the network topology and capabilities, determining which type of centralized and distributed control planes meet the specifications of the desired topology and modifying discovered deployed central and distributed control planes as appropriate to carry out the control plane implementations, wherein the control plane implementation for each network section includes policies that account for different control plane implementation types and interconnection methods to other sections of the network; and controlling said current topology with role assignments and parameter assignments to current network components in said current topology to implement said desired topology and said desired control plane implementations with said current network components, wherein a role assignment include the jobs that a network component is to perform to implement the desired topology, wherein the parameters include lower level implementations for executing the role assignments. obtaining a desired topology of a network, comprising network section descriptions for each of the network functional areas; determining a current topology of the network including discovering the network topology and its capabilities; comparing said desired topology to the current topology of said network to determine whether said desired topology and said current topology of said network are different; in response to determining that the desired topology and the current topology are different: determining if the current topology is capable of supporting the desired topology, wherein the method further comprises actively acquiring additional resources, for the current topology, to implement the desired topology if it is determined that the current topology is not capable of supporting the desired topology; after discovering the network topology and capabilities, determining which type of centralized and distributed control planes meet the specifications of the desired topology and modifying discovered deployed central and distributed control planes as appropriate to carry out the control plane implementations, wherein the control plane implementation for each network section includes policies that account for different control plane implementation types and interconnection methods to other sections of the network; and controlling said current topology with role assignments and parameter assignments to current network components in said current topology to implement said desired topology and said desired control plane implementations with said current network components, wherein a role assignment include the jobs that a network component is to perform to implement the desired topology, wherein the parameters include lower level implementations for executing the role assignments. determining if the current topology is capable of supporting the desired topology, wherein the method further comprises actively acquiring additional resources, for the current topology, to implement the desired topology if it is determined that the current topology is not capable of supporting the desired topology; after discovering the network topology and capabilities, determining which type of centralized and distributed control planes meet the specifications of the desired topology and modifying discovered deployed central and distributed control planes as appropriate to carry out the control plane implementations, wherein the control plane implementation for each network section includes policies that account for different control plane implementation types and interconnection methods to other sections of the network; and controlling said current topology with role assignments and parameter assignments to current network components in said current topology to implement said desired topology and said desired control plane implementations with said current network components, wherein a role assignment include the jobs that a network component is to perform to implement the desired topology, wherein the parameters include lower level implementations for executing the role assignments.