Dynamically Reconfigurable Architectures: An Evaluation of Approaches for Preventing Architectural Violations

Dynamically Reconfigurable Architectures: An Evaluation of Approaches for Preventing Architectural Violations

Marek Rychly
DOI: 10.4018/978-1-4666-6178-3.ch002
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Dynamic aspects of behavior of software systems in dynamically reconfigurable runtime architectures can result in significant architectural violations during runtime. In such cases, a system's architecture evolves during the runtime according to the actual state of the system's environment, and consequently, runtime reconfigurations may eventually lead to incorrect architecture configurations that were not considered during the system's design phases. These architectural violations are known as architectural erosion or architectural drift, and they contribute to an increasing brittleness of the system, or a lack of its coherence and clarity of its form. This chapter describes and compares possible measures to prevent architectural violations in dynamic service and component models. The aim of this chapter is to evaluate the applicability of those measures in combination with advanced features of reconfigurable runtime architectures such as ad hoc reconfiguration, service or component mobility, composition hierarchy preservation, and architectural aspects.
Chapter Preview
Top

Background

According to IEEE (2000), software architecture is defined as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. Another definition by Bass et al. (2003) adds that the architecture describes only externally visible properties of components, i.e., it is an abstraction of a system that suppresses details of components, except for services published by interfaces, relationships to environment of the components, and their externally observable behavior.

Oquendo (2004) distinguished three types of software architectures according to their evolution which depends on changes to their environment: static architecture, dynamic architecture, and mobile architecture. The last one is also known as a fully dynamic architecture.

Architecture of a software system is the static architecture if there are no changes to the system’s structure during runtime. After initialization of the system, there are no new connections between the system’s components and existing connections are not destroyed.

Key Terms in this Chapter

Architectural Violations: Violations of a system’s architecture, usually an architectural drift or architectural erosion.

Architectural Drift: Insensitivity to a system’s architecture that, with increasing evolution, leads to its in-adaptability and a lack of coherence and clarity of form.

Runtime Reconfiguration of Architecture: An ability of a software system to perform reconfiguration of its architecture at runtime, e.g., to create, destroy, and update the services, and to establish and destroy their interconnections dynamically at the runtime, on demand, and according to various aspects to move the services into different contexts and to different providers.

Static (Software) Architecture: A software architecture without ability to be modified during runtime. After initialization of the system, there are no new connections between the system’s components and existing connections cannot be destroyed.

Mobile (Software) Architecture: A dynamic architecture of software with component or service mobility features.

Configuration of Architecture: A particular way in which a system’s components or services and their connectors or bindings are composed and built into the resulting system.

Reconfiguration of Architecture: A modification of the configuration of a system’s architecture.

Architectural Erosion: Violations of a system’s architecture that leads to significant problems in the system and contributes to its increasing brittleness.

Component or Service Mobility: An ability of a software system to move its components or services into different contexts and to different deployment nodes or service providers at the system’s runtime; a specific type of runtime reconfiguration.

Dynamic (Software) Architecture: Software architecture of a software system with rules of evolution of its structure/architecture during runtime. The system’s components and connections can be created and destroyed during runtime according to the rules from design-time.

Complete Chapter List

Search this Book:
Reset