f9
play

F9 November 19, 2004 11:15 AM H OW GM T ESTS W EB S ERVICES Frank - PDF document

BIO PRESENTATION F9 November 19, 2004 11:15 AM H OW GM T ESTS W EB S ERVICES Frank Cohen PushToTest International Conference On Software Testing Analysis & Review November 15-19, 2004 Anaheim, CA USA Frank Cohen Frank Cohen is the


  1. BIO PRESENTATION F9 November 19, 2004 11:15 AM H OW GM T ESTS W EB S ERVICES Frank Cohen PushToTest International Conference On Software Testing Analysis & Review November 15-19, 2004 Anaheim, CA USA

  2. Frank Cohen Frank Cohen is the "go to" guy when enterprises need to test and solve problems in complex interoperating information systems, especially Service Architectures and Web Services. Frank is CEO of PushToTest, a test automation solutions business and author of several books on testing information systems. For the past 20 years he lead some of the software industry's most successful products, including Norton Utilities for the Macintosh, Stacker, and SoftWindows. He began by writing operating systems for microcomputers, helping establish video games as an industry, helping establish the Norton Utilities franchise, leading Apple's efforts into middleware and Internet technologies, and most recently serving as principal architect for the Sun Community Server, Inclusion.net (OTC: IINC), and TuneUp.com. He serves as an active member and past board member of the Software Developers Forum, the leading computer software industry association in the Silicon Valley of California.

  3. Title: How GM Tests Web Services Presenter: Frank Cohen, Founder of PushToTest Date: November 19, 2004 Abstract: General Motors is on the road to a Service Oriented Architecture (SOA) as its computing standard. To proceed they need to understand the scalability and throughput limits of the message-centric Web services approach that is the essence of SOA. General Motors chose SOA to build its next generation information systems, using Web services and ebXML technology. Service consumers and service providers will exchange Unified Business Language (UBL) Business Object Documents (BODs) to do things like get a purchase order and acknowledge an order. Frank Cohen presents the test methodology and findings from the GM Web Service Performance Benchmark project for its SOA applications and highlights a huge, impending industry-wide problem with Web services. Take home a test methodology to check SOA and Web Services for scalability in your environment.

  4. How GM Tests Web Services November 19, 2004 Frank Cohen STARWest fcohen@pushtotest.com (408) 374-7426

  5. Agenda • SOAP RPC-Encoded does not scale • SOA = BODs, Web Services, ebXML • GM needs & the PushToTest solution • Building the WSPB • Findings • Resources to watch

  6. The “go-to” company • Solve scalability problems • Open-source TestMaker tool • TestNetwork commercial tool • Deliver custom test solutions • Run scalability studies • Train team: Dev, QA, IT

  7. The new book Now Available Prentice Hall Chapters available for free download. thebook.pushtotest.com

  8. Questions for you • How many in your team/company? • 1, <50, 50-200, 200-5000, 5000+ • Role of Development, QA, IT? • Deliver function, optimize performance, QOS • What kinds of systems? • Web, Client/Server, Database, Portal, Desktop Application, Web-enabled Application, Integration • Java, J2EE, Windows, .NET

  9. SOAP RPC does not scale. Frank Cohen, 2002 IBM developerWorks

  10. Find The Encoding

  11. Document-literal SOAP • Visual Studio .NET generates SOAP proxy to expose methods as services namespace myService { public class myService: System.Web.Services.WebService { public HelloService() {} [WebMethod] public string greetingService (String strMyName) { return “Hello, “ + name +”, \ and welcome to my service.”; } } }

  12. Why not document-lit? • RPC is easier for the developer public class myComplexService{ public Hashmap greetingService( firstname name ) { Hashmap ht = new Hashmap(); ht.put( "Event", name ); ht.put( "Keycode", keycode ); ht.put( "PcAssemblyNumber", pcassembly ); ht.put( "SoftwareDottedString", dottedsw ); ht.put( "CurrentTime", new Date() ); ht.put( "CommandKey", "7" ); return ht;

  13. Document-literal • Document-literal starts with a populated XML tree public class myComplexService{ public void callGreetingService( firstname name ) { body = new SOAPBody(); body.addElement ( "Event", name ); body.addElement ( "Keycode", keycode ); body.addElement ( "PcAssemblyNumber", pcassembly ); body.addElement ( "SoftwareDottedString",dottedsw); body.addElement ( "CurrentTime", new Date() ); body.addElement ( "CommandKey", "" ); . . . SOAPRequest.send( body );

  14. SOAP RPC Does Not Scale

  15. Service Oriented Architecture

  16. General Motors • GM migrating to common SOA • Web Services and ebXML • Needs to understand performance and bandwidth limits prior to adoption • Built Proof-of-Concept in 2003 • BOD-based dealer parts ordering system • Turned to PushToTest for independent performance test solution

  17. UBL and BODs • Universal Business Language • 1.0 Spec released 4/2004 • http://docs.oasis-open.org/ubl/cd-UBL-1.0 • UBL in Automotive Industry • Standards for Technology In Automative Retailing • http://www.starstandard.org/ • Business Object Document (BOD) • http://www.openapplications.org/ GPO Consumer Service Ack

  18. What They Are Asking • What types of applications best fit SOA? • What applications should avoid use of Web Services? • What can be adjusted to improve performance? • How do we predict capacity for WS? • What are the best practices, architecture, design practices at WS app layer?

  19. Use Cases • Concurrent virtual users • Payload size • XML manipulation API • SOAP Encoding style • Coupling technique • Network connection

  20. The Web Service Performance Benchmark

  21. Test Web Service • SOAP-based Web Service • RPC-literal, Document-literal, and SOAP with Attachments over RPC-encoded • JAXB, JDOM/Xerces, DOM • Bindings built by app server tools • Stuff elements

  22. 18,000 Test Cases Concurrent virtual requests (5) Consumer XML handling library (2) Request payload size (5) Request SOAP encoding style (3) Service XML handling library (request) (2) Service XML handling library (response) (2) Response SOAP encoding style (3) Response payload size (5) Coupling technique (2)

  23. Findings

  24. Throughput vs Payload Throughput with increasing payload sizes • Throughput declines 50 with payload size 45 40 • Tool provides EJB- 35 Transactions per second 30 Doc-Lit 32 based bindings 25 RPC-Lit 32 SwA 32 RPC-Literal 20 • Minimum GPO BOD is 15 7768 bytes 10 5 • Network saturates 0 7763 502571 997378 1492186 1986993 Payload sizes (bytes)

  25. Encoding Styles Throughput with increasing payload sizes 9 • Document-literal 8 7 encoding did best Transactions per second 6 Doc-Lit 32 5 • RPC-literal encoding RPC-Lit 32 4 SwA 32 RPC-Literal 10% less 3 2 • SOAP with Attachments 1 0 delivered poor throughput 502571 997378 1492186 1986993 Payload sizes (bytes)

  26. JAXB and BODs JDOM vs JAXB Throughput at 15 CRs • As payload sizes grew, 7000 6000 JAXB outperformed Characters Per Second 5000 JDOM/Xerces 4000 • Sun includes BODs for jdom jaxb 3000 release tests 2000 • JAXB team focus on 1000 performance 0 7763 131458 255153 378848 502543 Payload sizes

  27. CPU and Network • CPU usage reaches saturation quickly • Network shows signs of being second bottleneck • Software shows signs of scalability problems

  28. Resource Exceptions • As payload size and concurrent Percentage of Errors at 32 CRs 70 requests increase, JVM throws 60 OOM exceptions % of requests that end in OOM 50 • Waits for garbage collector exception 40 30 • No management spec: WSDL 20 10 entity 0 stating maximum payload 7,763 2,675,071 5,342,378 8,009,686 10,676,993 size Payload size

  29. Today’s SOA tools do not scale for UBL. Frank Cohen, 2004

  30. Scalable SOA/UBL • Streams-based APIs • JSR 173, Streaming API for XML • http://www.jcp.org/en/jsr/detail?id=173 • Look for tools in 2005 • Gigabit Networks • XML Compression

  31. What does it take? • Building and maintaining well performing SOA WS systems requires: • A good understand of system architecture, code modules in SOAP stacks, and debugging skills • Patches • Practical software coding techniques from thought leaders

  32. SOA Next Steps

  33. SOA Next Steps Orchestration Choreography GPO Consumer Service Ack • Enterprises asking questions • What is the best practice to build? • How do you measure performance?

  34. Resources for you

  35. Resources • www.pushtotest.com/ptt/kits/index.html • www.pushtotest.com/Docs/scribblings/beapetstore • www.pushtotest.com • fcohen@pushtotest.com • phone: 408 374 7426

Recommend


More recommend