Agile computing is an innovative metaphor for distributed computing systems, which prescribes a new approach to their design and implementation. This chapter describes the overall agile computing metaphor as well as one concrete realization through a middleware infrastructure. Agile computing may be defined as the opportunistic discovery, manipulation, and exploitation of available computing and communication resources in order to improve capability, performance, efficiency, fault-tolerance, and survivability. The term agile is used to highlight the desire to both quickly react to changes in the environment as well as to take advantage of transient resources only available for short periods of time. Agile computing thrives in the presence of highly dynamic environments and resources, where nodes are constantly being added, removed, and moved, resulting in intermittent availability of resources and changes in network reachability, bandwidth, and latency. From a high-level perspective, the goal of agile computing is to facilitate resource sharing among distributed computing systems. At this broad level of description, agile computing overlaps with several other areas of research including distributed processing, peer-to-peer resource sharing, grid computing, and cluster computing. The following factors differentiate agile computing from the other areas of research. Transient Resources: The resources in a tactical environment are expected to be highly transient. Indeed, one of the performance metrics for agile computing is defined as a function of the minimum length of time that a resource must be available in order to be utilized productively. The expectation is to support environments where resources are available on the order of seconds or minutes, as opposed to hours, days, or longer. Therefore, agile computing differs from grid computing and cluster computing, which targets environments where resources are more stable. Limited Communications: The networks used to interconnect resources in tactical environments are expected to be wireless and adhoc. The implication for agile computing is that the middleware must be able to support and operate in low-bandwidth, high and variable latency, and unreliable networks. Again, this differentiates agile computing from grid computing and cluster computing, where the network links tend to be high-performance and reliable. Opportunistic Resource Exploitation: Another goal of agile computing is to take advantage of unexpected resources that happen to be available. In particular, the goal is to exploit new resources dynamically joining the network environment as well as existing resources that have unexpected spare capacity for transient periods of time. While some peer-to-peer systems provide limited forms of the same capabilities, agile computing extends this capability to proactively manipulate the available resources in order to satisfy the application requirements. Manipulation can include physically moving resources (for example, robots or other autonomous vehicles) in order to provide communications or processing capabilities where required. These additional resources may be uncommitted resources assigned for use by the middleware or other resources which can be manipulated without interfering with their original task assignments. This aspect also differentiates agile computing from grid computing and cluster computing.
Agile Computing and its Applications to Tactical Military Environments
TORTONESI, Mauro;
2009
Abstract
Agile computing is an innovative metaphor for distributed computing systems, which prescribes a new approach to their design and implementation. This chapter describes the overall agile computing metaphor as well as one concrete realization through a middleware infrastructure. Agile computing may be defined as the opportunistic discovery, manipulation, and exploitation of available computing and communication resources in order to improve capability, performance, efficiency, fault-tolerance, and survivability. The term agile is used to highlight the desire to both quickly react to changes in the environment as well as to take advantage of transient resources only available for short periods of time. Agile computing thrives in the presence of highly dynamic environments and resources, where nodes are constantly being added, removed, and moved, resulting in intermittent availability of resources and changes in network reachability, bandwidth, and latency. From a high-level perspective, the goal of agile computing is to facilitate resource sharing among distributed computing systems. At this broad level of description, agile computing overlaps with several other areas of research including distributed processing, peer-to-peer resource sharing, grid computing, and cluster computing. The following factors differentiate agile computing from the other areas of research. Transient Resources: The resources in a tactical environment are expected to be highly transient. Indeed, one of the performance metrics for agile computing is defined as a function of the minimum length of time that a resource must be available in order to be utilized productively. The expectation is to support environments where resources are available on the order of seconds or minutes, as opposed to hours, days, or longer. Therefore, agile computing differs from grid computing and cluster computing, which targets environments where resources are more stable. Limited Communications: The networks used to interconnect resources in tactical environments are expected to be wireless and adhoc. The implication for agile computing is that the middleware must be able to support and operate in low-bandwidth, high and variable latency, and unreliable networks. Again, this differentiates agile computing from grid computing and cluster computing, where the network links tend to be high-performance and reliable. Opportunistic Resource Exploitation: Another goal of agile computing is to take advantage of unexpected resources that happen to be available. In particular, the goal is to exploit new resources dynamically joining the network environment as well as existing resources that have unexpected spare capacity for transient periods of time. While some peer-to-peer systems provide limited forms of the same capabilities, agile computing extends this capability to proactively manipulate the available resources in order to satisfy the application requirements. Manipulation can include physically moving resources (for example, robots or other autonomous vehicles) in order to provide communications or processing capabilities where required. These additional resources may be uncommitted resources assigned for use by the middleware or other resources which can be manipulated without interfering with their original task assignments. This aspect also differentiates agile computing from grid computing and cluster computing.I documenti in SFERA sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.