A framework for early design and prototyping of service-oriented applications with design patterns

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. HighlightsThe 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.

[1]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[2]  John Grundy,et al.  Design pattern modelling and instantiation using DPML , 2002 .

[3]  Elvinia Riccobene,et al.  A formal framework for service modeling and prototyping , 2013, Formal Aspects of Computing.

[4]  Patrizia Scandurra,et al.  SCA-PatternBox: an Eclipse-based design pattern editor for Service Component Architectures , 2012 .

[5]  Tommi Mikkonen,et al.  Formalizing design patterns , 1998, Proceedings of the 20th International Conference on Software Engineering.

[6]  Rick Kazman,et al.  Verification of Design Patterns with LePUS3 , 2009, NASA Formal Methods.

[7]  Paolo Arcaini,et al.  AsmetaSMV: A Way to Link High-Level ASM Models to Low-Level NuSMV Specifications , 2010, ASM.

[8]  Paolo Arcaini,et al.  A model‐driven process for engineering a toolset for a formal method , 2011, Softw. Pract. Exp..

[9]  Heiko Koziolek,et al.  PerOpteryx: automated application of tactics in multi-objective software architecture optimization , 2011, QoSA-ISARCS '11.

[10]  Alan Bundy,et al.  Automatic verification of design patterns in Java , 2005, ASE.

[11]  Angelo Gargantini,et al.  A Metamodel-based Language and a Simulation Engine for Abstract State Machines , 2008, J. Univers. Comput. Sci..

[12]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[13]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[14]  David Chek Ling Ngo,et al.  Formal specification of design pattern combination using BPSL , 2003, Inf. Softw. Technol..

[15]  Angelo Gargantini,et al.  A Scenario-Based Validation Language for ASMs , 2008, ABZ.

[16]  Sooyong Park,et al.  Quality-driven architecture development using architectural tactics , 2009, J. Syst. Softw..

[17]  Aldo Gangemi,et al.  Ontology Design Patterns for Semantic Web Content , 2005, SEMWEB.

[18]  Motoshi Saeki,et al.  Behavioral specification of GOF design patterns with LOTOS , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[19]  Thomas Erl,et al.  SOA Design Patterns , 2008 .

[20]  Dae-Kyoo Kim,et al.  Evaluating pattern conformance of UML models: a divide-and-conquer approach and case studies , 2008, Software Quality Journal.

[21]  Sooyong Park,et al.  Tool support for quality-driven development of software architectures , 2010, ASE '10.

[22]  Marc Frappier,et al.  Software Specification Methods: An Overview Using a Case Study , 2000 .

[23]  Raffaela Mirandola,et al.  Adaptation space exploration for service-oriented applications , 2014, Sci. Comput. Program..

[24]  Rajeev R. Raje,et al.  eLeLePUS - a language for specification of software design patterns , 2001, SAC.

[25]  Seok Won Lee,et al.  UML design pattern metamodel‐level constraints for the maintenance of software evolution , 2013, Softw. Pract. Exp..

[26]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[27]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[28]  Mohammad Alshayeb,et al.  Towards design pattern definition language , 2013, Softw. Pract. Exp..

[29]  Patrizia Scandurra,et al.  A Practical and Automated Approach for Engineering Service-Oriented Applications with Design Patterns , 2014, 2014 IEEE 38th International Computer Software and Applications Conference Workshops.

[30]  Elvinia Riccobene,et al.  A Modeling and Executable Language for Designing and Prototyping Service-Oriented Applications , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.