EJB入門知識(shí)簡單介紹
應(yīng)用程序開發(fā)者可以專注于支持應(yīng)用所需的商業(yè)邏輯,而不用擔(dān)心周圍框架的實(shí)現(xiàn)問題。EJB入門學(xué)習(xí)中,EJB 規(guī)范詳細(xì)地解釋了一些最小但是必須的服務(wù),如事務(wù),安全和名字等。軟件廠商根據(jù)這些規(guī)范要求以保證一個(gè)enterprise bean能使用某個(gè)必需的服務(wù)。規(guī)范并沒有說明廠商如何實(shí)現(xiàn)這些服務(wù)。這使得通過閱讀規(guī)范來學(xué)習(xí)EJB更加困難,因?yàn)樗试S廠商在不犧牲核心服務(wù)的可移植性的前提下來提供一些增強(qiáng)功能。
JavaBeans和Enterprise JavaBeans
JavaBeans是Java的組件模型。在JavaBeans規(guī)范中定義了事件和屬性等特征。Enterprise JavaBeans也定義了一個(gè)Java組件模型,但是Enterprise JavaBeans組件模型和JavaBeans組件模型是不同的。 JavaBeans重點(diǎn)是允許開發(fā)者在開發(fā)工具中可視化的操縱組件。JavaBeans規(guī)范詳細(xì)地解釋了組件間事件登記、傳遞、識(shí)別和屬性使用、定制和持久化的應(yīng)用編程接口和語意。 Enterprise JavaBeans的側(cè)重點(diǎn)是詳細(xì)地定義了一個(gè)可以portably地部署Java組件的服務(wù)框架模型。因此,其中并沒提及事件,因?yàn)?enterprise bean通常不發(fā)送和接受事件。同樣也沒有提及屬性------屬性定制并不是在開發(fā)時(shí)進(jìn)行,而是在運(yùn)行時(shí)(實(shí)際上在部署時(shí))通過一個(gè)部署描述符來描述。
不要尋找JavaBeans和Enterprise JavaBeans之間的相似性。他們都是組件模型規(guī)范,但是前者說明了開發(fā)工具中應(yīng)用程序組裝的問題,而后者則側(cè)重于部署組件的服務(wù)框架的細(xì)節(jié)。不要錯(cuò)誤地認(rèn)為JavaBeans是用于客戶端的開發(fā),Enterprise JavaBeans是用于服務(wù)器端的開發(fā)。JavaBeans也可作為進(jìn)行非圖形化服務(wù)器端Java應(yīng)用開發(fā)的組件模型。區(qū)別是當(dāng)你使用 JavaBeans創(chuàng)建服務(wù)器應(yīng)用時(shí),你還得設(shè)計(jì)整個(gè)的服務(wù)框架。用Enterprise Javabeans框架是現(xiàn)成的,你只需遵守它的APIs.對于復(fù)雜的服務(wù)器端應(yīng)用程序,顯然使用Enterprise JavaBeans比重新開發(fā)更簡單。這些對EJB入門來說是比較重要
Enterprise JavaBeans體系結(jié)構(gòu)
EJB服務(wù)器是管理 EJB容器的高端進(jìn)程或應(yīng)用程序,并提供對系統(tǒng)服務(wù)的訪問。EJB服務(wù)器也可以提供廠商自己的特性,如優(yōu)化的數(shù)據(jù)庫訪問接口,對其他服務(wù)(如CORBA服務(wù))的訪問,對SSL 3.0的支持等。一個(gè)EJB服務(wù)器必須提供對可訪問JNDI的名字服務(wù)和事務(wù)服務(wù)支持。一些可能的EJB入門的服務(wù)器的例子如:
數(shù)據(jù)庫服務(wù)器
應(yīng)用服務(wù)器
中間件服務(wù)器
EJB容器是一個(gè)管理一個(gè)或多個(gè)EJB類/實(shí)例的抽象。它通過規(guī)范中定義的接口使EJB入門類訪問所需的服務(wù)。容器廠商也可以在容器或服務(wù)器中提供額外服務(wù)的接口。
現(xiàn)在沒有EJB服務(wù)器和EJB容器間接口的規(guī)范。因?yàn)槟壳叭萜魍ǔS蒃JB服務(wù)器來提供,所以一旦接口標(biāo)準(zhǔn)化了,廠商就可能提供可以在任何兼容的EJB服務(wù)器上運(yùn)行的容器。
Home接口列出了所有定位、創(chuàng)建、刪除EJB 類實(shí)例的方法。Home對象是home接口的實(shí)現(xiàn)。EJB類開發(fā)者必須定義home接口。容器廠商應(yīng)該提供從home接口中產(chǎn)生home對象實(shí)現(xiàn)的方法。
遠(yuǎn)程接口(remote interface)列出了EJB類中的商業(yè)方法。EJBObject實(shí)現(xiàn)遠(yuǎn)程接口,并且客戶端通過它訪問EJB實(shí)例的商業(yè)方法。EJB類開發(fā)者定義遠(yuǎn)程接口,容器開發(fā)商提供產(chǎn)生相應(yīng)的EJBObject的方法。客戶端不能得到EJB實(shí)例的引用,只能得到它的EJBObject實(shí)例的引用。當(dāng)客戶端調(diào)用一個(gè)方法,EJBObject接受請求并把它傳給EJB實(shí)例,同時(shí)提供進(jìn)程中必要的包裝功能。客戶端應(yīng)用程序通過home對象來定位、創(chuàng)建、刪除EJB類的實(shí)例,通過EJBObject來調(diào)用實(shí)例中的商業(yè)方法。客戶端可以用Java來編程,通過Java RMI來訪問訪問home對象和EJBObject,或用其他語言編程并通過CORBA/IIOP訪問,使得部署的服務(wù)器端組件可以通過CORBA接口來訪問。這些對EJB入門來說是必須知道的
【編輯推薦】