J2EE的13个规范总结
轉(zhuǎn)載自:http://blog.csdn.net/zhuanzhe117/article/details/38763483
什么是J2EE?
在企業(yè)級應(yīng)用中,都有一些通用企業(yè)需求模塊,如數(shù)據(jù)庫連接,郵件服務(wù),事務(wù)處理等.既然很多企業(yè)級應(yīng)用都需要這些模塊,一些大公司便開發(fā)了自己的通用模塊服務(wù),即中間件.這樣一來,就避免了重復(fù)開發(fā),開發(fā)周期長和代碼可靠性差等問題.但是,各公司的中間件不兼容的問題就出現(xiàn)了,用戶無法將它們組裝在一起為自己服務(wù).于是,"標(biāo)準(zhǔn)"就應(yīng)運(yùn)而生了.
J2EE就是基于Java技術(shù)的一系列標(biāo)準(zhǔn).
J2EE是Java2平臺企業(yè)版(Java 2Platform Enterprise Edition),核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件,服務(wù)架構(gòu)和技術(shù)層次,都有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依云J2EE架構(gòu)的不同平臺之間,存在良好的兼容性.
?
J2EE的13種規(guī)范是什么?
1.JDBC(JavaDatabase Connectivity)
JDBC是以統(tǒng)一方式訪問數(shù)據(jù)庫的API.
它提供了獨(dú)立于平臺的數(shù)據(jù)庫訪問,也就是說,有了JDBC API,我們就不必為訪問Oracle數(shù)據(jù)庫專門寫一個程序,為訪問Sybase數(shù)據(jù)庫又專門寫一個程序等等,只需要用JDBC API寫一個程序就夠了,它可以向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用.JDBC是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對話的方法的機(jī)制.簡單地說,它做了三件事:與數(shù)據(jù)庫建立連接--發(fā)送操作數(shù)據(jù)庫的語句--處理結(jié)果.
?
2.JNDI(JavaName and Directory Interface)
JNDI是一組在Java應(yīng)用中訪問命名和目錄服務(wù)的API.
(命名服務(wù)將名稱和對象聯(lián)系起來,我們即可用名稱訪問對象.JNDI允許把名稱同Java對象或資源關(guān)聯(lián)起來,建立邏輯關(guān)聯(lián),而不必知道對象或資源的物理ID.)JNDI為開發(fā)人員提供了查找和訪問各種命名和目錄服務(wù)的通用,統(tǒng)一的接口,可訪問的目錄及服務(wù)如下表:
利用JNDI的命名與服務(wù)功能可滿足企業(yè)級API對命名與服務(wù)的訪問,諸如EJB,JMS,JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務(wù).
JNDI和JDBC類似,都是構(gòu)建在抽象層上.因?yàn)?
它提供了標(biāo)準(zhǔn)的獨(dú)立于命名系統(tǒng)的API,這些API構(gòu)建在命名系統(tǒng)之上.這一層有助于將應(yīng)用與實(shí)際數(shù)據(jù)源分離,因此不管是訪問的LDAP,RMI還是DNS.也就是說,JNDI獨(dú)立于目錄服務(wù)的具體實(shí)現(xiàn),只要有目錄的服務(wù)提供接口或驅(qū)動,就可以使用目錄.
?
3.EJB(EnterpriseJavaBean)
J2EE將業(yè)務(wù)邏輯從客戶端軟件中抽取出來,封裝在一個組件中。這個組件運(yùn)行在一個獨(dú)立的服務(wù)器上,客戶端軟件通過網(wǎng)絡(luò)調(diào)用組件提供的服務(wù)以實(shí)現(xiàn)業(yè)務(wù)邏輯,而客戶端軟件的功能只是負(fù)責(zé)發(fā)送調(diào)用請求和顯示處理結(jié)果。
在J2EE中,這個運(yùn)行在一個獨(dú)立的服務(wù)器上,并封裝了業(yè)務(wù)邏輯的組件就是EJB組件。其實(shí)就是把原來放到客戶端實(shí)現(xiàn)的代碼放到服務(wù)器端,并依靠RMI進(jìn)行通信。
?
4.RMI(Remote MethodInvoke)
是一組用戶開發(fā)分布式應(yīng)用程序的API.
這一協(xié)議調(diào)用遠(yuǎn)程對象上的方法使用了序列化的方式在客戶端和服務(wù)器之間傳遞數(shù)據(jù),使得原先的程序在同一操作系統(tǒng)的方法調(diào)用,變成了不同操作系統(tǒng)之間程序的方法調(diào)用,即RMI機(jī)制實(shí)現(xiàn)了程序組件在不同操作系統(tǒng)之間的通信.它是一種被EJB使用的更底層的協(xié)議.
RMI/JNI: RMI可利用標(biāo)準(zhǔn)Java本機(jī)方法接口與現(xiàn)有的和原有的系統(tǒng)相連接
RMI/JDBC: RMI利用標(biāo)準(zhǔn)JDBC包與現(xiàn)有的關(guān)系數(shù)據(jù)庫連接
這就實(shí)現(xiàn)了與非Java語言的現(xiàn)有服務(wù)器進(jìn)行通信.
?
5.JavaIDL/CORBA(Common Object Request BrokerArchitecture)
Java接口定義語言/公用對象請求代理程序體系結(jié)構(gòu)
在JavaIDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對象并使之可在CORBA ORB中展開,或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將新的應(yīng)用和舊的系統(tǒng)相集成。
CORBA是面向?qū)ο髽?biāo)準(zhǔn)的第一步,有了這個標(biāo)準(zhǔn),軟件的實(shí)現(xiàn)與工作環(huán)境對用戶和開發(fā)者不再重要,可以把精力更多地放在本地系統(tǒng)的實(shí)現(xiàn)與優(yōu)化上。
?
6.JSP(Java Server Pages)
JSP頁面=HTML+Java,其根本是一個簡化的Servlet設(shè)計.
服務(wù)器在頁面被客戶端請求后,對這些Java代碼進(jìn)行處理,然后將執(zhí)行結(jié)果連同原HTML代碼生成的新HTML頁面返回給客戶端瀏覽器.
?
7.Java Servlet
Servlet是一種小型的Java程序,擴(kuò)展了Web服務(wù)器的功能,作為一種服務(wù)器的應(yīng)用,當(dāng)被請求時開始執(zhí)行.Servlet提供的功能大多和JSP類似,不過,JSP通常是大多數(shù)的HTML代碼中嵌入少量的Java代碼,而Servlet全部由Java寫成并生成HTML.
?
8.XML
XML是一個用來定義其它標(biāo)記語言的語言,可用作數(shù)據(jù)共享。XML的發(fā)展和Java是相互獨(dú)立的。不過,它和Java具有的相同目標(biāo)就是跨平臺。通過將Java與XML結(jié)合,我們可以得到一個完全與平臺無關(guān)的解決方案。
?
9.JMS(JavaMessage Service)
它是一種與廠商無關(guān)的API,用來訪問消息收發(fā)系統(tǒng)消息.它類似于JDBC.JDBC是可以用來訪問不同關(guān)系數(shù)據(jù)庫的API,而JMS則提供同樣與廠商無關(guān)的訪問消息收發(fā)服務(wù)的方法,這樣就可以通過消息收發(fā)服務(wù)實(shí)現(xiàn)從一個JMS客戶機(jī)向另一個JMS客戶機(jī)發(fā)送消息,所需要的是廠商支持JMS.換句話說,JMS是Java平臺上有關(guān)面向消息中間件的技術(shù)規(guī)范.
?
10.JTA(JavaTransaction API)
定義了一種標(biāo)準(zhǔn)API,應(yīng)用程序由此可以訪問各種事務(wù)監(jiān)控.它允許應(yīng)用程序執(zhí)行分布式事務(wù)處理--在兩個或多個網(wǎng)絡(luò)計算機(jī)資源上訪問并且更新數(shù)據(jù).JTA和JTS為J2EE 平臺提供了分布式事務(wù)服務(wù).
JTA事務(wù)比JDBC事務(wù)更強(qiáng)大,一個JTA事務(wù)可以有多個參與者,而一個JDBC事務(wù)則被限定在一個單一的數(shù)據(jù)庫連接.
?
11.JTS(JavaTransaction Service)
JTS是CORBA OTS事務(wù)監(jiān)控器的一個基本實(shí)現(xiàn)。JTS指定了一個事務(wù)管理器的實(shí)現(xiàn)(Transaction Manager),這個管理器在一個高級別上支持JTA規(guī)范,并且在一個低級別上實(shí)現(xiàn)了OMGOTS規(guī)范的Java映射。一個JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、standalone應(yīng)用和通信資源管理器提供事務(wù)服務(wù)。
?
12.JavaMail
用于訪問郵件服務(wù)器的API,提供了一套郵件服務(wù)器的抽象類.
?
13.JAF(JavaBeansActivation Framework)
JAF是一個專用的數(shù)據(jù)處理框架,它用于封裝數(shù)據(jù),并為應(yīng)用程序提供訪問和操作數(shù)據(jù)的接口.也就是說,JAF讓Java程序知道怎么對一個數(shù)據(jù)源進(jìn)行查看,編輯,打印等.
JavaMail利用JAF來處理MIME編碼的郵件附件.
?
它們之間有什么關(guān)系?
以上介紹各個規(guī)范的同時也盡可能思考了各個規(guī)范之間的聯(lián)系.最后用一張簡單的圖來表示各個規(guī)范之間的調(diào)用關(guān)系,純屬自己分析所得,還望高人指點(diǎn)…
總結(jié)
以上是生活随笔為你收集整理的J2EE的13个规范总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB 杭州用户会全记录(千寻位
- 下一篇: 十分钟成为 TiDB Contribut