與.NET平臺相比,Sun公司的標準定義的J2EE體系結構有很少可以討論的空間,因為就沒有什么可討論的。如果一個人注意某個具體開發商的產品,如IBM公司的WebSphere,那么就會看到其技術的最大的一部分是WebSphere專用的。比較所有開發商對J2EE的具體改進,已經超出了本文的范圍,在我的經驗中,大多數對J2EE作為一個平臺感興趣的公司對該標準的可移值性感興趣。任何對可移值性感興趣的人都會需要將他們自己局限于Sun公司所定義的標準。
J2EE體系結構可以被分為5部分:
最后一部分,非程序員可見API,包括定義了如何將其他產品插入到J2EE中的API,如連接器API,以及J2EE模型中被最近的改進有效替代的API,如JTA(Java Transaction API)。由于從比較微軟和Sun公司計劃的角度來說,非程序員可見API并不重要,因此在筆者的概述中將不涉及這些方面 (就如同筆者在.NET平臺概述中并沒有涉及功能相當的API一樣)。
在高層次上,Java語言系統看起來與.NET Framework類似。在這兩種情況中,源代碼都是被翻譯成一種中間語言。但是,在.NET平臺中,這種中間語言是MSIL,而在Java系統中,是Java Byte Code。在這兩種情況中,中間語言被帶入到運行環境中。在Framework中,運行環境是Common Language Runtime。對于Java,運行環境是Java虛擬機(Java Virtual Machine)。總體而言,Common Language Runtime和Java虛擬機有類似的功能,并且在技術進步方面,都無可置疑地在發展和彼此交互躍進。
這兩種系統之間最重要的區別與源代碼到中間語言的翻譯有關。在.NET平臺中,中間語言設計用來適應各種語言的需求。在Java中,中間語言設計用來滿足Java的需求。雖然從理論上,從除Java外的語言生成Java Byte Code是可能的,但是實際上這還沒有在任何一種商業產品中證明。
J2EE客戶端程序設計模型重點集中在與瀏覽器的交互上。客戶端程序設計模型有3部分:Java Applets,Java Servlets和Java Server Pages。
Java Applets用來對在瀏覽器內運行的Java代碼進行打包。在.NET平臺空間中,這在功能上與ActiveX相當。在筆者的經驗中,applets或ActiveX組件使用的相對較少。電子商務體系結構一般都是以向表示層發出請求的瀏覽器為基礎,然后表示層使用Html頁面進行響應。這種系統并沒有使用ActiveX或Java Applets,因此筆者在本白皮書中并沒有討論這些技術的任何一種。
處理HTTP請求和HTML響應的重要技術是Java Servlets[1]和Java Server Pages[2]。這兩種技術與微軟空間中的asp.net(Active Server Pages)類似。
.NET平臺與Java表示層中間的主要區別在于處理不同的客戶端功能的方式。Java表示層沿用了以前的Microsoft ASP (PRe .NET)模型,它使得表示層程序員的責任是決定最終的目的瀏覽器(或其他瘦客戶端系統),瘦客戶端系統的功能,以及如何生成HTML來充分發揮瘦客戶端系統的優勢。
對于J2EE,中間層基礎結構是Enterprise Java Beans (EJB)。該規范的當前版本是2.0,可以從網上獲得[3]。與J2EE相當的.NET平臺是COM+。
在EJB和COM+之間,體系結構的差別非常少。這兩種體系結構本質上是從MTS(Microsoft Transaction Server)派生出來的,是由微軟公司在1996年引入的最初的面向組件的中間層基礎結構。由MTS最先引入,然后合并到EJB和COM+中的重要想法包括:
EJB加入了一種新的體系結構想法,一項自動管理組件狀態的技術。這項技術被稱為entity beans(實體豆)。雖然這種想法具有吸引力,但是當前的實施卻依賴于獨立于數據庫緩存的中間層數據緩存。很不幸的是,在這兩種緩存之間沒有保持一致性的機制。這意味著對實體豆的任何使用都會帶來數據庫損壞的高風險。在緩存一致性問題解決之前,在最佳試驗技術方面,必須得不斷考慮實體豆技術。
要連接EJB和COM+的深入比較,請參閱筆者最近的著作[4]。
我們調用Java Enterprise API 時的最重要部分如下:
圖 4 顯示了J2EE主要部分之間的關系,可以將其與圖3和和圖1進行比較。圖3顯示了.NET平臺的相當的形象描述,圖1中顯示了相當的一般體系結構。
[1]Java Servlet 1.2規范可以在http://java.sun.com/prodUCts/servlets獲得。
[2] Java Server Page 1.2規范可以在http://java.sun.com/products/jsp獲得。
[3] 請參閱http://java.sun.com/products/ejb/docs.html。
[4]COM+ and the Battle for the Middle Tier,Roger sessions著,John Wiley and Sons2000年1月發行
[5] 說明書可以在http://java.sun.com/products/jdbc得到。
[6] 說明書可以在http://java.sun.com/products/jndi得到。
[7] 說明書可以在http://java.sun.com/products/jms得到。
(出處:http://m.survivalescaperooms.com)
新聞熱點
疑難解答