Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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