The athletic heart syndrome in web service evolution. Issue 10 (27th December 2021) - Zarras, Apostolos V.; Dinos, Ioannis; Vassiliadis, Panos
Abstract: Despite the particular standards, technologies, and trends (W3C, RESTful, microservices, etc.) that a team decides to follow for the development of a service‐oriented system, most likely the team members will have to use one or more services that solve general‐purpose problems like cloud computing, networking and content delivery, storage and database, management and governance, and application integration. Typically, general‐purpose services are long‐lived, they have several responsibilities, their interfaces are complex, and they grow over time. The way that these services evolve also affects the evolution of any system that will depend on them. Consequently, the selection of the particular services that will be used is a main concern for the team. In this paper, we report a pattern, called the athletic heart syndrome, which facilitates the selection of services that evolve properly. Patterns specify best practices that emerge from multiple real‐world cases. In our context, the athletic heart syndrome comes out from a study that concerns the evolution of a set of popular, long‐lived Amazon services that cover different domains. According to the athletic heart syndrome, the developers should select services whose heartbeat of changes looks like the heartbeat of an athlete when he is at rest. Specifically, the heartbeat of changes should consist mostly of calm periods, interrupted by few spikes of change. Similarly, the incremental growth of the services should involve mainly calm periods of maintenance, separated by spikes of growth. Selecting services that adhere to the pattern signifies high chances that the services evolve to deal with changing requirements. The pattern further guarantees that the service evolution involves both the expansion of the services with new functionalities and the maintenance of existing ones. The pattern also assures that the complexity increase in the service interfaces will be smooth and tolerable. Finally, conformance with the pattern implies that the growth of the services will be predictable. Abstract : A developer wants to select a service to be used for the implementation of a system. He wants to select a service the evolves properly. The developer should select a service with heartbeat of changes (respectively incremental growth) consisting mostly of calm periods, interrupted by spikes of change (respectively growth). Adherence to these criteria guarantees that (1) the service evolution involves both growth and maintenance activities, (2) the interface complexity increase is smooth, and (3) the service growth is predictable.