Design patterns for Service Oriented Architecture (SOA) suggest solutions for architectural, design and implementation problems, but these changes also affect performance and other non-functional properties. A performance model can be generated from a SOA software model (plus some implementation and deployment advice) and used to study these impacts. The paper proposes to propagate the change in the software model due to applying a given pattern into the corresponding change in the performance model by an incremental transformation. The software model and the patterns are described using UML extended with the profiles SoaML (for service-oriented system design) and MARTE (for performance annotations). The application of a pattern is described by application rules specified by the user. Systematic (but not, at this point, automated) incremental transformations are explored and evaluated for effectiveness on case study examples.
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA) is a modern architectural approach for developing and deploying software functions as a set of reusable composable services. SOA provides many architectural benefits to the design of a distributed system including reusability, adaptability, and maintainability. Quality of SOA-based systems may be improved by applying SOA design patterns, which provide generic solutions for different architectural, design and implementation problems. However, changes due to design patterns may affect performance and other non-functional properties positively or negatively“. In this paper we propose to use performance evaluation to screen candidate pattern applications, after an initial SOA design has been modeled and evaluated for the first time.
In Model Driven Engineering (MDE), model transformations are used to generate the performance model of a system from its software design model extended with performance annotations; the goal is to evaluate the system performance in the early development phases and to help designers in their decisions. This paper proposes an approach for propagating the change due to the application of a design pattern from SModel (the software model) to PModel (the corresponding performance model) by incremental model transformation. The process starts when a designer selects a design pattern to solve a performance or nonperformance problem and decides where to apply it by binding the roles defined in the pattern to specific SModel elements. (Woodside 2008 72 )
Using SModel to PModel mapping information, the affected PModel elements are identified and the change is applied. The benefit is that the construction of the PModel from scratch can be avoided every time a small subset of elements is changed.
The faster incremental change propagation can be integrated more easily in an evaluation and state space exploration process, where many small changes are made and the PModel is solved multiple times. In general, there is an intrinsic interest in incremental model transformations, and we feel that the application of design patterns is an appropriate application of such transformations. A pattern generates a neighbourhood in the PModel space that we wish to characterize. Also, parameterized patterns particularly make it necessary to do some parameter exploration in the PModel space and the traceability back to SModel parameters is better ...