J2EE vs. .NET An Executive Look

egyptiannorweiganInternet and Web Development

Oct 31, 2013 (3 years and 8 months ago)

154 views

cs451

J2EE vs. .NET


An Executive
Look



Written by
Sameh Younis

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

cs451

Overview


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


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




P
resent a high
-
level architecture comparison
between the two platforms.




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

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
:


O
verall system cost must be kept as low as
possible. The most important factors are:


Development Costs
-

the cost o
f

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.

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).

cs451

Similarities b
/w

J2EE
&

.NET Platform


I
nherently 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.


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


cs451

J2EE Platform




cs451

.NET Platform










cs451

Differences between J2EE
and the .NET Platform

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]
.

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




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]





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]
.





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]
.






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]


cs451







cs451








cs451








cs451









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.






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]
.

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.




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.




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).




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.




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!

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%

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%

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

USD

Detail:


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

USD

Detail:


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

USD

Detail:


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

USD

Detail:


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

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.

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.

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.

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]
.

cs451

Full listing
[32]

of equivalencies between J2EE and the .NET platforms, also refer to Glossary for explanation of technology terms.




Service or Feature

Microsoft .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





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.

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

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 site
4

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 site
18

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