A method for providing virtual network services, comprising: instantiating a virtual network object in an operating system supporting software-programmed networking, wherein the virtual network object represents a virtual network service provided to a user of the operating system, and wherein the virtual network service specifies virtual nodes and virtual links in a virtual network based on a physical network, wherein instantiating the virtual network object comprises: receiving, at the operating system, an instantiation command from the user to instantiate the virtual network object, wherein the instantiation command includes parameters specifying attributes of the virtual network object; responsive to the instantiation command, performing verification of the virtual network object; and when the verification of the virtual network object is successful, generating a service proposition for the virtual network object, including valid service patterns for the virtual network object; enabling the user to communicate with the virtual network object using an application programming interface supported by the operating system; and enabling the operating system to send control commands to the physical network to control physical network resources, wherein the virtual network object includes an identifier, properties, and internal methods for functionality encapsulated by the virtual network object. instantiating a virtual network object in an operating system supporting software-programmed networking, wherein the virtual network object represents a virtual network service provided to a user of the operating system, and wherein the virtual network service specifies virtual nodes and virtual links in a virtual network based on a physical network, wherein instantiating the virtual network object comprises: receiving, at the operating system, an instantiation command from the user to instantiate the virtual network object, wherein the instantiation command includes parameters specifying attributes of the virtual network object; responsive to the instantiation command, performing verification of the virtual network object; and when the verification of the virtual network object is successful, generating a service proposition for the virtual network object, including valid service patterns for the virtual network object; receiving, at the operating system, an instantiation command from the user to instantiate the virtual network object, wherein the instantiation command includes parameters specifying attributes of the virtual network object; responsive to the instantiation command, performing verification of the virtual network object; and when the verification of the virtual network object is successful, generating a service proposition for the virtual network object, including valid service patterns for the virtual network object; enabling the user to communicate with the virtual network object using an application programming interface supported by the operating system; and enabling the operating system to send control commands to the physical network to control physical network resources, wherein the virtual network object includes an identifier, properties, and internal methods for functionality encapsulated by the virtual network object.