Restful web services vs. "big"' web services: making the right architectural decision

Recent technology trends in the Web Services (WS) domain indicate that a solution eliminating the presumed complexity of the WS-* standards may be in sight: advocates of REpresentational State Transfer (REST) have come to believe that their ideas explaining why the World Wide Web works are just as applicable to solve enterprise application integration problems and to simplify the plumbing required to build service-oriented architectures. In this paper we objectify the WS-* vs. REST debate by giving a quantitative technical comparison based on architectural principles and decisions. We show that the two approaches differ in the number of architectural decisions that must be made and in the number of available alternatives. This discrepancy between freedom-from-choice and freedom-of-choice explains the complexity difference perceived. However, we also show that there are significant differences in the consequences of certain decisions in terms of resulting development and maintenance costs. Our comparison helps technical decision makers to assess the two integration styles and technologies more objectively and select the one that best fits their needs: REST is well suited for basic, ad hoc integration scenarios, WS-* is more flexible and addresses advanced quality of service requirements commonly occurring in enterprise computing.

[1]  Frank Leymann,et al.  Reusable Architectural Decision Models for Enterprise Application Development , 2007, QoSA.

[2]  Liviu Iftode,et al.  Scalable Fault-Tolerant Distributed Shared Memory , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[3]  Alfred Basta,et al.  Computer Security and Penetration Testing , 2007 .

[4]  James Snell,et al.  Introduction to Web services architecture , 2002, IBM Syst. J..

[5]  Richard Monson-Haefel J2EE Web Services , 2003 .

[6]  Olaf Zimmermann,et al.  Second generation web services-oriented architecture in production in the finance industry , 2004, OOPSLA '04.

[7]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[8]  Steve Vinoski,et al.  Putting the "Web" into Web Services: Interaction Models, Part 2 , 2002, IEEE Internet Comput..

[9]  Jeffrey V. Nickerson,et al.  Developing web services choreography standards - the case of REST vs. SOAP , 2005, Decis. Support Syst..

[10]  Frank Leymann,et al.  Combining Web Services and the Grid: Towards Adaptive Enterprise Applications , 2005, CAiSE Workshops.

[11]  Soo Dong Kim,et al.  Design of a Dynamic Composition Handler for ESB-based Services , 2007 .

[12]  Oscar H. Ibarra,et al.  SPiDeR: P2P-Based Web Service Discovery , 2005, ICSOC.

[13]  Judy Kay,et al.  A fair share scheduler , 1988, CACM.

[14]  Henri E. Bal,et al.  Orca: a language for distributed programming , 1990, SIGP.

[15]  Yevgeniy Dodis,et al.  Proofs of Retrievability via Hardness Amplification , 2009, IACR Cryptol. ePrint Arch..

[16]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1985, JACM.

[17]  John Mylopoulos,et al.  Modeling and Analyzing Context-Aware Composition of Services , 2005, ICSOC.

[18]  María S. Pérez-Hernández,et al.  A rule based resources management for collaborative grid environments , 2008, Int. J. Internet Protoc. Technol..

[19]  Frank Leymann,et al.  Architectural Decision Models as Micro-Methodology for Service-Oriented Analysis and Design , 2007 .

[20]  David R. O'Hallaron,et al.  Evaluation of a resource selection mechanism for complex network services , 2001, Proceedings 10th IEEE International Symposium on High Performance Distributed Computing.

[21]  Marco Aiello,et al.  Planning and monitoring the execution of web service requests , 2003, International Journal on Digital Libraries.

[22]  Bobby Woolf,et al.  Enterprise Integration Patterns , 2003 .

[23]  S. Karlin,et al.  Applications and statistics for multiple high-scoring segments in molecular sequences. , 1993, Proceedings of the National Academy of Sciences of the United States of America.

[24]  Chuang Liu,et al.  Design and evaluation of a resource selection framework for Grid applications , 2002, Proceedings 11th IEEE International Symposium on High Performance Distributed Computing.

[25]  Marco Aiello,et al.  Associating assertions with business processes and monitoring their execution , 2004, ICSOC '04.

[26]  J. D. Parsons,et al.  Clustering cDNA sequences , 1992, Comput. Appl. Biosci..

[27]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[28]  William R. Cook,et al.  Web Services versus Distributed Objects: A Case Study of Performance and Interface Design , 2006, 2006 IEEE International Conference on Web Services (ICWS'06).

[29]  Fabio Casati,et al.  A framework for rapid integration of presentation components , 2007, WWW '07.

[30]  Brian Vinter,et al.  Java PastSet: a structured distributed shared memory system , 2003, IEE Proc. Softw..

[31]  Xiaoying Bai,et al.  DRESR: Dynamic Routing in Enterprise Service Bus , 2007 .

[32]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[33]  Michael Schöttner,et al.  A gaming framework for a transactional DSM system , 2003, CCGrid 2003. 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003. Proceedings..

[34]  Ari Juels,et al.  Proofs of retrievability: theory and implementation , 2009, CCSW '09.

[35]  Edward L. Haletky VMware ESX Server in the Enterprise: Planning and Securing Virtualization Servers , 2007 .

[36]  Sanjay Bose,et al.  Impact of service-oriented architecture on enterprise systems, organizational structures, and individuals , 2005, IBM Syst. J..

[37]  Liang-Jie Zhang,et al.  SOMA-ME: A platform for the model-driven design of SOA solutions , 2008, IBM Syst. J..

[38]  Cong Wang,et al.  Enabling Public Verifiability and Data Dynamics for Storage Security in Cloud Computing , 2009, ESORICS.

[39]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[40]  John Viega,et al.  Cloud Computing and the Common Man , 2009, Computer.

[41]  Christoph Bussler B2B Integration , 2003, Springer Berlin Heidelberg.

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

[43]  Brian Hayes,et al.  What Is Cloud Computing? , 2019, Cloud Technologies.

[44]  Jos de Bruijn,et al.  Web Service Modeling Ontology , 2005, Appl. Ontology.

[45]  Wei-Tek Tsai,et al.  Internetware computing: issues and perspective , 2009, Int. J. Softw. Informatics.

[46]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[47]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[48]  Yixin Diao,et al.  Feedback Control of Computing Systems , 2004 .

[49]  Andreas Harth,et al.  Argos: An Ontology and Web Service Composition Infrastructure for Goods Movement Analysis , 2004, DG.O.

[50]  Werner Vogels,et al.  Web Services Are Not Distributed Objects , 2003, Int. CMG Conference.

[51]  Kourosh Gharachorloo,et al.  Shasta: a low overhead, software-only approach for supporting fine-grain shared memory , 1996, ASPLOS VII.

[52]  Hovav Shacham,et al.  Hey, you, get off of my cloud: exploring information leakage in third-party compute clouds , 2009, CCS.

[53]  Michael K. Reiter,et al.  Verifying distributed erasure-coded data , 2007, PODC '07.

[54]  Shankar Ponnekanti,et al.  SWORD: A Developer Toolkit for Web Service Composition , 2008 .

[55]  Einar Landre,et al.  REST versus SOAP as Architectural Style for Web Services , 2007 .

[56]  Anne-Marie Kermarrec,et al.  An Efficient and Scalable Approach for Implementing Fault-Tolerant DSM Architectures , 2000, IEEE Trans. Computers.

[57]  Steve Vinoski,et al.  Web Services Interaction Models, Part 1: Current Practice , 2002, IEEE Internet Comput..

[58]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[59]  E. Myers,et al.  Basic local alignment search tool. , 1990, Journal of molecular biology.

[60]  Mike P. Papazoglou,et al.  e-Business: Organizational and Technical Foundations , 2006 .

[61]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[62]  Reza Curtmola,et al.  Provable data possession at untrusted stores , 2007, CCS '07.

[63]  M Ronaghi,et al.  Mutation detection by pyrosequencing: sequencing of exons 5-8 of the p53 tumor suppressor gene. , 2000, Gene.

[64]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[65]  Frank Leymann The (Service) Bus: Services Penetrate Everyday Life , 2005, ICSOC.

[66]  Ari Juels,et al.  Pors: proofs of retrievability for large files , 2007, CCS '07.

[67]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[68]  Miguel Castro,et al.  Practical byzantine fault tolerance and proactive recovery , 2002, TOCS.

[69]  Jun Zhang,et al.  Simlarity Search for Web Services , 2004, VLDB.

[70]  Soo-Ho Chang,et al.  Building Accountability Middleware to Support Dependable SOA , 2009, IEEE Internet Computing.

[71]  Roy T. Fielding,et al.  Uniform Resource Identifiers (URI): Generic Syntax , 1998, RFC.

[72]  Colette Rolland,et al.  Eliciting service composition in a goal driven manner , 2004, ICSOC '04.

[73]  Amit P. Sheth,et al.  Meteor-s web service annotation framework , 2004, WWW '04.

[74]  Hagen Overdick Towards Resource-Oriented BPEL , 2007, WEWST.

[75]  Cong Wang,et al.  Ensuring data storage security in Cloud Computing , 2009, 2009 17th International Workshop on Quality of Service.

[76]  Takahiro Kawamura,et al.  Semantic Matching of Web Services Capabilities , 2002, SEMWEB.

[77]  Barbara Pernici,et al.  A QUALITY MODEL FOR SERVICE MONITORING AND ADAPTATION , 2008 .

[78]  J. Tack,et al.  A little rest and relaxation , 2000, Gut.

[79]  Luciano Baresi,et al.  Towards Dynamic Monitoring of WS-BPEL Processes , 2005, ICSOC.

[80]  Mira Mezini,et al.  Hybrid web service composition: business processes meet business rules , 2004, ICSOC '04.

[81]  Ethan L. Miller,et al.  Store, Forget, and Check: Using Algebraic Signatures to Check Remotely Administered Storage , 2006, 26th IEEE International Conference on Distributed Computing Systems (ICDCS'06).

[82]  Robert W. Doran Amdahl multiple-domain architecture , 1988, Computer.

[83]  Mary Baker,et al.  Auditing to Keep Online Storage Services Honest , 2007, HotOS.

[84]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[85]  Ing-Yi Chen,et al.  A runtime-adaptable service bus design for telecom operations support systems , 2008, IBM Syst. J..

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

[87]  Thomas Seidmann Distributed shared memory using the .NET framework , 2003, CCGrid 2003. 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003. Proceedings..

[88]  Fabio Casati,et al.  Trust-serv: model-driven lifecycle management of trust negotiation policies for web services , 2004, WWW '04.

[89]  Maja Vukovic,et al.  Context aware service composition , 2007 .

[90]  Nancy A. Lynch,et al.  Implementing sequentially consistent shared objects using broadcast and point-to-point communication , 1998, JACM.

[91]  Paul Browne,et al.  JBoss Drools Business Rules , 2009 .

[92]  Eleni Stroulia,et al.  Semantic Structure Matching for Assessing Web-Service Similarity , 2003, ICSOC.

[93]  Paolo Traverso,et al.  Automated Planning: Theory & Practice , 2004 .

[94]  Shuping Ran,et al.  A model for web services discovery with QoS , 2003, SECO.

[95]  E. Michael Maximilien,et al.  Toward autonomic web services trust and selection , 2004, ICSOC '04.

[96]  Rudolf Schmid,et al.  Organization for the advancement of structured information standards , 2002 .

[97]  Satoshi Matsuoka,et al.  Implementation of a portable software DSM in Java , 2001, JGI '01.

[98]  Mike P. Papazoglou,et al.  Service components for managing the life-cycle of service compositions , 2004, Inf. Syst..

[99]  Ralph C. Merkle,et al.  Protocols for Public Key Cryptosystems , 1980, 1980 IEEE Symposium on Security and Privacy.

[100]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1989, TOCS.

[101]  Marc J. Hadley,et al.  Web application description language (WADL) , 2006 .

[102]  Frank Leymann,et al.  Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More , 2005 .

[103]  Thomas A. Corbi,et al.  The dawning of the autonomic computing era , 2003, IBM Syst. J..

[104]  Hussein Zedan,et al.  Augmenting semantic web service descriptions with compositional specification , 2004, WWW '04.

[105]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[106]  Aviel D. Rubin,et al.  Risks of the Passport single signon protocol , 2000, Comput. Networks.

[107]  Cesare Pautasso,et al.  The JOpera visual composition language , 2005, J. Vis. Lang. Comput..

[108]  Christian Werner,et al.  Enhanced transport bindings for efficient SOAP messaging , 2005, IEEE International Conference on Web Services (ICWS'05).

[109]  Daniela Florescu,et al.  XL: an XML programming language for web service specification and composition , 2002, Comput. Networks.

[110]  Roberto Di Pietro,et al.  Scalable and efficient provable data possession , 2008, IACR Cryptol. ePrint Arch..

[111]  John K. Bennett,et al.  Brazos: a third generation DSM system , 1997 .

[112]  Richard Wolski,et al.  The Eucalyptus Open-Source Cloud-Computing System , 2009, 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid.

[113]  MeyerBertrand,et al.  Design by Contract , 1997 .

[114]  Liang-Jie Zhang,et al.  S3: A Service-Oriented Reference Architecture , 2007, IT Professional.

[115]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[116]  Roger Sessions Fuzzy Boundaries: Objects, Components, and Web Services , 2004, ACM Queue.

[117]  R Hamid,et al.  Web Services Interoperability , 2006 .

[118]  Web of Services for Enterprise Computing: , 2007 .

[119]  Steven Tuecke,et al.  The Physiology of the Grid An Open Grid Services Architecture for Distributed Systems Integration , 2002 .

[120]  Willem-Jan van den Heuvel,et al.  Towards best practices in designing for the cloud , 2009, OOPSLA Companion.

[121]  Sam Ruby,et al.  RESTful Web Services , 2007 .

[122]  Mike P. Papazoglou,et al.  Extending the service-oriented architecture , 2005 .

[123]  Frank Leymann,et al.  Architectural Decisions and Patterns for Transactional Workflows in SOA , 2007, ICSOC.

[124]  Mihir Bellare,et al.  Incremental Cryptography: The Case of Hashing and Signing , 1994, CRYPTO.

[125]  Ali Arsanjani,et al.  Service-oriented modeling and architecture , 2004 .

[126]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, ISCA '90.

[127]  Fabio Casati,et al.  Business-oriented management of Web services , 2003, CACM.

[128]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[129]  Gilbert Cabillic,et al.  The performance of consistent checkpointing in distributed shared memory systems , 1995, Proceedings. 14th Symposium on Reliable Distributed Systems.

[130]  Apostolos V. Zarras,et al.  A Comparison Framework for Middleware Infrastructures , 2004, J. Object Technol..

[131]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .

[132]  Frank Leymann,et al.  Taming Compliance with Sarbanes-Oxley Internal Controls Using Database Technology , 2006, 22nd International Conference on Data Engineering (ICDE'06).

[133]  Hovav Shacham,et al.  Compact Proofs of Retrievability , 2008, ASIACRYPT.

[134]  Olaf Zimmermann,et al.  Perspectives on Web Services-Applying SOAP, WSDL and UDDIto Real-World Projects , 2013, Comput. J..

[135]  Paul England,et al.  Resource management for isolation enhanced cloud services , 2009, CCSW '09.

[136]  Vijay Karamcheti,et al.  Partitionable services: A framework for seamlessly adapting distributed applications to heterogeneous environments , 2002, Proceedings 11th IEEE International Symposium on High Performance Distributed Computing.

[137]  Alan L. Cox,et al.  Adaptive protocols for software distributed shared memory , 1999 .

[138]  Calton Pu,et al.  Replica control in distributed systems: as asynchronous approach , 1991, SIGMOD '91.

[139]  Asit Dan,et al.  Cremona: an architecture and library for creation and monitoring of WS-agreents , 2004, ICSOC '04.

[140]  Robert Belshaw,et al.  BlastAlign: a program that uses blast to align problematic nucleotide sequences , 2005, Bioinform..

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

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

[143]  Wenjing Lou,et al.  Dependable and Secure Sensor Data Storage with Dynamic Integrity Assurance , 2009, INFOCOM.

[144]  Axel van Lamsweerde,et al.  Requirements engineering in the year 00: a research perspective , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[145]  Steve Vinoski Serendipitous Reuse , 2008, IEEE Internet Computing.

[146]  Lisandro Zambenedetti Granville,et al.  An hierarchical policy-based architecture for integrated management of grids and networks , 2004, Proceedings. Fifth IEEE International Workshop on Policies for Distributed Systems and Networks, 2004. POLICY 2004..

[147]  Kurt Geihs,et al.  Ranked Matching for Service Descriptions Using OWL-S , 2004, KiVS.

[148]  Jianhua Shao,et al.  A Quality of Service Management Framework Based on User Expectations , 2003, ICSOC.

[149]  Keishi Tajima,et al.  Efficient Web Services Message Exchange by SOAP Bundling Framework , 2007, 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2007).

[150]  Henri E. Bal,et al.  Runtime optimizations for a Java DSM implementation , 2001, JGI '01.

[151]  Ying Ding,et al.  Note: Correction to the 1997 tutorial on Reed–Solomon coding , 2005, Softw. Pract. Exp..

[152]  Frank P. Coyle,et al.  XML, Web Services, and the Data Revolution , 2002 .

[153]  Daniel A. Menascé MOM vs. RPC: Communication Models for Distributed Applications , 2005, IEEE Internet Comput..

[154]  John Strassner,et al.  Implementing Next Generation Services Using Policy-Based Management and Autonomic Computing Principles , 2006, 2006 IEEE/IFIP Network Operations and Management Symposium NOMS 2006.