1. 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; 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.