.NET vs J2EE An Architectural and Performance Comparison of.NET and J2EE Applications Greg Leake, Microsoft Corporation Vertigo Software, Inc. James Duff.

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Welcome to Middleware Joseph Amrithraj
J2EE Architecture Overview
.NET 3.5 SP1 New features Enhancements Visual Studio 2008 SP1 New features Enhancements Additional features/enhancements.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
CSIS0402 System Architecture K.P. Chow University of Hong Kong.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
ManageEngine TM Applications Manager 8 Monitoring Custom Applications.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
ISYS 546 Client/Server Database Application Development.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Lecture 2 Web application architecture. Themes Architecture : The large scale structure of a system, especially a computer system Design choice: The need.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 1.
J2EE Java2 Enterprise Edition by Damian Borth. Contents Introduction Architectures styles Components Scenarios Roles Processing a HTTP request.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
What’s new for Rich Clients? Martin Parry Developer & Platform Group Microsoft Ltd
Capacity Planning in SharePoint Capacity Planning Process of evaluating a technology … Deciding … Hardware … Variety of Ways Different Services.
Understanding and Managing WebSphere V5
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Java Pet Store Application. Outline Introduction Introduction Information Layer Information Layer Application Layer Application Layer Infrastructure Layer.
Web-based Software Development - An introduction.
Microsoft.Net vs. J2EE Suresh Ramachandran Duke Energy.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 11 Reality Check: Java Programming in the Real World.
CIS 375—Web App Dev II ASP.NET 2 Introducing Web Forms.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
An Introduction to ASP.NET Ed Dunhill blogs.msdn.com/edunhill SLIDE7.
ISYS 512 Business Application Design and Development with.Net David Chao.
Introduction to .NET Rui Ye.
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
How to Deploy, Monitor and Manage Middle-Tier Applications Lars Ewe, Principal Product Manager Valerie K. Kane, Group Manager Oracle Corporation Session.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Gregory Leake Microsoft Corporation May 15, 2009.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
The Web Architecture and ASP.NET. Slide 2 Review of the Web (1) It began with HTTP and HTML, which delivers static Web pages to browsers which would render.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Designing a Scalable Enterprise Project Management Architecture Ken Toole Platform Test Manager MS Project Microsoft Corporation.
Introducing ASP.NET 2.0. Internet Technologies WWW Architecture Web Server Client Server Request Response Network HTTP TCP/IP PC/Mac/Unix + Browser (IE,
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
From DNA to.NET Design Path. Objectives Sketch up a typical Win DNA Application Sketch up the.NET version Compare Design and Implementation Advantages.
DotNet Vs. J2EE Mosaad Alomery CIS Mosaad Alomery - CIS 764 the internet platform –Services Electronic commerce Communications ( , news, chat,
Why data services? Common challenges when creating rich web applications Creating rich web applications with data services Future scenarios & roadmap.
An Introduction to JavaServer™ Pages Prepared by Nicole Swan.
An Introduction to JavaServer™ Pages Prepared by Nicole Swan.
Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features.
WEB SERVER SOFTWARE FEATURE SETS
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
ISYS 512 Business Application Design and Development with.Net David Chao.
Architecting Real-World Enterprise Application. Agenda CPR - Background Challenges in the Architecture Architecture Details Q & A Summary.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Apache Struts Technology A MVC Framework for Java Web Applications.
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
The Holmes Platform and Applications
Building Enterprise Applications Using Visual Studio®
Suresh Ramachandran Duke Energy
Web-based Software Development - An introduction
Introduction to ASP.NET 2.0
MSIS 655 Advanced Business Applications Programming
DAT381 Team Development with SQL Server 2005
Visual Studio 2005 Tools For Office: Creating A Multi-tier Application
UFCEUS-20-2 Web Programming
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

.NET vs J2EE An Architectural and Performance Comparison of.NET and J2EE Applications Greg Leake, Microsoft Corporation Vertigo Software, Inc. James Duff Mike Hanley Scott Stanfield

Agenda Architecture discussion Architecture discussion  WinDNA,.NET and J2EE Nile performance comparison Nile performance comparison  WinDNA,.NET and J2EE Demo: Performance walkthrough and tuning scenarios Demo: Performance walkthrough and tuning scenarios  SQL Server: WinDNA .NET  Database tuning  Middle tier tuning and output caching  Oracle:.NET to Oracle using OleDB vs. new MS.NET Oracle provider Pet Store re-visited Pet Store re-visited .NET Pet Shop vs. latest Oracle Java Pet Store

Architecture: DNA vs.NET.NET Presentation BusinessLogic Data CLR.NET Assembly ADO.NET (Can use COM+ Services; e.g. transactions) Windows DNA Web Forms Server Controls Code-Behind ASP.NET IIS SQL Server Oracle DB/2, etc. COM ASP and IIS Inline ASP VBScript/JScript VB/VC ADO (Can use COM+ Services; e.g. transactions) SQL Server Oracle DB/2, etc.

Presentation BusinessLogic Data J2EE CLR.NET Assembly ADO.NET (Can use COM+ Services; e.g. transactions) Web Forms Server Controls Code-Behind ASP.NET IIS JavaBeans EJBs JSP Servlets Runs on most major application/web servers Support for most databases via Type 4 drivers J2SE/EE JDBC.NET SQL Server Oracle DB/2, etc. SQL Server Oracle DB/2, etc. Architecture: J2EE vs.NET

Java Design Patterns Model View Controller (MVC) design model Model View Controller (MVC) design model  Separates the data representation from presentation (separate a Model from its View)  Separates the application behavior from the data representation (separate a Controller from the Model) ClientView Model Web Browser search.html JavaBeans J2EE MVC Design search.jsp Controller find.jsp actions.jsp Servlets Entity EJB Session EJB Request Response Forward Requests

.NET Design Patterns.NET Design Techniques still apply –.NET makes them easier Techniques still apply –.NET makes them easier ClientWeb FormsCode-Behind Web Browser Request Response search.aspx Server-Side Events Server Controls Custom User Controls.NET Assemblies Enterprise Services COM+

Nile Application Server Benchmark

The Nile Application Server Benchmark Created by Doculabs and has been used extensively by Ziff Davis Created by Doculabs and has been used extensively by Ziff Davis End-to-end ecommerce application End-to-end ecommerce application Application includes Application includes  90% Data-driven pages  Use of scripting and components  Ad-hoc database searching and browsing  Database transactions  User authentication/login  Realistic dataset  Session state (shopping cart)  Optionally can highlight dynamic page output caching

The Nile Tests Implementations tested Implementations tested  MS.NET implemented with C#/ASP.NET  ASP using VB6 COM+ components  ISAPI/ATL Server using VC  Two leading J2EE App Servers using JSPs  Two leading J2EE App Servers using EJBs Tested in large-scale performance lab Tested in large-scale performance lab All materials and source code published on Web All materials and source code published on Web .NET vs. WebSphere benchmark kit  Customers can replicate/test for themselves

Hardware Configuration App Server: Compaq , 4 and MHz Pentium III DB Server: Compaq x 550 MHz Pentium III Network: Cisco gigabit ethernet Clients and load test tool: 100 clients running Benchmark Factory 2.6

The Nile J2EE Results: Peak Throughput CPUs Pages Served Per Second 4 CPUs 2 CPUs J2EE App Server A JSP/Linux tier J2EE App Server B EJB/Linux tier VB-COM+W2K tier J2EE App Server B JSP/Linux tier ASP/W2K 2-tier J2EE App Server A EJB/Linux tier 400

The Nile J2EE Results: Peak Throughput CPUs Pages Served Per Second 4 CPUs 2 CPUs J2EE App Server A EJB/Linux J2EE App Server B EJB/Linux tier VB-COM+W2K tier tier 400 C++ ATL Server W2K tier ASP.NET C# W2K tier

Nile.NET vs. Websphere 4.0 Benchmark Kit Benchmark kit allows customers to benchmark.NET and WebSphere 4.0 directly Benchmark kit allows customers to benchmark.NET and WebSphere 4.0 directly Based on Nile application Based on Nile application  Customers can get full source, tuning guidelines  Customers can fully compare implementations for.NET, ASP/COM+, ISAPI, JSP, and EJB

Nile Bookstore demo demo

Nile Load Tests 1. Nile VB/COM+/ASP 2. Nile C# (Managed SQL Server Provider) 3. Database tuning for Nile C# (Index) 4. Database tuning for Nile VB/COM+/ASP 5. Output Caching 6. Nile C# Oracle (OLE DB Provider) 7. Nile C# Oracle (Managed Oracle Provider)

Performance Results Test Pages / Second Nile VB/COM+/ASP ( Server / Library) 100 / 190 Nile C# (Managed SQL Server Provider) 250 Database tuning for Nile C# 414 Database tuning for Nile VB/COM+/ASP 200 Output Caching 500+ Nile C# Oracle (OLE DB Provider) 195 Nile C# Oracle (Managed Oracle Provider Beta) 280

Implementing Sun’s J2EE Pet Store in Microsoft.NET

What is the Java Pet Store? Java Pet Store is Sun’s primary Blueprint application for J2EE Java Pet Store is Sun’s primary Blueprint application for J2EE  Source code: Illustrates J2EE best coding practices for enterprise applications Illustrates J2EE best coding practices for enterprise applications Ships as sample application in Ships as sample application in  IBM WebSphere 4.0  Oracle Application Server 9i  Sun iPlanet  BEA WebLogic Highlighted extensively at JavaOne 2001 as the primary J2EE showcase application Highlighted extensively at JavaOne 2001 as the primary J2EE showcase application

According to SUN Java Pet Store is…. “A full-fledged online store illustrating how to best leverage J2EE technologies.” “…a sample application which illustrates basic usage of J2EE technology, and demonstrates current best practices in system design.“

What is the.NET Pet Shop? An implementation of Java Pet Store using a.NET best-practice architecture An implementation of Java Pet Store using a.NET best-practice architecture  Source code:  Implements the exact same functionality (v 1.1.2)  Fully factored 3-tier logical design using C#  Illustrates best coding practices for.NET Framework Application extension to illustrate targeting of mobile devices with.NET Application extension to illustrate targeting of mobile devices with.NET Application extension to illustrate creating and consuming Web Services with.NET Application extension to illustrate creating and consuming Web Services with.NET

Porting Java Pet Store to.NET Java Pet Store Lines of Code Required 3,484.NET Pet Shop 14,273 User Interface 1,881 5,891 Total Lines of Code Middle Tier 863 5,404 Data Tier Config 56 2,566

What About Performance and Scalability? Oracle’s 9i Application Server Performance Challenge Published using Java Pet Store Oracle’s 9i Application Server Performance Challenge Published using Java Pet Store Oracle-published data and benchmark kit allowed us to replicate their tests with.NET Pet Shop Oracle-published data and benchmark kit allowed us to replicate their tests with.NET Pet Shop Ran tests on similar hardware Ran tests on similar hardware  100 mbit network  2 CPU Application Server (J2EE vs. MS.NET)  4 CPU Database Server (Oracle 9i vs. SQL Server 2000) Tested Oracle-published load levels using same think time and Oracle’s own test scripts Tested Oracle-published load levels using same think time and Oracle’s own test scripts Tested.NET version at even higher load levels than Oracle’s J2EE tests Tested.NET version at even higher load levels than Oracle’s J2EE tests

.NET vs. J2EE Performance Metrics.NET Pet Shop is 28 times faster than Oracle’s J2EE version with caching.NET Pet Shop is 15 times faster than Oracle’s J2EE version with no caching.NET Supports 8 times as many concurrent users as Oracle’s J2EE Version (at 1-second page response level)

New Oracle Data Users Oracle 9iAS July 2001 Sun Original Java Pet Store (seconds) Oracle 9iAS March 2002 “New Optimized” Java Pet Store (seconds).NET Pet Shop 1.5 December % functionally equivalent to Java Pet Store (seconds) Not tested

New Oracle Data Oracle new optimized Java Pet Store 2500% faster than original Sun Java Pet Store Oracle new optimized Java Pet Store 2500% faster than original Sun Java Pet Store Oracle reports it is now 22 times faster than.NET! Oracle reports it is now 22 times faster than.NET! Is this possible? Is this possible?

The Answer: No New Oracle version is a faster implementation than original Java PetStore….. New Oracle version is a faster implementation than original Java PetStore….. BUT IT’S NOT THAT FAST: Fact: Oracle ran test scripts with no error checking Fact: Oracle ran test scripts with no error checking  Cannot distinguish between Http error (e.g. Error 404) and valid page  Issue found by and verified by Mercury Interactive Suspect: Oracle equated “response time” to time to first byte delivered to browser vs. time to last byte (completion of page/transaction time) Suspect: Oracle equated “response time” to time to first byte delivered to browser vs. time to last byte (completion of page/transaction time)  Based on extensive internal testing over past 2 weeks  First byte delivered to browser before server-side processing complete (top static banner vs. database-driven portions of pages)  Time to first byte is not true transaction time, although it is sometimes called “response time” depending on load test tool.NET results based on “time to last byte” and completion of entire page.NET results based on “time to last byte” and completion of entire page  Full error checking on all.NET tests runs

But How to Prove? 1. We will show you here in a live load test bakeoff 2. We are calling for an independent audit of the results, with both solutions tested by a third party in neutral lab with same load test software  We will fully participate in this audit  Hopefully Oracle will participate 3. Best of all, you can easily test both apps for yourself, all source code available as well as test scripts. We absolutely encourage you to do your own testing and decide for yourself!

.NET PetShop demo demo

.NET PetShop Load Tests 1. Oracle Java Pet Store 2..NET PetShop

Performance Results: Throughput User Load (no think time).NET Pet Shop 1.5 Pages/sec Oracle New Java Pet Store Pages/sec errors

User Load (no think time).NET Pet Shop 1.5 Response Time (seconds) Oracle New Java Pet Store Response Time (seconds) errors Performance Results: Transaction times (time to last byte)

Summary.NET Web applications significantly outperform WinDNA apps.NET Web applications significantly outperform WinDNA apps.NET outperforms IBM WebSphere 4.0 and WebLogic 6.1 on Nile benchmark by factor of 4.NET outperforms IBM WebSphere 4.0 and WebLogic 6.1 on Nile benchmark by factor of 4 Testing and tuning under load is critical Testing and tuning under load is critical PetShop: Test it for yourself: PetShop: Test it for yourself: All materials on Web, customers can run their own tests All materials on Web, customers can run their own tests 

© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.