The Web Services standard is becoming the lingua franca for loosely coupled distributed applications. As the number of nodes and the complexity of these applications grow over the coming years, it will become more challenging for developers to understand, debug, and optimize them. In this paper, we describe Web Services Navigator, a visualization tool that fosters better understanding of serviceoriented architecture (SOA) applications. We draw on our experience with real SOA applications to show how this tool has been applied to practical problems ranging from business logic misunderstandings to performance bottlenecks to syntax and semantic errors. Web Services Navigator helps to solve these problems by visualizing how applications really execute, enabling business owners, application designers, project managers, programmers, and operations staff to understand how their applications actually behave. We sketch the architecture of Web Services Navigator, outline how it reconstructs application execution from event logs, and describe how users interactively explore their applications using its five linked views. Significant portions of the productivity gains enjoyed by businesses over the past decades are attributable to the adoption of new information technology (IT). At some point the economic balance shifts; businesses start putting more emphasis on reducing the cost of supporting existing IT functions than on adding new function. Today, many businesses are striving to improve the overall cost-effectiveness of their IT investments by reviewing business needs and cutting costs. These efforts typically include leveraging existing assets, consolidating redundancies, and laying a foundation for future growth. This trend is fueling the move from tightly coupled componentized systems to loosely coupled service-based systems, such as those based on service-oriented architectures (SOAs) employing standards-based interfaces. 1, 2 To illustrate the differences between componentized systems and service-based systems, we make an analogy with the air transportation industry. This industry moves passengers arriving by means of ground transportation into airplanes, flies them to a Ó Copyright 2005 by International Business Machines Corporation. Copying in printed form for private use is permitted without payment of royalty provided that (1) each reproduction is done without alteration and (2) the Journal reference and IBM copyright notice are included on the first page. The title and abstract, but no other portions, of this paper may be copied or distributed royalty free without further permission by computer-based and other information-service systems. Permission to republish any other portion of the paper must be obtained from the Editor. destination, and discharges them into ground transportation at the destination. Airplanes, an essential part of the story, are constructed from large collections of tightly integrated components. According to Boeing, a single 747-400** airplane contains more than 6 million parts, 3 demonstrating that the componentized system approach can work for very complex systems. Even so, the overall air transportation system is best conceptualized as a composition of ''choreographed'' services: fuel services, food services, baggage services, air traffic control services, and ground transportation services, to name just a few. Air transportation depends on both component strategies and service strategies. What forces drive businesses toward one approach or the other? One way to address this question is to observe some of the differences between integrated components and choreographed services. Componentized systems tend to be deeply hierarchical, with components constructed from subcomponents that are themselves constructed from other subcomponents. When a componentized system malfunctions, the misbehaving subcomponent must be identified and repaired or replaced. For example, frequent airline passengers may be familiar with delays associated with airplane malfunctions. Drilling down into such ''vertical'' component hierarchies to identify the root cause of failure is the strength of today's diagnostic tools, which are often built into complex systems. How does this contrast with the choreographed services environment? Services have well-defined and broadly available interfaces with a predictable or specified quality of service. They are typically accessed by different types of consumers. Services generally provide a complete usable unit of work, and equivalent services are frequently available as alternatives. Indeed, interchangeable services are the basis for competition. When a service fails, the preferred remedy may be substitution rather than repair. For example, if a fuel truck breaks down, any airline passenger would expect a replacement truck to be dispatched rather than waiting for the broken truck to be fixed. Unlike componentized systems, the domain of control and visibility for the consumer of the service generally stops at the service interface. This service environment leads to numerous ''horizontal'' interaction patterns that take the form of a broad and shallow hierarchy. The challenge in managing and understanding service composition is dealing with this horizontal complexity. When systems are composed of multiple independent business processes, the mapping between such processes and the applications executing in the IT layers may not always be obvious. Consider such fundamental tasks as verifying the correctness of a workflow or locating performance bottlenecks, where logs from a variety of servers must be collated and interpreted. This is difficult even when the number of servers is small and may become impractical as horizontal complexity increases. The emergence of SOAs in the IT industry is driven by the same pressures that have shaped the air transportation system. Web Services Navigator 4 has been designed and built from the ground up to address the challenges of horizontal complexity in the service environment and its associated patterns of usage. This tool relies on the Data Collector for IBM Web Services Navigator 5 to capture events. The tool then correlates the events, models the transactions they represent, and extracts patterns of execution from the model. The tool thus reconstructs individual transactions from end to end and produces visual abstractions, such as service topologies and flow patterns, as well as concrete views of transaction flows and data content. The abstract views reduce large volumes of execution data to forms more meaningful to humans. They can reveal important business trends that are obscured in concrete views and at the same time, can link to the associated detailed data when needed. Because SOAs conform to open standards, the Data Collector for Web Services Navigator can capture application execution data in the middleware. Consequently, developers and operations staff can take advantage of visualization technology without modifying their applications, either before or after deployment, even when their environment includes a mixture of programming languages and operating platforms. In the next section of this paper, we describe the five views that are used by Web Services Navigator to display information. 822 proven useful; we show first how the tool was used to diagnose a number of problems in business logic, and then we show a number of cases in which the tool helped diagnose problems in the IT layer. The problems presented in this paper were encountered in real Web Services-based applications developed within IBM or for customers of IBM. In particular, two applications were used to illustrate the tool features: an online order validation service and a retail point-of-sale system. Next, we briefly discuss the Data Collector. Then, in ''Architecture and implementation,'' we describe the general architecture of the tool and discuss a number of implementation issues of interest: compensating for clock skews among nodes, our algorithm for laying out topology graphs, and identifying transaction patterns. We discuss related work, and we conclude with a summary.
Web Service Navigator REF provides visualization techniques for Web service based applications.
Web Services Navigator : Visualizing the execution of Web Services &
IBM Syst. J.
IBM Syst. J.
Computer Science