1. In a communications network having a plurality of nodes, a method of routing data through said network, said method comprising: programming a programmable traffic manager using at least one application level directive; and routing said data through said network using said programmable traffic manager, wherein said data is routed in accordance with said application level directive, and wherein said programmable traffic manager causes said data to be routed to one of said nodes, said programmable traffic manager programmed dynamically by at least a target application, wherein said target application dynamically programs said traffic manager to route said target application destined data traffic toward a second node, responsive to said target application determining that one or more of its quality of service criteria is not being met on a first node, a transformer transforming one or more routing strategies into a form executable by said programmable traffic manager.