1. A method performed by a first client-side device agent, instantiated on a hardware device that is configured to connect to a data-handling network via associated device circuitry, the method comprising: receiving, from a first server-side device, configuration data in the form of non-executable data; configuring the first client-side device agent based on the non-executable data such that the first client-side device agent has a first configuration specifying a first application from a plurality of applications on the hardware device; monitoring, substantially in real-time, a flow of packets between i) the plurality of applications on the hardware device and ii) at least one second server-side device; selecting packets based on their association with the first application; modifying or appending packet header information for the selected packets; and transmitting modified or appended packets, said modified or appended packets being configured such that they are routed based on the modified or appended packet header information; wherein the first client-side device agent is discrete from the plurality of applications on the hardware device.