By: Patrick Bailey Liz Farricker Whitney Mayoras
By: Patrick Bailey Liz Farricker Whitney Mayoras
NET
By:
Patrick Bailey
Liz Farricker
Whitney Mayoras
In this paper we present J2EE/.NET and the intense competition between them.
1994. Sun continued to make Java Application models and various tools to increase the
appeal for the Java language. IBM jumped on this opportunity and took the Java language
along with all of the application models and tools that Sun had developed. IBM packaged
this entire set-up together to create J2EE (Java 2 Platform Enterprise Edition); Sun owns
the J2EE trademark. Microsoft, being the competitive company that they are, wanted to
be in on this market as well and quickly released .NET with an Internet-ready Windows
platform. .NET was able to modify languages like Java into J#, C++ into C#, etc. and was
able to integrate them all into a single Windows platform that allows dozens of
programming languages. The main difference between J2EE and .NET is that J2EE is
only one programming language of Java but it runs on any operating system, while .NET
History
Microsystems in 1994. Sun continued to develop various other tools and applications,
leading to one of the company’s largest mistakes. Sun’s mistake was allowing the Java
language and the applications and tools to be available to another company to be sold for
a profit. IBM took advantage of Sun’s mistake; IBM gathered together all of these tools
relating to Java and sold it for a profit which they sell as J2EE. Sun tried to make up for
their mistake by accumulating their own, similar package which they called the Java
2
Development Kit. Despite Sun’s efforts, they are still trailing, and most likely always will
To first understand J2EE we need to understand a little bit about the Java platform
The Java Platform was designed for running highly interactive and secure applets
and applications on networked computer systems. The difference between this platform
and others is that it executes bytecode. A bytecode is the compiler output that is run
through The Java Virtual Machine. When a program is written it will be compiled down
to a bytecode file so it can run wherever a Java Platform is available. At the core of the
There are two basic parts to the Java Platform: the Java Virtual Machine and the
The Java Virtual Machine (JVM) is a crucial part of the Java Platform. Java
Virtual Machine runs Java programs and compiles them down to a basic binary format
using a just-in-time (JIT) compiler. A JIT compiler converts the bytecode to the native
3
Java API
different computer programs to talk to one another. The Java API is a large collection of
ready-made software components that provide many useful capabilities. The core API,
which is included in every Java Platform, includes all of the following features: applets,
J2EE Platform
The Java 2 Enterprise Edition (J2EE) is a programming platform used within the
Java platform with a set of standards that simplifies applications and provides services to
the components. J2EE is used for developing and running distributed multi-tier
4
Figure 1 illustrates how J2EE can be run on any operating system. The
tasks and results into something that the user would be able to understand.
- The Java Virtual Machine: where programs are then compiled down to a basic
o The EJB Server: accessed through the Servlet or JSP interface; allows
concurrency.
- JDBC: an API that defines how a client may access an information database
Components
Components compose the applications of J2EE, making them the key focus of
and assembled into applications. They are executables that contribute to the J2EE
components. All of the components that are written on a Java Platform are compiled in
the same format. The only difference with J2EE is that the components are assembled
into an application, confirmed to make sure that they are well formed, and then deployed
for production where they are run and managed. Application clients and applets are
examples of components that run on the client, while the Java Servlet and Enterprise
5
Enterprise JavaBeans
architecture that enables the multi-tier application to develop rapidly without complexity.
Its simplified approach allows the developer to focus mostly on business logic leaving the
component that executes within the EJB-container, which executes within the EJB-server.
The EJB-server also provides services such as security, transactions, and concurrency.
The EJB components will run in any EJB-compliant server without having to recompile.
There are several types of EJB components: session beans, entity beans and message-
driven beans.
programmers to embed SQL commands in Java in order to access databases. There are
two parts to the JDBC. The Application-level Interface (API) uses an API for the Java
programming language that sets the standards on how a client may access a database. The
Clients
There are two different kinds of clients. Web clients consist of web pages and
web browsers. Web clients are also sometimes called thin clients, whom do not execute
6
difficult tasks, rather direct those towards the enterprise beans which are being executed
on the J2EE server for them to complete. Application clients provide a way for users to
handle tasks that require a better interface than the one provided by markup language. In
the business tier they directly access the enterprise beans and, if the application permits it,
they can open an HTTP connection to create communication with the web tier.
History of .NET
After the release of J2EE by IBM, Microsoft began to worry; they had not
focused on the market of Enterprise Programming Environments and did not want to miss
out on this new market. In response, Microsoft hurried to develop their own
programming languages to make them internet ready. Microsoft took the Java language
and modified it to become J#, an Internet-ready version. They also modified the C++
language to become C#. Their Visual Basic language, that was already internet ready,
was also used. Microsoft bundled these programming languages together with compilers,
and other tools to become their new .NET computing platform aimed at simplifying
application development and deployment in the internet age. This new competitor for
IBM’s J2EE was Microsoft’s strategy for keeping Windows the dominant operating
What is .NET?
There are five main building blocks of the .NET platform. The lowest layer is the
Windows platform, which can be any of the various different versions of Windows. The
7
next level is the Microsoft .NET Framework, which is an environment for building,
deploying, and running distributed, robust, and scalable applications. The third level
consists of the .NET building block services, a set of XML (web) services that facilitate
the development of user-centric applications. The fourth level consists of Microsoft .NET
enterprise servers which are a set of infrastructure applications for building, running,
operating, and managing XML (web) services and applications. The fifth layer is the
Visual Studio .NET which is a rapid application development tool. It’s an integrated
in .NET.
Platform. The components of the .NET architecture are explained in more detail below:
8
- Web-pages or web clients: run through IIS (Internet Information Systems), the
- The CLR: handles the execution of code in addition to other services such as
- ADO: the layer between the programming languages and the database.
.NET Framework
application development for the distribution environment of the internet. While the two
main components of the framework are the Common Language Runtime (CLR) and
the .NET Framework Class Library, the Framework also includes Common Type System,
Windows Forms, web forms, web services, Common Language Specification, .NET-
CLR
handle the execution of code and many of the core services, such as memory
management, thread management, security, transactions, and concurrency, for the .NET
class libraries. The CLR is very similar to the Java Virtual Machine (JVM) in J2EE
except for a few key differences. The JVM interprets Java Byte Code every time while
the CLR compiles applications into native machine code the first time it runs, then
9
executes these compiled descriptions each time it is run. During the compilation process
known as Microsoft Intermediate Language (MSIL) by the compiler. The IL code is then
converted to native code using the just-in-time (JIT) compiler during the runtime.
Through this process, the CLR accepts any of a growing number of the programming
languages, including C++, C#, Visual Basic, JScript (The Microsoft version of
JavaScript), J#, and COBOL, as well as numerous third party languages, and compiles
them all down to a common native language, making it possible to write various different
parts of applications in different languages without worrying about how to combine them
into one seamless code. An illustration of this common language infrastructure is shown
below in Figure 3.
10
.NET Class Library
The second main component of the .NET Framework is the Class Library, a large
collection of 2,500 reusable value types, classes, and interfaces. These classes are divided
manageable. The two most important aspects of the Class Library are ASP.NET and
that render the data-access services. ADO.NET facilitates the communication between
applications. This environment makes it easier and more efficient to develop applications
using any of the .NET compliant languages. Text editors and command-line compilers
make it possible to develop ASP.NET applications and send them to the Internet
Information Services (IIS) server for deployment. In Figure 3, this screenshot is from
Visual Studio .NET which shows the environment that a developer works in while
11
Figure 4: (above), this screenshot is from Visual Studio .NET which shows the
environment that a developer works in while developing applications and services.
This environment allows the user to define which .NET compliant language they would
like to use before they begin writing the code. It provides the visual environment of
.NET, and is completely dependant on the rest of the .NET features.
There are many similarities between J2EE and .NET. Both of these applications
between these two applications is that they both implement the multi-tiered approach as
shown below.
12
Figure 4: Multi-tier applications distributed over 3 locations.
• Presentation Tier (Web clients): Translates tasks and results into something that
• Logic Tier (Business components): The logic that saves or meets the needs of a
particular business in which it basically receives the data from client programs,
processes, evaluates, and performs calculations with this data, and eventually
• Data Tier – (EIS - Enterprise Information System): The EIS stores the data as
well as handles the EIS software, which could include ERP (Enterprise Resource
Planning); the data tier is where all information is stored and retrieved.
13
Another similarity between J2EE and .NET is that both have a virtual machine
architecture for real time code interpretation. The virtual machines compile the
programming languages down to machine-readable code. For J2EE they use Java Virtual
Table 1 contains a chart that shows all of the application similarities in regards to
what similar components they both possess. Realistically, the only difference between
these applications is the name because they primarily have the same functions serving
Portability
The biggest difference regarding J2EE and .NET is portability. J2EE is portable in
that it can be implemented on any operating system, as long as it uses Java. NET on the
14
other hand, runs solely on a Window’s Platform, but can use dozens of programming
languages.
Vendor Support
.NET has only one vendor which, Microsoft, as opposed to J2EE which has
multiple vendors.
Cost
many various standard languages can be used, while J2EE is strictly Java which
completely inhibits that flexibility. Also the cost of running applications is considerably
lower for .NET because commodity platforms are practically 1/5 of the cost of the Unix
counterparts.
Scalability
.NET apparently is able to support at least ten times the number of clients than
Commerce Server which helps developers build solutions on top of well-defined and
15
.NET has many system libraries (Namespace) and unique development tools
(Visual Studio .NET) while J2EE has IBM’s Websphere as their best development tool
How to Choose?
Being that J2EE supports only Java if that is the programming platform your
company should choose, that means you are either going to have to hire and/or retrain
your employees regarding the Java language. While .NET has such an array meaning that
you most likely have to retrain your staff. You just hire specific people who specialize in
Selection may be based less upon fundamental needs of the platform, but more on
style.
Return on Investment?
16
For any company the big question is how much money will be saved or made
with such a large change. You absolutely need to have a return on investment otherwise
the process is not worthwhile. Which this decision ties into all the previous points in
addition to other more in-depth ones that your company needs to analyze before you go
Future Outlook
J2EE
The future outlook for J2EE is a little bit hazy. Obviously there will be
new/updated releases for J2EE, but as for significant changes there is no telling. There
have been rumors that they are doing projects focused primarily towards mobile phones
.NET
As with .NET there has been the rumor going around that they are looking to
potentially becoming open source as well as another rumor for them opening up their
portability allowing them to be used on other operating systems other than Windows.
Keep in mind these are rumors and nothing has been released, but if this is where the
future is headed, J2EE might start to struggle significantly unless they have incredibly
devoted customers.
17
References:
Sessions, Robert. (2001) Java 2 Enterprise Edition (J2EE) versus The .NET Platform:
Two Visions for eBusiness; Available:
http://www.objectwatch.com/FinalJ2EEandDotNet.doc
18