390 likes | 500 Views
Websight Visualizing the Execution of Web Services. Wim De Pauw, Bob Hoch, Sophia Krasikov, Michelle Lei, John Morar, Raju Pavuluri, Amit Phalgune, Ed Pring, Senthil Velayudham Contact: wim@us.ibm.com. Outline. Motivation Debugging Web Services Profiling and understanding Web Services
E N D
WebsightVisualizing the Execution of Web Services Wim De Pauw, Bob Hoch, Sophia Krasikov, Michelle Lei, John Morar, Raju Pavuluri, Amit Phalgune, Ed Pring, Senthil Velayudham Contact: wim@us.ibm.com
Outline • Motivation • Debugging Web Services • Profiling and understanding Web Services • Dealing with complexity • Technology • Conclusions Agenda slide
What are Web Services? "A WSDL described interface that defines a collection of network accessible operations" • Modular • Composed • Described • Published • Found • Bound • Invoked
Evolution of Web Services • Internal Enterprise Application Integration • External Integration • Dynamic adaptation in e-business => Lingua Franca for (loosely coupled) distributed systems
Web Services: the Challenge • Do you know how your Web Services are interacting ? • Ever tried to read their trace logs? • Ever tried to collate ten trace logs? • Where are the bottlenecks? • Is your workflow correct?
Websight: Problem Determination for Web Services • Debugging and understanding • Analysis at application level • Understand message flow of Web Services in complex applications • Total processing time vs. business logic time • Experimental research tool
-- --- --- --- --- --- -- Sample Target: eServicePac BPEL Engine Compatibility BP Model for SPV Exclusivity Partner World Check warranty period SAP-F Check Model & Serial number Java to Web Services Web Services wrapper Validation Functions
Operation Maintenance Problem Determination Lifecycle Implement Deploy Design Business requirements
Debugging Web Services • Syntax errors • Semantic errors • “Resource unavailable” errors • Business logic errors
Syntax Errors • Often relate to representing “unusual values” • Example: ambiguous type conversions XML – Java • In subsequent versions of a SOAP engine: • java.util.GregorianCalendar xsd:date • java.util.GregorianCalendar xsd:dateTime • Example: encoding of null String vs. empty String • Example: problem with “out of range” values
Semantic Errors: Discordant Meanings • Even if the syntax is correct, service providers and consumers may associate different meanings to certain expressions • Examples: • Empty field means: “wildcard” or “missing information”? • Timestamp (omitting or ignoring time zones) • 2004-07-11T10:49:24.938000-04:00
Semantic Errors: Unexpected Modes of Execution • Example: • Client node sends (unexpectedly!) two identical messages for every transaction. • Functional Testing did not reveal this problem
Semantic Error: Unexpected Modes of Execution • Unexpected Flow Order: • Architect did not expect “stackingChecker” before “compatibilityChecker” because workflow engine was in parallel instead of serial mode.
“Resource Unavailable” Errors • Find out if/where a node is down • Effect / cause may be in different places • Examples: • Database server down, workflow engine continues • Server throws an HTTP error, fed into SOAP parser • We use reactive approach • Proactive approach: synthetic heartbeat
Business logic error • Example: • For this operation we didn’t need to call StackingChecker service • Unit testing did not expose this problem – since the existing test data generated the correct result
Profiling is Understanding • Where is time spent? • Network vs. business logic? • Chatty communication?
Profiling: Sorting Statistics • Table view helps find outliers by sorting Network Duration in table view for several transactions • Selecting the outliers in table highlights corresponding messages in other views
Understanding Web Services Configurations • Example: Two concurrent Transactions using two workflow engines
From Design Document SCM Traced Topology SCM Understanding Web Services Configurations • Supply Chain Management from WS-I
Dealing with complexity • High traffic, high number of nodes, complex interactions • Pattern extraction • Selective tracing
Dealing with complexity: Pattern Extraction Fifty Concurrent Transactions
Selective Tracing for Heavy Loads • Tracing everything during heavy load is undesirable: too much perturbation, too much data • Start with “marked” transaction (carrying correlator) • Tracing will be turned on when this transaction is handled • Reduces amount of data to be traced • Easier to understand 1 typical transaction than 10000
Technology: based on Eclipse and Hyades Hyades: Integrated test, trace and monitoring environment Open source basic infrastructure Tool interoperability across testing/profiling process www.eclipse.org/hyades Components Information model (EMF) Communication framework (Remote Agent Controller) Data collection
Deployment • Collect runtime • information 2) Present to user
SelectiveTracing Websight Runtime (experimental setup) Apache SOAP Parser Axis Parser Websphere Parser Non-SOAP protocols Websight Interface Websight Runtime Websphere Runtime Logging Correlation Remote Agent Controller Visualizer Websight Trace File
Correlating Distributed Events • Problem : correlating messages • Goal : trace end-to-end message flow across system ?
Correlating Distributed Events • Correlator technology: • ARM correlator technology • Web Services correlator • Websight SOAP header carries correlator • Propagation through business logic handled by middleware Receive Correlator Receive Correlator Attach Correlator Attach Correlator
Summary • Debugging Web Services requires new methodologies and tools • Complexity at the application level • Opportunities for work flow
Contact:wim@us.ibm.com Closing slide
Navigation between Views Selecting an item in one view… …highlights corresponding items in the other views
Supply Chain Management: Maximal Transaction(understanding the complex flow)