Network agility

Network Agility is an architectural discipline for computer networking. It can be defined as:


 * The ability of network software and hardware to automatically control and configure itself and other network assets across any number of devices on a network.

With regards to network hardware, network agility is used when referring to automatic hardware configuration and reconfiguration of network devices e.g. routers, switches, SNMP devices.

Network agility, as a software discipline, borrows from many fields, both technical and commercial.

On the technical side, network agility solutions leverage techniques from areas such as:


 * Service-oriented architecture (SOA)
 * Object-oriented design
 * Architectural patterns
 * Loosely coupled data streaming (e.g.: web services)
 * Iterative design
 * Artificial intelligence
 * Inductive scheduling
 * On-demand computing
 * Utility computing

Commercially, network agility is about solving real-world business problems using existing technology. It forms a three-way bridge between business processes, hardware resources, and software assets. In more detail, it takes, as input: 1


 * 1) the business processes – i.e. what the network must achieve in real business terms;
 * 2) the hardware that resides within the network; and
 * 3) the set of software assets that run on this hardware.

Much of this input can be obtained through automatic discovery – finding the hardware, its types and locations, software, licenses etc. The business processes can be inferred to a certain degree, but it is these processes that business managers need to be able to control and organize.

Software resources discovered on the network can take a variety of forms – some assets may be licensed software products, others as blocks of software service code that can be accessed via some service enterprise portal, such as (but not necessarily) web services. These services may reside in-house, or they may be 'on-demand' via an on-line subscription service. Indeed, the primary motivation of network agility is to make the most efficient use of the resources available, wherever they may reside, and to identify areas where business process goals are not being satisfied to some benchmark level (and ideally to offer possible solutions).

Network agility tools are then in a position to optimize the existing hardware to run software assets as needed to achieve the business process goals. As network usage is never linear, the hardware/software mix requirements will change dynamically over various time segments (weekly, quarterly, annually etc.), and step changes will be required from time to time when business-process goals change/evolve/are updated (e.g. during/after a company re-organization).

The benefits to business of the network agility approach are obvious – cost savings in software licensing and higher efficiency of hardware assets – leading to better productivity.