




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
J2EE與.NET技術(shù)架構(gòu)的區(qū)別J2EE與.NET技術(shù)架構(gòu)的區(qū)別1.體系架構(gòu)的比較作為彼此競爭的應(yīng)用平臺,J2EE和.NET開發(fā)平臺在目標(biāo)和體系結(jié)構(gòu)上極其相似,但在實現(xiàn)上又完全不同。(1)類似的平臺基礎(chǔ)構(gòu)造J2EE和.NET兩個平臺在底層的執(zhí)行引擎都源于托管的虛擬機(jī)概念,但.NET的CLR沿著Java虛擬機(jī)(JVM)走得更遠(yuǎn),CLR在借鑒了JVM的自動垃圾收集、異常處理等機(jī)制的同時,又為.NET平臺添加了多語言支持、組件自描述等新的特性。在.NET和J2EE平臺上,程序的編譯都經(jīng)過兩個類似的過程。首先,特定高級語言編譯器將C#(及其他.NET語言)和Java源代碼分別翻譯成中間語言(IL)和字節(jié)代碼(ByteCode)o.NET在中間語言設(shè)計時通盤考慮了多個主流高級語言,在這一層面實現(xiàn)了.NET平臺的跨語言承諾;J2EE的基石是Java語言,它最典型的特征是:一次編寫,多次運(yùn)行。跨平臺是J2EE一直引以為豪的關(guān)鍵,這是通過JVM來實現(xiàn)的。其次,在執(zhí)行時,中間語言被即時編譯器(JIT)編譯成特定平臺的二進(jìn)制代碼,字節(jié)代碼則通過JVM解釋執(zhí)行,完成各自語言的指令功能。鑒于微軟在“Wintel平臺”上的代碼優(yōu)化功底,.NET代碼的執(zhí)行速度較之于Java有明顯的優(yōu)勢是不爭的事實。但在Unix/Linux平臺上,由于.NET遲遲未能實現(xiàn)其跨平臺的承諾,J2EE幾乎成了惟一的選擇,執(zhí)行效率的比較也就無所謂。在代碼執(zhí)行的同時,通用語言運(yùn)行時和Java虛擬機(jī)也都提出了異常捕捉、類型安全、內(nèi)存分配和垃圾收集等自動化內(nèi)存管理工作,大大減輕少了現(xiàn)代軟件的內(nèi)存泄漏問題,減輕了程序員的繁重負(fù)擔(dān)。面向?qū)ο蟪绦蛟O(shè)計在J2EE和.NET平臺中都獲得了直接的支持,單根繼承加多接口實現(xiàn)是它們共有的特征。但在面向?qū)ο笾猓?NET對現(xiàn)代組件編程提供了直接支持。當(dāng)然,當(dāng)下很多企業(yè)中間件都是基于J2EE平臺,只是.NET從設(shè)計、編碼、配置到運(yùn)行都給予了組件編程更多、更直接的支持。在基礎(chǔ)的和企業(yè)級的服務(wù)上兩個平臺很難一決高低。從基礎(chǔ)的集合、字符串操作到企業(yè)級的API接口,如JMS、JDBC、JAX和JNDI等,J2EE在這方面有著非常堅實的結(jié)構(gòu)。微軟.NET框架類庫也不示弱,提供了從圖畫、網(wǎng)絡(luò)、線程到ADO.NET、ADSI、Windows表單和ASP.NET等一系列的API。除去API類庫的無縫的功能復(fù)用外,對本地平臺的調(diào)用操作也是值得關(guān)注的。CLR和Java虛擬機(jī)都支持本地方法的調(diào)用。在異構(gòu)平臺方面,J2EE更鐘情于IIOP(InternetInterORBProtocol),而.NET則使用SOAP。(2)相同的三層/多層體系基于三層/多層分布式計算結(jié)構(gòu)已毋庸置疑地成為當(dāng)今企業(yè)應(yīng)用的主流模式,也是兩個平臺較量的著力點(diǎn)在客戶端,表示層負(fù)責(zé)用戶與系統(tǒng)的交互。對于不同的處理要求,.NET和J2EE都提出了基于桌面的應(yīng)用程序和基于瀏覽器的Web應(yīng)用的開發(fā)組件:JavaApplication與Windows表單、JavaServlet/JSP與ASP.NET雙雙形成犄角之勢。但Windows表單依賴微軟桌面系統(tǒng)的天然優(yōu)勢,無論在交互速度還是在界面的表現(xiàn)性能上都較JavaApplication稍勝一籌。Servlet/JSP與ASP.NET是目前企業(yè)在“瘦客戶端”應(yīng)用的重點(diǎn),兩者都基于HTTP請求/響應(yīng)模型,通過HTML瀏覽器頁面完成用戶交互。雖然ASP.NET聲稱在底層通過編譯執(zhí)行獲得了相當(dāng)高的處理速度和服務(wù)器方控件的瀏覽器自適應(yīng)能力,但目前并沒有這方面的硬性數(shù)據(jù),很難據(jù)此而論高低。在緩存、狀態(tài)優(yōu)化等方面兩者可謂是旗鼓相當(dāng)。另一個與客戶端應(yīng)用相關(guān)的技術(shù)是ActiveX與Applet,從目前的趨勢來看,它們在兩個平臺上的地位逐漸邊緣化,也不為大多數(shù)企業(yè)所接受。在中間層,分布式業(yè)務(wù)組件負(fù)責(zé)企業(yè)應(yīng)用的商業(yè)邏輯部署。由于這些業(yè)務(wù)組件經(jīng)常負(fù)責(zé)處理數(shù)據(jù)庫連接、網(wǎng)絡(luò)資源和線程等高昂的資源,所以一直是三層/多層架構(gòu)的關(guān)鍵和企業(yè)應(yīng)用的核心。J2EE的EJB是一個成熟的、得到業(yè)界廣泛支持的大型企業(yè)級組件框架,而.NET組件則是建立在新型的COM+服務(wù)之上,兩者在組件與操作系統(tǒng)的交互、客戶端資源共享等方面都有很好的支持°.NET則通過元數(shù)據(jù)支持自描述性的組件開發(fā)、XCOPY部署以及多版本共存,無需注冊表和描述文件,對企業(yè)客戶有一定的吸引力。在后端數(shù)據(jù)層,兩個平臺都為數(shù)據(jù)庫連接量身定做了一套數(shù)據(jù)存取模型:J2EE的JDBC和.NET的ADO.NET,它們在支持傳統(tǒng)SQL數(shù)據(jù)源的同時,也支持新型的XML數(shù)據(jù)源。這方面由于更多地涉及到具體的數(shù)據(jù)庫產(chǎn)品,很難說那種數(shù)據(jù)模型更有優(yōu)勢。兩種架構(gòu)的簡單對照如表1所示。2移植性比較在移植性方面,.NET支持跨語言,J2EE支持跨平臺。微軟通過.NET通用語言運(yùn)行時來消除編程語言的差別,“選擇.NET平臺就意味著選擇Windows”,這句話至少在可預(yù)見的一段時間里仍然是一個基本事實。J2EE則通過Java虛擬機(jī)來消除平臺差別,跨平臺是它的一大賣點(diǎn),也是在選擇企業(yè)應(yīng)用開發(fā)平臺時的一個重要參考因素,幾乎所有的主流操作系統(tǒng)都提供了對J2EE的支持;實際上如果要搭建跨Unix、Windows等多個操作系統(tǒng)平臺,J2EE平臺幾乎是惟一的選擇,J2EE更關(guān)注跨平臺而不是跨語言。但微軟認(rèn)為,如果企業(yè)的應(yīng)用都能通過標(biāo)準(zhǔn)協(xié)議以Web服務(wù)的方式發(fā)布,那么平臺都是中立的。為了吸引更多的開發(fā)者和鼓勵廣大企業(yè)廠商轉(zhuǎn)到.NET平臺,微軟提出了多語言支持,希望用跨語言的交互性來平衡跨平臺的互操作。性能比較性能是J2EE和.NET喋喋不休的話題。二者之間著名的論戰(zhàn)是一個關(guān)于寵物店的范例應(yīng)用。寵物店是Sun一度以來作為J2EE典型應(yīng)用的展示范例,而.NET“自告奮勇”地在自己的平臺上實現(xiàn)了該寵物店應(yīng)用,且聲稱代碼行是J2EE的1/3,效率卻是J2EE的30倍。但Sun的理由是這個范例根本不適合用來做性能比較,該范例實現(xiàn)也沒有做針對性能的優(yōu)化,而且指責(zé)微軟通過后端數(shù)據(jù)庫優(yōu)化和緩存虛抬了.NET平臺的效率。這樣的爭吵當(dāng)然不能作為判斷的依據(jù),目前也沒有見到更客觀的第三方評測報告。在“Wintel平臺”上也許沒有理由懷疑.NET的性能;至于非Windows平臺,.NET和J2EE也不再具有可比性。安全性、穩(wěn)定性比較WINDOWS本身的安全漏洞,使得.NET的安全性不如J2EE。同時,在應(yīng)用服務(wù)器的選擇上,.NET只能用IIS,安全性、穩(wěn)定性難以保證;而J2EE有更多的選擇,可以在諸多遵循標(biāo)準(zhǔn)的廠商所提供的應(yīng)用程序服務(wù)器中,選擇最符合需要、成本最低、而且又被認(rèn)為是最佳的平臺??蓴U(kuò)展性比較.NET平臺的擴(kuò)展思想是基于軟件的橫向擴(kuò)展,而J2EE平臺的擴(kuò)展思想則是基于硬件的縱向擴(kuò)展。Windows系統(tǒng)一般只能擴(kuò)展到不超過8個處理器,而Sun的系統(tǒng)卻可以擴(kuò)展到100個甚至更多處理器?;贘2EE平臺的應(yīng)用程序可被部署到各種操作系統(tǒng)上,例如可被部署到高端UNIX與大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個處理器,這是NT服務(wù)器所望塵莫及的。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務(wù)器集成部署。這種部署可達(dá)數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng)滿足未來商業(yè)應(yīng)用的需要。成熟度比較在平臺的成熟度方面,兩者也有一比。J2EE在1999年形成了成熟的架構(gòu),發(fā)展至今已經(jīng)具有相當(dāng)成熟的、經(jīng)過檢驗的企業(yè)應(yīng)用系統(tǒng)。而.NET究其淵源是源自微軟以前開發(fā)企業(yè)應(yīng)用程序的平臺DNA(DistributedNetworkArchitecture),其中包括了許多已經(jīng)被證實的技術(shù),并且這些技術(shù)已經(jīng)在產(chǎn)品中得到實現(xiàn),包括微軟的'事務(wù)服務(wù)器、COM+、消息隊列和SQLServer數(shù)據(jù)庫等。第三方廠商的支持J2EE作為一種開放的規(guī)范,從一開始就得到了眾多廠商的支持,IBM、BEA、HP、Oracle等在J2EE的實施上都有較大的投入。目前市場上最好的J2EE應(yīng)用服務(wù)器并不是Sun與Netscape合資的iPlanet,而是BEA的WebLogic和IBM的Webshpere。開發(fā)工具有Borland的JBuilder、Sun的Forteforjava、BEA的WebLogicWorkshop、Oracle的JDeveloper、IBM的VisualAgeforJava等。而.NET在設(shè)計之初就緊緊地把平臺規(guī)范與產(chǎn)品膠合在一起。雖然,NET架構(gòu)的一小部分具有開放性(如C#語言、通用語言基礎(chǔ)構(gòu)造CLI和Web服務(wù)標(biāo)準(zhǔn)),但至少目前很難想象會有一個非微軟的.NET實現(xiàn)。VisualStdio.NET是其唯一的開發(fā)工具。開源支持比較J2EE開源產(chǎn)品眾多,免費(fèi)框架居多,相應(yīng)的最佳實踐設(shè)計模式層出不窮。而.NET無開源社區(qū)支持,是以框架開發(fā)者為主導(dǎo)的設(shè)計。學(xué)習(xí)成本比較J2EE門檻較高,由于多且雜,需要開發(fā)人員花費(fèi)很長時間才能熟悉整個體系。而.NET門檻較低,使用方便,學(xué)習(xí)成本較低。但是,對于開發(fā)人員來說,.NET在系統(tǒng)整體架構(gòu)的設(shè)計方面不如J2EE易于把握。對WEB服務(wù)支持的比較從.NET和J2EE這兩個平臺的發(fā)展歷程來看,.NET從一開始就深深打上了Web服務(wù)技術(shù)的烙印,在它的市場推廣活動中,無時無刻不凸顯其作為Web服務(wù)的開發(fā)和部署平臺的特征,可以說,.NET天生就是為Web服務(wù)準(zhǔn)備的開發(fā)和部署平臺。相對.NET而言,J2EE是一個比較“老”的東西,最初它是為了將Java平臺拓展到企業(yè)級應(yīng)用領(lǐng)域而制訂的一個平臺框架規(guī)范,隨著Web服務(wù)技術(shù)的興起和發(fā)展,J2EE平臺作為一個企業(yè)級應(yīng)用的開發(fā)和部署平臺,無法回避業(yè)界的重大技術(shù)革命——Web服務(wù),J2EE也不斷地引入了對Web服務(wù)的支持。從服務(wù)描述、服務(wù)實現(xiàn)和服務(wù)的發(fā)布、發(fā)現(xiàn)與綁定,以及服務(wù)的調(diào)用和執(zhí)行這些不同的角度看,J2EE和.NET的支持基本不相上下,惟一的區(qū)別可能是.NET的開發(fā)工具更為方便一些、集成度更高一些。在Web服務(wù)規(guī)范的控制方面,微軟與IBM共同主推了大量的Web服務(wù)規(guī)范,在一段時間內(nèi),兩家公司W(wǎng)eb服務(wù)技術(shù)的市場推廣活動都是聯(lián)合舉行的,不難看出這兩家公司在這個領(lǐng)域背后的戰(zhàn)略合作關(guān)系。最初的Web服務(wù)核心技術(shù)SOAP、WSDL主要由這兩家公司制訂后來的UDDI是由這兩家為首的多家核心企業(yè)共同制訂,再后來的一些不是核心的Web服務(wù)規(guī)范,如WS-Inspection、WSFL、WS-Security、WS-Routing、WS-License和WS-Referral等,則完全是由這兩家來制訂的。不難看出:IBM和微軟對于Web服務(wù)的貢獻(xiàn)以及它們對Web服務(wù)規(guī)范的控制。盡管由于某種原因,Sun公司曾經(jīng)在很長的一段時間里被排除在WS-I(由IBM,微軟和BEA發(fā)起成立的促進(jìn)WEB服務(wù)互操作的一個組織)的門外,但這并沒有影響Sun公司繼續(xù)在WEB服務(wù)方面堅持開放的戰(zhàn)略。Sun公司是Java語言的發(fā)明者,而作為一個開放的跨平臺的技術(shù)體系,Java在WEB服務(wù)的開發(fā)方面也起著非常重要的作用。雙方妥協(xié)后,Sun最終被接納為WS-I的董事成員。Sun公司積極地參與了制訂Web服務(wù)規(guī)范的過程,像XML和ebXML。并已經(jīng)在Java中支持WEB服務(wù)中最重要的規(guī)范,例如SOAP(JAX-RPC、JAXM、SAAJ和JMS)、WSDL(J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新型高性能低合金鋼、合金鋼材料項目可行性建設(shè)方案
- 陜西西西安地區(qū)西工大附中2024-2025學(xué)年高三年級二輪復(fù)習(xí)英語試題導(dǎo)引卷(二)含附加題含解析
- 2025年紅外光學(xué)測量雷達(dá)項目發(fā)展計劃
- 2024-2025學(xué)年二年級下學(xué)期期中綜合測試卷
- 新教材高中生物選擇性必修3課件:2 3 1 胚胎工程的理論基礎(chǔ)人教版
- 微旅游的介紹2
- 安全健康宣傳主題班會
- 提高合成孔徑雷達(dá)成像分辨率
- 科研項目進(jìn)展實時匯報要求
- 工業(yè)安全掛牌上鎖
- 專升本思政復(fù)習(xí)指導(dǎo)試題及答案
- 2025年涂料銷售合同模板
- 2024年昆明渝潤水務(wù)有限公司招聘考試真題
- 2025-2030中國小武器和輕武器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 高中主題班會 高考勵志沖刺主題班會課件
- 2025年部編版新教材語文一年級下冊第一、第二次月考試題帶答案(各一套)
- 8.1薪火相傳的傳統(tǒng)美德 教學(xué)設(shè)計-2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 用紙箱做鳥窩課件
- 巡視巡察課件2025
- 2025江蘇南京市金陵飯店股份限公司招聘高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年中考物理知識點(diǎn)歸納
評論
0/150
提交評論