i
Editorial Preface
Web Services Quality Testing Jia Zhang, Northern Illinois University, USA Liang-Jie Zhang, IBM T.J. Watson Research Center, USA
TESTING OF WEB SERVICES QUALITY Simply put, a Web service refers to a programmable Web application that is universally accessible using standard Internet protocols. This paradigm of Web services has been changing the Internet from a repository of data into a repository of services along the following three dimensions: (1) by means of a business organization exposing its service on the Internet and making it accessible via standard programmatic interfaces, this model of Web services offers a promising way to facilitate business-to-business (B2B) collaboration within and across organizational boundaries; (2) the Web services technology provides a uniform framework to increase crosslanguage and cross-platform interoperability for distributed computing and resource sharing over the Internet; and (3) this paradigm of Web services opens a new cost-effective way of engineering software to quickly develop and deploy Web applications by dynamically integrating other published Web services components to conduct new business transactions. The paradigm of Web services thus is considered to be the strategic model for the next generation of Internet computing (Zhang, 2004). Gartner Group, a leading industry analyst firm, predicted that by 2008, more than 60% of the business will adopt Web services technique and transform into new forms of enterprises (Pezzini, 2003).
However, TechMetrix’s survey data reveal that the actual adoption of Web services in industry is quite slow; up to February 2003, although most companies showed interests in the idea of using Web services, only 26% of the surveyed enterprises started Web services projects. Further, most of those projects offered Web services instead of actually consuming them (TechMetrix/SQLI, 2003). It can be assumed, then, that most business stakeholders do not have enough trust in the current developed Web services. It is very unlikely that a business organization will dynamically select a partner from the Internet merely based upon the information found from some public registry without high confidence. Therefore, the trustworthiness of Web-services-related software is currently the paramount factor that will decide the success of the Web services paradigm. It is then critical for Web services researchers and developers to investigate how to increase business stakeholders’ confidence in Web services. Let us take a look at what a business stakeholder’s trust in software is based upon. The literature reveals that people’s confidence in software is built upon the assessment of a set of persistent software attributes, or so-called Quality of Service (QoS), such as reliability, scalability, efficiency, security, reusability, adaptability, interoperability, maintainability, availability, portability, and so forth (Neumann, 2004). If a software product is measured and scores high in the evaluation
ii
of each of these attributes1, it is considered high quality and trustworthy. The last 50 years of software development history has witnessed the establishment of an independent research branch known as software testing, which contains a wealth of theories, technologies, methodologies, and tools to guide the verification process of a software product in each of these attributes. Therefore, the first question is, can we just apply the traditional software testing technologies to measure and test Web services on each of the attributes? Unfortunately, the answer is no. The model of Web services poses critical challenges in software testing. Here we just name a few. For example, the fundamental hypothesis of the existing testing methods is that exhaustive test cases can be conducted on the tested software product, if necessary. It is neither feasible nor practical to apply this assumption to Web services testing. Unlike traditional software products that are deployed in the target environment, Web services are hosted by service producers and can be invoked only remotely via the Internet. Therefore, conducting a significant amount of tests on a Web service implies not only expensive maintenance of network connections and network transmissions, but also unpredictable Web conditions such as traffic and safety. In addition to this issue of remote testing, the model of Web services implies that more and more service components will be published and become available on the Internet; thus, Web services components can be searched dynamically and located and invoked at run time. This unique feature of dynamic discovery and invocation requires highly efficient testing and selection techniques of Web services components. Furthermore, Web services are Web components that are accessible only via interfaces published in standard Web servicesspecific interface definition languages (e.g., WSDL) and accessible via standard network protocols (e.g., SOAP). Therefore, how to
design test cases for a Web service using its limited information exposed remains a challenge. Meanwhile, how to mitigate the overhead caused by the Web services-specific transport protocols (e.g., SOAP) deserves further investigation (Werner et al., 2005). In summary, due to the specific properties of Web services, these existing software testing models and methodologies deserve reinspection in the domain of Web services. In more detail, we believe that three critical questions need to be tackled: (1) How do we precisely define the quality of Web services, and what are the criteria? (2) How do we measure and test the quality of Web services? and (3) How do we enhance and guarantee qualified Web services? First, we need to investigate how to qualitatively and quantitatively define the quality of Web services. Borrowing from the generic software trustworthiness (Neumann, 2004), this concept may be defined as a combination of a set of attributes: reliability (Re), security (Se), safety (Sa), maintainability (Ma), survivability (Su), availability (Av), testability (Te), interoperability (In), performance (Pe), fault tolerance (Ft), and so forth. In other words, the quality of a Web service (WS) can be represented as a function of the following specified attributes: Quality(WS) = f(aRe, bSe, cSa, dMa, eSu, fAv, gTe, hIn, iPe, jFt, ...) | Env In these attributes, a, b, c, d, e, f, g, h, i, and j are quantitative or qualitative measures of particular attributes, which implies that each attribute may contribute differently to the quality of a Web service in a specific context or environment (Env). However, for each attribute, we need to reexamine its meaning in the domain of Web services. For example, how do we define the reliability of a Web service? Further, the unique feature of Web services composition (e.g., dynamic discov-
iii
ery and integration) may impact the function dynamically. For each attribute, we can start from the wealth of models and testing methodologies developed by the software testing community for the traditional software. By reexamining these models and methodologies, new techniques may be required to perform effective and efficient testing and measurement. Some researchers have started to explore this novel field. For example, Zhang et al. (2004) investigate a mobile agents-based approach to select reliable Web service components in a cost-effective manner; Menascé (2004) proposes to use the total execution time and cost as a measure of the whole composite Web service. Finally, a mature and disciplined process should be established to improve the ability of developers to meet goals of cost, schedule, functionality, and product quality. Principles, notations, guidelines, practices, and methodologies should be built to direct software engineers to produce qualified Web services. These methodologies should cover the whole life cycle of a Web service, including its analysis, design, development, publication, discovery, composition, invocation, maintenance, and upgrade. Supportive toolkits, Integrated Development Environments (IDEs), and successful case studies also should be provided.
ABOUT THIS ISSUE This issue of the International Journal of Web Services Research (JWSR) collects five papers that discuss how to transmit, select, and develop quality-required Web services. Kevin Curran and Brendan Gallagher present the Webber, which is a middleware framework that supports reconfigurable dissemination-oriented multimedia communication. They develop a SOAP Web service to enable users to download protocol stack components such as MIME attachments, so that
a protocol can be configured to meet specific needs of specific applications (e.g., multimedia applications) that common protocols do not support. Zahir Tari et al. argue that Web services lack means to support the conversation style that is essential to business processes where communications are required. They address this missing functionality by representing a business process conversation as a finite state machine within a dynamic communication protocol called DynWES. Reachability graphs are dynamically generated to capture the conversations between two software agents. Chen Zhou et al. propose an ontologybased approach to facilitate Web service selection with required QoS specifications. Three definition layers are identified in the ontology: the QoS Profile Layer, the QoS Property Definition Layer, and the QoS Metrics Layer. A matching algorithm is also presented, together with experimental results gathered from a prototype system. Jan Hendrik Hausmann et al. argue that the alignment of the Web services technology to software development practices is important to facilitate dynamic Web service discovery. Their chapter proposes a modelbased approach for semantic annotation of Web services. A matching mechanism for semantic descriptions of Web services based upon graphtransformation rules is also presented. Finally, Cristian Mateos et al. propose a programming language called MoviLog for developing intelligent mobile agents that interact with Web Services. MoviLog reduces development effort by automating mobility decisions using reactive mobility by failure and enables mobile agents constructed to invoke Web Services.
CONCLUSION As Web services become more prevalent, the need to ensure their quality increases.
iv
Therefore, it is imperative that researchers start to explore how to define, measure, test, and enhance the quality of Web services-oriented systems. We look forward to seeing more fruitful research results in this emerging field in JWSR.
REFERENCES Menascé, D.A. (2004). Response time analysis of composite Web services. IEEE Internet Computing, 8(1), 90-92. Neumann, P. (2004). Principled assuredly trustworthy composable architectures. Emerging draft of the final report for DARPA’s composable high-assurance trustworthy systems (CHATS) program, 2004. Retrieved from http:// w w w. c s l . s r i . c o m / u s e r s / n e u m a n n / chats4.pdf Pezzini, M. (2003). Composite applications head toward the mainstream. Gartner. Retrieved from http://www.gartner.com TechMetrix/SQLI (2003). Adoption of Web
services and technology choices. TechMetrix Research. Retrieved from http://www.techmetrix.com/products/ publiDetail.php?code=rep0203-1 Werner, C., Buschmann, C., & Fischer, S. (2005). WSDL-driven SOAP compression. International Journal of Web Services Research, 2(1), 14-35. Zhang, J., Zhang, L.-J., & Chung, J.-Y. (2004). An approach to help select trustworthy Web services. Proceedings of IEEE International Conference on ECommerce Technology for Dynamic EBusiness (CECEast), Beijing, China. Zhang, L.-J. (2004). Challenges and opportunities for Web services research. International Journal of Web Services Research, 1(1), 1-7.
Endnotes 1
Here we omit the exception that some attributes naturally conflict with each other, such as the fault tolerance and testability.
Jia Zhang, PhD (
[email protected]), is currently an assistant professor of the Department of Computer Science at Northern Illinois University, and also a guest scientist of the National Institute of Standards and Technology (NIST). Her current research interests center on software trustworthiness in the domain of Web services, with a focus on reliability, integrity, security, and interoperability. Zhang has published more than 40 technical papers in journals and conference proceedings. She also has seven years of industrial experience as software technical lead in Web application development. Zhang received a PhD in computer science from the University of Illinois at Chicago in 2000. She is a member of the IEEE and ACM. Liang-Jie Zhang, PhD (
[email protected]), is a research staff member and the founding chair of the Services Computing Professional Interest Community (PIC) at the IBM T.J. Watson Research Center. He is part of the business informatics research team with a focus on SOA and Web services for industry solutions and business performance management services. He has filed more than 30 patent applications in the areas of e-commerce, Web services, rich media, data management, and information appliances, and he has published more than 80 technical papers in journals, book chapters, and conference proceedings. Zhang is the chair of the IEEE Computer Society’s Technical Committee on Services Computing and the editor-in-chief of the International Journal of Web Services Research (JWSR). He is the general co-chair of the IEEE International Conference on Web Services (ICWS 2005) and the general co-chair of the IEEE Conference on Services Computing (SCC2005). Liang-Jie received a BS in electrical engineering at Xidian University (1990), an MS in electrical engineering at Xi’an Jiaotong University (1992), and a PhD in computer engineering at Tsinghua University (1996).