J2EE vs. .NET – An Executive Look

Download Report

Transcript J2EE vs. .NET – An Executive Look

J2EE vs. .NET – An Executive
Look
Written by Sameh Younis
http://www.netreverie.com/Article_J2EEvsNET.asp
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.
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
cs451
increase the customer base.
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
 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 intermediatelevel 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.
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
cs451
completely addressed in the J2EE specification[12].
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 technologyindependent 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 eCollaboration 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 datadriven 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
50%
100%
J2EE
.NET
 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.
cs451
Legacy Integration(2)
50%
100%
J2EE
.NET
 .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.
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 peruser 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 ECommerce 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 nonJava 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.
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
Service or Feature
cs451
JAAS
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
cs451
at http://www-4.ibm.com/software/developer/library/w-int.html?dwzone=ws
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
cs451