46
Java vs. .net 指指指指 : 指指指 指指 指: 指指指 指指指 指指指

Java vs..net 指導教授 : 莊裕澤 教授 學 生 : 周景祥 吳蓬琪 陳文耀. Java vs..NET2 Agenda Part I - Introduction to Java,.NET and Web Services ( 周景祥 ) Part II

Embed Size (px)

Citation preview

Java vs. .net

指導教授 : 莊裕澤 教授

學 生 : 周景祥

吳蓬琪

陳文耀

Java vs. .NET 2

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 ( 陳文耀 )

Part I

Introduction to Java, .NET

and Web Services

周景祥

Java vs. .NET 4

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 5

.NET Technologies

The .NET Framework The CLR(Common Language Runtime) with support for XML We

b services and more Supporting Visual Basic.NET, C#, C++, and more

The .Net development tools Visual Studio.Net

The .NET Enterprise Servers Windows Server 2003, BizTalk Server 2003, SQL Server 2003, Co

mmerce Server 2003 and more The .Net Services

Passport, My Services, bCentral, expedia and more

Microsoft .NET is deeply integrated into the Windows Server 2003 family.

Integral to the Microsoft platform, the .NET Framework provides the ability to quickly and reliably build, host, deploy, and use secure and connected solutions through XML Web services.

Java vs. .NET 6

.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

WebServices

UserInterface

Data and XML

Base Class Library

Common Language Runtime

Vis

ua

l S

tud

io.N

ET

Java vs. .NET 7

A typical .NET Enterprise Solution

SQLServer

IIS on Window Server 2003

.NET managed

componentASP.NET

WindowsClient

Browser

Java vs. .NET 8

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 9

Enterprise Java J2EE (1.4+) is an infrastructure specification for:

Components ("Beans") Data Source Connectivity XML and Messaging Web Pages and Web Services

Implemented by: Sun, IBM, BEA, Oracle, etc. 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 10

J2EE Architecture

Java vs. .NET 11

A typical J2EE Enterprise Solution

DB Server

Java App Server

EJBServlet

JSP

Java Client

Browser

Java vs. .NET 12

Hardware

Operating System

Development PlatformAnd Language

Application Logic

Web Services Standards(XML, SOAP, WSDL, etc,…)

Hardware

Operating System

Development PlatformAnd Language

Application Logic

Web Services Standards(XML, SOAP, WSDL, etc,…)SOAP Messages

Web Services 架構將底層應用元件抽象化

Web Service 是在網際網路上提供其它程式或系統呼叫使用的程式,而這些程式

間用 XML 做為其溝通媒介

What are Web Services?

Java vs. .NET 13Web 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.

Architecture of Web Services?

Java vs. .NET 14

Web Services - SOAP Message Flow

SOAP : Simple Object Access Protocol ,架構在 XML 之上,是一種架構簡單的輕量級資料傳輸協定,用於分散式網路環境下做資料訊息交換,只要訊息收送雙方都支援此協定,就可以彼此交談,這也正是 Web Service 想要突破平台、語言疆界的最佳利器, SOAP 訊息處理流程圖是如圖四 [DPR02] 。

Java vs. .NET 15

Service RequesterService Provider

WSDL

UDDIService Broker

1. Publish2. Find

3. Bind

Web Services 登錄及使用流程圖

Steps to Enable Web Services?

Java vs. .NET 16

.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

Q & A

Part II

Comparisons to Java

and .NET

吳蓬琪

Java vs. .NET 19

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 20

Client 端 , 雙方 (ASP 與 JSP/Servlets) 普及率高 Server 端 Java (EJB) 較佔優勢

JSP/Servlets 與 Microsoft ASP 是目前最受歡迎的開發技術 ( 用戶端系統開發 ) ,而對於應用於伺服器端負責處理商業邏輯模組的技術, Java EJB 應用開發的比例 (47%) 大於 Microsoft COM 的應用比例 (36%) ,這是目前 Java 在大型企業應用領域已取得的優勢。

Java vs. .NET 21

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:

The automatic persistence provided EJB is still immature. The Java Connector Architecture (JCA) is new. All web service support is new.

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:

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 22

Comparison on Performance – .Net has a higher performance

Java vs. .NET 23

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 24

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 25

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 26

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 handle everything

Excellent – platform support

Java vs. .NET 27

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 28

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, …

Q & A

Part III

How Java and .NET will

Evolve

未來趨勢分析與展望

陳文耀

Java vs. .NET 31

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 platform

s

Java vs. .NET 32

市場定位 - 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 33

隨著 .NET 相關技術的日益成熟與普及, Microsoft 將以約略相等的市暫率瓜分 Java 的市場,除了在中小型系統應用領域將大幅超前 Java外,在大型系統應用領域也將對 Java造成極大威脅。以下以專案型態分析未來各類系統採用兩種技術的的市佔比例。

.NET即起直追 - 中小型應用領域領先 , 大型複雜關鍵應用領域步步逼近

Java vs. .NET 34

目前強弱分析 - 互有長短 各擅勝場 - .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 35

Java 符合公開標準 ,.NET 力挺 Internet Stand

ard

- Scorecard of Open Standard for Java and .NET

Java vs. .NET 36

勢在必行 A question of “When” not “If” (like switch from 16-bits DOS to 32-bits Windows

注意事項 Strategy considerations for migration plan:

Immaturity Skill migration Learning curve of developers

執行順序 Milestones in priority: New non-mission-critical New mission-critical Conversion of legacy

對目前 windows developers 而言 , 轉向.NET 將是無法抗拒的改變 ! - Impact on Microsoft Developers for .NET Migration

Java vs. .NET 37

趨勢 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.

Java 的標準化及平台獨立性 ,將因特製功能的增加而遞減 ! - Impact on Java Developers for Java Migration

注意事項 : Carefully chose an enterprise J

ava technology provider Understand the pros and cons of

the productivity vs. flexibility trade-off vendor

Java vs. .NET 38

趨勢 The Java market is moving into a consolidation (shakeout) phase, during which a small number of vendors will dominate over the next five years.

Java 廠商的研發及技術支援極為重要 ! - Impact on Java Developers and Customers for Java Migration

Enterprise Java AD Tools Market

Completeness of VisionVisionariesNiche Players

Challengers Leaders

Ability toExecute

IBM

Oracle

Sybase

WebGainSilverStream

HP

Borland

Versata

As of 6/01

CA

Apple

Sun

Compuware

Copyright © 2002

AD: Application Development

Java vs. .NET 39

難以抉擇 Through 2006, 95% of large businesses will leverage both technologies a

s 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.

中小企業傾向 .NET, 大企業兩案並存 ( 大系統 ,小系統使用不同方案 )

- Trends of Technology Selection for Enterprises’ e-Business

Java vs. .NET 40

廣達電腦 –即時採購系統 (.NET) 藉由 Microsoft Visual Studio .NET 整合 Web services 的開發功能,將原本大量使用廣達網站進行採購流程的數百家協力廠商,藉由 Web services 與廣達系統進行串連,達成即時採購系統的建立。

宇瞻科技 –業務銷售管理系統 (.NET) 架構於天心資訊 ERP 系統及 Microsoft .NET Framework 之基礎上。採用微軟 Visual Studio .NET 開發工具,透過 XML Web Services 取得後端各客戶的相關營銷資訊。

旺宏電子 – eStock 股務管理系統 (Java) 藉由 怡康公司所提供之 J2EE解決方案建置股務管理系統,大幅

提高管理股東資料,及股票換發、 過戶等作業效率。

成功案例

Java vs. .NET 41

智慧的考驗 – 你 ( 企業 ) 要什麼 ?- Assess the Suitability of New Technology by Questions

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?

Multi-vendors Single-vendors

Java .NET

Flexibility Productivity

Java .NET

Slow Inv.Return

Quick Inv.Return

Java .NET

Java vs. .NET 42

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.

Q & A

Java vs. .NET 44

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 mission-critical enterprise projects: sales, marketing, support, account management, professional services.

Java vs. .NET 45

.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 46

.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