J2EE vs Net

Document Sample
J2EE vs Net Powered By Docstoc
					J2EE vs. .NET – An Executive

                                     Written by Sameh Younis

 An executive-level comparative analysis
  between Sun’s J2EE and Microsoft’s .NET
 Focus on the main issues that drive a successful
  IT strategy, which are collaboration and
 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.

 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
   Unit of Work Costs - the cost of processing a business
   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.
J2EE Platform

.NET Platform

Differences between J2EE
     and the .NET Platform

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]
    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].
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
 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]
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].
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
 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
 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].
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
 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
   The new results show .NET performance & scalability
     much higher than the J2EE implementation [20]
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
 The Middleware Company[23] benchmark tests shows
 .NET superiority, for lines of code needed to develop
 same enterprise application using these development

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
   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

Development Skills Required

In general
 Java programmers are paid about 25% higher
  salaries than equivalent VB or Cobol
   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.

 J2EE server applications supports operating system
    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

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.
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!
Legacy Integration                       J2EE
                                                50%   100%

 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.
Legacy Integration(2)                       J2EE
                                                   50%   100%

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

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            Total: $5,998 USD                   Total: $64,000 USD
     purchase costs to         Detail: 1 x 8-CPU Application       Detail: 1 x 8-CPU Application
     deploy Web Services           Servers to Host Web Services        Servers to Host Web
     on a single server with       running Windows 2000                Services running IBM
     full authenticated per-       Advanced Server with .NET           WebSphere 4.0 Advanced
                                   Framework @ $3999.00 per
     user access                                                       Single Server Edition (on
                                   server + 1 Internet Connector
                                                                       Solaris, W2k Or AIX) @
                                   License @ $1,999 per server.
                                                                       $8,000 per CPU
 Estimated software            Total: $23,992 USD                  Total: $384,000 USD
     purchase costs to         Detail: 4 x 8-CPU Application       Detail: 4 x 8-CPU Application
     deploy Web Services           Servers to Host Web                 Servers to Host Web
     to a 4-server Cluster         Services running Windows            Services running IBM
                                   2000 Advanced Server with           WebSphere 4.0 Advanced
                                   .NET Framework @                    Edition (on Solaris, W2k or
                                   $3999.00 per server + 4             AIX) @ $12,000 per CPU
                                   Internet Connector Licenses
                                   @ $1,999 per server.
 Taking the Decision: J2EE or .NET

How important is the Time-to-Market for your
 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.
 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
 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.
 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
 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
   In most cases, it’s more cost effective to keep your
     current investments and continue development on your
     existing platform.

 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

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
  Service or Feature
  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              cs451                       The Liberty Alliance, JXTA
  Security API                                  System.Security                                   JAAS
 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

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

[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
[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
[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
[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
[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


Shared By: