gregory leake microsoft corporation may 15, 2009
TRANSCRIPT
SOA313-StockTrader Sample Application Case Study: Performance and Java InteropGregory LeakeMicrosoft CorporationMay 15, 2009
AgendaWhat is .NET StockTrader?Architecture comparison between .NET Service and Java InfrastructureInteroperabilityBenchmarks, pricing dataCapacity Planner Demo
.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
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
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
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
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
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
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
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
Demo: Interop
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)
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
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)
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
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
Trade Web Application Benchmark Test Bed
Trade Web Application Benchmark Performance
Trade Web Application Benchmark Price-Performance
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
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
Trade Middle Tier Web Services Benchmark Test Bed
Trade Middle Tier Web Services Benchmark Performance
Trade Middle Tier Web Services Price-Performance
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
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
Trade Middle Tier Web Services Benchmark Test Bed
WSTest Web Services Benchmark Performance
Trade Middle Tier Web Services Price-Performance
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
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
Complete an evaluation on CommNet and enter to win!
© 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.