36
cs451 J2EE vs. .NET – An Executive Look Written by Sameh Younis http://www.netreverie.com/Article_J2EEvsNET.asp

J2EE vs. .NET – An Executive Look

Embed Size (px)

DESCRIPTION

J2EE vs. .NET – An Executive Look. Written by Sameh Younis http://www.netreverie.com/Article_J2EEvsNET.asp. Overview. A n executive-level comparative analysis between Sun’s J2EE and Microsoft’s .NET platforms. - PowerPoint PPT Presentation

Citation preview

Page 1: J2EE vs. .NET – An Executive Look

cs451

J2EE vs. .NET – An Executive Look

 

Written by Sameh Younis

http://www.netreverie.com/Article_J2EEvsNET.asp

Page 2: J2EE vs. .NET – An Executive Look

cs451

Overview

An executive-level comparative analysis between Sun’s J2EE and Microsoft’s .NET platforms.

Focus on the main issues that drive a successful IT strategy, which are collaboration and profitability. 

Present a high-level architecture comparison between the two platforms. 

Stick with the facts supported by references to third parties industry leaders, away from the vendor’s marketing propaganda.

Page 3: J2EE vs. .NET – An Executive Look

cs451

Collaboration/Profitability Collaboration: it must achieve certain capabilities:

Interoperability - the systems must be able to share information with collaborator systems.

Availability - systems must be highly available. Throughput - systems must be able to support high

transactional throughput. Profitability:  Overall system cost must be kept as low as

possible. The most important factors are: Development Costs - the cost of architecting and implementing

the system. System Management Costs - the cost of managing the system. Unit of Work Costs - the cost of processing a business

transaction. Scalability Costs - the cost of adding throughput to increase the

customer base.

Page 4: J2EE vs. .NET – An Executive Look

cs451

J2EE & .NET Platform

J2EE: a specification architected and controlled by Sun, and is not a product. IBM's WebSphere and BEA's WebLogic are the most widely[1] vendor/product implementation of J2EE.

Microsoft's .NET platform: a family of products rather than specifications, with specifications used primarily to define points of interoperability.

J2EE and .NET (Gartner's[2] - by 2003, 75% of new application projects based on .NET & J2EE) share a broad common foundation of standards adopted the multi-tiered architecture approach that

typically implements applications in different logical layers that distinct presentation from internal structure (business logic and data management).

Page 5: J2EE vs. .NET – An Executive Look

cs451

Similarities b/w J2EE & .NET Platform

Inherently object-oriented natures the OO (Object Oriented) approach to

mainstream enterprise computing, with powerful OO frameworks (class libraries) for services such as enterprise components management, object persistence, etc.

UML's object orientation is ideal for the J2EE and .NET implementation model.

The use of a virtual machine (VM) architecture: Application development tools produce intermediate-level code instead of platform-specific binary code, which means the VM interprets that code in real time or performs Just-In-Time (JIT) compilation.

Share a broad common foundation that implements the multi-tiered approach. 

Page 6: J2EE vs. .NET – An Executive Look

cs451

J2EE Platform

 

Page 7: J2EE vs. .NET – An Executive Look

cs451

.NET Platform

                                                                                                                                    

 

Page 8: J2EE vs. .NET – An Executive Look

cs451

Differences between J2EE and the .NET Platform

Page 9: J2EE vs. .NET – An Executive Look

cs451

Vendor Neutrality The .NET platform is not vendor neutral “so far”, it is tied to

the Microsoft.  However, Microsoft has implemented an open-source policy for

selected academic institutions.  introduced different levels of Partner Programs[6] with different

levels of engagements with its business and technology. There is on going progress that started on 2003 to port .NET to non-

Microsoft platform, e.g. Ximian[7].  In 2002, over 37 vendors were J2EE licensees and 17 sold

J2EE compatible application servers[8]. Cross-vendor portability for J2EE is definitely not the imaginary

"write once, run anywhere" scenario[9]. This is due in part to its organic growth model, where vendors add their own features and other ex-tensions ahead of the J2EE specification[10] process.

J2EE vendor portability can be achieved by focusing on the parts of J2EE that are fully covered in the J2EE specification—such as servlets—but doing so is currently very constraining and even impossible[11]. For example, EJB deployment dimensions aren't completely addressed in the J2EE specification[12].

Page 10: J2EE vs. .NET – An Executive Look

cs451

Platform Maturity

 The first J2EE specification came out in 1998 and first beta product in 1999.

The first Microsoft .NET equivalent “Microsoft DNA and MTS” came out in 1996.  Microsoft .NET was the evolution of the Microsoft DNA, e.g. MTS to COM+ becomes an important piece of the .NET Enterprise Services.

Microsoft .NET have delivered high volume and high reliable web sites such as Reuters, NASDAQ, BMO Financial Group, DELL and many others[13

Page 11: J2EE vs. .NET – An Executive Look

cs451

Interoperability Web services are rapidly becoming the unique

solution for e-Collaboration.  offer a self-describing, vendor- and technology-independent

means of inter-application communication over the Internet. Universal Description, Discovery, and Integration

(UDDI) standards are owned by a consortium[14] led by Ariba, IBM, and Microsoft, and includes more than 100 supporting companies, including Sun. independent of the .NET platform, however most of the UDDI

related activity was pioneered by Microsoft. Although that Sun is a member of UDDI consortium but

UDDI standards are not incorporated into J2EE including the most basic of UDDI, i.e. SOAP [15]

 

Page 12: J2EE vs. .NET – An Executive Look

cs451

Interoperability (2) Sun's interoperability strategy for J2EE is based

on the communications protocol called IIOP: Only supports J2EE and CORBA, is not designed

to transport over the Internet and current specification of IIOP is inadequate to

ensure interoperability[16]. The .NET platform has a much stronger

technology neutral e-Collaboration strategy than does J2EE. the .NET platform have a set of application

servers that supports other forms of e-Collaboration such as SAP connector, EDI connector and others[17].

 

Page 13: J2EE vs. .NET – An Executive Look

cs451

Scalability & Performance

Scalability: the ability to add more workload and achieve maximum throughput.  Its measurement is a function of the software platform and not the underlying hardware.

Performance: the speed of a single unit of work under different workloads. Its measurement is a function of the software platform and not the underlying hardware.

All existing J2EE benchmarks - real systems may or may not be able to actually achieve. Because of the J2EE portability, it happens to run on different sets of hardware that should not be a factor in measuring platform scalability.

If a unit of work costs 10 cents on .NET platform, that same unit of work will probably cost 50 cents to a dollar on J2EE/Unix[18].

Page 14: J2EE vs. .NET – An Executive Look

cs451

Benchmark Testing Results Sun released an enterprise application (Basic data-

driven Web application) benchmark XML Web service benchmark called “PetShop” to be

the blueprint of the J2EE platform, Microsoft implemented on the .NET platform - an

extremely higher performance/scalability than the J2EE version. 

The Middleware Company[19] announced that it was not a fair comparison: rewrote second revised, and fully optimized J2EE™ application and re-ran the comparison tests.  The new results show .NET performance & scalability

much higher than the J2EE implementation [20]

Page 15: J2EE vs. .NET – An Executive Look

cs451

 

 

Page 16: J2EE vs. .NET – An Executive Look

cs451

 

Page 17: J2EE vs. .NET – An Executive Look

cs451

 

Page 18: J2EE vs. .NET – An Executive Look

cs451

 

Page 19: J2EE vs. .NET – An Executive Look

cs451

Framework & Productivity Tools

Framework support decreases development time and increases productivity by providing sets of libraries that takes care of system plumbing.

The .NET platform: an eCommerce framework called Commerce Server[21] (reduce development costs, probably by a factor of at least 10)

There is no equivalent vendor-neutral framework in the J2EE arena[22].

The .NET Frame - a huge system libraries (called Namespaces) combined with the unique development tool (Visual Studio .NET) dramatically reduce development time and thus cost. 

J2EE’s best development tool IBM’s WebSphere is out of competition. 

 

Page 20: J2EE vs. .NET – An Executive Look

cs451

Productivity

The Middleware Company[23] benchmark tests shows .NET superiority, for lines of code needed to develop same enterprise application using these development tools[24].

Page 21: J2EE vs. .NET – An Executive Look

cs451

Programming Language

J2EE supports Java, and only Java. Although both IBM's WebSphere and BEA's WebLogic

support other languages, neither does it through their J2EE technology.

two official ways in the J2EE platform to access other languages, through the Java Native Interface through CORBA interoperability

Microsoft .NET platform supports dozens of well known programming languages including Java[25], and open to third-parties to add more .NET enabled programming languages.

Page 22: J2EE vs. .NET – An Executive Look

cs451

Development Skills Required

In general Java programmers are paid about 25% higher

salaries than equivalent VB or Cobol programmers.  This will increase the development cost for

J2EE solutions over .NET.  Also, retraining of existing VB or Cobol

programmers on Java constitutes very high cost, the other option will be outsourcing.

Page 23: J2EE vs. .NET – An Executive Look

cs451

Portability

J2EE server applications supports operating system portability stick with a given J2EE vendor and a given database vendor due

to differences in vendor’s implementations extensions of the J2EE specification.

Microsoft .NET server applications only run on Windows Server operating systems.

Portability is not the path to Scalability. The highest scalability is achieved by writing for a highly

scalable platform and then leveraging that platform using the highest hardware possible.

Portability is beneficial to Independent software vendors (ISVs).

Page 24: J2EE vs. .NET – An Executive Look

cs451

Client Device Independence

J2EE Java Applets/Microsoft ActiveX packages: are packaged code that run in browser and automatically installed on client (if enabled by client)

J2EE Java Servlets and Java Active Pages / Microsoft Active Server Pages - the programmer's responsibility to determine the ultimate destination browser and how to generate HTML to best take advantage of that thin client system.

Page 25: J2EE vs. .NET – An Executive Look

cs451

Client Device Independence (2) This Java approach has problems:

requires a lot of code on the presentation tier, since every possible client system requires a different code path.

difficult to test the code with every possible client system. difficult to add new thin clients to an existing application,

since to do so involves searching through, and modifying a tremendous amount of presentation tier logic.

The .NET approach requires to write device independent code that interacts

with visual controls. It is the control, not the programmer, that is responsible

for determining what HTML to deliver, based on the capabilities of the client device.

In the .NET Framework model, one can forget that such a thing as HTML even exists!

Page 26: J2EE vs. .NET – An Executive Look

cs451

Legacy Integration

 J2EE provides legacy integration through multiple avenues[26]: The Java Message Service (JMS) to integrate with

existing messaging systems. Web services to integrate with any system. CORBA for interfacing with code written in other

languages that may exist on remote machines. JNI for loading native libraries and calling them locally. J2EE Connector Architecture (JCA). The JCA is a

specification for plugging in resource adapters that understand how to communicate with existing systems, such as SAP R/3, CICS/COBOL, Siebel and others.

J2EE

.NET

100%50%

Page 27: J2EE vs. .NET – An Executive Look

cs451

Legacy Integration(2)

 .NET provides legacy integration through multiple avenues: Host Integration[27] Server 2000. COM Transaction Integrator (COM TI) can be used for

collaborating transactions across mainframe systems. Microsoft Message Queue (MSMQ) can integrate with

legacy systems built using IBM MQSeries. BizTalk[28] Server 2000 can be used to integrate with

systems based on B2B protocols, such as Electronic Data Interchange (EDI). Also provides integration connectors to SAP, Siebel, Onyx, and J.D. Edwards, and more.

J2EE

.NET

100%50%

Page 28: J2EE vs. .NET – An Executive Look

cs451

Software licensing cost:

The cost of the licensing requirement to deploy J2EE is higher than deploying .NET solutions [29].

  .NET/Visual Studio .NET J2EE /IBM WebSphere 4.0

Estimated software purchase costs to deploy Web Services on a single server with full authenticated per-user access

Total:  $5,998 USDDetail:  1 x 8-CPU Application

Servers to Host Web Services running Windows 2000 Advanced Server with .NET Framework @ $3999.00 per server + 1 Internet Connector License @ $1,999 per server.

Total:  $64,000 USDDetail:  1 x 8-CPU Application

Servers to Host Web Services running IBM WebSphere 4.0 Advanced Single Server Edition (on Solaris, W2k Or AIX) @ $8,000 per CPU

Estimated software purchase costs to deploy Web Services to a 4-server Cluster

Total:  $23,992 USDDetail:  4 x 8-CPU Application

Servers to Host Web Services running Windows 2000 Advanced Server with .NET Framework @ $3999.00 per server + 4 Internet Connector Licenses @ $1,999 per server.

Total:  $384,000 USDDetail:  4 x 8-CPU Application

Servers to Host Web Services running IBM WebSphere 4.0 Advanced Edition (on Solaris, W2k or AIX) @ $12,000 per CPU

Page 29: J2EE vs. .NET – An Executive Look

cs451

Taking the Decision: J2EE or .NET

How important is the Time-to-Market for your business?

The most important way to speed time to market is to choose a Web services platform that allows rapid application development. This enables developers to write and maintain code quickly, lowering development time.

The .NET platform and development tools (Visual Studio .NET) has proven to have the lead over J2EE platform and development tools. .NET is independent of client device, and allows for user

interfaces to be rendered to alternative user interfaces without rewriting code.

.NET provides business process management and E-Commerce capabilities, which are not available in most J2EE implementations.

Page 30: J2EE vs. .NET – An Executive Look

cs451

Taking the Decision: J2EE or .NET

Is multi-vendor support an important consideration for your business? Only one vendor supports .NET. Multiple vendors support J2EE. However, cross-vendor portability

for J2EE is definitely not realistic because vendors add their own Web service features and other ex-tensions ahead of the J2EE specification process.

To achieve multi-vendor support you will need to implement only the parts of J2EE that are fully covered in the J2EE specification, but doing so will constrain your development capabilities.

How many platforms you want your shop to supports? .NET addresses Windows Servers platforms. J2EE products are available on a wide variety of platforms. Practically, you will stick with only one platform. Windows Server platforms provide less cost in terms of hardware,

software and on-going support.

Page 31: J2EE vs. .NET – An Executive Look

cs451

Taking the Decision: J2EE or .NET

Do you want to be restricted your shop to only one programming language? J2EE specification only supports Java. .NET supports dozens of well known programming

languages. Are you willing to replace or re-train all your staff?

To implement J2EE you will need to replace your non-Java programmers (costly) re-train them (very high cost) or outsource.

Are you willing to through out your previous software investments? In most cases, it’s more cost effective to keep your

current investments and continue development on your existing platform.

Page 32: J2EE vs. .NET – An Executive Look

cs451

Taking the Decision: J2EE or .NET

Is following industry standards, in terms of platform and interoperability, important to your business? Both J2EE and .NET will become the industry standard for

enterprise platforms, with equal market share by 2005[30]. Both J2EE and .NET supports legacy integration with a

variety of systems , such as SAP R/3, CICS/COBOL, Siebel and others.

.NET fully supports UDDI and WDSL Web services standard, J2EE does not.

.NET fully supports SOAP in its Web services implementation, J2EE does not.

Are scalability and performance critical to your business? .NET has proven to have higher scalability and performance

[31].

Page 33: J2EE vs. .NET – An Executive Look

cs451

Full listing[32] of equivalencies between J2EE and the .NET platforms, also refer to Glossary for explanation of technology terms. 

Service or FeatureMicrosoft .NET Platform Java 2 Enterprise Edition Platform

Language VB, C++, C#, Java, Jscript, Perl…30+ Java

OS Platform & Runtime Windows - CLR Any – JRE, JVM

Mobile Platform .NET Compact Framework Java 2 Micro Edition

GUI/In-proc Component .NET class JavaBeans

Server-side Component .NET, with COM+ services EJB

Persistent Objects ADO.NET DataSet EJB Entity Beans

Web Page Generation ASP.NET JSP

“Code Behind” ASP.NET Java Servlet

Relational Data Access ADO.NET JDBC, SQL/J

Hierarchical Data Access ADO.NET -None-

Queuing System.Messaging, MSMQ JMS

Asynchronous Invocation COM+ Queued Components Message Beans (EJB 2.0)

Eventing COM+ Events -Not specified-

Remoting SOAP/HTTP/DCOM RMI-over-IIOP

Naming ADSI JNDI

HTTP Engine IIS Apache

XML System.XML JAXP, JAXM, JAXB, JAXR…

Web Services (.NET) XML Web Services Sun ONE, IBM, BEA, Oracle

Legacy Integration HIS (COMTI), BizTalk, MSMQ, WS JCA, JMS, WS, CORBA, JNI

Shared Context Passport The Liberty Alliance, JXTA

Security API System.Security JAAS  

Page 34: J2EE vs. .NET – An Executive Look

cs451

Conclusion

Choosing between J2EE and .NET is a strategic enterprise platform decision and should not be treated as only a tactical technology decision.  There are clearly significant technical issues that must be

analyzed but ultimately the decision should be made from understanding the business issues. 

The future impact of costs, flexibility and risk are significant and often outweigh the initial investment in one architecture or another.

Considering the total cost of ownership, development cost, application performance, current infrastructure and future business trends, Microsoft .NET is the platform of choice.

Page 35: J2EE vs. .NET – An Executive Look

cs451

References

[1] According to a study by Cutter Consulting http://www.cutter.com.[2] Gartner inc. http://www.gartner.com .[3] Simplified architecture diagrams, for more details go to http://www.microsoft.com/net and

http://www.sun.com/j2ee[4] Appendix A of this paper: Full listing of equivalencies between J2EE and the .NET

platforms.[5] Glossary of this paper: Technology terms and abbreviations Description.[6] Microsoft’s Partner Program http://www.microsoft.com/partner[7] Ximian inc.’s OpenLink Virtuoso to provide a consistent .NET common language runtime

(CLR) and frameworks integration implementation across Windows, Linux, Mac OS X and UNIX.  http://www.Ximian.com

[8] Sun Microsystems http://www.sun.com[9] “Designing Enterprise Application with the J2EE Platform”, by Rich Green, Sun

Microsystems (page 9).[10] Java 2 Platform Enterprise Edition Specification, http://java.sun.com/j2ee/[11] Roger Sessions, ObjectWatch, Inc http://www.Objectwatch.com[12] “Building a Large, Integrated, Multi-EJB Server System” by Paul Harmon.[13] Microsoft .NET case studies http://www.microsoft.com/net/casestudies/[14] UDDI consortium http://www.uddi.org  for specifications and list of supporting companies.[15] Interview with IBM's Rod Smith, Vice President of Emerging Technologies, available at

http://www-4.ibm.com/software/developer/library/w-int.html?dwzone=ws

Page 36: J2EE vs. .NET – An Executive Look

cs451

References

[16] “Building a Large, Integrated, Multi-EJB Server System” by Paul Harmon, Architecture/e-Business E-Mail Advisory http://www.cutter.com/consortium/consultants/phbio.html

[17] Microsoft’s BizTalk server supports a wide variety of industrial interoperability http://microsoft.com/biztalk

[18] Please refer to “Implementation Cost” section of this document.[19] The Middleware Company http://www.middlewarecompany.com/[20] Full documentation of the test and results can be found at the Middleware Company web site4 or

direct accessed at http://www.gotdotnet.com/team/compare/Middleware.pdf[21] Microsoft eCommerce site http://www.microsoft.com/commerce[22] Java 2 Platform Enterprise Edition Specification, http://java.sun.com/j2ee/[23] The Middleware Company http://www.middlewarecompany.com/[24] Full documentation of the comparison can be found on Middleware Company web site18 or direct

accessed at http://www.gotdotnet.com/team/compare/Middleware.pdf[25] Microsoft’s implementation of Java is the “.NET J#” http://www.microsoft.com/jsharp[26] Sun partners and solutions http://solutions.sun.com/[27] Microsoft Host Integration Server 2000 http://www.microsoft.com/hiserver/[28] Microsoft Biztalk server 2000 http://www.microsoft.com/biztalk[29] Source: Developer community http://www.gotdotnet.com/team/compare/webservicecompare.aspx

, Microsoft’s MSRP http://www.microsoft.com , IBM’s MSRP http://www.ibm.com[30] Gartner inc. http://www.gartner.com.[31] See “Scalability and Performance” section of this paper for benchmark results.[32] Source: My updated list to the StraussStrategy Consulting & Systemslist at  http://www.s-strategy.com