Gregory Leake Microsoft Corporation May 15, 2009.

34

Transcript of Gregory Leake Microsoft Corporation May 15, 2009.

Page 1: Gregory Leake Microsoft Corporation May 15, 2009.
Page 2: Gregory Leake Microsoft Corporation May 15, 2009.

SOA313-StockTrader Sample Application Case Study: Performance and Java InteropGregory LeakeMicrosoft CorporationMay 15, 2009

Page 3: Gregory Leake Microsoft Corporation May 15, 2009.

AgendaWhat is .NET StockTrader?Architecture comparison between .NET Service and Java InfrastructureInteroperabilityBenchmarks, pricing dataCapacity Planner Demo

Page 4: Gregory Leake Microsoft Corporation May 15, 2009.

.NET StockTrader GoalsFocus on service-orientation

Demonstrate the performance and scalability that can be achieved with Windows Communication FoundationDemonstrate open interoperability with non-Microsoft platforms, including over WS-* Advanced Web Services protocolsIncorporates best-practice .NET and WCF programming techniques for high performance

Benchmark kit for testing alternative design decisionsMany configurable options Configure different physical deployment topologiesConfigure different backend databases (SQL Server, Oracle)Configure different WCF protocols and encoding standardsConfigure different transaction models (ADO.NET, System.Transactions)More

Learning sample applicationBuilding service-oriented applications with WCFAdvanced WCF programming techniquesProper n-tier design with clean separation of UI, business logic and DB access

Re-usable code blocksIncludes separate configuration serviceUse of SQL Server backend repository for configuration dataAllows for management of configuration data across distributed servicesLoad balancing, failover, configuration synchronization across load balanced nodesCan be implemented in any application/service

Page 5: Gregory Leake Microsoft Corporation May 15, 2009.

Key Components of SampleInstall Goal: About 5 minutes to fully working composite application

.NET StockTrader Composite Web Application

.NET StockTrader Business Services

.NET StockTrader Order Processing Service

.NET StockTrader Smart Client (WPF)Configuration Service 2.0 libraries/test harness samples.NET forms-based data loaders

SQL ServerOracleDB2

Capacity Planner Benchmark ToolIncludes .NET and Java implementations of additional WSTest benchmark workload

Windows XP/SP2, Windows Vista, Windows Server 2003, Windows Server 2008

Extensive Documentation and step-by-step tutorials

Page 6: Gregory Leake Microsoft Corporation May 15, 2009.

WebSphere .Trade6 Application

Standard Web BrowserService Tier creates/transforms Java “Model” objects representing database information; these are passed between middle-tier services and Servlets/UI layerJSPs + Java Servlets

Trade6.1 Middle Tier ServiceOperations

Java Stateless Session Bean

Trade6 Data Access Layer 1:

“EJB” Mode: IBM Recommended Best-Practice

EJB Entity Beans withContainer-Managed Persistence 2.0

Trade6 Data Access Layer 2:

“Direct” Mode

Direct JDBC Queries in a Java Class, no CMP Entity Beans

Web Service Interface Direct Activation

DB2 TradeDatabase

Oracle TradeDatabase

IBM WebSphere Trade Logical Design

AccountDataBean Class

MarketSummaryDataBean

Class

QuoteDataBean Class

OrderDataBean Class

HoldingDataBeanClass

AccountProfileDataBean Class

Core Model ClassesExposed via Web

Services

Page 7: Gregory Leake Microsoft Corporation May 15, 2009.

Use

r Inte

rface

Mid

dle

Tie

r Busin

ess

Serv

ices

Data

A

ccess

Trade Database

(SQL Server 2005, Oracle 10G)

Service Model Classes

Account Table

Account Profile Table

Orders Table

Holdings Table

Quote Table

Account Profile Class

Market Summary Class

Quote Class

Orders Class

HoldingsClass

Account Class

Data Access Layer (DAL)

Market Summary

Class

Customer Class

Orders Class

Middle-Tier Business Services Layer (BSL)

Core StockTraderServices Class

Business Transactions

Order Processing Service Class

Web Application Layer (UI) ASP.NET

Web FormsASP.NET

Web FormsASP.NET

Web FormsASP.NET Web Forms

ServiceClient Class

UI / Account Profile

UI / Order Class

UI / Total Holdings

UI / Account

UI / Holding

UI / Market Summary

UI /Quote

UI / Holdings Sorted,

Subtotaled

Transformed For Display

Core Model ClassesExposed via Web

Services

.NET StockTrader Logical Design

Page 8: Gregory Leake Microsoft Corporation May 15, 2009.

Microsoft .NET 3.5IBM WebSphere Java EE

DB2 V9.5 Oracle 11G

ADO.NET

C# Middle Tier Components

SQL Server 2005 Oracle 11G

.NET StockTrader Web Application

ASP.NET2.0

Web Service Client

Web Service Interface

IBM Trade 6.1 Web Application

Java Server Pages

Web Service Client

IBM WebSphere JavaTrade Application

MS .NET StockTraderApplication

JDBC

Enterprise JavaBeans

Web Service Interface

Web Service Interoperability

Page 9: Gregory Leake Microsoft Corporation May 15, 2009.

Microsoft .NET 3.5IBM WebSphere Java EE

DB2 V9.5 Oracle 11G

ADO.NET

C# Middle Tier Components

SQL Server 2005 Oracle 11G

Web Service Interface

JDBC

Enterprise JavaBeans

Web Service Interface

Web Service Interoperability

.NET StockTrader Smart Client

Windows Presentation Foundation

Web Service Client

.NET Windows Presentation Foundation Smart Client

Page 10: Gregory Leake Microsoft Corporation May 15, 2009.

Microsoft .NET 3.5IBM WebSphere Java EE

DB2 V9.5 Oracle 11G

ADO.NET

C# Middle Tier Components

SQL Server 2005 Oracle 11G

Web Service Interface

JDBC

Enterprise JavaBeans

Web Service Interface

PHP Web Application

Apache Axis2/C

Web Service Client

WSO2 Web Services Framework for PHPhttp://wso2.org/interop/stocktrader

Web Service Interoperability

Page 11: Gregory Leake Microsoft Corporation May 15, 2009.

MS SQL Server 2005Other RDBMs

Windows Communication FoundationUsing WS-* Advanced Web Services

For Message-level Security

.NET StockTrader Business Service Layer

Web Service InteroperabilityService to Service Interoperability

PHP Data Access

WSO2 Web Services

Framework for PHP

WS-* Interface

PHP Order Processing

Service

JDBC Data Access

WSO2 Web Services

Application Server

Java Order Processing

Service

ADO.NET Data

Access

.NET C# WCF Service

.NET OrderProcessing

Service

WSO2 Services: http://wso2.org/interop/stocktrader

WS-* Interface WS-* Interface

Page 12: Gregory Leake Microsoft Corporation May 15, 2009.

Demo: Interop

Page 13: Gregory Leake Microsoft Corporation May 15, 2009.

Benchmark OverviewPlatforms Compared

IBM Power 570 and AIX running IBM WebSphere 7Hewlett Packard BladeSystem and Microsoft Windows Server 2008 running IBM WebSphere 7Hewlett Packard BladeSystem and Microsoft Windows Server 2008 running Microsoft .NET

Middle-Tier Workloads ComparedIBM Trade Web Application BenchmarkIBM Trade Web Services BenchmarkSun Microsystems WSTest Benchmark

MetricsPerformance measured in peak throughput achievedCost of Platforms as testedPrice-performance ratios ($ cost per TPS)

Page 14: Gregory Leake Microsoft Corporation May 15, 2009.

Testing Details

All source code published/freely downloadableFull disclosure benchmark report

Test methodologyTuning detailsPricing details

Capacity Planner ToolTurnkey tool customers can use to compare different platforms on their ownProvides performance and price-performance metrics

All available at http://msdn.microsoft.com/stocktrader

Page 15: Gregory Leake Microsoft Corporation May 15, 2009.

The TestsTrade Web Application Benchmark

Based on IBM’s Trade benchmark application for WebSphereMigrated to Microsoft .NETTests overall performance of a data-driven, transaction-oriented Web application

Trade Middle Tier Web Services BenchmarkBased on IBM’s Trade benchmark application for WebSphereMigrated to Microsoft .NETTests middle-tier Web Service performance comparing WebSphere 7/JAX-WS to Microsoft .NET/Windows Communication Foundation (WCF)

WSTest Web Services BenchmarkBased on Sun Microsystems-defined WSTest benchmarkTests middle-tier Web Services isolating Web Service and XML serialization performance (JAX-WS vs. WCF)

Page 16: Gregory Leake Microsoft Corporation May 15, 2009.

Overview Of ResultsIBM Power 570 with

WebSphere 7 and AIX 5.3

Hewlett Packard BladeSystem C7000 with WebSphere 7

and Windows Server 2008

Hewlett Packard BladeSystem C7000 with Microsoft .NET

and Windows Server 2008

Total Hardware + Operating System Costs

$215,728.08 $50,161.00 $50,161.00

Middle Tier Application Server Licensing Costs

$44,400.00 $37,000.00 $0.00

Total Middle Tier System Cost as Tested $260,128.08 $87,161.00 $50,161.00

Trade Web Application Benchmark Sustained Peak TPS

8,016 transactions per second

11,004 transactions per second

12,576 transactions per second

Trade Middle Tier Web Service Benchmark Sustained Peak TPS

10,571 transactions per second

14,468 transactions per second

22,262 transactions per second

WSTest EchoList Test Sustained Peak TPS 10,536 transactions per

second15,973 transactions per second

22,291 transactions per second

Page 17: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Web Application Benchmark

IBM Trade for WebSphere 7Java Server Pages (JSPs)Java ServletsDirect JDBC access to IBM DB2 9.5

Microsoft .NET StockTraderASP.NETWeb FormsDirect ADO.NET access to Microsoft SQL Server 2008

Middle-tier application servers tested to ~100% CPU utilization in all cases

Accurately measures IBM WebSphere 7 and Microsoft .NET server performance with no artificial or external bottlenecks

Page 18: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Web Application Benchmark Test Bed

Page 19: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Web Application Benchmark Performance

Page 20: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Web Application Benchmark Price-Performance

Page 21: Gregory Leake Microsoft Corporation May 15, 2009.

Discussion PointsMicrosoft .NET vs. IBM WebSphere 7

HP BladeSystem with .NET/Windows Server 2008 57% better throughput than IBM Power 570/WebSphere 7Yet WebSphere 7/Power 570 is over 5 times more expensive than HP/.NET/Windows Server 2008 as tested

IBM WebSphere 7 on Power6/AIX vs. IBM WebSphere 7 on Windows Server 2008

HP BladeSystem with WebSphere 7/Windows Server 2008 37% better throughput than WebSphere 7/IBM Power 570Yet WebSphere 7/Power 570 is over 3 times more expensive than HP/WebSphere 7/Windows Server 2008 as tested

Page 22: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Benchmark

IBM Trade for WebSphere 7Trade Business Services exposed via JAX-WSBacking business logicDirect JDBC access to IBM DB2 9.5

Microsoft .NET StockTraderTrade Business Services exposed via .NET/WCFBacking business logicDirect ADO.NET access to Microsoft SQL Server 2008

Middle-tier application servers tested to ~100% CPU utilization in all cases

Accurately measures IBM WebSphere 7 and Microsoft .NET server performance with no artificial or external bottlenecks

Page 23: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Benchmark Test Bed

Page 24: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Benchmark Performance

Page 25: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Price-Performance

Page 26: Gregory Leake Microsoft Corporation May 15, 2009.

Discussion PointsMicrosoft .NET vs. IBM WebSphere 7

HP BladeSystem with .NET/Windows Server 2008 by 111% better throughput than IBM Power 570/WebSphere 7Yet WebSphere 7/Power 570 is over 5 times more expensive than HP/.NET/Windows Server 2008 as tested

IBM WebSphere 7 on Power6/AIX vs. IBM WebSphere 7 on Windows Server 2008

HP BladeSystem with WebSphere 7/Windows Server 2008 37% better throughput than WebSphere 7/IBM Power 570Yet WebSphere 7/Power 570 is over 3 times more expensive than HP/WebSphere 7/Windows Server 2008 as tested

Page 27: Gregory Leake Microsoft Corporation May 15, 2009.

WSTest Web Services Benchmark

Benchmark originally created by Sun MicrosystemsIsolates Web Service performance

No business logicNo data accessMeasures SOAP network stack performance and XML serialization performance

WSTest for WebSphere 7Web Services based on JAX-WS

WSTest for Microsoft .NETWeb Services based on .NET 3.5 and WCF

Middle-tier application servers tested to ~100% CPU utilization in all cases

Accurately measures IBM WebSphere 7 and Microsoft .NET server performance with no artificial or external bottlenecks

Page 28: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Benchmark Test Bed

Page 29: Gregory Leake Microsoft Corporation May 15, 2009.

WSTest Web Services Benchmark Performance

Page 30: Gregory Leake Microsoft Corporation May 15, 2009.

Trade Middle Tier Web Services Price-Performance

Page 31: Gregory Leake Microsoft Corporation May 15, 2009.

Discussion PointsMicrosoft .NET vs. IBM WebSphere 7

HP BladeSystem with .NET/Windows Server 2008 at least 112% better throughput than IBM Power 570/WebSphere 7Yet WebSphere 7/Power 570 is over 5 times more expensive than HP/.NET/Windows Server 2008 as tested

IBM WebSphere 7 on Power6/AIX vs. IBM WebSphere 7 on Windows Server 2008

HP BladeSystem with WebSphere 7/Windows Server 2008 52% better throughput than WebSphere 7/IBM Power 570Yet WebSphere 7/Power 570 is over 3 times more expensive than HP/WebSphere 7/Windows Server 2008 as tested

Page 32: Gregory Leake Microsoft Corporation May 15, 2009.

ConclusionsDramatic findings illustrate large potential cost savingsMigrate IBM WebSphere 7 to Windows Server 2008 from IBM Power6/RISC platforms

Save up to 2/3 of overall cost and get better performance! (on systems as tested)

Utilize Microsoft .NET for best performance and lowest cost of middle tier platform

Save up to 4/5th of overall cost and get the best performance overall (on systems as tested)

Complete benchmark report, sourceshttp://msdn.microsoft.com/stocktrader

Page 33: Gregory Leake Microsoft Corporation May 15, 2009.

Complete an evaluation on CommNet and enter to win!

Page 34: Gregory Leake Microsoft Corporation May 15, 2009.

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.