'NET vs J2EE A Comparative Analysis - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

'NET vs J2EE A Comparative Analysis

Description:

Open standards such as XML and SOAP and the focus on communication among ... Security must be sure to perform strict audit and apply all updates. Knowledge Capital ... – PowerPoint PPT presentation

Number of Views:178
Avg rating:3.0/5.0
Slides: 64
Provided by: massimom6
Category:

less

Transcript and Presenter's Notes

Title: 'NET vs J2EE A Comparative Analysis


1
.NET vs J2EE A Comparative Analysis
  • Michele Arpaia
  • IT Professional

2
/Agenda
  • TOPICS

What software architecture is
A typical eBusiness scenario
.NET Architectures
J2EE Architectures
Similarities Differences between J2EE .NET
Conclusive considerations
3
0/Key Take-aways
After completing this presentation, you should be
able to
  • Understand what architectures are
  • Identify all key concepts related to
    architectures
  • Discuss architecture design goals and principles
  • Describe .NET platform
  • Describe J2EE platform
  • Describe all similarities and differences between
    .NET and J2EE
  • Choose which is the most convenient platform
    depending upon your needs
  • Be more objective without fighting a religious
    war!

4
What architectures are
  • Michele Arpaia
  • IT Professional

5
1/Architecture definition
  • Software architecture is one of those terms that
    everyone claims to understand but no one can
    define precisely!
  • Before giving a formal definition, we can say
    that most definitions involve references to one
    or more of the following
  • Static structure of the software relationship
    among elements
  • Dynamic structure of the software relationships
    that change over the lifetime and determine what
    the software looks like when its running
  • Composition, that refers to the type of
    significant but smaller pieces that can be part
    of the software
  • Layers Tiers and iteraction among them
  • Rationale for the software
  • Functionality of the software
  • Reuse, performance, scalability and so on

6
1/Architecture definition
  • More formally we can define a software
    architecture as
  • an abstract representation of a systems
    components and behaviors. Ideally, architecture
    does not contain details about implementation
    (thats left for the developers, or engineers).
    The architect gathers information about the
    problem and designs a solution, which satisfies
    the functional and nonfunctional requirements of
    the client and is flexible enough to evolve when
    the requirements change
  • and is additionally concerned with
  • ...usage, functionality, performance,
    resilience, reuse, comprehensibility, economic
    and technological constraints and trade-offs, and
    aesthetics Krutchen, 1999

7
1/Why Architecture?
  • The following list contains a few reason why it
    is important to focus on software architecture
  • An ad hoc approach to software will eventually
    lead to a system that is brittle and hard to
    change
  • Decomposition into smaller piecies makes software
    easier to understand, manage, develop and
    maintain
  • Improve scalabilty, resilience, estensibility,...
  • Better reuse thanks to layering approach
  • Component oriented
  • Having a well documented architecture makes it
    easier to communicate the intent and the
    substance of the system
  • Security, performance,...becomes predictable
    factors that can be well managed from the start

8
1/Layering
  • Layering creates a separation of concerns by
    abstracting specific type of funcionality into
    functional layers and providing conceptual
    boundaries between set of services
  • Layering is a pattern for decomposition
  • decomposition leads to a logical partitioning of
    the system into subsystems and modules
  • decomposition helps define and clarify interfaces
    between different pieces of a system
  • decomposition provides a natural partioning of
    the development tasks
  • in UML decomposition is modeled via packages,
    modules and subsystems

9
1/Tier
  • Tiers are layers with specific well-defined
    responsabilities, meaning they fulfill a specific
    role in the overall scheme of things. They are
    concerned with distribution of a software system
    over multiple, separate processes.
  • Type of application
  • One-tiered application Mainframe and dumb
    terminals
  • Two-tiered application LAN-based client-server
    systems
  • Three-tiered application web-based with
    separation of presentation logic, business logic
    and data logic
  • N-tiers apps introduce
  • Communication efficency between tiers
  • Extensibility changes to the user interface or
    to the application logic are largely independent
    from one another, allowing the application to
    evolve easily to meet new requirements.
  • Easy maintenance
  • Separation of responsabilities

10
1/Framework
  • A framework is a set of cooperating modules that
    make up a reusable design for a specific domain.
  • A framework provides a superset of the features
    which are needed for a system.
  • A framework dictates the system architecture.
  • Technically speaking,
  • framework has to do with vertical architecture
    for specific domains. For example financial,
    healthcare, mechanical CAD and so on...
  • There are a lot of frameworks in the marketplace
    and Accentures got ACA.NET GRNDS!

11
1/Architecture capabilities
12
A typical scenario
  • Michele Arpaia
  • IT Professional

13
2/A typical eBusiness scenario
  • MoneyBroker is a made-up business used only for
    illustrative purposes. Let's say the purpose of
    MoneyBroker is to allow on-line payment of bills.
    Customers can deposit money in a MoneyBroker
    account and then use that money to pay bills
    on-line.
  • Customer can pay bills either directly or
    indirectly.
  • Direct payment occurs at the MoneyBroker web site
    where customers log on and arrange for bill
    payment.
  • Indirect payment occurs through MoneyBroker
    partners.
  • MoneyBroker makes its profit by investing
    outstanding customer balances. Its profit is the
    difference between the interest rate it pays its
    account holders and the interest rate it makes on
    its investment.

14
2/A typical eBusiness scenario
A typical multitiered architecture where software
is placed on different processes
15
2/A typical eBusiness scenario
  • Presentation tier
  • Is responsible for working with clients.
  • With the MoneyBroker application, this tier works
    with thin browser-based bill paying clients.
  • The presentation tier accepts an HTTP requests
    from a web browser and returns an HTML page that
    browser can then display.
  • Different browsers have different display
    capabilities, so the presentation tier must often
    tailor the HTML to the specific browser (or other
    thin client device) capabilities.
  • Considering MVC Pattern, this tier plays the View
    role

16
2/A typical eBusiness scenario
  • Business Tier
  • For MoneyBroker, this includes the logic that
    maintains the customer accounts and the logic
    that transfers money as bills are paid.
  • The presentation tier communicates with the
    business tier through a method transport
    protocol. For the .NET platform, this protocol is
    usually either DCOM or SOAP. For J2EE, it is
    RMI/IIOP.
  • Business logic often requires expensive
    resources, such as database connections, threads,
    TCP/IP connections, and message queue
    connections. These resource requirements would
    normally make it difficult to support a large
    number of clients at any one time, a requirement
    of most eCommerce applications.
  • To address this problem, both the J2EE and the
    .NET framework business tier include a
    sophisticated middle tier infrastructure that
    supports resource sharing among clients. This
    infrastructure is critical to supporting large
    numbers of clients, and thereby achieving high
    system throughput. In J2EE, this middle tier
    infrastructure is called Enterprise JavaBeans
    (EJB). In the .NET framework, it is called COM.

17
2/A typical eBusiness scenario
  • Database Tier
  • Is where actual data is stored. For our
    MoneyBroker system, this is where we store
    customer account information and histories of
    bill payments.
  • The business tier is the primary client of the
    data tier, although most large corporations also
    have internal applications (not going through the
    eCommerce architecture) that also make use of
    databases residing on the data tier.
  • Communication between the business tier and the
    data tier use a specific API, ADO.NET for the
    .NET framework and JDBC for J2EE.

18
.NET architectures
  • Michele Arpaia
  • IT Professional

19
3/Microsoft-based Architectures
.NET is Microsofts next generation model for
developing enterprise applications that can be
connected anytime, anywhere using XML web
services. .NET provides developers all the
components including smart clients, Web Services,
servers, and developer tools to build enterprise
applications.
...technically speaking, is a development and
execution environment that allows different
programming languages libraries to work
together seamlessly to create Windows-based
applications that are easier to build, manage,
deploy, and integrate with other networked
systems.
20
3/Microsoft-based Architectures
Microsoft .NET provides architects and developers
all the technology and tools to build multi-tier
enterprise applications. With built-in support
for industry standards including Web Services,
.NET applications can also integrate with
non-Microsoft systems.
Smart clients are devices powered by Microsoft
software including the standard PC, Pocket PC,
SmartPhone, XBox, and Tablet PC. Web Services let
applications share data, and invoke functions
from other applications without regard to how
those applications were built, what operating
system or platform they run on, and what devices
are used to access them. Windows Server System
products have built-in security technologies,
support for XML, and the ability to scale out to
meet increased demands. Developer tools like
Visual Studio .NET allow developers to build,
debug, and deploy applications and Web Services.
21
3/Microsoft-based Architectures
The .NET-based application architecture provides
four main layers and focuses on distributed,
service-oriented architectures.
Users may be on a thick client, a web
application, or a mobile device such as a Pocket
PC. Calling services from other applications or
even other enterprises can leverage the business
functions provided by the application. Presentatio
n may be HTML, XML, WAP, or some other
application specific format. Business logic is
encapsulated as .NET components and can easily be
shared with other applications using XML web
services. Data from many sources and platforms
can be accessed using industry standards such as
ODBC built into .NET. Services provided by other
sources can be incorporated into the application.
22
3/Microsoft-based Architectures
ASP.NET is Microsofts technology for building
Web applications and services. Developers create
applications using server-based Web Forms and
Controls.
  • Web Forms are the User Interface (UI) elements
    that give Web applications their look and feel.
    Web Forms provide properties, methods, and events
    for the controls that are placed onto them.
    However, these UI elements render themselves in
    the appropriate markup language required by the
    request, for example, HTML. Visual Studio .NET
    provides a drag-and-drop interface to create the
    UI for a Web application.
  • ASP.NET and Web Forms have the following
    benefits
  • Separation of HTML interface from application
    logic-no more spaghetti code
  • A rich set of server-side controls that can
    detect the browser and send out appropriate
    markup language such as HTML
  • Less code to write due to the data binding
    capabilities
  • Event-based programming model
  • Compiled code and support for multiple languages
  • Allows third parties to create controls that
    provide additional functionality

23
3/Microsoft-based Architectures
Windows Forms is a .NET technology that enables
developers to build Windows-based applications.
Similar to Web Forms, Windows applications are
created using forms and controls.
  • Windows forms drastically decrease the complexity
    of creating user interfaces for Windows clients.
    This type interface delivers a rich, flexible,
    performant, and easy-to-use desktop application.
  • .NET rich client applications can be deployed
    using a web server and automatically update
    themselves when new versions are available.
    Traditional deployment on a CD, DVD, floppy, etc.
    is also supported.
  • The Code Access Security model in .NET ensures
    that code downloaded from the Internet is not
    allowed to cause harm to the client. There is a
    fine-grained security system that will trust code
    depending on its origin and credentials, such as
    a digital signature.
  • Consider a rich client if your application runs
    in a controlled environment, must work offline,
    uses local APIs, or uses peer-to-peer technology.

24
3/Microsoft-based Architectures
Microsoft .NET is built from the ground up to
support the development and operation of XML Web
Services. XML Web Services are the fundamental
building blocks in the move to distributed
computing on the Internet. Open standards such as
XML and SOAP and the focus on communication among
applications have created an environment where
XML Web Services are becoming the platform for
application integration.
  • ASP.NET is the preferred technology for
    implementing Web Services. It supports service
    requests using SOAP over HTTP, as well as HTTP
    GET or POST. ASP.NET Web Services automatically
    generate WSDL files.
  • The .NET Framework SDK also provides tools to
    generate proxy classes that client applications
    can use to access Web Services.
  • Microsoft Visual Studio .NET provides additional
    tools to help you build, deploy, and consume Web
    Services. For example, the IDE generates
    client-side proxies from WSDL files.

25
3/Microsoft-based Architectures
Almost all applications must access an external
data store, and Microsoft .NET provides a
powerful and extensible framework for data
access. ADO.NET allows consistent access to a
number of data sources.
  • ADO.NET supports the accepted industry standard
    ODBC and OLE DB which allow .NET applications to
    access virtually an relational database
    management systems (RDMS).
  • ADO.NET Manager Providers provide direct,
    low-level access to an RDMS using a consistent
    client API. Microsoft provides a Manager
    Provider for SQL Server, Oracle, OLE DB, and
    ODBC.
  • Extensible Data Provider framework allows 3rd
    party vendors to create optimized data providers
    for their specific systems.
  • ADO.NET has native support for XML that allows
    data sets to be easily serialized for transport
    or persistence.

26
3/Microsoft-based Architectures
Visual Studio .NET is an end-to-end tool for
designing, developing, debugging, and deploying
secure applications for Microsoft Windows, the
Web, and mobile devices.
  • Build a broad range of applications for Microsoft
    Windows, the Web, and devices.
  • Contains intuitive visual designers, data access
    tools, client- and server-side visual designers,
    and inherent support for XML Web Services.
  • Provides a unified integrated development
    environment (IDE) and a choice of programming
    languagesincluding Microsoft Visual Basic .NET,
    Microsoft Visual C .NET, Microsoft Visual
    C .NET, and Microsoft Visual J .NET.

27
3/Microsoft-based Architectures
The Microsoft Windows Server System provides the
infrastructure for building, deploying, and
operating applications and Web Services. Key
Windows Server System products include
  • Microsoft Application Center 2000 for scale-out
    technologies optimal for Web applications.
  • Microsoft BizTalk Server 2002 for XML-based
    business process orchestration across
    applications, services, and companies.
  • Microsoft Commerce Server 2000 for online
    e-commerce.
  • Microsoft Content Management Server 2001 to build
    and deploy content-driven Web sites.
  • Microsoft Exchange Server 2000 for email and
    collaboration.
  • Microsoft Internet Security and Acceleration
    Server 2000 to provide a firewall.
  • Microsoft Host Integration Server 2000 for
    integrating mainframe data.
  • Microsoft Mobile Information Server 2002 for
    delivering data to wireless devices such as
    mobile phones.
  • Microsoft Operations Manager 2000 to deliver
    solutions for operations management.
  • Microsoft SharePoint Portal Server 2001 for
    finding, sharing, and publishing business
    information through corporate intranets.
  • Microsoft SQL Server 2000 for storing and
    retrieving data.

28
3/Microsoft-based Architectures
Microsoft offers a wide range of client operating
systems that power devices ranging from desktop
computers to smart phones. These products
support both XML and industry standards for
wireless communication. Microsoft operating
systems include
  • Windows XP - The fastest and most reliable
    version of Windows that works seamlessly with
    .NET-connected software.
  • Windows 2000 Professional - The Windows operating
    system for business desktop and laptop systems.
  • Windows CE .NET - The operating system that
    enables developers to build the next generation
    of mobile and small footprint devices.
  • Windows Smartphone 2002 - The mobile phone that
    lets you operate in the .NET universe,
    communicating by means of voice and text.

29
3/Microsoft-based Architectures
  • PROs
  • End-to-end technology vendor can provide all
    the integrated components
  • Productivity tools and technologies are easy to
    use
  • Strong alliance with Accenture excellent
    support from Microsoft
  • Vendor solvency 60 billion in cash
  • Multi-language support choose from several
    including C and VB.NET
  • CONs
  • Platform dependence .NET must currently run on
    proprietary Microsoft systems
  • Security must be sure to perform strict audit
    and apply all updates

30
Knowledge Capital
  • Resources
  • https//mso.accenture.com/
  • https//se.accenture.com/
  • http//www.microsoft.com/net/
  • http//msdn.microsoft.com/
  • http//www.gotdotnet.com/
  • http//www.asp.net/

31
Java based architectures
  • Michele Arpaia
  • IT Professional

32
4/Java-based Architectures
Java-based architectures rely on standardized,
modular components built with the Java language.
They provide a complete set of services to those
components, and handle many details of
application behavior automatically, without
complex programming.
The J2EE platform takes advantage of many
features of the Java 2 Platform, Standard Edition
(J2SE), such as "Write Once, Run Anywhere"
portability, JDBC API for database access, CORBA
technology for interaction with existing
enterprise resources, and a security model that
protects data even in internet applications.
33
4/Java-based Architectures
There are 3 different flavors of Java J2ME
Micro Edition for Java-enabled phones, PDAs,
etc. J2SE Standard Edition for common services
and thick client apps J2EE Enterprise Edition
for web applications, Web Services, messaging,
XML, etc. J2EE provides a set of standards for
developing modular, multi-tier enterprise
architectures. J2EE is a specification not a
product. Sun and the Java community rely on
vendors to create products that adhere to the
specification.
34
4/Java-based Architectures
  • J2EE provides developers with a specification for
    developing multi-tier enterprise applications.
  • The J2EE application model partitions
    applications the work needed to implement a
    multi-tier service into two parts the business
    and presentation logic to be implemented by the
    developer, and the standard system services
    provided by the Java platform.
  • To better control and manage these applications,
    the business functions to support these various
    uses are conducted in the middle tier.
  • Java-based applications often rely on the
    Enterprise Information System (EIS)-Tier to store
    the enterprises business-critical data. This
    data and the systems that manage it are at the
    inner-core of the enterprise.

35
4/Java-based Architectures
  • The J2EE-based Application Architecture consists
    of four main tiers

36
4/Java-based Architectures
The JavaServer Pages (JSP) technology provides an
extensible way to generate dynamic content for a
Web client.
  • JSP technology mixes standard, static HTML with
    Java code to dynamically generate content. The
    Java code for the dynamic portions is enclosed in
    special tags, most of which start with lt and
    end with gt. These sections of embedded code
    are typically called Scriptlets.
  • JSP technology allows developers to extract
    commonly used scriptlets into external objects
    called Custom JSP Tags. Custom Tags allow
    developers to write logic once, and then reuse it
    across their entire application.
  • Similarly, the Servlet 2.3 specification
    introduced a collection of reusable tags called
    JSP Standard Tag Libraries (JSTL). These tags
    cover the most commonly used scriptlets and
    provide significant performance benefits.

37
4/Java-based Architectures
Java Servlets were designed as a means of
extending the functionality of a Web Server. 
  • Servlets are a portable platform- and web
    server-independent means of delivering dynamic
    content to a web client.
  • Servlets receive a request from a client,
    dynamically generate the response (possibly
    querying business services to fulfill the
    request), and then send the response containing
    an HTML or XML document to the client.
  • Servlets arent just for web applications. They
    are also commonly used as interfaces to
    Java-based Web Services because they are simple
    to code, and because they can accept and return
    XML messages.

38
4/Java-based Architectures
  • Enterprise JavaBeans (EJB) is a server-side
    technology for developing and deploying
    components containing the business logic of an
    enterprise application. EJBs contain the
    following characteristics
  • EJBs are scalable and transactional and are more
    resource intensive than regular Java objects,
    therefore, their use should be limited to
    situations where their benefits are truly
    required especially when high performance is
    critical
  • EJB server provides system-level services such as
    transaction management, concurrency control, and
    security.
  • EJB technology provides a distributed component
    model that enables developers to focus on solving
    business problems while relying on the EJB server
    to handle complex system-level issues.
  • There are three types of EJBs
  • Session beans
  • Entity beans
  • Message-Driven beans

39
Session Beans
  • One of the three types of Enterprise JavaBeans is
    a session bean.
  • A session bean provides some service on behalf of
    a requesting client, and usually represents a
    business process. For example, a session bean
    can perform complex calculations or make changes
    to a database.
  • Session beans can be stateless or stateful (i.e.,
    maintain conversation context across methods and
    transactions). There is a performance and
    scalability cost to stateful session beans so
    stateless EJBs are more commonly used.
  • Session beans are transient, therefore if a
    session beans container crashes, any uncommitted
    information or processing is lost.

40
4/Java-based Architectures
The second type of Enterprise JavaBeans is an
entity bean.
  • An entity bean is a persistent object that
    represents data maintained in a data store and
    usually represents a business entity. An entity
    bean can manage its own persistence (bean-managed
    persistence) or it can delegate this function to
    its container (container-managed persistence).
  • Entity beans are not transient, therefore, if the
    container in which an entity bean is hosted
    crashes, the entity bean, its primary key, and
    any remote references survive the crash.
  • Container-managed persistence usually comes at a
    very high performance cost due to the
    object-relational mapping complexities.

41
4/Java-based Architectures
The third type of Enterprise JavaBeans is a
message-driven bean.
  • Message-driven beans are similar to Session Beans
    in that they typically perform services, however,
    they are only accessible via messages.
  • Message-driven beans act as listeners on message
    queues. They are typically used in conjunction
    with JMS (Java Messaging Service) when
    asynchronous processing is required.
    Asynchronous messages are those messages that are
    pushed to the application, but dont require a
    reply.
  • Message-driven beans typically call other EJBs
    (Session or Entity) to perform their operations.
  • Message-driven beans and JMS are becoming
    increasingly popular in Web Services and other
    service-oriented architectures. They allow
    applications to receive messages even if some
    backend systems are down. When the systems come
    back up, messages will be pulled from the queue
    and processed by the bean.

42
4/Java-based Architectures
  • A services middle-tier business functions must
    access and update the information in the
    EIS-tier. Several standard Java service APIs
    provide basic access to these systems
  • JDBC - the standard API for accessing relational
    data from Java
  • Java Naming and Directory Interface (JNDI) - the
    standard API for accessing information in
    enterprise name and directory services
  • Java Message Service (JMS) - the standard API
    for sending and receiving asynchronous messages
  • Java API for XML Parsing (JAXP) - supports
    processing of XML documents using DOM, SAX, and
    XSLT.
  • Java Transaction API (JTA) - the standard
    interface for demarcating transactions
  • J2EE Connector Architecture (JCA) - defines
    interfaces for the integration of enterprise
    applications (ERP, CRM, etc.) with Java-based
    applications

43
4/Java-based Architectures
  • PROs
  • Platform independence
  • Scalability to meet demand variations
  • Simplified architecture and development due to
    split of presentation and dynamic content
  • Multivendor support
  • Flexible security model
  • Functionally complete standard libraries
  • CONs
  • Complexity
  • Possible integration of multiple vendor solutions
  • Longevity of vendors
  • Skill set of individuals

44
4/Knowledge Capital
  • Java Resources
  • http//java.sun.com
  • http//webdeveloper.com/java/
  • http//www.theserverside.com
  • http//dev2dev.bea.com
  • http//www.ibm.com/developerworks/
  • http//www.apache.org
  • Accenture Resources
  • https//se.accenture.com/
  • https//experts.accenture.com
  • https//onesource.accenture.com
  • https//webservices.accenture.com

45
Similarities Differences between J2EE .NET
  • Michele Arpaia
  • IT Professional

46
5/Strategic Comparison
47
5/Strategic Comparison
Java and Microsoft .NET have very similar
conceptual architectures.
.NET
Java
Source Code
VB, C, C, COBOL, others
Java
Compiler
Compiler
Intermediate Code
MSIL (Microsoft Intermediate Language)
Java byte code
  • CLR (Common Language Runtime)
  • Wintel platform today, but likely to be ported
  • JRE (Java Runtime Env. aka JVM)
  • Many OS (Sun, IBM, HP, Linux, Wintel )
  • Many App servers (BEA, Apache, IBM, Sun )

Run Time
Current Platform Support
  • Intel x86
  • When CLR is ported then other .NET applications
    will run on other platforms

Intel x86, Sun, HP, IBM
48
5/Strategic Comparison
You can see that there is tremendous overlap
between the J2EE and .NET platform technologies.
How, then, does one choose between them?
  • Vendor Neutrality
  • Sun technologies are supposed to be vendor
    neutral. But the neutrality nowdays is still far
    from being a reality. Lets hear what Paul
    Harmons admits
  • The reality, at the moment, is that if you want
    to develop an EJB application, you should stick
    with a single vendor
  • On the other hand, .NET is concivied to be not
    neutral at all.
  • Framework Support
  • When building a large, eCommerce solution, it
    goes without saying that one does not want to
    start from scratch. One wants to build on top of
    a well defined and tested eCommerce framework.
    The use of such a framework can dramatically
    reduce development costs, probably by a factor of
    at least 10.
  • The .NET platform includes such an eCommerce
    framework called Commerce Server. At this point,
    there is no equivalent vendor-neutral framework
    in the J2EE space.

49
5/Strategic Comparison
  • Overall Maturity
  • J2EE deployments are alive and healthy, running a
    variety of mission-critical business problems
    today. However, when looking past the surface, it
    should be noted that there are some identifiable
    areas of risk where J2EE lacks maturity
  • The automatic persistence provided EJB is still
    immature.
  • The Java Connector Architecture (JCA) is new.
  • All web service support is new.
  • For Microsoft.NET, the story is a bit different.
    Some of .NET is based on Windows DNA, which also
    runs a variety of mission-critical web sites
    today and enjoys success. However
  • With the new CLR, a good portion of the
    underlying .NET platform has been substantially
    rewritten. Indeed, the platform itself is
    currently only available in a beta version.
  • C is new.
  • All web service support is new.

50
5/Strategic Comparison
  • Market Perception
  • When comparing two platforms, your first instinct
    is probably to compare the technologies. The
    unfortunate reality is that good technology
    rarely succeeds in the marketplace because it's
    good technology. Usually it's the technology with
    the best marketing that wins.
  • J2EE is an extremely well-marketed platform
    because it is being marketed by an entire
    industry of 50 assorted vendors. This network of
    interdependent businesses form a virtual
    marketing machine, and the result is a fantastic
    market perception for J2EE.
  • .NET's marketing strength stems from the fact
    that Microsoft knows how to market a platform.
    They have put their "A" team on marketing .NET,
    as is apparent in the industry hype surrounding
    the platform.
  • Microsoft's advantage is also that it announced
    it's webservices strategy before the J2EE
    players, which gave it market perception.
  • So in the marketing front, we give the nod to
    Microsoft for doing the best job in hyping their
    platform--so far.

51
5/Strategic Comparison
  • Tools
  • The Sun J2EE Product Portfolio includes Forte, a
    modular and extensible Java-based IDE that
    pre-dates both Sun J2EE and .NET. Developers who
    prefer other IDEs for Java development are free
    to use WebGains Visual Café, IBMs VisualAge for
    Java, Borlands JBuilder, and more. Numerous 3rd
    party
  • tools and open source-code products are
    available.
  • Microsoft has always been a strong tools vendor,
    and that has not changed. As part of its launch
    of .NET, Microsoft released a beta version of the
    Visual Studio.NET integrated development
    environment. Visual Studio.NET supports all
    languages supported by earlier releases of Visual
    Studio - with the notable
  • exception of Java. In its place, the IDE supports
    C, Microsofts new object-oriented programming
    language, which bears a remarkable resemblance to
    Java. Visual Studio.NET has some interesting
    productivity features including Web Forms, a
    web-based version of Win Forms, .NETs GUI
    component set.

52
5/Strategic Comparison
  • Performance
  • A platform performs if it yields an acceptable
    response time under a specified user load. The
    definition of what is 'acceptable' changes for
    each business problem. To achieve acceptable
    performance, it is important that the underlying
    infrastructure empowers you to build
    high-performing systems.
  • In general J2EE offers many tactics to cope with
    performance issues altought this flexibility
    requires well-educated developers.
  • Microsoft .NET tends to perform better because
    framework is tailored around a well-known server
    infrastructure. In any case there are no
    opportunities for developers to introduce errors
    into systems so it is less flexible.

53
5/Strategic Comparison
  • Migration from previous platform
  • A J2EE does not impose many migration problems.
    The Java Connector Architecture (JCA) as well as
    the web services support in J2EE is brand new and
    will require new code, but those are minor
    overall.
  • Although Microsoft.NET is based on MTS and COM,
    we are concerned that the migration to .NET will
    be taxing compared to J2EE. First off, .NET is
    based on the managed code framework, which
    steals a lot of ideas from COM and MTS, but its
    still an entirely new infrastructure based on an
    entirely new
  • code base CLR. Taking advantage of the most
    valuable aspects of the CLR impose one-time
    frictions.
  • For example to accommodate a Common Type System
    (CTS) which standardizes on data types used
    between languages, the original Visual Basic data
    types have been dismissed. Consequently, code
    dependent upon those original Visual Basic data
    types will break, and there is currently no
    migration tool.

54
Conclusive considerations
  • Michele Arpaia
  • IT Professional

55
6/Conclusive considerations
Both Java and .NET are big improvements over the
preceding generation of systems development
technologies. This is a general comparison of the
basic abilities.
.NET
Java
Comment
  • Both technologies provide a rich set of class
    libraries for networking and Internet integration
  • Interoperability

Excellent
Excellent
  • Availability/Reliability
  • Java is more mature and is available on more
    platforms
  • Both provide solid reliability

Good
Excellent
  • Performance
  • Both Java and .NET offer good performance
  • Both Java and .NET introduce some overhead due to
    their reliance on a Runtime layer

Very Good
Very Good
  • Developer Productivity
  • Java and the .NET programming languages are rich
    object oriented languages with many built-in
    classes to re-use
  • Microsofts Integrated Development Environment
    (IDE) is ahead of those offered by the Java
    community

Excellent
Very Good
  • Cost of Ownership
  • Java and .NET both improve on the ability to
    build and deploy applications that are easier to
    maintain and support

Good
Good
56
6/Conclusive considerations
  • Microsoft Position
  • Choose your programming language (C, C, VB)
    they all work together
  • Today you are limited to a Windows OS and Intel
    compatible hardware
  • The specifications for Microsoft Intermediate
    Language (MSIL) and the Common Language Runtime
    (CLR) are in the public domain so other vendors
    are free to develop their own CLRs and language
    compilers that support the .NET framework
  • Microsoft has submitted C, the Common Type
    System (CTS) and the Common Language
    Specification (CLS)specifications to the European
    Computer Manufacturers Association (ECMA)
    standards body and both were ratified in December
    2001
  • Fujitsu has developed a .NET COBOL compiler
  • Ultimately the .NET framework could support many
    platforms and many development languages
  • .NET represents a major strategy shift for
    Microsoft with regard to Intellectual Property

57
6/Conclusive considerations
  • Sun Position
  • Use the Java programming language Write it
    once, run it everywhere
  • Choose your OS and Hardware platform
  • Applications are portable across OS and Hardware
    platforms
  • Choose your favourite IDE
  • Choose your Application Server J2EE compliant
    (30)
  • Recent releases of Java have focused on
    enhancements for Servers and Wireless devices --
    not GUI and desktop enhancements

58
6/Conclusive considerations
  • Arguments for .NET and against J2EE
  • .NET has Microsoft's A-team marketing it
  • .NET released their web services story before
    J2EE did, and thus has some mind-share
  • .NET has a better story for shared context today
    than J2EE
  • .NET has an awesome tool story with Visual
    Studio.NET
  • .NET has a simpler programming model, enabling
    rank-and-file developers to be productive without
    shooting themselves in the foot
  • .NET gives you language neutrality when
    developing new eBusiness applications, whereas
    J2EE makes you treat other languages as separate
    applications
  • .NET benefits from being strongly interweaved
    with the underlying operating system

59
6/Conclusive considerations
  • Arguments for .J2EE and against .NET
  • J2EE is a proven platform, with a few new web
    services APIs. .NET is a rewrite and introduces
    risk as with any first-generation technology
  • J2EE is a more advanced programming model,
    appropriate for well-trained developers who want
    to build more advanced object models and take
    advantage of performance features
  • J2EE lets you take advantage of existing hardware
    you may have
  • J2EE gives you platform neutrality, including
    Windows. You also get good (but not free)
    portability. This isolates you from heterogeneous
    deployment environments.
  • J2EE has a better legacy integration story
    through the Java Connector Architecture (JCA)
  • J2EE lets you use any operating system you
    prefer, such as Windows, UNIX, or mainframe.
  • Developers can use the environment they are most
    productive in.
  • According to Gartner, there are 2.5 million Java
    developers. IDC predicts this will grow to 4
    million by 2004. 78 universities teach Java, and
    50 of universities require Java.

60
6/Conclusive considerations
  • My opinion
  • The .NET vs. Java debate is not good versus bad.
    Its about what is more fit for purpose. They
    are both excellent technologies and developer
    tools.
  • A .NET GUI application for desktop Windows is
    consistent with the strategies being implemented
    by other software vendors and other major
    industry players.
  • Java is commonly used to build server based
    application components for large scale, high
    volume web sites. However, .NET is gaining
    momentum in this area as well.

61
Questions and Answers
Any questions?
62
(No Transcript)
63
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com