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

the business processes – i.e. what the network must achieve in real business terms;
the hardware that resides within the network; and 
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.

See also 
Service-oriented analysis and design
Object-oriented design
Design patterns
SOA governance
Business-driven development
Semantic service-oriented architecture
Enterprise service bus
Finite-state machine
Scheduling (computing)
Representational state transfer
Service component architecture
Comparison of business integration software
Service-oriented infrastructure
Enterprise application integration
Grid computing
Distributed computing

References 

Erl Thomas, Service-Oriented Architecture: Concepts, Technology, and Design (Prentice Hall) 2005, 
Jerome F. DiMarzio, Network Architecture and Design: A Field Guide for IT Consultants (Sams) 2001-5,  
University of California, Methodology for Developing Web Design Patterns (White Paper)

Category:Computer networking