Upload
hector-mason
View
26
Download
0
Tags:
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
cs451
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 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
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.
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 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
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 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
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 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