In the engineering of software architectures, transient data need to be managed efficiently. As opposed to long-term data, persisting temporary, and usually unstable, information in a database will result in an overhead of transactions and disk usage. In this case, using in-memory storage is considered the best practice. Concretely, transient data are maintained by stateful components that live concurrently in a layer commonly known as the Business Logic layer. As a request arrives from the interface, business logic components start a response process during which they dynamically develop dependencies with each other also depending on their current internal state. The resulting configuration allows the implementation of advanced mechanisms also introducing the possibility to make the application behavior dependent on past events. Dealing with this complexity manually is an error-prone practice, and middleware technologies are usually exploited to manage component dependencies and life cycles. However, relying on third-party frameworks comes with a cost: developers often use them without knowing all the underlying details and this may introduce unexpected behavior in the application. The problem is further emphasized by the tight relationship that the error propagation phenomenon establishes with the sequence of actions that the user may perform on the interface. At coding time, developers have to consider possible combinations of action that could be performed at runtime to predict how the business logic will evolve. Instead, in case of service failure, they may have to deal with a complex fault removal process due to the intertwined propagation scenario caused by the long sessions of usage. This dissertation studies how business logic components evolve at runtime and what are the consequences of this. As a first step, it is identified the common technical mechanisms involved in software architectures. Then, the error propagation phenomenon is contextualized in the business logic scenario where components react to requests arriving over time. On top of this, three approaches that face the identified problem with different strategies are presented. In order to identify development faults, it is proposed a model-based testing technique that identifies significative sequences of requests as test cases. To improve the robustness against faults activation and error propagation, this dissertation studies the effectiveness of life cycle management mechanisms as a software micro-rejuvenation strategy and the impact of different life cycle design policies is investigated. As a final step, an instrumentation tool able to observe the business logic evolution is presented, opening the way to strategies of runtime verification.

Taming Runtime Dependencies across Transient Stateful Components in the Business Logic of Software Architectures / Leonardo Scommegna. - (2023).

Taming Runtime Dependencies across Transient Stateful Components in the Business Logic of Software Architectures

Leonardo Scommegna
2023

Abstract

In the engineering of software architectures, transient data need to be managed efficiently. As opposed to long-term data, persisting temporary, and usually unstable, information in a database will result in an overhead of transactions and disk usage. In this case, using in-memory storage is considered the best practice. Concretely, transient data are maintained by stateful components that live concurrently in a layer commonly known as the Business Logic layer. As a request arrives from the interface, business logic components start a response process during which they dynamically develop dependencies with each other also depending on their current internal state. The resulting configuration allows the implementation of advanced mechanisms also introducing the possibility to make the application behavior dependent on past events. Dealing with this complexity manually is an error-prone practice, and middleware technologies are usually exploited to manage component dependencies and life cycles. However, relying on third-party frameworks comes with a cost: developers often use them without knowing all the underlying details and this may introduce unexpected behavior in the application. The problem is further emphasized by the tight relationship that the error propagation phenomenon establishes with the sequence of actions that the user may perform on the interface. At coding time, developers have to consider possible combinations of action that could be performed at runtime to predict how the business logic will evolve. Instead, in case of service failure, they may have to deal with a complex fault removal process due to the intertwined propagation scenario caused by the long sessions of usage. This dissertation studies how business logic components evolve at runtime and what are the consequences of this. As a first step, it is identified the common technical mechanisms involved in software architectures. Then, the error propagation phenomenon is contextualized in the business logic scenario where components react to requests arriving over time. On top of this, three approaches that face the identified problem with different strategies are presented. In order to identify development faults, it is proposed a model-based testing technique that identifies significative sequences of requests as test cases. To improve the robustness against faults activation and error propagation, this dissertation studies the effectiveness of life cycle management mechanisms as a software micro-rejuvenation strategy and the impact of different life cycle design policies is investigated. As a final step, an instrumentation tool able to observe the business logic evolution is presented, opening the way to strategies of runtime verification.
2023
Enrico Vicario
ITALIA
Leonardo Scommegna
File in questo prodotto:
File Dimensione Formato  
phd_dissertation_scommegna.pdf

Open Access dal 18/03/2024

Tipologia: Tesi di dottorato
Licenza: Open Access
Dimensione 2.05 MB
Formato Adobe PDF
2.05 MB Adobe PDF

I documenti in FLORE sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificatore per citare o creare un link a questa risorsa: https://hdl.handle.net/2158/1302923
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact