Software Adaptation in an Open Environment
eBook - ePub

Software Adaptation in an Open Environment

A Software Architecture Perspective

Yu Zhou, Taolue Chen

Compartir libro
  1. 218 páginas
  2. English
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Software Adaptation in an Open Environment

A Software Architecture Perspective

Yu Zhou, Taolue Chen

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

The book is about a very active research field in software engineering. In modern society, the fact of the world's high reliance on software requires the system's robustness, i.e., continual availability and satisfactory service quality. This requirement gives rise to the popularity of the research on the self-adaptive software in open environment. There are some academic conferences dedicated to this field. But there is a lack of monographs about the topic. We believe such need is unmet in marketplace. By publishing the book, it can help bridge the gap and bring benefits to readers thereof.

Key Features:

  • The topic is well-motivated, interesting and actively studied worldwide

  • The research represents as the state-of-the-art in the field

  • The technical part of the book is rigidly evaluated

  • The theoretical part of the book is sound and proved

  • The organization and presentation of the book will be double-checked by professional scholars

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Software Adaptation in an Open Environment un PDF/ePUB en línea?
Sí, puedes acceder a Software Adaptation in an Open Environment de Yu Zhou, Taolue Chen en formato PDF o ePUB, así como a otros libros populares de Informatik y Informationstechnologie. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Año
2017
ISBN
9781351723039
Edición
1
Categoría
Informatik

III FORMAL MODELING AND ANALYSIS

Chapter 7

Adaptation Rules Conflict Detection

CONTENTS

7.1 Introduction
7.2 Reconfiguration Modeling and Analysis
7.2.1 Critical pair and dependency
7.2.2 Architectural reconfiguration analysis
7.3 Case Study
7.4 Discussion
7.5 Related Work
7.6 Summary

7.1 Introduction

Architecture-based runtime adaptation has been proposed as an effective way to ensure the continuous availability of component-based software systems in an uncertain environment [136, 137]. Generally, such systems have embedded sensors to probe the context information and can propagate the changes to the rule management modules and direct the corresponding dynamic architectural reconfigurations accordingly.
In decentralized and distributed settings, interesting context changes might be reported from place to place, thus, it is highly possible that multiple architectural reconfiguration rules are applicable at the same time. These rules usually address different aspects of concerns, either functional or non-functional, and are not necessarily independent of each other. So, applying one rule may disable another one. Therefore, in this case, how to detect the potential conflicts between the reconfigurations becomes an important issue for efficient adaptation management.
To formalize the problem, given a set of reconfigurations: Sr = {r1,r2,...,rn}, we need to find the tuple sets:
{(ri,rj) | ri,rjSr ^ (DEP(ri,rj) = TRUECONFLICTS(ri,rj) = TRUE)}.
For example, in a component-based software system, the trust management module reports a fraud behavior of a third-party component and the adaptation rule indicates its removal from the system. Meanwhile, a performance monitor reports a low-performance event of another component and the adaptation rule implies an addition of a new back-up component. If the new component relies on the functions of the third-party component stated above, a conflict would happen between these two reconfigurations. Manually assigning each rule with an application-specific priority as commonly adopted leads to an ad-hoc solution which only partly addresses the problem, as the developer may still be unaware of the potential conflicts or the dependency relations between the involved reconfiguration possibilities. Besides, this mechanism lacks formal treatment of such problems.
Graph notations have been widely applied to software architecture modeling [18, 28, 115] due to their unique characteristics. Firstly, graph representation has the advantage of an intuitive visual correspondence to the common practice of box-line notation of software architecture; secondly, the widely recognized importance of the connector as a first-class entity can be well captured by the notion of edge attributes; thirdly, by production, the graph rewriting techniques can be employed to describe the evolution and to check some interesting properties, such as confluence, conflicts, etc. formally.
In this chapter, we will focus on the third point listed above and inspect the applicability of in the domain of dynamic software architectural reconfigurations. We leverage the theories from the critical pair analysis, inspect the relations between the reconfiguration rules such as dependence and confluence, and present a formal approach to analyze the potential conflicts of multiple reconfigurations. The rest of the chapter is organized as follows. Section 7.2 introduces some basic notions relevant to the formalism of conflict analysis and then outlines our approach. To illustrate its application and feasibility, a case study is presented with tool support in Section 7.3, followed by some discussions on the lessons learned and the limitations of our approach in Section 7.4. Section 7.5 reviews some related work. Section 7.6 summarizes this chapter.

7.2 Reconfiguration Modeling and Analysis

For architecture-based self-adaptation rules, basically, they have a spectrum of two layers as in [110], i.e., goal management layer and change management layer. The first handles the context changes which are usually reflected in the condition part of the rule. It is on the application level. The second deals with the reconfiguration actions which are on the architecture level. For example, a load-balancing rule specifies that when the workload of a component reaches a certain threshold, a backup component will be added dynamically to the system. As the condition part depends on the concrete requirements, it varies across applications. In contrast to this, the architectural reconfigurations are manipulated at the level of constituent components and connectors, which can be specified as the graph transformation rule [184]. With such considerations, we will focus on the architecture level rule modeling. It fits in the change actions management layer in [110]. To detect reconfiguration dependency and conflicts of dynamic software architecture, their independent relations need to be modeled and analyzed. In this section, we will first introduce some basic concepts, and then present our approach.

7.2.1 Critical pair and dependency

Critical pair analysis originated from term rewriting and later was generalized to graph transformation to check whether the transformation system is confluent [143]. Given a graph G, a production p : L ⇒ R and a match m : L ⇒ G, the transformation from G to H is specified as t:Gp,mH. A critical pair is a pair of transformations (p1, p2) in which t1:Gp1,m1H1 and t2:Gp2,m2H2 have potential conflicts with the minimal G = m1(L1) ∪ [m2(L2) to ensure that the critical pair sets for two rules are finite. Intuitively, for two rules both ap...

Índice