HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

Java 2 Enterprise Edition (J2EE) has not yet achieved critical mass as a Web application platform. Today, for example, over 10,000 customers are using BEA WebLogic, the J2EE application server market leader. However, it's a safe bet that J2EE will eventually reach critical mass.

Microsoft's .NET is also a safe bet to get to critical mass. No other Web application infrastructure software platform has the traction of these two leaders, and while some developers may be drawing battle lines between J2EE and .NET, it seems to me that their peaceful coexistence will be the norm.

Most sophisticated IT organizations will deploy both platforms. J2EE already has a strong position in enterprise applications, and enterprise ISVs (independent software vendors) need an application code base that can be deployed on whichever platform their customers demand. On the other hand, much of Microsoft's existing ISVs and small enterprise marketplace is sure to jump on the NET bandwagon.

Interoperability Via Web Services
The good news for all of us is the promise of easy interoperability between the two platforms, via the shared Web services stack (SOAP, WSDL, UDDI, URI). The leading J2EE platforms already provide Web services that were delivered before the advent of .NET. The real fisticuffs will continue to be Java vs C# and J2EE vs .NET.

Both J2EE and .NET are server-side platforms. J2EE, of course, came out of the recognition that the sweet spot for Java was more than just client devices. Rather, Java was and remains an outstanding platform for server-side applications. J2EE extends Java with the standard application programming interfaces (APIs) required for server-centric Web applications. J2EE does for Web applications what SQL did for relational applications - protects investment in programs and programmers.

While there's some truth to the "write once, test everywhere" claim of Sun's Java, interface specifications and rigorous compliance testing have ensured that the Java community has done a far better job of protecting programming investment than prior standards like SQL and POSIX. What's more, the portability offered by a specific J2EE platform like BEA WebLogic is comparable to that offered by NET, but applies across virtually all of the hardware and operating systems on the Web. This multiplatform support remains one of the most fundamental value-adds for J2EE. While C# may indeed be ported to UNIX, it seems unlikely that the full .NET environment will show up there (that is, Basic - "the language" - may be multiplatform, but Visual Basic/ VB.NET - "the platform" - is Windows-centric).

Java/J2EE Is a Community Effort
While competition between J2EE and .NET helps the industry by driving innovation in both market camps, how this innovation comes about highlights another of the fundamental differences between the two platforms: .NET APIs are the product of a single company, while Java/J2EE represents the collective innovation of the hundreds of companies that make up the Java community. Universities, too, have bought into the Java paradigm, making it the de facto standard in computer science curriculums.

For those that are looking to handicap the J2EE/.NET race, I would summarize the technology advantages for J2EE as follows:

  • Maturity: J2EE has four years of scaled production under its belt. How many years did it take to fully harden Microsoft SQL Server (which is of comparable complexity to .NET)? And SQL Server was derived from a mature product.
  • Richness: Today, the J2EE component model supports sessions (with session protection), asynchrony (messaging), caching, replication, and automated persistence. Moreover, J2EE is language-specific, which offers a more natural model for intra-application invocations (Web services are the better fit for inter-application calls).
  • Pluggability: J2EE offers service-provider interfaces (SPIs) for messaging and events (JMS), resource adapters (JDBC, J2EE connectors), XML processing (JAX), and so on. These SPIs allow a level of plug and play not afforded by .NET.
  • Learning Curve: The existing Visual Basic programmer will find that NET demands a steep learning curve. This disconnect is going to have a multi-year impact on the reworking of Microsoft applications and the retraining of MS developers. The Java/J2EE community is simply further down this path, and J2EE applications require zero rework for Web services.
Microsoft and Java
Microsoft's strategy with respect to Java is actually good news for companies like BEA. Had Microsoft elected to stay in the Java business, I suspect it is unlikely that BEA would be having so much success enabling J2EE for Windows. Today, WebLogic is one of the most Windows-friendly of the J2EE application servers, including support for native bindings for MS SQL Server, IIS, COM+ (bi-directionally), and, last but not least, "out of the box" interoperability with Microsoft clients and servers via Web services.

Future Factors
What will ultimately determine whether J2EE or .NET prevails are the innovations still to come. Here are just a few examples of future factors:

  1. How reliable and secure each is for asynchronous Web services
  2. How dramatically each reduces the complexity of application integration
  3. The extent to which each simplifies aggregation and personalization of user interfaces
  4. The extent to which each lowers the total cost of ownership
The ultimate winner(s) will have integrated platforms that make even the most difficult things easier. Stay tuned!

Author Bio:
Scott Dietzen, is chief technology officer for BEA Systems, Inc. SDIETZEN@BEA.COM

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.

  E-mail: info@sys-con.com

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.