@techreport{TR-IC-12-18, number = {IC-12-18}, author = {Amanda S. Nascimento and Fernado Castor and Cec\'ilia M.F. Rubira and Rachel Burrows}, title = {{An Empirical Study on Design Diversity of Functionally Equivalent Web Services}}, month = {June}, year = {2012}, institution = {Institute of Computing, University of Campinas}, note = {In English, 24 pages. \par\selectlanguage{english}\textbf{Abstract} A number of approaches leverage software fault tolerance techniques based on design diversity to tolerate software faults in service-oriented applications. These solutions moderate the communication between clients and functionally equivalent services, i.e., variant services. The use of design diversity depends on the assumption that variants rarely fail on the same input case. Nevertheless, it is unclear whether variant services are actually diverse and fail on disjoint subsets of the input space. In a previous work, we proposed an experimental setup to assess design diversity of variant services that realize a requirements specification. In this work, we utilize the proposed experimental setup to assess the design diversity of a number of third-party Web services adhering to seven different requirements specifications. In this paper, we describe in detail the main findings and lessons learned from this empirical study. Firstly, we investigate whether variant services present difference in their outputs and failure behaviours to look for evidence that variants are provided by different design and implementations. Secondly, we investigate the effectiveness of service diversity for tolerating faults. The results suggest that there is diversity in the implementation of variant services. However, in some cases, this diversity might not be sufficient to improve system reliability. Our findings provide an important knowledge basis for engineering effective fault-tolerant ser vice applications. } }