羅漢炎
摘要:在軟件開發(fā)平臺(tái)上存在兩個(gè)陣營(yíng),一個(gè)J2EE,一個(gè)是.NET。這兩個(gè)平臺(tái)都是為了解決構(gòu)建企業(yè)計(jì)算等大型平臺(tái)而出現(xiàn)的。這兩個(gè)平臺(tái)中都包含了一系列的技術(shù),通過這些技術(shù)可以縮短開發(fā)周期,提高開發(fā)效率,節(jié)省構(gòu)造成本。無論是J2EE還是.NET都是非常優(yōu)秀的軟件開發(fā)平臺(tái)。工作中,根據(jù)具體項(xiàng)目來選用平臺(tái)和技術(shù),構(gòu)造合理的解決方案。
關(guān)鍵詞:平臺(tái);J2EE;NET;計(jì)算
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)32-0093-02
1概述
隨著分布和異構(gòu)網(wǎng)絡(luò)環(huán)境的產(chǎn)生,在軟件開發(fā)平臺(tái)上存在兩個(gè)陣營(yíng),一個(gè)是Sun公司的J2EE,一個(gè)是Microsoft的.NET。這兩個(gè)平臺(tái)都是為了解決構(gòu)建企業(yè)計(jì)算等大型平臺(tái)而出現(xiàn)的。這兩個(gè)平臺(tái)中都包含了一系列的技術(shù),通過這些技術(shù)可以縮短開發(fā)周期,提高開發(fā)效率,節(jié)省構(gòu)造成本。同時(shí)這兩個(gè)平臺(tái)在安全性、擴(kuò)展性、性能方面下了很大功夫??梢哉fJ2EE和.Net是當(dāng)前最優(yōu)秀的兩大軟件開發(fā)平臺(tái)。
J2EE全稱為Java 2 Platform,Enterprise Edition.它為設(shè)計(jì)、開發(fā)、裝配和部署企業(yè)級(jí)應(yīng)用程序提供了一個(gè)基于組件的解決方案。使用J2EE可以有效地減少費(fèi)用,快速設(shè)計(jì)和開發(fā)企業(yè)級(jí)的應(yīng)用程序。J2EE平臺(tái)提供了一個(gè)多層結(jié)構(gòu)的分布式的應(yīng)用程序模型。典型的J2EE分為表現(xiàn)層、中間層(業(yè)務(wù)邏輯層)和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理??蛻舳瞬恢苯优c數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。
NET是微軟XMLWeb服務(wù)平臺(tái),是一套全能的框架平臺(tái)。支持c++、c#、J++、VB、ASP等語言,能夠解決C/S、B/S和單機(jī)等結(jié)構(gòu)的軟件開發(fā)需求。微軟.NET平臺(tái)提供創(chuàng)建XML Web服務(wù)并將這些服務(wù)集成在一起之所需。.NET增強(qiáng)了對(duì)象間互操作性,提高了傳統(tǒng)Windows桌面應(yīng)用的活力與健壯性,為開發(fā)者提供了一個(gè)全新的編程平臺(tái)以及優(yōu)秀的工作集。
2比較J2EE和.NET異同點(diǎn)
無論是SUN公司的J2EE平臺(tái),還是微軟公司的.NET平臺(tái),它們都是目前公認(rèn)的最優(yōu)秀兩個(gè)軟件開發(fā)平臺(tái)。下面通過比較兩個(gè)平臺(tái)的異同點(diǎn),來加深對(duì)J2EE和.NET的認(rèn)識(shí)。
2.1J2EE和.NET相似點(diǎn)
從上面J2EE和.NET的定義和功能可以看出,這兩個(gè)平臺(tái)要解決的問題很類似,所采用的技術(shù)也很類似,有些概念甚至僅僅是名稱上的差別而已。
1)J2EE和.NET都有一個(gè)受控的運(yùn)行時(shí)環(huán)境。J2EE有JVM支持,NET有CLR支撐,都提供了一個(gè)運(yùn)行環(huán)境。它們不但將源代碼轉(zhuǎn)換成中間語言,而且將這些中間語言編譯成本地的可執(zhí)行代碼。這兩個(gè)環(huán)境都采用自動(dòng)垃圾收集機(jī)制,回收不再被使用的對(duì)象以節(jié)省內(nèi)存空間。同時(shí)這兩個(gè)環(huán)境還支持碎片整理、動(dòng)態(tài)類加載和異常處理等。
2)J2EE和.NET都是為了解決構(gòu)建企業(yè)計(jì)算等大型平臺(tái)而出現(xiàn)的,它們?cè)跇?gòu)建完整的企業(yè)計(jì)算平臺(tái)做了大量工作,都支持多層應(yīng)用開發(fā)。兩個(gè)平臺(tái)都倡導(dǎo)和支持基于組件的設(shè)計(jì)、多態(tài)性、繼承和接口等,也提供基礎(chǔ)類庫來執(zhí)行I/O、XML處理、帶有連接池的數(shù)據(jù)庫接入、文本操作與網(wǎng)頁腳本編寫等。
3).NET和基于J2EE的產(chǎn)品都和第三方的產(chǎn)品一起工作。例如,在后端數(shù)據(jù)庫領(lǐng)域,NET和基于J2EE的應(yīng)用程序能訪問儲(chǔ)存在SQLServer、IBM的DB2、Oracle,Informix、Sybase等服務(wù)器里面的數(shù)據(jù)。還有,J2EE和.NET都采用平臺(tái)構(gòu)建模式開發(fā),在平臺(tái)開發(fā)模式上一般都使用到中間件技術(shù)和產(chǎn)品,如EJB、DCOM、CORBA和DCE主流中間件技術(shù),如Microsoft的MSMQ、IBM的MQSeries等中間件產(chǎn)品。
2.2 J2EE和.NET差異點(diǎn)
雖然J2EE和.NET這兩個(gè)平臺(tái)的類似之處遠(yuǎn)遠(yuǎn)多于相異之處,但它們的差異點(diǎn)將是在軟件開發(fā)、選型和維護(hù)升級(jí)時(shí)的重要參考依據(jù)。
1)安全配置方面。J2EE和.NET兩個(gè)平臺(tái)的配置都是通過XML或純文本文件,兩個(gè)平臺(tái)最大的區(qū)別在于處理安全配置體系的方式不同。在.NET平臺(tái),有圖形接口和命令行二種方式來修改安全配置參數(shù)。Mscorcfg.msc是圖形接口方式,Caspol.exe提供了命令行方式,適用于批處理或配置文本。J2EE平臺(tái)只提供了圖形接口的工具policytool.exe。和.NET不同的是,它的目標(biāo)對(duì)象(配置文件)的名字和位置不是固定的。.NET定義了不同范圍的安全配置文件:系統(tǒng)范圍,本機(jī)范圍,本用戶范圍。在配置有沖突時(shí),原則上小范圍的參數(shù)有優(yōu)先權(quán)。J2EE的核心配置文件都保存在固定位置,但擴(kuò)展配置文件隨廠家不同而不同。
2)性能方面。J2EE中JVM為了提供平臺(tái)無關(guān)性的支持,將所有的代碼都首先編譯為bytecode,然后在運(yùn)行過程中JVM對(duì)bytecode進(jìn)行解釋執(zhí)行。由于JVM采用解釋的方法運(yùn)行by-tecode,所以Java程序的運(yùn)行速度很慢。.NET中CLR在設(shè)計(jì)過程,對(duì)高性能十分重視。在JIL編譯的情況下,方法被第一次調(diào)用時(shí),CLR執(zhí)行檢驗(yàn),然后將該方法編譯成本地代碼f包含安全特征,比如數(shù)據(jù)邊界檢查),下一次遇到該方法時(shí),本地代碼直接執(zhí)行,這大大提高了運(yùn)行速度。當(dāng)然,單從代碼運(yùn)行快慢對(duì)比這兩個(gè)平臺(tái)的性能相對(duì)是比較片面的,平臺(tái)的性能還與系統(tǒng)框架、中間件、服務(wù)器等有關(guān)。
3)開發(fā)效率方面。.NET的易用性、效率和成本均領(lǐng)先于J2EE。使用.NET,IT專家們比使用J2EE更加不用關(guān)心底層細(xì)節(jié)。因此能快速捕捉商機(jī),成本也更低。.NET比J2EE靈活得多,它允許開發(fā)者使用多種語言在同一個(gè)平臺(tái)上開發(fā),因而能夠利用廣泛的開發(fā)資源??偠灾?,使得開發(fā)團(tuán)隊(duì)的運(yùn)作更加高效。而J2EE平臺(tái)只能使用JAVA語言開發(fā),把表現(xiàn)層的開發(fā)丟給了應(yīng)用服務(wù)器廠商和編程人員,不像.NET擁有很牛的.Net Studio,可以所見即所得的編輯模板,綁定用戶按鈕事件處理。不過Jbuilder 6的問世,支持EJB2.0也不算太落后,可以通過Javascript庫,模板庫及宏庫略微緩解一下Servlet的開發(fā)。
4)XML支持能力。.Net一集成了XMLWeb服務(wù),在.NET中建立一個(gè)XML Web服務(wù)就像在類中添加一個(gè)屬性那樣簡(jiǎn)單。.NET提供更簡(jiǎn)單的方法來建立和使用可由雙方共同操作的XMLWeb服務(wù)。早期版本的J2EE規(guī)范并沒有提到XMLWEB服務(wù)的問題,但J2EE一直在致力于與XML的集成,在J2EE 1.2.1規(guī)范中,XML的“集成”僅指組件或應(yīng)用程序的XML格式的部署描述。在J2EE 1-3規(guī)范中,對(duì)XML的支持被擴(kuò)展為要求具備SAX 2和DOM 2解析器,以及在兼容J2EE的服務(wù)器平臺(tái)上提供XSLT轉(zhuǎn)換處理程序。雖然易用性上沒有.NET那么好,但相信,將來在J2EE架構(gòu)中還會(huì)集成更多的XML特性。
5)可移植性方面。標(biāo)準(zhǔn)開放的J2EE平臺(tái)無疑是占了上風(fēng)。采用.Net平臺(tái)進(jìn)行開發(fā),從開發(fā)工具、服務(wù)器產(chǎn)品到部署環(huán)境都需要使用Microsoft的產(chǎn)品。單一的平臺(tái)和單一的產(chǎn)品使得整個(gè)開發(fā)過程沒有太多的選擇。而J2EE就不一樣,首先J2EE是一套跨平臺(tái)應(yīng)用的規(guī)范,它有廣發(fā)的支持者,比如IBM、BEA、Oracle等,那些需要部署到不同服務(wù)器上的應(yīng)用,J2EE似乎是更好的選擇。其次J2EE是一個(gè)單一語言的平臺(tái),本身就非常關(guān)心平臺(tái)的可移植性。這就意味著,要利用J2EE,設(shè)計(jì)方案能使用多個(gè)操作系統(tǒng)其中的一個(gè)。
3結(jié)束語
無論是J2EE還是.Net都是非常優(yōu)秀的軟件開發(fā)平臺(tái),使用J2EE和.Net不但可以進(jìn)行大型企業(yè)級(jí)計(jì)算系統(tǒng)的開發(fā),同樣也適用中小型應(yīng)用程序的開發(fā)。J2EE和.Net兩個(gè)平臺(tái)沒有截然的高下之分。在這個(gè)互動(dòng)的世界上,不想被淘汰的競(jìng)爭(zhēng)者要始終保持警惕,努力學(xué)習(xí)對(duì)手的優(yōu)點(diǎn)。比如,.NET在成熟度方面迅速?gòu)浹a(bǔ)跟J2EE間的鴻溝,J2EE在易用和高效方面及時(shí)追趕.NET。在實(shí)際工作中,根據(jù)具體項(xiàng)目來選用平臺(tái)和技術(shù),構(gòu)造合理的解決方案。