1 / 36

J2EE vs. .NET – An Executive Look

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.

joel-ayers
Download Presentation

J2EE vs. .NET – An Executive Look

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

  6. J2EE Platform cs451

  7. .NET Platform cs451

  8. Differences between J2EE and the .NET Platform cs451

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

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

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

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

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

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

  15. cs451

  16. cs451

  17. cs451

  18. cs451

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

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

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

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

  23. Portability • J2EE server applications supports operating system portability • stick with a given J2EE vendor and a given database vendordue 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

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

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

  26. 50% 100% J2EE .NET 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. cs451

  27. 50% 100% J2EE .NET 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. cs451

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

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

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

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

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

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

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

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

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

More Related