Upload
benedict-holland
View
253
Download
0
Embed Size (px)
Citation preview
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 ( 陳文耀 )
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 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
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 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, …
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.
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