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:
- How reliable and secure each is for asynchronous Web services
- How dramatically each reduces the complexity of application integration
- The extent to which each simplifies aggregation and
personalization of user interfaces
- 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