J2EE是1套全然不同于傳統(tǒng)利用開發(fā)的技術(shù)架構(gòu),包括許多組件,主要可簡化且規(guī)范利用系統(tǒng)的開發(fā)與部署,進(jìn)
而提高可移植性、安全與再用價(jià)值。
J2EE核心是1組技術(shù)規(guī)范與指南,其中所包括的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各
種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間沒法兼容,企業(yè)內(nèi)
部或外部難以互通的窘境。
2EE組件和“標(biāo)準(zhǔn)的” Java類的不同點(diǎn)在于:它被裝配在1個(gè)J2EE利用中,具有固定的格式并遵照J(rèn)2EE規(guī)范,由
J2EE服務(wù)器對(duì)其進(jìn)行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端利用程序和applet是運(yùn)行在客戶真?zhèn)€組件;Java
Servlet和Java Server Pages (JSP) 是運(yùn)行在服務(wù)器真?zhèn)€Web組件;Enterprise Java Bean (EJB )組件是運(yùn)行在服
務(wù)器真?zhèn)€業(yè)務(wù)組件。
1、 企業(yè)級(jí)利用框架的需求
在許多企業(yè)級(jí)利用中,例如數(shù)據(jù)庫連接、郵件服務(wù)、事務(wù)處理等都是1些通用企業(yè)需求模塊,這些模塊如果每次
在開發(fā)中都由開發(fā)人員來完成的話,將會(huì)造成開發(fā)周期長和代碼可靠性差等問題。因而許多大公司開發(fā)了自己的通用
模塊服務(wù)。這些服務(wù)性的軟件系列統(tǒng)稱為中間件。
2、 為了通用必須要提出規(guī)范,不然沒法到達(dá)通用
在上面的需求基礎(chǔ)之上,許多公司都開發(fā)了自己的中間件,但其與用戶的溝通都各有不同,從而致使用戶沒法將
各個(gè)公司不同的中間件組裝在1塊為自己服務(wù)。從而產(chǎn)生瓶頸。因而提出標(biāo)準(zhǔn)的概念。其實(shí)J2EE就是基于JAVA技術(shù)的
1系列標(biāo)準(zhǔn)。
1.JDBC(Java Database Connectivity):
JDBC API為訪問不同的數(shù)據(jù)庫提供了1種統(tǒng)1的途徑,象ODBC1樣,JDBC對(duì)開發(fā)者屏蔽了1些細(xì)節(jié)問題,另外,
JDCB對(duì)數(shù)據(jù)庫的訪問也具有平臺(tái)無關(guān)性。
2.JNDI(Java Name and Directory Interface):
JNDI API被用于履行名字和目錄服務(wù)。它提供了1致的模型來存取和操作企業(yè)級(jí)的資源如DNS和LDAP,本地文件系統(tǒng),或利用服務(wù)器中的對(duì)象。
3.EJB(Enterprise JavaBean):
J2EE技術(shù)之所以贏得某體廣泛重視的緣由之1就是EJB。它們提供了1個(gè)框架來開發(fā)和實(shí)行散布式商務(wù)邏輯,由
此很顯著地簡化了具有可伸縮性和高度復(fù)雜的企業(yè)級(jí)利用的開發(fā)。EJB規(guī)范定義了EJB組件在什么時(shí)候如何與它們的容器進(jìn)
行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池和容錯(cuò)性。但這里值得注
意的是,EJB其實(shí)不是實(shí)現(xiàn)J2EE的唯1途徑。正是由于J2EE的開放性,使得有的廠商能夠以1種和EJB平行的方式來到達(dá)
一樣的目的。
4.RMI(Remote Method Invoke):
正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠(yuǎn)程對(duì)象上方法。它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。
RMI是1種被EJB使用的更底層的協(xié)議。
5.Java IDL/CORBA:
在Java IDL的支持下,開發(fā)人員可以將Java和CORBA集成在1起。他們可以創(chuàng)建Java對(duì)象并使之可在CORBA ORB中
展開, 或他們還可以創(chuàng)建Java類并作為和其它ORB1起展開的CORBA對(duì)象的客戶。后1種方法提供了另外1種途徑,
通過它Java可以被用于將你的新的利用和舊的系統(tǒng)相集成。
6.JSP(Java Server Pages):
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端所要求以后對(duì)這些Java代碼進(jìn)行處
理,然后將生成的HTML頁面返回給客戶真?zhèn)€閱讀器。
7.Java Servlet:
Servlet是1種小型的Java程序,它擴(kuò)大了Web服務(wù)器的功能。作為1種服務(wù)器真?zhèn)€利用,當(dāng)被要求時(shí)開始履行,
這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中
嵌入少許的Java代碼,而servlets全部由Java寫成并且生成HTML。
8.XML(Extensible Markup Language):
XML是1種可以用來定義其它標(biāo)記語言的語言。它被用來在不同的商務(wù)進(jìn)程中同享數(shù)據(jù)。XML的發(fā)展和Java是相互
獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺(tái)獨(dú)立性。通過將Java和XML的組合,您可以得到1個(gè)完善的具有平
臺(tái)獨(dú)立性的解決方案。
9.JMS(Java Message Service):
MS是用于和面向消息的中間件相互通訊的利用程序接口(API)。它既支持點(diǎn)對(duì)點(diǎn)的域,有支持發(fā)布/定閱
(publish/subscribe)類型的域,并且提供對(duì)以下類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,1致性消息和
具有持久性的定閱者支持。JMS還提供了另外一種方式來對(duì)您的利用與舊的后臺(tái)系統(tǒng)相集成。
10.JTA(Java Transaction Architecture):
JTA定義了1種標(biāo)準(zhǔn)的API,利用系統(tǒng)由此可以訪問各種事務(wù)監(jiān)控。
11.JTS(Java Transaction Service):
JTS是CORBA OTS事務(wù)監(jiān)控的基本的實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持Java
Transaction API (JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMG OTSspecification的Java映像。JTS事務(wù)管理器為利用服務(wù)器、
資源管理器、獨(dú)立的利用和通訊資源管理器提供了事務(wù)服務(wù)。
12.JavaMail:
JavaMail是用于存取郵件服務(wù)器的API,它提供了1套郵件服務(wù)器的抽象類。不但支持SMTP服務(wù)器,也支持IMAP
13.JAF(JavaBeans Activation Framework):
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對(duì)象,或轉(zhuǎn)換自Java對(duì)象。大
多數(shù)利用都可以不需要直接使用JAF。
點(diǎn)睛:
J2EE的基石是EJB,它是Java中的服務(wù)器端組件標(biāo)準(zhǔn)。13個(gè)規(guī)范解決了背景中提到的問題,好比全球制造軸承
的標(biāo)準(zhǔn)是1樣的,只有遵守標(biāo)準(zhǔn)自己生產(chǎn)的軸承才能被全球使用。