You are on page 1of 39

.NET Platform vs.

J2EE
Today's Software Industry relies upon e-Business e-Collaboration There are two technical visions for e-Business and e-Collaboration .NET Platform J2EE Specification Main issues of difference Collaboration Profitability

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


J2EE is a specification not a product .NET vision is family of products along with specifications Two most important vendors/products are

IBMs WebSphere
BEAs WebLogic 59% of J2EE market is governed by these two vendors Sun is minor player but controls J2EE Specification e-Business requirements are InterOperability Availability Throughput

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


System cost depends upon Development cost System management cost Unit of work cost Scalability Today's architecture are based on 3-tier and 2-firewall The three tiers are Presentation tier Business tier

Database tier

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Basic three tier e-Commerce architecture

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Business logic requires expansive resources like Database connection Threads TCP/IP connection etc Hence this architecture cant support large number of clients To address this problem Business tier includes a sophisticated Middle Tier Infrastructure that supports resource sharing In J2EE Middle Tier Infrastructure is Enterprise Java Beans In .NET Middle Tier Infrastructure is COM+

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


The .NET Platform has four main areas .NET Infrastructure & Tools .NET Foundation Series .NET User Experience .NET Devices

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


.NET Infrastructure & Tools
Visual Studio .NET
Language Neutral using Intermediate Language Standard supported languages VB, VC++, VC#

NET Enterprise Services


MS SQLServer Application Centre Server (ACS) Internet Security and Application server (ISA Server)

.NET Framework
Component Oriented Middle-tier infrastructure (COM+) Common Language Runtime (CLR) Just In Time compiler (JIT Compiler)

OS Libraries packaged into .NET component model

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


.NET Foundation Series
set of information sharing for the internet

Passport .NET for User Authentication


Services for File storage User Preference Management Calendar Management

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


.NET User Experience
Broader, more adaptive User experience
Information is delivered in variety of ways

.NET Devices
Smart Internet Devices Accomplish web services efficiently

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


.NET Platform Architecture

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


J2EE Architecture has five parts
Java Language System

Client Programming Model


The Middle Tier Infrastructure

The Programmer Enterprise API


Non Programmer Visible API
Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Java Language System
Source code is translated into Intermediate Language

In .NET IL has been designed to accommodate the need of any language


In J2EE IL has been designed to accommodate the need of java only In .NET IL is MSIL (MicroSoft Intermediate Language) In J2EE IL is Java Byte Code In .NET run-time Environment is Common Language Runtime (CLR) In J2EE run-time Environment is Java Virtual Machine (JVM)

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Client Programming Model
J2EE Client Programming model focuses on interacting with browser
Java Applet Java Servlets Java Server Pages (JSP)

In .NET ActiveX is used

In J2EE Applet is used


Technology should deal with HTTP request and HTML responses In .NET ASP.NET (Active Server Pages) is used In J2EE JSP and Servlets are used

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


The Middle Tier Infrastructure
In J2EE Middle Tier Infrastructure is Enterprise Java Beans (EJB) In .NET Middle Tier Infrastructure is COM+ Both EJB and COM+ includes following High scalability through sharing of components instances

Middle tier centric security


Automatic Transaction Boundary Management EJB added one additional idea termed as Entity Beans

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


The Programmer Enterprise API
API for accessing database from java In .NET, ADO.NET is used for database connection In J2EE, JDBC is used for database connection API for Naming and directory services In .NET, Active Data Space Interface (ADSI) is used In J2EE, Java Naming and Directive Interface (JNDI) is used API for asynchronous message flow In .NET, MicroSoft Message Queue (MSMQ) is used

In J2EE Java Message Service (JMS) is used

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Non Programmer Visible API
How

other products plugged into J2EE

Connector Application Programming Interface (API) Java Transaction API (JTA)

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


J2EE architecture

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Similarities between J2EE and the .NET Platform

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Similarities between J2EE and the .NET Platform

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Similarities between J2EE and the .NET Platform

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Differences between J2EE and the .NET Platform
Vendor Neutrality Overall Maturity Interoperability and Web Services Scalability Framework Support Language Portability

Client device independence

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Vendor Neutrality
An stated goal of Suns vision

But EJB with other vendors are not working correctly


In reality there is no vendor Neutrality .NET is not at all vendor neutral

Even J2EE is not vendor neutral


For developing EJB application better stick to one vendor

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Overall Maturity
First J2EE specification came in 1998
First beta version of EJB launched in 1999 .Net Platform technology (MTS) was implemented in 1996 .NET is more matured than J2EE High volume, highly reliable websites using .NET (NASDAQ, DELL, etc..)

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Interoperability and Web Services
.NET Platform e-collaboration model is based on UDDI (Universal Description, Discovery, and Integration) and SOAP (Simple Object Access Protocol ) standards UDDI & SOAP members includes Microsoft, IBM, Ariba sun etc.. Sun mainly focused on J2EE vendors and CORBA (Common Object Request Broker Architecture ) vendors

suns Interoperability is based on the communication protocol called IIOP (Internet InterOrb Protocol)
.NET platform has a much stronger technology neutral eCollaboration strategy than does J2EE

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Scalability
Scalability refers to the ability to add more workload (addition of new customers) An standard benchmark for Transactional Performance is TPC (Transactional Performance Council) Members of TPC includes Sun, IBM, Microsoft, Oracle, BEA etc..

If the cost of the system is a serious consideration , then .NET has a major advantage of J2EE
While these .NET benchmarks (TPC) are real benchmarks of real machines, none of these J2EE benchmarks actually exists

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Framework Support
for building large e-Commerce solution one doesnt want to start from scratch One wants to build on top of a well defined & tested e-Commerce framework The use of such a framework dramatically reduces development cost (by a fraction of at least 10) .NET framework includes such an e-Commerce framework called CommerceServer In J2EE there is no such vendor neutral framework

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Language
J2EE supports java and only java .NET Platform supports every language except java (though it supports syntactically equivalent language, C#) Although IBMs WebSphere & BEAs WebLogic support other languages, neither does it through J2EE technology J2EE accesses other languages through Java Native Interface or through CORBA interoperability CORBA the important architecture of 90s, is now all dead Currently Java programmer are getting 30% higher salary than equivalent VB programmer

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Portability
There are two flavors of portability
Vendor portability (Already rejected idea)

Operating System portability (Appeal of J2EE)


OS portability refers to the ability to move code base from one OS to other without change of code .NET Platform is limited to Windows Operating System Two types of companies need OS portability Independent Software Vendors (ISVs) Corporations looking for scalability solution .NET/Windows Platform can scale 16,000 500,000 transactions per minute

J2EE/UNIX can scale 17,000 110,000 transaction per minute

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Client device independence
In presentation layer java approach has three problems
It requires a lot of code on the presentation tier

Very difficult to test the code with every possible thin client
Very difficult to add new thin client to an existing system .NET framework approach is to write device independent code that interacts with visual components

In .NET all three problems are solved


Requires less code since a single code path works for all clients testing is easy as only interaction with control is to be tested Adding new thin client is easy by simply downloading the latest version of controls

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Conclusions
Sun's J2EE vision is based on a family of specifications that can be

implemented by many vendors. It is open in the sense that any company can license and implement the technology, but closed in the sense that it is controlled by a single vendor, and a self contained architectural island with very limited ability to interact outside of itself. One of J2EE's major disadvantages is that the choice of the platform dictates the use of a single programming language, and a programming language that is not well suited for most businesses. One of J2EE's major advantages is that most of the J2EE vendors do offer operating system portability.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Conclusions
Microsoft's .NET platform vision is a family of products rather than specifications, with specifications used primarily to define points of interoperability. The major disadvantage of this approach is that if is limited to the Windows platform, so applications written for the .NET platform can only be run on .NET platforms. There are several important advantages to the .NET platform mentioned as below
The cost of developing applications is much lower, since standard business languages can be used and device independent presentation tier logic can be written.

The cost of running applications is much lower, since commodity hardware platforms (at 1/5 the cost of their Unix counterparts) can be used.
The ability to scale up is much greater, with the proved ability to support at least ten times the number of clients any J2EE platform has shown itself able to support. Interoperability is much stronger, with industry standard eCollaboration built into the platform.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


Glossary
ADO.NET - The .NET API for accessing the data tier. Application Center Server - The .NET technology that provides middle tier load balancing and general management of cluster farms. Assembly - The unit of application deployment for the .NET platform. BizTalk Server - The .NET technology that provides orchestration between business processes, especially legacy business processes. C# - A new C++ derivative programming language that is similar in functionality, look, and feel to Java. CICS - An IBM mainframe transactional processing monitor technology. COBOL - One of the primary business programming languages. COM+ - The .NET middle tier infrastructure designed to support business components. Commerce Server - The .NET eCommerce framework. CORBA (Common Object Request Broker Architecture) - The earliest of the component architectures defined by the OMG. Common Language Runtime - The .NET runtime that provides support for compiled IL.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


DB2 - An IBM relational database product that competes with SQLServer. DCOM - The Microsoft protocol typically (but not exclusively) used for communicating to components within the .NET architecture. eBusiness - A company that does all or an important part of its business over the Internet. eCollaboration - Business to business collaboration conducted over the Internet eCommerce - Business that is conducted over the Internet. Eiffel - An important research programming language, used in some businesses. EJB (Enterprise JavaBeans) - The J2EE middle tier infrastructure designed for business components. Entity Beans - A component model that is specific to the EJB technology that provides varying degrees of state management. HIS (Host Integration Server) - The .NET technology that interoperates with IBM mainframes. HTML - The industry standard for describing browser displays. HTTP - The industry standard for communications over the Internet. IL (Intermediary Language) - The intermediary language used by the .NET platform.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


IMS - An IBM mainframe database technology. ISAS (Internet Security and Acceleration Server) - The .NET technology that provides firewall protection and HTML page caching. ISV (Independent Software Vender). J2EE - Java 2 Enterprise Edition. JAAS (Java Authentication and Authorization Service) - The J2EE API for managing security. Java - The programming language associated with J2EE. Java Applets - A packaging technology for downloading and running Java code on the client side in a browser. Java 2 Enterprise Edition - A general term describing Sun's family of eCommerce specification. Java Byte Code - The intermediary language run within the Java Virtual Machine. Java Connectors - The J2EE API used for plugging in different database technologies (not programmer visible). Java Server Pages - The J2EE technology that, along with Java Servlets, is the programming model for the presentation tier. Java Servlets - The J2EE technology that, along with Java Server Pages, is the programming model for the presentation tier. Java Virtual Machine - The Java language environment. JDBC (Java Database Connection) - The J2EE API for accessing the data tier. JMS (Java Message Service - The J2EE API for accessing message queues.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


JNDI (Java Naming and Directory Interface) - The API for naming and locating specific instances used in J2EE. JTS (Java Transaction Server) - The J2EE API used for managing transactions boundaries, largely superseded by EJB automatic transaction boundary management. MS-DTC (Microsoft Distributed Transaction Coordinator) - The .NET technology that manages the two phase commit protocol used in distribution transaction coordination. MTS (Microsoft Transaction Server) - The original middle tier, component based infrastructure designed to support highly scalable applications. .NET - A general term for describing Microsoft's eCommerce platform. .NET Building Block Services - Collaborative services that help businesses work together. .NET Client Systems - Subsets of the .NET platform designed to support various thin client platforms. .NET Enterprise Servers - A collection of optional enterprise level products available for the .NET platform. .NET Framework - The overall infrastructure in which .NET applications run. NLBS (Network Load Balancing Service) - A .NET technology for load balancing and providing high scalability to the presentation tier. Oracle - A relational database product that competes with SQLServer. OMG (Object Management Group) - An early industry consortium that defined the original CORBA specifications.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE


RMI/IIOP (Remote Method Invocation over Internet InterOrb Protocol) - The protocol used for communicating with components in J2EE based on the CORBA protocol. SOAP (Simple Object Access Protocol) - An industry standard for packaging of method requests. TPC-C - An industry standard benchmark based on a distributed order entry system for measuring throughput at the middle tier/data tier combination. tpmC (Transactions per Minute, as defined by C benchmark) - A standard measure of a transaction as defined by the TPC-C benchmark. UDDI (Universal Description, Discovery, and Integration) - A set of industry standards controlled by uddi.org that define eCollaboration. uddi.org - The consortium controlling UDDI. Visual Studio.NET - The programming environment for .NET. WebLogic - BEA's eCommerce platform, a superset of J2EE. WebSphere - IBM's eCommerce platform, a superset of J2EE. web service - A middle tier business component that is callable over SOAP. URL (Universal Resource Locator) - A standard Internet location. XML - An industry standard for architecting text strings. Trademark Information Sun, Sun Microsystems, Java, JDBC, JavaBeans, Enterprise JavaBeans, Java Server Pages, Java Naming and Directory Interface, Write Once, Run Anywhere are all claimed as trademarks or registered trademarks of Sun Microsystems, Inc. Object Watch is a registered trademark of Object Watch, Inc. All other trademarks are owned by their respective companies.

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE

Smile always; Never hurt anybody; Be responsible

.NET Platform vs. J2EE

Smile always; Never hurt anybody; Be responsible