天天看點

【java】J2EE的13個規範

什麼是J2EE?

在企業級應用中,都有一些通用企業需求子產品,如資料庫連接配接,郵件服務,事務處理等.既然很多企業級應用都需要這些子產品,一些大公司便開發了自己的通用子產品服務,即中間件.這樣一來,就避免了重複開發,開發周期長和代碼可靠性差等問題.但是,各公司的中間件不相容的問題就出現了,使用者無法将它們組裝在一起為自己服務.于是,”标準”就應運而生了.

J2EE就是基于Java技術的一系列标準.

J2EE是Java2平台企業版(Java 2Platform Enterprise Edition),核心是一組技術規範與指南,其中所包含的各類元件,服務架構和技術層次,都有共同的标準及規格,讓各種依雲J2EE架構的不同平台之間,存在良好的相容性.

J2EE的13種規範是什麼?

1.JDBC(JavaDatabase Connectivity)

JDBC以一種統一的方式對各種各樣的資料庫進行存取,JDBC定義了4中不同的驅動程式:JDBC-ODBC橋、JDBC本地接口、JDBC網絡接口和純Java驅動。

JDBC是以統一方式通路資料庫的API.

它提供了獨立于平台的資料庫通路,也就是說,有了JDBC API,我們就不必為通路Oracle資料庫專門寫一個程式,為通路Sybase資料庫又專門寫一個程式等等,隻需要用JDBC API寫一個程式就夠了,它可以向相應資料庫發送SQL調用.JDBC是Java應用程式與各種不同資料庫之間進行對話的方法的機制.簡單地說,它做了三件事:與資料庫建立連接配接–發送操作資料庫的語句–處理結果.

2.JNDI(JavaName and Directory Interface)

JNDI用于名字和目錄服務,提供了一緻的接口來存取和操作企業級的資源,如DNS和本地檔案系統等。

JNDI是一組在Java應用中通路命名和目錄服務的API.

(命名服務将名稱和對象聯系起來,我們即可用名稱通路對象.JNDI允許把名稱同Java對象或資源關聯起來,建立邏輯關聯,而不必知道對象或資源的實體ID.)JNDI為開發人員提供了查找和通路各種命名和目錄服務的通用,統一的接口,可通路的目錄及服務如下表:

利用JNDI的命名與服務功能可滿足企業級API對命名與服務的通路,諸如EJB,JMS,JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務.

JNDI和JDBC類似,都是建構在抽象層上.因為:

它提供了标準的獨立于命名系統的API,這些API建構在命名系統之上.這一層有助于将應用與實際資料源分離,是以不管是通路的LDAP,RMI還是DNS.也就是說,JNDI獨立于目錄服務的具體實作,隻要有目錄的服務提供接口或驅動,就可以使用目錄.

3.EJB(EnterpriseJavaBean)

J2EE将業務邏輯從用戶端軟體中抽取出來,封裝在一個元件中。這個元件運作在一個獨立的伺服器上,用戶端軟體通過網絡調用元件提供的服務以實作業務邏輯,而用戶端軟體的功能隻是負責發送調用請求和顯示處理結果。

EJB提供了一個架構來開發分布式商務邏輯,顯著地簡化了具有可伸縮性和高複雜的企業級應用的開發。

在J2EE中,這個運作在一個獨立的伺服器上,并封裝了業務邏輯的元件就是EJB元件。其實就是把原來放到用戶端實作的代碼放到伺服器端,并依靠RMI進行通信。

4.RMI(Remote MethodInvoke)

是一組使用者開發分布式應用程式的API.

RMI是在遠端對象上調用一些方法,使用連續的方式在用戶端和伺服器端傳遞資料,RMI是EJB技術的基礎。

這一協定調用遠端對象上的方法使用了序列化的方式在用戶端和伺服器之間傳遞資料,使得原先的程式在同一作業系統的方法調用,變成了不同作業系統之間程式的方法調用,即RMI機制實作了程式元件在不同作業系統之間的通信.它是一種被EJB使用的更底層的協定.

RMI/JNI: RMI可利用标準Java本機方法接口與現有的和原有的系統相連接配接

RMI/JDBC: RMI利用标準JDBC包與現有的關系資料庫連接配接

這就實作了與非Java語言的現有伺服器進行通信.

5.JavaIDL/CORBA(Common Object Request BrokerArchitecture)

Java接口定義語言/公用對象請求代理程式體系結構

在Java IDL的支援下,可以将Java和CORBA內建在一起,建立Java對象并使之可在CORBA ORB中使用。

在JavaIDL的支援下,開發人員可以将Java和CORBA內建在一起。他們可以建立Java對象并使之可在CORBA ORB中展開,或者他們還可以建立Java類并作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用于将新的應用和舊的系統相內建。

CORBA是面向對象标準的第一步,有了這個标準,軟體的實作與工作環境對使用者和開發者不再重要,可以把精力更多地放在本地系統的實作與優化上。

6.JSP(java Server Pages)

JJSP頁面由HTML代碼和嵌入其中的Java代碼所組成。其根本是一個簡化的Servlet設計.

伺服器在頁面被用戶端請求後,對這些Java代碼進行處理,然後将執行結果連同原HTML代碼生成的新HTML頁面傳回給用戶端浏覽器.

7.Java Servlet

Servlet是一種小型的Java程式,擴充了Web伺服器的功能,作為一種伺服器的應用,當被請求時開始執行.Servlet提供的功能大多和JSP類似,不過,JSP通常是大多數的HTML代碼中嵌入少量的Java代碼,而Servlet全部由Java寫成并生成HTML.

8.XML

XML是一個用來定義其它标記語言的語言,可用作資料共享。XML的發展和Java是互相獨立的。不過,它和Java具有的相同目标就是跨平台。通過将Java與XML結合,我們可以得到一個完全與平台無關的解決方案。

9.JMS(JavaMessage Service)

它是一種與廠商無關的API,用來通路消息收發系統消息.它類似于JDBC.JDBC是可以用來通路不同關系資料庫的API,而JMS則提供同樣與廠商無關的通路消息收發服務的方法,這樣就可以通過消息收發服務實作從一個JMS客戶機向另一個JMS客戶機發送消息,所需要的是廠商支援JMS.換句話說,JMS是Java平台上有關面向消息中間件的技術規範.

10.JTA(JavaTransaction API)

定義了一種标準API,應用程式由此可以通路各種事務監控.它允許應用程式執行分布式事務處理–在兩個或多個網絡計算機資源上通路并且更新資料.JTA和JTS為J2EE 平台提供了分布式事務服務.

JTA事務比JDBC事務更強大,一個JTA事務可以有多個參與者,而一個JDBC事務則被限定在一個單一的資料庫連接配接.

11.JTS(JavaTransaction Service)

JTS是CORBA OTS事務監控器的一個基本實作。JTS指定了一個事務管理器的實作(Transaction Manager),這個管理器在一個進階别上支援JTA規範,并且在一個低級别上實作了OMGOTS規範的Java映射。一個JTS事務管理器為應用伺服器、資料總管、standalone應用和通信資料總管提供事務服務。

12.JavaMail

用于通路郵件伺服器的API,提供了一套郵件伺服器的抽象類.

13.JAF(JavaBeansActivation Framework)

JAF是一個專用的資料處理架構,它用于封裝資料,并為應用程式提供通路和操作資料的接口.也就是說,JAF讓Java程式知道怎麼對一個資料源進行檢視,編輯,列印等.

JavaMail利用JAF來處理MIME編碼的郵件附件.