A formal framework for service modeling and prototyping

Service-oriented Computing is rapidly gaining importance across several application domains due to its capability of composing autonomous and loosely-coupled services. In order to support the engineering of service-oriented software applications, foundational theories, service modeling notations, evaluation techniques fully integrated in a pragmatic software engineering approach are required. This article introduces a framework for modeling and prototyping service-oriented applications. The framework consists of a precise and executable language, SCA-ASM, for model-based design, and of a tool for early and quick design evaluation of service assemblies. The language combines the OASIS/OSOA standard Service Component Architecture (SCA) capability of modeling and assembling heterogeneous service-oriented components in a technology agnostic way, with the rigor of the Abstract State Machine (ASM) formal method able to model notions of service behavior, interactions, orchestration, compensation and context-awareness in an abstract but executable way. The tool is based on existing execution environments for ASM models and SCA applications. An SCA-ASM model of a service-oriented component, possibly not yet implemented in code or available as off-the-shelf, can be (i) simulated and evaluated offline, i.e. in isolation from the other components; or (ii) executed as abstract implementation (or prototype) together with the other components implementations according to the chosen SCA assembly. As proof of concept, a case study taken from EU research projects has been considered to show the functionalities and potentialities of the proposed framework.

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

[2]  M. Beek,et al.  Formal Methods for Service Composition , 2007 .

[3]  Abz,et al.  Abstract State Machines, B and Z, First International Conference, ABZ 2008, London, UK, September 16-18, 2008. Proceedings , 2008, ABZ.

[4]  W.M.P. van der Aalst,et al.  Analyzing BPEL processes using Petri nets , 2005 .

[5]  Wil M. P. van der Aalst,et al.  Service Interaction: Patterns, Formalization, and Analysis , 2009, SFM.

[6]  Paolo Arcaini,et al.  Combining Model-Based Testing and Runtime Monitoring for Program Testing in the Presence of Nondeterminism , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation Workshops.

[7]  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.

[8]  Kees M. van Hee,et al.  An SOA-based architecture framework , 2006, Int. J. Bus. Process. Integr. Manag..

[9]  Gwen Salaün,et al.  Describing and reasoning on Web services using process algebra , 2004, Proceedings. IEEE International Conference on Web Services, 2004..

[10]  Azamat Shakhimardanov,et al.  Component-Based Robotic Engineering (Part II) , 2010, IEEE Robotics & Automation Magazine.

[11]  Chris Rose,et al.  A Break in the Clouds: Towards a Cloud Definition , 2011 .

[12]  Francesco Tiezzi,et al.  Specification and Analysis of SOC Systems Using COWS: A Finance Case Study , 2009, Electron. Notes Theor. Comput. Sci..

[13]  Ivan Lanese,et al.  Disciplining Orchestration and Conversation in Service-Oriented Computing , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[14]  Christoph Bussler,et al.  Business Process Management Workshops, BPM 2005 International Workshops, BPI, BPD, ENEI, BPRM, WSCOBPM, BPS, Nancy, France, September 5, 2005, Revised Selected Papers , 2006, Business Process Management Workshops.

[15]  Luca Padovani,et al.  Formal Methods for Web Services , 2009, Lecture Notes in Computer Science.

[16]  Roberto Bruni Calculi for Service-Oriented Computing , 2009, SFM.

[17]  Carlo Ghezzi,et al.  A formal approach to adaptive software: continuous assurance of non-functional requirements , 2011, Formal Aspects of Computing.

[18]  Norbert Bieberstein,et al.  Executing SOA: A Practical Guide for the Service-Oriented Architect , 2008 .

[19]  Zhenbang Chen,et al.  A Rigorous Model of Service Component Architecture , 2008, Electron. Notes Theor. Comput. Sci..

[20]  Gustavo Alonso,et al.  Web Services: Concepts, Architectures and Applications , 2009 .

[21]  Karsten Wolf,et al.  Transforming BPEL to Petri Nets , 2005, Business Process Management.

[22]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

[23]  Antonio Bucchiarone,et al.  Web Service Composition Approaches: From Industrial Standards to Formal Methods , 2007, Second International Conference on Internet and Web Applications and Services (ICIW'07).

[24]  Laura Bocchi,et al.  An abstract model of service discovery and binding , 2010, Formal Aspects of Computing.

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

[26]  Nikolai Tillmann,et al.  Partial updates , 2005, Theor. Comput. Sci..

[27]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[28]  Bernhard Thalheim,et al.  On Defining the Behavior of OR-joins in Business Process Models , 2009, J. Univers. Comput. Sci..

[29]  Guido Governatori,et al.  Compliance aware business process design , 2008 .

[30]  Elvinia Riccobene,et al.  Specifying Formal executable Behavioral Models for Structural Models of Service-oriented Components , 2010, ACT4SOC.

[31]  Laura Bocchi,et al.  The Sensoria Reference Modelling Language , 2011, Results of the SENSORIA Project.

[32]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[33]  Roberto Gorrieri,et al.  : A Calculus for Service Oriented Computing , 2006, ICSOC.

[34]  Francesco Tiezzi,et al.  A Calculus for Orchestration of Web Services , 2007, ESOP.

[35]  Egon Börger Modeling Workflow Patterns from First Principles , 2007, ER.

[36]  Simon Moser,et al.  Diagnosing SCA Components Using Wombat , 2006, Business Process Management.

[37]  Elvinia Riccobene,et al.  An ASM-based executable formal model of service-oriented component interactions and orchestration , 2010, BM-FA '10.

[38]  José Luiz Fiadeiro,et al.  A Model-Checking Approach for Service Component Architectures , 2009, FMOODS/FORTE.

[39]  Wolfgang Reisig,et al.  ASM-based Semantics for BPEL: The Negative Control Flow , 2005, Abstract State Machines.

[40]  Yamine Ait-Ameur,et al.  Stepwise Development of Formal Models for Web Services Compositions: Modelling and Property Verification. , 2012, DEXA 2012.

[41]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[42]  Gwen Salaün,et al.  Describing and reasoning on Web services using process algebra , 2004 .

[43]  E. Riccobene,et al.  Automatic Review of Abstract State Machines by Meta Property Verification , 2010, NASA Formal Methods.

[44]  Luca Padovani,et al.  Formal Methods for Web Services: 9th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM 2009, Bertinoro, Italy, June 1-6, 2009, Advanced Lectures , 2009 .

[45]  Bernhard Thalheim,et al.  Modeling Workflows, Interaction Patterns, Web Services and Business Processes: The ASM-Based Approach , 2008, ABZ.

[46]  Elvinia Riccobene,et al.  An Eclipse-based SCA design framework to support coordinated execution of services , 2011 .

[47]  Paolo Arcaini,et al.  CoMA: Conformance Monitoring of Java Programs by Abstract State Machines , 2011, RV.

[48]  Roberto Bruni,et al.  Sessions and Pipelines for Structured Service Programming , 2008, FMOODS.

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

[50]  Raymond Feng,et al.  Tuscany SCA in Action , 2011 .

[51]  Soumaya Louhichi,et al.  MDE approach for the generation and verification of SCA model , 2011, iiWAS '11.

[52]  Elvinia Riccobene,et al.  Reliability Prediction for Service Component Architectures with the SCA-ASM Component Model , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[53]  J. Christian Attiogbé,et al.  Composing Components with Shared Services in the KmeliaModel , 2008, SC@ETAPS.

[54]  Angelo Gargantini,et al.  Using Spin to Generate Testsfrom ASM Specifications , 2003, Abstract State Machines.

[55]  Jing Liu,et al.  A Rigorous Model of Contract-Based Service Component Architecture , 2008, 2008 International Conference on Computer Science and Software Engineering.

[56]  J. Christian Attiogbé,et al.  Checking Component Composability , 2006, SC@ETAPS.

[57]  Elvinia Riccobene,et al.  Coordinated Execution of Heterogeneous Service-Oriented Components by Abstract State Machines , 2011, FACS.

[58]  Egon Börger,et al.  A Compositional Framework for Service Interaction Patterns and Interaction Flows , 2005, ICFEM.

[59]  Yamine Aït Ameur,et al.  Stepwise Development of Formal Models for Web Services Compositions: Modelling and Property Verification , 2013, Trans. Large Scale Data Knowl. Centered Syst..

[60]  Jens Lemcke,et al.  ASMs in Service Oriented Architectures , 2008, J. Univers. Comput. Sci..

[61]  Margus Veanes,et al.  Abstract communication model for distributed systems , 2004, IEEE Transactions on Software Engineering.

[62]  Patrizia Scandurra,et al.  A Robotics Coordination Case Study , 2011, ICRA 2011.

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

[64]  Angelo Gargantini,et al.  ASM-Based Testing: Coverage Criteria and Automatic Test Sequence , 2001, J. Univers. Comput. Sci..

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

[66]  Nora Koch,et al.  A Model-Driven Approach to Service Orchestration , 2008, 2008 IEEE International Conference on Services Computing.