A method for managing a network (10, 12, 16), comprising: generating a network view for providing a view of a current state of the network (10, 12, 16), the current state of the network showing a network topology and a plurality of network constituents, the network constituents including network entities and network elements residing in or on the network; detecting events corresponding to changes in the state of the network (10, 12, 16); and updating the view of the network (10, 12, 16) based on the detected events; characterised by: providing a programmatic interface for allowing one or more management applications to access the view of the state of the network (10, 12, 16)in order to monitor and to modify the state of the network elements, wherein the state of the network elements includes flow entries associated with forwarding behaviors of the network elements, wherein a flow entry of the network element defines a set of operations to perform on an associated data flow, and the data flow comprises a set of packets having a common characteristic based on which the network elements determine whether a packet belongs to the associated data flow; configuring one or more of the network elements based on the network view, wherein configuring the state of the network elements changes a particular forwarding behavior associated with a particular set of flow entries. generating a network view for providing a view of a current state of the network (10, 12, 16), the current state of the network showing a network topology and a plurality of network constituents, the network constituents including network entities and network elements residing in or on the network; detecting events corresponding to changes in the state of the network (10, 12, 16); and updating the view of the network (10, 12, 16) based on the detected events; characterised by: providing a programmatic interface for allowing one or more management applications to access the view of the state of the network (10, 12, 16)in order to monitor and to modify the state of the network elements, wherein the state of the network elements includes flow entries associated with forwarding behaviors of the network elements, wherein a flow entry of the network element defines a set of operations to perform on an associated data flow, and the data flow comprises a set of packets having a common characteristic based on which the network elements determine whether a packet belongs to the associated data flow; configuring one or more of the network elements based on the network view, wherein configuring the state of the network elements changes a particular forwarding behavior associated with a particular set of flow entries. providing a programmatic interface for allowing one or more management applications to access the view of the state of the network (10, 12, 16)in order to monitor and to modify the state of the network elements, wherein the state of the network elements includes flow entries associated with forwarding behaviors of the network elements, wherein a flow entry of the network element defines a set of operations to perform on an associated data flow, and the data flow comprises a set of packets having a common characteristic based on which the network elements determine whether a packet belongs to the associated data flow; configuring one or more of the network elements based on the network view, wherein configuring the state of the network elements changes a particular forwarding behavior associated with a particular set of flow entries.