J2EE核心技術
爲了聯繫實際,GOULD基於WEBLOGIC應用服務器(來自BEASYSTEMS公司的一種廣爲應用的產品)環境來介紹J2EE的這些技術。
JAVA最初是在瀏覽器和客戶端機器中閃亮登場的。當時,很多人質疑它是否適合做服務器端的開發。隨着對JAVA2平臺企業版(J2EE)第三方支持的增多,JAVA被廣泛接納爲開發企業級服務器端解決方案的首選平臺之一。
J2EE平臺由一整套服務(SERVICES)、應用程序接口(APIS)和協議構成,它對開發基於WEB的多層應用提供了功能支持。在本文中我將解釋支撐J2EE的13種核心技術:JDBC,JNDI,EJBS,RMI,JSP,JAVA SERVLETS,XML,JMS,JAVA IDL,JTS,JTA,JAVA MAIL 和 JAF,同時還將描述在何時、何處需要使用這些技術。當然,我還要介紹這些不同的技術之間是如何交互的。此外,爲了讓您更好地感受J2EE的真實應用,我將在WEBLOGIC應用服務器(來自BEA SYSTEMS公司的一種廣爲應用的產品)環境下來介紹這些技術。不論對於WEBLOGIC應用服務器和J2EE的新手,還是那些想了解J2EE能帶來什麼好處的項目管理者和系統分析員,相信本文一定很有參考價值。
宏觀印象: 分佈式結構和J2EE
過去,二層化應用--通常被稱爲CLIENT/SERVER應用--是大家談論的最多的。在很多情況下,服務器提供的唯一服務就是數據庫服務。在這種解決方案中,客戶端程序負責數據訪問、實現業務邏輯、用合適的樣式顯示結果、彈出預設的用戶界面、接受用戶輸入等。CLIENT/SERVER結構通常在第一次部署的時候比較容易,但難於升級或改進,而且經常基於某種專有的協議(通常是某種數據庫協議)。它使得重用業務邏輯和界面邏輯非常困難。更重要的是,在WEB時代,二層化應用通常不能體現出很好的伸縮性,因而很難適應INTERNET的要求。
SUN設計J2EE的部分起因就是想解決二層化結構的缺陷。於是J2EE定義了一套標準來簡化N層企業級應用的開發。它定義了一套標準化的組件,併爲這些組件提供了完整的服務。J2EE還自動爲應用程序處理了很多實現細節,如安全、多線程等。用J2EE開發N層應用包括將二層化結構中的不同層面切分成許多層。一個N層化應用A能夠爲以下的每種服務提供一個分開的層:顯示:在一個典型的WEB應用中,客戶端機器上運行的瀏覽器負責實現用戶界面。
動態生成顯示: 儘管瀏覽器可以完成某些動態內容顯示,但爲了兼容不同的瀏覽器,這些動態生成工作應該放在WEB服務器端進行,使用JSP、SERVLETS,或者XML(標準通用標記語言下的一個子集可擴展標記語言)和XSL(可擴展樣式表語言)。
業務邏輯:業務邏輯適合用SESSION EJB(後面將介紹)來實現。
數據訪問:數據訪問適合用ENTITY EJB(後面將介紹)和JDBC來實現 。
後臺系統集成: 後臺系統的集成可能需要用到許多不同的技術,至於何種最佳需要根據後臺系統的特徵而定。
您可能開始詫異:爲什麼有這麼多的層?事實上,多層方式可以使企業級應用具有很強的伸縮性,它允許每層專注於特定的角色。例如,讓WEB服務器負責提供頁面,應用服務器處理應用邏輯,而數據庫服務器提供數據庫服務。
由於J2EE建立在JAVA2平臺標準版(J2SE)的基礎上,所以具備了J2SE的所有優點和功能。包括“編寫一次,到處可用”的可移植性、通過JDBC訪問數據庫、同原有企業資源進行交互的CORBA技術以及一個經過驗證的安全模型。在這些基礎上,J2EE又增加了對EJB(企業級JAVA組件)、JAVA SERVLETS、JAVA服務器頁面(JSPS)和XML(標準通用標記語言的子集)技術的支持。
分佈式結構與WEBLOGIC應用服務器
J2EE提供了一個框架--一套標準API--用於開發分佈式結構的應用,這個框架的實際實現留給了第三方廠商。部分廠商只是專注於整個J2EE架構中的的特定組件,例如APACHE的TOMCAT提供了對JSP和SERVLETS的'支持,BEA系統公司則通過其WEBLOGIC應用服務器產品爲整個 J2EE規範提供了一個較爲完整的實現。
WEBLOGIC服務器已使建立和部署伸縮性較好的分佈式應用的過程大爲簡化。WEBLOGIC和J2EE代理處理了大量常規的編程任務,包括提供事務服務、安全領域、可靠的消息、名字和目錄服務、數據庫訪問和連接池、線程池、負載平衡和容錯處理等。通過以一種標準、易用的方式提供這些公共服務,像WEBLOGIC服務器這樣的產品造就了具有更好伸縮性和可維護性的應用系統,使其爲大量的用戶提供了增長的可用性。
J2EE技術在接下來的部分裏,我們將描述構成J2EE的各種技術,並且瞭解WEBLOGIC服務器是如何在一個分佈式應用中對它們進行支持的。最常用的J2EE技術應該是JDBC、JNDI、EJB、JSP和SERVLETS,對這些我們將作更仔細的考察。
JAVA DATABASE CONNECTIVITY (JDBC)
JDBC API以一種統一的方式來對各種各樣的數據庫進行存取。和ODBC一樣,JDBC爲開發人員隱藏了不同數據庫的不同特性。另外,由於JDBC建立在JAVA的基礎上,因此還提供了數據庫存取的平臺的獨立性。
JDBC定義了4種不同的驅動程序,現分述如下:
類型 1: JDBC-ODBCBRIDGE
在JDBC出現的初期,JDBC-ODBC橋顯然是非常有實用意義的,通過JDBC-ODBC橋,開發人員可以使用JDBC來存取ODBC數據源。不足的是,他需要在客戶端安裝ODBC驅動程序,換句話說,必須安裝MICROSOFT WINDOWS的某個版本。使用這一類型你需要犧牲JDBC的平臺的獨立性。另外,ODBC驅動程序還需要具有客戶端的控制權限。
類型 2: JDBC-NATIVE DRIVER BRIDGE
JDBC本地驅動程序橋提供了一種JDBC接口,它建立在本地數據庫驅動程序的頂層,而不需要使用ODBC。JDBC驅動程序將對數據庫的API從標準的JDBC調用轉換爲本地調用。使用此類型需要犧牲JDBC的平臺的獨立性,還要求在客戶端安裝一些本地代碼。
類型 3: JDBC-NETWORK BRIDGE
JDBC網絡橋驅動程序不再需要客戶端數據庫驅動程序。它使用網絡上的中間服務器來存取數據庫。這種應用使得以下技術的實現有了可能,這些技術包括負載 均衡、連接緩衝池和數據緩存等。由於第3種類型往往只需要相對更少的下載時間,具有平臺的獨立性,而且不需要在客戶端安裝並取得控制權,所以很適合於 INTERNET上的應用。
相關文章
-
J2EE的13種核心技術
J2EE(Java 2 Platform, Enterprise Edition)是一個爲大企業主機級的計算類型而設計的Java平臺。Sun微系統(與其工業夥伴一起,例如IBM)設計了J2EE,以此來簡化在瘦客戶級環境下的應用開發。下面是小編整理的關於J2EE的13 -
J2EE的13種核心技術簡介
Java最初是在瀏覽器和客戶端機器中粉墨登場的。當時,很多人質疑它是否適合做服務器端的開發。下面是小編整理的關於J2EE的13種核心技術簡介,希望大家認真閱讀!隨着對Java2平臺企業版(J2EE)第三方支持的增多,Java被廣泛接 -
學習j2eeweb技術的方法
J2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支持,下面對J2EE中的13種技術規範進行簡單的描述。下面是小編整理的關於學習j2eeweb技術的方法,歡迎大家參考!J2EE( -
J2EE與.NET技術架構的區別
本文從體系架構、移植性、性能、安全性、穩定性、可擴展性、成熟度、第三方廠商支持、開源支持、學習成本和對Web服務支持等方面,試圖對目前兩種主要的軟件開發技術架構J2EE與進行一個客觀、公正、全面的比較。到底這 -
J2EE與.NET技術架構的比較
隨着三層/多層企業信息系統結構的深度發展和下一代分佈式計算模型Web 服務的出現,軟件開發中關於平臺、框架、語言的競爭也愈演愈烈。自從微軟推出平臺,業界關於J2EE平臺與平臺的比較從未停止過。那麼J2EE與有什麼區別 -
J2EE應用的核心策略
對於J2EE,我們知道當開發應用時,在架構設計階段的決定將對應用的性能和可擴展性產生深遠的影響。現在當開發一個應用項目時,我們越來越多地注意到了性能和可擴展性的問題。應用性能的問題比應用功能的不豐富問題往往更爲 -
J2EE表現層設計思考覈心
J2EE表現層設計思考覈心是什麼?下面yjbys小編爲大家分享最新J2EE表現層設計解讀,希望對大家學習J2EE有所幫助! 設計表現層時需要考慮的幾個問題開發者在設計表現層時,可以使用不同的模型,這時需要考慮一些相關的設計 -
摺疊J2EE的核心API與組件積累
J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean,這樣只有被授權的用戶才能訪問系統資源. 每一客戶屬於一個特別的角色,而每個角色只允許激活特定的方法。小編整理的J2EE的核心API與組件分享給大家,希望 -
J2EE技術有哪些
J2EE核心是一組技術規範與指南,其中所包含的各類組件、服務架構及技術層次,均有共同的標準及規格,讓各種依循J2EE架構的不同平臺之間,存在良好的兼容性,解決過去企業後端使用的信息產品彼此之間無法兼容,企業內部或外部難以 -
J2EE技術規範
JDBC(Java Database Connectivity)JDBC API爲訪問不同的數據庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,另外,JDBC對數據庫的訪問也具有平臺無關性。JNDI(Java Name and Directory Interface)JND