title: Adaptive architecture
text: # Adaptive architecture
  
  Within reconfigurable computing, an Adaptive architecture is a system which changes its structure, behaviour or resources according to demand. The adaptation made is usually [always?] to non-functional characteristics rather than functional ones.
  
  Something of a misnomer, because the thing that adapts is the working system, rather than the (more abstract) architecture which defines the adaptability that is required of that system.
  
  Adaptive software architecture: Used by programmers in relation to a program. An adaptive algorithm "is an algorithm which changes its behavior based on the resources available. For example… in the C++ Standard Library, the stable partition [program] acquires as much memory as it can get (up to what it would need at most) and applies the algorithm using that available memory."
  
  Adaptive infrastructure architecture: Used by infrastructure engineers in relation to the configuration of processors. The computing resources used by applications (the partition size, or the number of servers in a cluster, or the share of a processor, or the number of processes) are configured so that they shrink or grow with demand.
  
  Adaptive business architecture: Could also be used (for example) in connection with a workflow system that assigns human resources to a task or service to match the demand for that task or service. Or an organisation structure that flexes in response to business changes.
  
  