Design and validation of stateful composite RESTful web services

A web service is a software system that provides a machine-processable interface to the other machines over the network using different Internet protocols. They are being increasingly used in the industry in order to automate different tasks and offer services to a wider audience. The REST architectural style aims at producing scalable and extensible web services using technologies that play well with the existing tools and infrastructure of the web. It provides a uniform set of operation that can be used to invoke a CRUD interface (create, retrieve, update and delete) of a web service. The stateless behavior of the service interface requires that every request to a resource is independent of the previous ones facilitating scalability. Automated systems, e.g., hotel reservation systems, provide advanced scenarios for stateful services that require a certain sequence of requests that must be followed in order to fulfill the service goals. Designing and developing such services for advanced scenarios with REST constraints require rigorous approaches that are capable of creating web services that can be trusted for their behavior. Systems that can be trusted for their behavior can be termed as dependable systems. This thesis presents an integrated design, analysis and validation approach that facilitates the service developer to create dependable and stateful REST web services. The main contribution of this thesis is that we provide a novel model-driven methodology to design behavioral REST web service interfaces and their compositions. The behavioral interfaces provide information on what methods can be invoked on a service and the preand post-conditions of these methods. The methodology uses Unified Modeling Language (UML), as the modeling language, which has a wide user base and has mature tools that are continuously evolving. We have used UML class diagram and UML state machine diagram with additional design constraints to provide resource and behavioral models, respectively, for designing REST web service interfaces. These service design models serve as a specification document and the information presented in them have manifold applications. The service design models also contain information about the time and domain requirements of the service that can help in requirement traceability which is an important part of our approach. Requirement traceability helps in capturing faults in the design models and other elements of software development environment by tracing back and forth the unfulfilled requirements of the service. The information about service actors is also included in the design models which

[1]  Bertrand Meyer,et al.  Reconciling Manual and Automated Testing: The AutoTest Experience , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[2]  Savas Parastatidis,et al.  REST in Practice - Hypermedia and Systems Architecture , 2010 .

[3]  Yoonsik Cheon Automated Random Testing to Detect Specification-Code Inconsistencies , 2007, SETP.

[4]  Tony Andrews Business Process Execution Language for Web Services Version 1.1 , 2003 .

[5]  Raymond A. Paul,et al.  A robust testing framework for verifying Web services by completeness and consistency analysis , 2005, IEEE International Workshop on Service-Oriented System Engineering (SOSE'05).

[6]  Reiko Heckel,et al.  International Journal of Web Services Research , Vol . 2 , No . 2 , 2005 1 Model-based development of Web service descriptions enabling a precise matching concept , 2005 .

[7]  Ying Li,et al.  Verifying Consistency of Web Services Behavior Using Type Theory , 2008, 2008 IEEE Asia-Pacific Services Computing Conference.

[8]  Mario Bravetti,et al.  A Theory for Strong Service Compliance , 2007, COORDINATION.

[9]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[10]  Pawel T. Wojciechowski,et al.  Batched Transactions for RESTful Web Services , 2011, ICWE Workshops.

[11]  Tarja Systä,et al.  Scenario-Driven Approach for Business Process Modeling , 2009, 2009 IEEE International Conference on Web Services.

[12]  Silvana Aciar,et al.  An UML profile for modeling RESTful services , 2012 .

[13]  Tang Zhi-Song,et al.  A Temporal Logic-Based Software Architecture Description Language XYZ/ADL , 2003 .

[14]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[15]  Erik Wilde,et al.  Hypermedia-Driven RESTful Service Composition , 2010, ICSOC Workshops.

[16]  Javier Tuya,et al.  Generating Test Cases Specifications for BPEL Compositions of Web Services Using SPIN , 2006 .

[17]  Bertrand Meyer,et al.  Contract driven development = test driven development - writing test cases , 2007, ESEC-FSE '07.

[18]  Ana R. Cavalli,et al.  Automatic Timed Test Case Generation for Web Services Composition , 2008, 2008 Sixth European Conference on Web Services.

[19]  Anthony Nadalin,et al.  Web Services Coordination (WS- Coordination) , 2004 .

[20]  Huaikou Miao,et al.  Verifying Service-Oriented Requirements Using Model Checking , 2008, 2008 IEEE International Conference on e-Business Engineering.

[21]  Ilinca Ciupa,et al.  Automatic Testing Based on Design by Contract TM , 2005 .

[22]  Ian Horrocks,et al.  From SHIQ and RDF to OWL: the making of a Web Ontology Language , 2003, J. Web Semant..

[23]  Cesare Pautasso,et al.  BPEL for REST , 2008, BPM.

[24]  Mario Bravetti,et al.  Contract based multi-party service composition , 2007, FSEN'07.

[25]  Ivan Zuzak,et al.  A Finite-State Machine Approach for Modeling and Analyzing RESTful Systems , 2011, J. Web Eng..

[26]  Mei Rong,et al.  Model Checking for Asynchronous Web Service Composition Based on XYZ/ADL , 2011, WISM.

[27]  Jiro Tanaka,et al.  Mapping UML statecharts to java code , 2004, IASTED Conf. on Software Engineering.

[28]  M. Harman,et al.  Testing Web Services : A Survey , 2011 .

[29]  Boris Motik,et al.  OWL 2 Web Ontology Language: structural specification and functional-style syntax , 2008 .

[30]  Wolfgang Emmerich,et al.  Static consistency checking for distributed specifications , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[31]  Xia Zhao,et al.  A Two-Stage RESTful Web Service Composition Method Based on Linear Logic , 2011, 2011 IEEE Ninth European Conference on Web Services.

[32]  Jerry R. Hobbs,et al.  DAML-S: Semantic Markup for Web Services , 2001, SWWS.

[33]  Janne Kuuskeri,et al.  On Actors and the REST , 2010, ICWE.

[34]  Stephen A. White,et al.  BPMN modeling and reference guide : understanding and using BPMN : develop rigorous yet understandable graphical representations of business processes , 2008 .

[35]  Gary T. Leavens,et al.  The JML and JUnit Way of Unit Testing and its Implementation , 2004 .

[36]  Diego Calvanese,et al.  OCL-Lite: A Decidable (Yet Expressive) Fragment of OCL , 2012, Description Logics.

[37]  Boris Motik,et al.  HermiT: A Highly-Efficient OWL Reasoner , 2008, OWLED.

[38]  Nikola Milanovic,et al.  Contract based Web service composition , 2006 .

[39]  Sotiris Moschoyiannis,et al.  RETRO: A Consistent and Recoverable RESTful Transaction Model , 2009, 2009 IEEE International Conference on Web Services.

[40]  Sotiris Moschoyiannis,et al.  RESTful Transactions Supported by the Isolation Theorems , 2009, ICWE.

[41]  Ian Horrocks,et al.  FaCT++ Description Logic Reasoner: System Description , 2006, IJCAR.

[42]  Keijo Heljanko,et al.  Interface specification methods for software components , 2009 .

[43]  Cesare Pautasso,et al.  RESTful Web service composition with BPEL for REST , 2009, Data Knowl. Eng..

[44]  Adrian Holovaty,et al.  The Definitive Guide to Django , 2008 .

[45]  Naseem Ibrahim,et al.  Beyond Functional Verification of Web Services Compositions , 2013 .

[46]  Joseph A. Goguen,et al.  An Object-Oriented Tool for Tracing Requirements , 1996, IEEE Softw..

[47]  Frederico Araújo Durão,et al.  RESTful, Resource-Oriented Architectures: A Model-Driven Approach , 2010, WISE Workshops.

[48]  William B. Frakes,et al.  Software reuse: metrics and models , 1996, CSUR.

[49]  Valentín Valero,et al.  Model Checking Techniques applied to the design of Web Services , 2007, CLEI Electron. J..

[50]  Roberto Chinnici,et al.  Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language , 2007 .

[51]  D. E. Slot,et al.  Research methods. , 2016, Journal of the American Dental Association.

[52]  Nawal Guermouche,et al.  Timed Model Checking Based Approach for Web Services Analysis , 2009, 2009 IEEE International Conference on Web Services.

[53]  Mario Bravetti,et al.  A Foundational Theory of Contracts for Multi-party Service Composition , 2008, Fundam. Informaticae.

[54]  Cesare Pautasso,et al.  Control-Flow Patterns for Decentralized RESTful Service Composition , 2013, TWEB.

[55]  Salvatore T. March,et al.  Design and natural science research on information technology , 1995, Decis. Support Syst..

[56]  Hong Sun,et al.  Investigating the use of analysis contracts to support fault isolation in object oriented code , 2002, ISSTA '02.

[57]  Reiko Heckel,et al.  Towards Consistency of Web Service Architectures , 2003 .

[58]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[59]  B. Demuth,et al.  Model and Object Verification by Using Dresden OCL , 2009 .

[60]  Quan Z. Sheng,et al.  SELF-SERV: A Platform for Rapid Composition of Web Services in a Peer-to-Peer Environment , 2002, VLDB.

[61]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[62]  Florian Rosenberg,et al.  Composing RESTful Services and Collaborative Workflows: A Lightweight Approach , 2008, IEEE Internet Computing.

[63]  Roy T. Fielding,et al.  Uniform Resource Identifier (URI): Generic Syntax , 2005, RFC.

[64]  Prashant Doshi,et al.  Towards Automated RESTful Web Service Composition , 2009, 2009 IEEE International Conference on Web Services.

[65]  Bernhard Rumpe,et al.  Developing the UML as a Formal Modelling Notation , 2014, ArXiv.

[66]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[67]  Silvia Schreier,et al.  RESTify: from RPCs to RESTful HTTP design , 2012, WS-REST.

[68]  Silvia Schreier Modeling RESTful applications , 2011, WS-REST '11.

[69]  Miguel Garcia,et al.  OCL Compiler for EMF , 2007 .

[70]  Erik Wilde,et al.  Linking Data from RESTful Services , 2010 .

[71]  Lionel C. Briand,et al.  Concurrent Contracts for Java in JML , 2008, 2008 19th International Symposium on Software Reliability Engineering (ISSRE).

[72]  Zafar I. Malik,et al.  UML Based Modeling of Web Service Composition - A Survey , 2008, 2008 Sixth International Conference on Software Engineering Research, Management and Applications.

[73]  Xiang Fu,et al.  Synchronizability of conversations among Web services , 2005, IEEE Transactions on Software Engineering.

[74]  Johan Lilius,et al.  Towards Efficient Code Synthesis from Statecharts , 2001, pUML.

[75]  Raymond A. Paul,et al.  Developing and assuring trustworthy Web services , 2005, Proceedings Autonomous Decentralized Systems, 2005. ISADS 2005..

[76]  Xiaoying Bai,et al.  Contract-Based Testing for Web Services , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[77]  Suhaimi Ibrahim,et al.  Testing Web Services Composition: A Mapping Study , 2011 .

[78]  Cesare Pautasso,et al.  Composing RESTful Services with JOpera , 2009, SC@TOOLS.

[79]  Kim G. Larsen,et al.  Testing Real-Time Systems Using UPPAAL , 2008, Formal Methods and Testing.

[80]  E. Benowitz,et al.  Auto-coding UML statecharts for flight software , 2006, 2nd IEEE International Conference on Space Mission Challenges for Information Technology (SMC-IT'06).

[81]  Hongming Cai,et al.  Role-Centric RESTful Services Description and Composition for E-Business Applications , 2009, 2009 IEEE International Conference on e-Business Engineering.

[82]  Raymond A. Paul,et al.  Automated model checking and testing for composite Web services , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[83]  Jana Koehler,et al.  Web Service Composition - Current Solutions and Open Problems , 2003 .

[84]  Johannes Koskinen,et al.  A UML-based Approach for Abstracting Application Interfaces to REST-like Services , 2006, 2006 13th Working Conference on Reverse Engineering.

[85]  David Harel,et al.  Rhapsody: A Complete Life-Cycle Model-Based Development System , 2002, IFM.

[86]  Petri Selonen,et al.  Towards a Model-Driven Process for Designing ReSTful Web Services , 2009, 2009 IEEE International Conference on Web Services.

[87]  Cesare Pautasso,et al.  Atomic distributed transactions: a RESTful design , 2014, WWW.

[88]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[89]  Wei-Tek Tsai,et al.  A Framework for Contract-Based Collaborative Verification and Validation of Web Services , 2007, CBSE.

[90]  Yarden Katz,et al.  Pellet: A practical OWL-DL reasoner , 2007, J. Web Semant..

[91]  Mika Siikarla,et al.  Transformations Have to be Developed ReST Assured , 2008, ICMT@TOOLS.

[92]  Diego Calvanese,et al.  OCL-Lite: Finite reasoning on UML/OCL conceptual schemas , 2012, Data Knowl. Eng..

[93]  Dragos Truscan,et al.  Combining Model-based Testing and Continuous Integration , 2013, ICSEA 2013.

[94]  Reiko Heckel,et al.  A Model-Driven Approach to Discovery, Testing and Monitoring of Web Services , 2007, Test and Analysis of Web Services.