A framework for early design and prototyping of service-oriented applications with design patterns. (November 2016) - Capelli, Steven; Scandurra, Patrizia
Abstract: Service-oriented computing is playing an important role in several domains. Today the biggest shift in mainstream design and programming is toward service-oriented applications. However, the service paradigm raises a bundle of problems that did not exist in traditional component-based development where abstraction, encapsulation, and modularity were the only main concerns. Due to their distributed, dynamic, and heterogeneous nature, service-oriented software applications require us to discover, document, and share new design patterns at the service- and architecture-level. Moreover, service-oriented applications are hard to design and validate, and demand for new foundational theories, modeling notations and analysis techniques. In line to such a vision, this article presents a framework, called SCA-PatternBox, to design and prototype service-oriented applications with design patterns. The framework relies on the OASIS standard Service Component Architecture (SCA) and on SCA component implementation types, such as SCA-Java, for supporting an "implementation-oriented" approach to service-oriented architecture modeling and to the definition and instantiation of design patterns. Moreover, in order to provide formally verified design patterns, SCA-PatternBox allows the formal specification and analysis of the functional behavioral aspects of a design pattern using a formal service specification language called SCA-ASM (Service Component Architecture-Abstract State Machine). As major evaluation of the framework, two case studies and lessons learned are presented. A final comparison of existing design pattern languages is also reported. Abstract : Highlights: The framework SCA-PatternBox for prototyping service applications is presented. The framework allows template-based definition and use of service design patterns. The framework relies on the OASIS standard SCA for service modeling/implementation. The framework allows formal specification and analysis of design patterns in SCA-ASM. The framework provides off-the-shelf formally verified SOA design patterns. The framework is compared with existing design pattern languages.