Docstoc

J2EE VS .NET

Document Sample
J2EE VS .NET Powered By Docstoc
					Brandeis University – Architecture for Business and E-Commerce
                         Dr. Aline Yurik




          J2EE VS .NET
   A revisit of a decade old debate
                   Wuttipong Soontornsanee
                          3/26/2011
J2EE vs. .NET

Today, enterprise platform has become one of the most crucial parts of any business
and/or organization. Major enterprise platform include Microsoft .Net and Java Enterprise
Platform. This paper bring a decade old debate back, compare, and contrast their current
functionalities, features, pro and con of each technology from different perspective. The
paper will begin the discussion with some history of the two then goes on to compare and
contrast, and introduces their main advantages and disadvantages of each technology.
Finally, the paper will discuss in detail the critical factors of enterprise platform.




Some history of the two

The history of enterprise application dated back in the early development of software
application. According to [1], Enterprise software is software used in organizations,
businesses, and government. Enterprise software is an integral part of computer based
information system. Enterprise software is business-oriented, automated, and linked
multi-function of different units to centralize information. Services provided could range
from payment processing, automated billing system, content management, customer
relationship management, IT service management, resource planning, manufacturing, and
supply-chain management.

Upon the arrival of the Internet, XML (Extensible Markup Language) has provided an
Internet a way to share information and processes across the Internet. As [2] noted, the
XML allows implementation of Web services which are “building blocks for creating open
distributed systems, and allow companies to quickly and cheaply make their digital assets
available worldwide”.

J2EE and .Net are evolutions of existing technology used to build application. Coupled with
Web Services, J2EE and .Net have created platforms that developer can use to build
enterprise application. Both J2EE and .Net framework allow developers to build their
application based on the framework which run within a container that do the tricky
services/part of development such as XML interoperability, load-balancing, and
transactions.




J2EE

J2EE (Java 2 Platform Enterprise Edition) is a platform based in Java programming
language. It is designed to simplify complex problems with development, deployment, and
management of multi-tier enterprise solutions. J2EE has become an industry standard the
initiative led by Sun Microsystems.

As described in [2] some characteristics of J2EE includes

   -   J2EE application is hosted within containers which help provide qualities of service
       needs for enterprise application such as transactions, security, and persistence
       services.
   -   EJB (Enterprise Java Bean) are used to perform business layer. Connecting to
       database using JDBC (Java Database connectivity) or SQL/J or others.
   -   Business partners connect to J2EE through web services (SOAP, WSDL, UDDI, and
       others).
   -   Applets and application can connect directly to the EJB layer through Internet Inter-
       ORB Protocol (IIOP) rather than web services.
   -   Web browser and wireless devices connect to JavaServer Pages (JSP) to render user
       interfaces in HTML and XHTML.

Additionally, many vendors that offer J2EE platforms provide additional features not found
in the standard. Nevertheless, these additional features impact portability and other
implications.

Foundation of the J2EE is as below

   1. Java source code is compiled into bytecode, a cross-platform intermediary.
   2. This bytecode are run within Java Runtime Enviroment (JRE) which interpret the
       bytecode and execute it at run-time.
Microsoft .Net Platform

Microsoft .Net platform is a product. Unlike J2EE which is a standard to which products are
written. .Net includes the rewritten of Windows DNA which was the previous platform for
enterprise application offered by Microsoft. Many proven technologies incorporated
into .Net platform include Microsoft Transaction Server (MTS), COM+, Microsoft Message
Queue (MSMQ), and Microsoft SQL Server database.

Some of the characteristics of .Net platform are

   -   .Net application is hosted within a container. These containers help provides
       qualities of service needed for enterprise level, transactions, security, and
       messaging services.
   -   The business layer of .Net application is built around .Net managed components.
       Business processing and data logic connected to the databases using Active Data
       Objects (ADO .Net)
   -   Business partners connect to .Net application through SOAP, UDDI, WSDL, and
       BizTalk.
   -   Web browser and wireless clients connect to Active Server Pages (ASP.Net) to
       render user interfaces in HTML and XHTML.
   -   User interface can be built using Windows Forms.
   -   The .Net Framework which can be discussed in detail below




The .Net Framework

The .Net framework allows language-independence and language-interoperability. This is
one of the unique and most intriguing features in the .Net platform. This allows .Net
component to be written in any language including Visual basic, C++, C#, and others.

Microsoft .Net achieve this by

   1. Translate source code into Microsoft Intermediate Language known (MSIL), also
       known as IL.
   2. This MSIL or IL code is then run through Common Language Runtime (CLR), similar
        to the Java Runtime Environment (JRE).




Comparison of the two

Development time

According to [2], both Sun J2EE and Microsoft .Net provide a mechanism for rapid
application development by insulating software developers from dependencies. Both of
the platforms provide enterprise architecture, offering language-level intermediation.
While J2EE offer this mechanism through Java Runtime Environment (JRE) the
Microsoft .Net offers similar mechanism through Common Language Runtime (CLR).

J2EE offers unique feature including custom tags and state management services (the
entity beans). The java bean allows developer to write applications without coding data
access logic which results in a leaner, database-independent application.

On the other hand, according to [2], Microsoft .Net also offers variety of time saving
mechanism feature not found in J2EE. For example, ASP.Net is independent of client device
and allows user interfaces to be rendered to alternative user interfaces without rewriting
code.

In the end, rapid application development can be achieved in both J2EE and .Net platform
and these platforms offer some distinct differences over the other. Nevertheless, most
important of all is the human knowledge, experience, and team-collaboration that make the
different in development time. Hence, these differences in feature are minor and are not
recommended for any organization to make developmental platform based upon them.

Vendor dependency

From an organizational perspective, development of an enterprise platform from a small
number of vendors is always better than large number of vendor. Why? Because small
number of vendors allows an organization to get the support they need faster, more
efficient, and less likely to have an issue with integration and new features required as new
demand aroused.

Sun J2EE has wide number of variety of tools, products and applications from number of
vendor and developers. However, these tools and applications are often times not
interoperable and further complicated things as more vendors need to be added. This also
makes support more difficult as number of dependencies increased.

Microsoft .Net on the other hand, provides a complete solution from a single vendor which
is Microsoft.

Legacy integration

Many large organizations and corporations have existing software, server, and applications
written in different language. Hence, it is important for any enterprise platform to be able
to integrate these existing systems in order to preserve and continue to use these
investments. This section compares and contrasts the two regarding to their ability to
integrate with existing system.

According to [2], J2EE provides

   -   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) which allows plugging in resource adapters that
       understand how to communicate with existing systems.

While Microsoft .Net offer legacy integration through Host Integration Server.

   -   COM Transaction Integrator (COM TI) used to collaborate transactions across
       mainframes
   -   Microsoft message Queue (MSMQ) can integrate with legacy built using IBM
       MQSeries.
   -   BizTalk Server can be used to integrated the system based on B2B such as Electronic
       Data Interchange (EDI)

In conclusion as supported by many well documented researches, J2EE are superior to
Microsoft .Net over legacy integration. J2EE offers great feature such as JCA in legacy
integration and developers will have a smoother and easier time integrating legacy systems
to enterprise platform.

Maturity of platform

Software maturity is one of an important aspect to consider when implementing an
enterprise platform. Choosing to go with a cutting edge new technology may seem good
and allow the company to enjoy early competitive advantages but less mature and earlier
generation of software is also more prone and susceptible to errors and problems.

Both J2EE and .Net has been in an industry for decade and both systems has been
improving, adding new feature with its new versions. Nevertheless, it should be noted that
J2EE is mostly written on Java while Microsoft .Net is primarily written off of a newer
language such as C#.

Portability

This section compare the two specifically in their portability J2EE is platform independent
which can be run on variety of hardware and operating systems. J2EE allows this to
happen by running its software through Java Runtime Environment (JRE) which is
available on any platform.

On the other hand, Microsoft .Net only runs on Windows, its supported hardware, and
the .Net environment. Hence, in another word, Microsoft .Net has no portability

Availability of Tools

The Sun J2EE has many Java based IDE (Integrated Development Environment) some are
free and some are commercial versions. Notable Java IDE includes NetBean, Eclipse, IBM
VisualAge, and Borland.
Microsoft .Net on the other hand, has one of the great tools which is Visual Studio .Net. It
should be noted here that while Visual Studio .Net is one of the best development tools
available, it’s not free.

Cost

According to various researches conducted, many agreed that there are wide varieties of
implementations based on both J2EE and .Net and pricing for both platforms vary
dramatically depending on business or organization budget and desired service level.

While Microsoft’s solution has aggressive prices, J2EE architecture allows the organization
to choose from service level. As [2] noted, “For example, with J2EE you can have a high-end,
expensive solution like iPlanet running on Sun Solaris in an E-10000 server or a low-end,
inexpensive solution like jBoss running on Linux on a Cobalt RAQ server. There’s also an
assortment of free and/or open source tools and services that support Java and XML”. [2]
Further explain though that “it should be noted that you pay for what you get”.

Many agreed however, that at certain level neither solution has significant higher
infrastructure management costs than the other. However, J2EE could have an edge due to
it maturity. As [5] put it, “Resources are abundant for both platforms, although very highly
skilled resources are easier to find on the J2EE platform”.

Performance

J2EE platform offers feature which reduce database traffic through the use of

    -   Stateful business processes which allow you to maintain business process state in
        memory, rather than writing that state out to the database on each request
    -   Long-term caching which allow database data to be cached for long periods of time
        rather than re-reading database data upon each request

However, [2] noted that these feature required developers who are properly trained and
well educated. Otherwise, error maybe introduced into the systems.
On the other hand, Microsoft .Net does not offer any of these features for improving
performance. Hence, there is no opportunity for error which is also a trade-off for
performance.

Scalability

Scalability is one of an essential aspect when comparing any platform because of its ability
to grow and increase in hardware resources as needed.

Both platforms offer platforms that are highly scalable. Both platform offers feature such
as load-balancing technology that enables a cluster machine to collaborate and service user
load that scales over time. Nevertheless, the difference between these platforms is that
J2EE support large number of different hardware while Microsoft .Net supports Win32 only.
As [4] put it, “if scaling up by buying bigger iron is your organizations preferred method,
than lead toward J2EE. However, if your organization likes the idea of a greater number of
cheaper servers than there is a probably an edge with .Net”.

Conclusion

Many papers and researches have been written in supporting both of the platforms
argument for each platform has been valid and that there are number of various reasons
for organization to take into account to decide for their own organization. One platform
maybe right for one organization but may not be right for another. Regardless of the
platform one picks, criteria below are important aspects of any enterprise platform

   -   Platforms must offer single-vendor solution. This minimized cost relating to
       supports and maintenance.
   -   Varieties and range of prices from low-end to a high-end depending on one needs.
   -   Scalability of the platform.

   And most importantly, developers must be trained. In the end, it’s human resource that
   matter.
References

  1. Enterprise Software, Wikipedia. Retrieved 13/03/11
     http://en.wikipedia.org/wiki/Enterprise_software
  2. Vawter Chad. & Roman Ed. J2EE vs. Microsoft.NET: A comparison of building XML-
     based web services. 2001. Retrieved 13/03/11
     http://www.theserverside.com/news/1365389/J2EE-vs-MicrosoftNET-A-
     comparison-of-building-XML-based-web-services
  3. .Net Framework Wikipedia. Retrieved 19/03/11
     http://en.wikipedia.org/wiki/.NET_Framework
  4. Java VS .Net – Another Blast From the Past. Retrieved 20/03/11
     http://justenoughtechnology.com/java-vs-net-another-blast-from-the-past/
  5. J2EE VS. .Net “How One ISV Made the Choice”.
     http://www.relevant.com/pdf/articles/j2eevs.net.pdf

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:76
posted:11/11/2011
language:English
pages:10