Download Compare and Will Evolve Java and .Net

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Java vs. .net
指導教授: 莊裕澤 教授
學
生: 周景祥
吳蓬琪
陳文耀
Agenda

Part I - Introduction to Java, .NET and Web Services (周景祥)

Part II - Comparisons to Java and .NET (吳蓬琪)

Part III - How Java and .NET will Evolve (陳文耀)
Java vs. .NET
2
Part I
Introduction to Java, .NET and
Web Services
周景祥
What is Microsoft .Net?

It is a vision
 The platform for the digital future
 ‘.NET is Microsoft’s platform for a new computing model
built around XML Web Services’
Microsoft Corporation Annual Report, 2001



It is a brand name
 Applied to many things
It is a set of products and technologies
 Infrastructure
 Tools
 Servers
 Services
.Net is Microsoft’s core business Strategy
Java vs. .NET
4
.NET Technologies




The .NET Framework
Microsoft .NET is deeply integrated into the
Windows Server 2003 family.
 The CLR(Common Language Runtime) with support for XML Web
services and more
Integral to the Microsoft platform, the .NET
Framework
provides
ability to quickly
 Supporting Visual Basic.NET,
C#, C++,
andthe
more
and reliably build, host, deploy, and use
The .Net development toolssecure and connected solutions through
XML Web services.
 Visual Studio.Net
The .NET Enterprise Servers
 Windows Server 2003, BizTalk Server 2003, SQL Server 2003,
Commerce Server 2003 and more
The .Net Services
 Passport, My Services, bCentral, expedia and more
Java vs. .NET
5
.NET Framework
The .NET Framework enables an unprecedented level of
software integration using XML Web services: discrete,
building-block applications that connect to each other—as well
as to other, larger applications—via the Internet.
VB
C++
C#
JScript
Common Language Specification
Web
Services
User
Interface
Data and XML
Base Class Library
…
Visual Studio.NET

Common Language Runtime
Java vs. .NET
6
A typical .NET Enterprise Solution
Browser
IIS on
Window Server 2003
.NET
managed
ASP
.NET component
SQL
Server
Windows
Client
Java vs. .NET
7
Java and J2EE




Java: A Programming Language based on JVM
J2EE: Java 2 Enterprise Edition
 Superset of Java 2 Standard Edition (J2SE)
 Adds enterprise features to Java Libraries
Defined through the Java Community Process (JCP)
 plus whatever Sun sees fit, Sun has last word
 Sun writes almost all specs and other contribute
 Submitters essentially surrender all rights to Sun
Wholly owned property of Sun Microsystems
 Licensing controlled by Sun, by Sun's rules
 JCP Broadens Sun's architect's base
Java vs. .NET
8
Enterprise Java

J2EE (1.4+) is an infrastructure specification for:





Implemented by: Sun, IBM, BEA, Oracle, etc.







Components ("Beans")
Data Source Connectivity
XML and Messaging
Web Pages and Web Services
IBM WebSphere (37% market share)
BEA WebLogic (29% market share )
SUN iPlanet
Oracle Application Server 9i
Fujitsu Interstage
…
All vendors implement core specification, but:


Some areas in J2EE are (intentionally) not specified
The more specific a functionality the more proprietary the implementation gets
Java vs. .NET
9
J2EE Architecture
Java vs. .NET
10
A typical J2EE Enterprise Solution
Java App
Server
Servlet
EJB
JSP
Browser
DB
Server
Java
Client
Java vs. .NET
11
What are Web Services?
Web Service是在網際網路上提供其它程式或系統呼叫使用的程式,而這些程式
間用XML做為其溝通媒介
Web Services Standards
(XML, SOAP, WSDL, etc,…)
SOAP Messages
Web Services Standards
(XML, SOAP, WSDL, etc,…)
Application Logic
Application Logic
Development Platform
And Language
Development Platform
And Language
Operating System
Operating System
Hardware
Hardware
Web Services 架構將底層應用元件抽象化
Java vs. .NET
12
Architecture of Web Services?
Web service architecture involves many layered and interrelated technologies.
There are many ways to visualize these technologies, just as there are many
ways to build and use Web services. The following stack diagram provides one
illustration of some of these technology families.
Web Services 相關技術規格架構圖
Java vs. .NET
13
Web Services - SOAP Message Flow
SOAP:Simple Object Access Protocol,架構在XML之上,是一種架構簡單的輕量級
資料傳輸協定,用於分散式網路環境下做資料訊息交換,只要訊息收送雙方都支援此
協定,就可以彼此交談,這也正是Web Service想要突破平台、語言疆界的最佳利器,
SOAP訊息處理流程圖是如圖四[DPR02]。
Java vs. .NET
14
Steps to Enable Web Services?
UDDI
Service Broker
2. Find
1. Publish
3. Bind
Service Requester
Service Provider
WSDL
Web Services 登錄及使用流程圖
Java vs. .NET
15
.NET 與 J2EE 在Web services 的比較
J2EE
.NET
既有的Java classes 及EJB可直接支援
Web services 使用不需修改程式
既有的classes需修改程式繼承
WebService類別
Application server 使用原來的訊息溝
通介面(RMI or RMI/IIOP)
使用COM轉包機制
在Java framework 增加一層(tier)處理
支援web service
分算式運算環境及架構改變
技術特性與原理
以Java語言為中心支援各種平台
以Window平台為中心支援各種語言
既有的應用系統可直接建構Web
Service
既有的應用系統或元件需要修改或
包裝以建構成 Web Service
Java vs. .NET
16
Q&A
Part II
Comparisons to Java and .NET
吳蓬琪
Comparison on Technical Common Elements
–
Both platforms have features/functions for e-business solution
Concept
J2EE
.NET
Presentation
JSP/Servlets
ASP.NET
Business Logic
EJB/Servlets
Code Behind, Remoted
Classes
Language
Java
C#, C++, VB.NET, etc
Platform
Any
Windows
DB Connectivity
JDBC
ADO.NET (OLE-DB, ODBC)
Web Services
JWSDP
Web Services Classes
Runtime
JRE
CLR
Transaction
JTA/JTS
XA Com+, DTC
Distributed computing
RMI, CORBA, SOAP
SOAP, DCOM
XML Parser
JAXP, Others
Built-in (System.XML)
Stateful Session
Components
Stateful Session Bean
MTS Components
Java vs. .NET
19
Client 端, 雙方 (ASP 與 JSP/Servlets) 普及率高
Server 端 Java (EJB) 較佔優勢

JSP/Servlets 與 Microsoft ASP是目前最受歡迎的開發技術(用戶端系統開發),而
對於應用於伺服器端負責處理商業邏輯模組的技術,Java EJB應用開發的比例
(47%)大於Microsoft COM的應用比例(36%),這是目前Java在大型企業應用領域
已取得的優勢。
Java vs. .NET
20
Comparison on Maturity of Platform
– J2EE is the more mature platform

For J2EE, it should be noted that there are some identifiable areas of risk where
J2EE lacks maturity:




For Microsoft .NET, some of .NET is based on Windows DNA, which also
runs a variety of mission-critical web sites today and enjoys success. However:




The automatic persistence provided EJB is still immature.
The Java Connector Architecture (JCA) is new.
All web service support is new.
With the new CLR, a good portion of the underlying .NET platform has been
substantially rewritten. Indeed, the platform itself is new.
C# is new.
All web service support is new.
In conclusion, J2EE is the more mature platform. It is true that certain new
features in J2EE are new and risky. However, the very underlying fabric
of .NET, is an overhauled rewrite, and the entire C# language is brand new.
This represents enormous risk compared to the new J2EE features.
Java vs. .NET
21
Comparison on Performance
– .Net has a higher performance
Java vs. .NET
22
Comparison on Cost
– J2EE has a higher system cost


For J2EE has a much higher system cost compared to .NET. If the cost
of the system is a serious consideration, the .NET platform has a major
advantage of J2EE.
The cost, risk and time should be evaluated carefully for a migrant to
“professional” Java development. The acceptance threshold should
be defined to meet business needs.
Evaluation Framework
by Gartner Research
Java vs. .NET
23
Comparison on Productivity
– .Net is good on Productivity

When fewer codes and less defects happened, projects can
be more focus on business logic and further to improve the
productivity of project team. The Lines-Of-Codes result of
some implementation sample is shown below:
Java vs. .NET
24
Comparison on Time to Market
– .Net solution is good

J2EE and .NET support different features to
accelerate time to market. J2EE has state
management, persistent management service and
vender specific business process management
tools. . NET has ASP.NET client independent state
server side control, Queued Component, as well as
business process management tools.
However, .NET has the ease of use of
development tools support.
Java vs. .NET
25
Comparisons for Technical Concern
Technical Concern
J2EE Platform
Microsoft .NET Platform
Architecture
Similar
Similar
Interoperability of Web
Service
Yes
Yes – Excellent
Usability
Average
Excellent for GUI development
Productivity
Low
Excellent
Security
Both support role-based
Both support role-based
Performance
Slow
At least twice+ faster
Stability
Used in various companies
Used in various companies
Reusability
Powerful
Powerful
Comprehensibility
High learning curve
High learning curve
Programming Language
Support
Java
VB.NET, C#, J#, C++, COBOL
and more
Portability
Various platform
Windows platform only
Client Device Independence
Bad – developers
everything
handle
Java vs. .NET
Excellent – platform support
26
Comparisons for Non-technical Concern
Non-Technical Concern
J2EE Platform
Microsoft .NET Platform
Trend on Market Share
Similar
Similar
Vender Neutrality
Multiple Vendors
Single vendor
Platform Maturity
Good
New
Web Service Influence
Follower
Leader
Software License Cost
High
Low
Total System Cost
High
Low
Risk of Maturity
Low
High
Time-to-Market
Good
Good
Java vs. .NET
27
Choosing between Java/J2EE and .Net



The ultimate choice usually depends not on
technical superiority, but on:
 cultural/”religious”/political preferences
 Customer preference
 Vendor relations
 Skill set of your developers
You are most likely to be developing in both
environments for the foreseeable future
Look out for “The third way”
 Linux, Apache, MySQL, PhP, …
Java vs. .NET
28
Q&A
Part III
How Java and .NET will Evolve
未來趨勢分析與展望
陳文耀
80% 的系統開發將使用Java 或.NET
- Trends of Shifting to .NET and Java Programming Models



趨勢 Both platforms will garner roughly equal market shares and totally command
80 percent or more of new e-business applications development in next 5 years.
關鍵因素 Key trends and considerations for enterprise
to migrate from legacy to .NET and Java
 Application Integration
 Platform Interoperability
觀察指標


Look to vendors that align and articulate strategic relationship with either .NET or Java.
Look to vendors that are able to deliver integration technologies to bridge those platforms
Java vs. .NET
31
市場定位
- J2EE dominates high-value enterprise deployment today and is expected to
retain the lead in these segments. Microsoft .NET is working to gain presence
and will do so.
Source: Gartner Research
Java vs. .NET
32
.NET即起直追- 中小型應用領域領先,
大型複雜關鍵應用領域步步逼近

隨著.NET相關技術的日益成熟與普及,Microsoft將以約略相等的市暫率
瓜分Java的市場,除了在中小型系統應用領域將大幅超前Java外,在大型
系統應用領域也將對Java造成極大威脅。以下以專案型態分析未來各類系
統採用兩種技術的的市佔比例。
Java vs. .NET
33
目前強弱分析 - 互有長短 各擅勝場
- .NET vs. J2EE — Strengths, Weaknesses, Opportunities and Threats
based on current status
Java/J2EE
.NET
優勢
Strong support across many
vendors and platforms.
Maturity
Strong support for next-generation
Internet, XML and Web-services
centric solutions.
Good performance.
弱點
Growing complexity and
ease-of-use concerns.
High cost
Immaturity and lack of integration
into existing products.
Window only
機會
Cut .NET off while it remains
immature and promote
cross-platform appeal.
Close the gap with Java vendors
and outpace them in key areas
(such as Web services).
威脅
Potential dominance of .NET in
mid-market, pushing into the
enterprise over time.
Growing momentum and maturity
of Java-based vendors
Source: Gartner Research
Java vs. .NET
34
Java符合公開標準,.NET力挺Internet Standard
- Scorecard of Open Standard for Java and .NET
Java vs. .NET
35
對目前windows developers而言, 轉向
.NET將是無法抗拒的改變 !
- Impact on Microsoft Developers for .NET


勢在必行 A question of “When” not “If” (like switch
from 16-bits DOS to 32-bits Windows
注意事項 Strategy considerations for migration plan:




Migration
Immaturity
Skill migration
Learning curve of developers
執行順序 Milestones in priority:



New non-mission-critical
New mission-critical
Conversion of legacy
Java vs. .NET
36
Java 的標準化及平台獨立性,
將因特製功能的增加而遞減 !
- Impact on Java Developers for Java
Migration

趨勢 Vendor product strategies are shifting to embrace the "one-stop
shopping" strategies of these buyers, and this will subsequently
increase the degree of vendor-specific technology within enterprise
Java software during the next five years.

注意事項:
 Carefully chose an enterprise
Java technology provider
 Understand the pros and cons of
the productivity vs. flexibility
trade-off vendor
Java vs. .NET
37
Java 廠商的研發及技術支援極為重要!
- Impact on Java Developers and Customers for Java Migration

趨勢 The Java market is moving into a consolidation (shakeout)
phase, during which a small number of vendors will dominate
over the next five years.
AD: Application Development
Enterprise Java AD Tools Market
Leaders
Challengers
IBM
Oracle
Borland
SilverStream
WebGain
Ability to
Execute
CA
Versata
HP
Compuware
Sybase
Sun
Apple
As of 6/01
Niche Players
Visionaries
Completeness of Vision
Copyright © 2002
Java vs. .NET
38
中小企業傾向.NET, 大企業兩案並存
(大系統,小系統使用不同方案)
- Trends of Technology Selection for Enterprises’ e-Business

難以抉擇



Through 2006, 95% of large businesses will leverage both technologies
as integral elements of their e-business strategies (0.8 probability).
Through 2006, most small and midsize businesses will struggle to support
both platforms (0.8 probability).
中小企業 Most of Microsoft’s market share will be dominated by
small and midsize businesses during the next 5 years.

大企業之大小系統 Larger-scale enterprises will have investments
in heterogeneous platforms. Java’s cross-platform support and
transportable code will drive significant investments by these larger
entities toward J2EE.
Java vs. .NET
39
成功案例

廣達電腦 –即時採購系統 (.NET)


宇瞻科技 –業務銷售管理系統 (.NET)


藉由 Microsoft Visual Studio .NET 整合 Web services 的開發功能,
將原本大量使用廣達網站進行採購流程的數百家協力廠商,藉由
Web services 與廣達系統進行串連,達成即時採購系統的建立。
架構於天心資訊 ERP 系統及 Microsoft .NET Framework 之基礎上。
採用微軟 Visual Studio .NET 開發工具,透過 XML Web Services 取
得後端各客戶的相關營銷資訊。
旺宏電子 –eStock股務管理系統 (Java)

藉由 怡康公司所提供之J2EE解決方案建置股務管理系統,大幅
提高管理股東資料,及股票換發、 過戶等作業效率。
Java vs. .NET
40
智慧的考驗 – 你(企業)要什麼?
- Assess the Suitability of New Technology by Questions
Java






How important is multi-vendors support and
cross-platform deployment?
How important is productivity vs. flexibility?
What are the established skill sets of your
enterprise’s developers?
With which software and system vendors does
your enterprise have ongoing and long-term
relationships?
Can you afford to recoup ROI benefits over time,
or do you demand a quick return on your
investment?
How large is your enterprise, and your
development organization?
Java vs. .NET
Multi-vendors
Java
Flexibility
Java
Slow Inv.
Return
.NET
Single-vendors
.NET
Productivity
.NET
Quick Inv.
Return
41
Recommendations

Small-to-midsize businesses should focus on one
platform. Microsoft will offer the most-attractive
technology to these enterprises.

Large enterprises must support both platforms and should
focus on integration technologies. Java will generally be
more attractive. Application integration strategies must be
developed to manage interoperability between the
technologies.

Emerging Web services models have begun to dominate
new e-business development initiatives for both platforms.
Java vs. .NET
42
Q&A
Microsoft Achieving Mission-Critical Capability

Microsoft Application Platform Shows Strength


The experience of software projects using.NET is strongly positive.
Microsoft’s software-engineering processes, as they apply to platform
middleware, have improved significantly.

For mission critical requirements, MS has more improved in
integration, systems management and security aspects of the platform.

Start to establish a separate focused organization, targeting missioncritical enterprise projects: sales, marketing, support, account
management, professional services.
Java vs. .NET
44
.NET Strengths in Mission-Critical







Leverage the growing technical quality of the platform
Promote .NET as the only real alternative to J2EE
Capitalize on the massive familiarity of prospects (individuals
and organizations) with Windows look, feel and operations
model
Retain control of desktop
Use its massive financial resources
Leverage its outstanding software-engineering talent
Capitalize on its loyal following of a massive developer
community
Java vs. .NET
45
.NET Challenges in for Mission-Critical

Windows-only lock-in

Relatively weak offering of enterprise-class professional services

Spotty record in enterprise computing (past technical difficulties, product
discontinuities, opportunistic price, terms and conditions policies)

Anti-Microsoft sentiment in some segments of the market

Linux and open-source encroachment on the midsize business market

Lack of strategic support from most leading packaged-application vendors
due to the competitive threat from Microsoft in their market
Java vs. .NET
46