您好,登錄后才能下訂單哦!
小編給大家分享一下Java如何使用EJB容器,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Java EJB的體系結(jié)構(gòu):
EJB的上層的分布式應(yīng)用程序是基于對(duì)象組件模型的,低層的事務(wù)服務(wù)用了API技術(shù)。EJB技術(shù)簡(jiǎn)化了用 JAVA語言編寫的企業(yè)應(yīng)用系統(tǒng)的開發(fā),配置,和執(zhí)行。EJB的體系結(jié)構(gòu)的規(guī)范由Sun Microsystems公司制定。 Inprise的EJB容器是基于1.1版的規(guī)范。
EJB技術(shù)定義了一組可重用的組件:Enterprise Beans。你可以利用這些組件,象搭積木一樣的建立你的分布式應(yīng)用程序。當(dāng)你把代碼寫好之后,這些組件就被組合到特定的文件中去。每個(gè)文件有一個(gè)或多個(gè) Enterprise Beans,在加上一些配置參數(shù)。最后,這些Enterprise Beans被配置到一個(gè)裝了EJB容器的平臺(tái)上??蛻裟軌蛲ㄟ^這些Beans的home接口,定位到某個(gè)beans,并產(chǎn)生這個(gè)beans的一個(gè)實(shí)例。這樣,客戶就能夠調(diào)用Beans的應(yīng)用方法和遠(yuǎn)程接口。
EJB服務(wù)器作為容器和低層平臺(tái)的橋梁管理著EJB容器和函數(shù)。它向EJB容器提供了訪問系統(tǒng)服務(wù)的能力。 例如:數(shù)據(jù)庫的管理和事務(wù)的管理,或者對(duì)于其它的Enterprise的應(yīng)用服務(wù)器。
所有的EJB 實(shí)例都運(yùn)行在EJB容器中。容器提供了系統(tǒng)級(jí)的服務(wù),控制了EJB的生命周期。因?yàn)槿萜髡莆樟私^大多數(shù)系統(tǒng)級(jí)的issues(呵呵,不知道怎么翻譯)。Enterprise Beans 的開發(fā)者不需要應(yīng)用邏輯考慮進(jìn)來。通常來說,EJB容器掌握了以下的系統(tǒng)級(jí)issues.
1、Security–配置描述器(The Deployment descriptor)定義了客戶能夠訪問的不同的應(yīng)用函數(shù)。容器 通過只允許授權(quán)的客戶訪問這些函數(shù)來達(dá)到這個(gè)效果。
2、Remote Connectivity–容器為遠(yuǎn)程鏈接管理著低層的通信issues,而且對(duì)Enterprise Beas的開發(fā)者和客戶都隱藏了通信issues.Enterprise Beans的開發(fā)者在編寫應(yīng)用方法的時(shí)候,就象是在條用本地的平臺(tái)一樣的??蛻粢膊磺宄麄冋{(diào)用的方法可能是在遠(yuǎn)程被處理的。
3、Life Cycle managment–客戶簡(jiǎn)單的創(chuàng)建一個(gè)Enterprise beans的實(shí)例,并通常取消一個(gè)實(shí)例。而容器管理著Enterprise Beans的實(shí)例,使Enterprise Beans實(shí)現(xiàn)最大的效能和內(nèi)存利用率。容器能夠這樣來激活和去活Enterprise Beans,保持眾多客戶共享的實(shí)例池。等等。
4、Trasction management—配置描述器定義了Enterprise beans 的事務(wù)處理的需求。容器管理著那些管理分布式事務(wù)處理的復(fù)雜的issues。這些事務(wù)可能要在不同的平臺(tái)之間更新數(shù)據(jù)庫。容器使這些事務(wù)之間互相獨(dú)立,互不干擾。保證所有的更新數(shù)據(jù)庫都是成功發(fā)生的,否者,就回滾到事務(wù)處理之前的狀態(tài)。
Enterprise Beans 組件:
Enterprise Beans 是基于分布式事務(wù)處理的企業(yè)級(jí)應(yīng)用程序的組件。所有的Enterprise beans都有如下 的特點(diǎn):
Enterprise beans包含了處理企業(yè)數(shù)據(jù)的應(yīng)用邏輯。
Enterprise beans provider定義了Enterprise beans的客戶界面(Enterprise beans 的遠(yuǎn)程界面)。這樣的界面不受容器和服務(wù)器的影響。于是,當(dāng)一個(gè) Enterprise beans被集合到一個(gè)應(yīng)用程序中去時(shí),不用更改代碼和重新編譯。
Enterprise beans能夠被 定制
各種系統(tǒng)級(jí)的服務(wù),例如安全和事務(wù)處理的特性,都不是屬于Enterprise beans class的。而是由 配置和組裝應(yīng)用程序的工具來實(shí)現(xiàn)。
有兩種類型的Enterprise beans: Session beans 和 entity beans.
Session beans:
Session beans 是一種作為單個(gè)的client執(zhí)行的對(duì)象。作為對(duì)遠(yuǎn)程的任務(wù)請(qǐng)求的相應(yīng),容器產(chǎn)生一個(gè) Session beans 的實(shí)例。一個(gè)Session beans有一個(gè)client.從某種程度上來說,一個(gè)Session bean 對(duì)于服務(wù)器來說就代表了它的那個(gè)client.Session beans 也能用于事務(wù),它能夠更新共享的數(shù)據(jù),但它不直接描繪這 些共享的數(shù)據(jù)。
Session beans 的生命周期是相對(duì)較短的。典型的是,只有當(dāng)client保持會(huì)話的時(shí)候,Session beans 才是活著的。一旦client退出了,Session beans 就不再與client相聯(lián)系了。Session beans被看成是瞬時(shí)的,因?yàn)槿绻萜鞅罎⒘?,那么client必須重新建立一個(gè)新的Session對(duì)象來繼續(xù)會(huì)話。
一個(gè)Session bean典型的聲明了與client的互操作或者會(huì)話。也就是說,Session bean了在客戶會(huì)話期間,通過方法的調(diào)用,掌握Client的信息。一個(gè)具有狀態(tài)的Session bean稱為有狀態(tài)的Session bean.當(dāng)client 終止與Session beans互操作的時(shí)候.會(huì)話終止了,而且,bean 也不再擁有狀態(tài)值。
一個(gè)Session bean也可能是一個(gè)無狀態(tài)的 session bean.無狀態(tài)的Session beans并不掌握它的客戶的信息或者狀態(tài)。Client能夠調(diào)用beans的方法來完成一些操作。但是,beans只是在方法調(diào)用的時(shí)候才知道 client的參數(shù)變量。當(dāng)方法調(diào)用完成以后,beans并不繼續(xù)保持這些參數(shù)變量。這樣,所有的無狀態(tài)的 session beans的實(shí)例都是相同的,除非它正在方法調(diào)用期間。這樣,無狀態(tài)的Session beans就能夠支持多個(gè)client.容器能夠聲明一個(gè)無狀態(tài)的Session beans.能夠?qū)⑷魏蜸ession beans指定給任何client.
Entity Beans:
Entity Beans對(duì)數(shù)據(jù)庫中的數(shù)據(jù)提供了一種對(duì)象的視圖。例如:一個(gè)Entity bean能夠模擬數(shù)據(jù)庫表中一行相關(guān)的數(shù)據(jù)。多個(gè)client能夠共享訪問同一個(gè)Entity bean.多個(gè)client也能夠同時(shí)的訪問同一個(gè)Entity bean.Entity beans通過事務(wù)的上下文來訪問或更新下層的數(shù)據(jù)。這樣,數(shù)據(jù)的完整性就能夠被保證。
Entity Beans能存活相對(duì)教長(zhǎng)的時(shí)間,并且狀態(tài)是持續(xù)的。只要數(shù)據(jù)庫中的數(shù)據(jù)存在,Entity beans就一直存活。而不是按照應(yīng)用程序或者服務(wù)進(jìn)程來說的。即使EJB容器崩潰了,Entity beans也是存活的。Entity Beans生命周期能夠被容器或者 Beans自己管理。如果由容器控制著保證 Entity beans持續(xù)的issus。如果由 Beans自己管理,就必須寫Entity beans的代碼,包括訪問數(shù)據(jù)庫的調(diào)用。
Entity Beans是由主鍵(primary key 一種唯一的對(duì)象標(biāo)識(shí)符)標(biāo)識(shí)的。通常,主鍵與標(biāo)識(shí)數(shù)據(jù)庫中的一 塊數(shù)據(jù),例如一個(gè)表中的一行,的主鍵是相同的。主鍵是client能夠定位特定的數(shù)據(jù)塊。
EJB roles:
EJB體系結(jié)構(gòu)通過把編程的過程分為6個(gè)不同的角色而使開發(fā)復(fù)雜的的應(yīng)用系統(tǒng)變的簡(jiǎn)單。6個(gè)不同的角色 ,每個(gè)都有特定的任務(wù)。6個(gè)角色包括下層的服務(wù),應(yīng)用程序的開發(fā),配置和操作說明(issues)
EJB體系結(jié)構(gòu)能夠簡(jiǎn)化應(yīng)用程序開發(fā)人員的工作。在EJB體系結(jié)構(gòu)中,容器和代理服務(wù)承擔(dān)了很多在其他環(huán) 境中又程序設(shè)計(jì)人員承擔(dān)的工作。這樣的代理提供了很多原來需要程序設(shè)計(jì)人員編寫代碼的系統(tǒng)級(jí)的服務(wù)。
Infrastructure roles;(下層構(gòu)造角色)
EJB Server Providor服務(wù)提供者是典型的提供分布式低層服務(wù)的代理。EJB服務(wù)提供者提供了一個(gè)分布式 應(yīng)用程序開發(fā)者需要的平臺(tái)和設(shè)施。也提供了分布式程序的運(yùn)行時(shí)環(huán)境。
EJB Container Providor 容器提供者是分布式系統(tǒng),事務(wù)處理,安全方面的專家容器提供者提供了一個(gè) EJB的配置工具,和這些配置實(shí)例的運(yùn)行時(shí)支持。
一個(gè)容器對(duì)一個(gè)或多個(gè)EJB來說,是一個(gè)運(yùn)行時(shí)系統(tǒng)。它將Enterprise Beans和EJB服務(wù),包括事務(wù)服務(wù),安全服務(wù),分布式網(wǎng)絡(luò)管理等膠合在一起。容器是既是一個(gè)定制的代碼和對(duì)特定的 Enterprise beans產(chǎn)生詳細(xì)代碼的工具。容器也提供了一個(gè)配置Enterprise beans的工具和管理監(jiān)視應(yīng)用程序的方法。
Application roles:(應(yīng)用角色)
Enterprise beans Provider:Beans提供者在應(yīng)用領(lǐng)域方面是專家。例如:Beans提供者可能是金融或電信方面的專家。Beans提供者提供了業(yè)務(wù) tasks,Enterprise beans的業(yè)務(wù)方法,定義了beans的romote和home接口,還定義了beans的配置描述器。因?yàn)槿萜鞴芾碇到y(tǒng)級(jí)的任務(wù),所以,Beans 提供者便不需要關(guān)心分布處理,事務(wù)處理,安全性能等從應(yīng)用方面看來沒什么關(guān)系的方面。
Application Assembler程序組裝器:
這是一個(gè)將定制的Enterprise beans和其它的組件,例如,GUI client,applet,Servelet等組裝成一個(gè)完整的應(yīng)用程序的行家。在Enterprise的配置器下,組裝器在組裝成一個(gè)應(yīng)用程序的時(shí)候,只關(guān)心beans的接口,包括romote接口和home接口。而不關(guān)心這些接口是怎么實(shí)現(xiàn)的。組裝的結(jié)果就是一個(gè)一個(gè)的應(yīng)用程序,或者由多個(gè) Enterprise beans組合成的一個(gè)比較復(fù)雜的Enterprise beans.
Deployment and Operate roles配置和操作角色
配置器為特定的Enterprise beans配置特殊的操作環(huán)境。配置器為了適應(yīng)應(yīng)用程序,將多個(gè)Enerprise beans 組合起來,通過修改Enterprise beans 的屬性來達(dá)到配置相應(yīng)的操作環(huán)境。例如,配置器通過設(shè)置配置描述符的相應(yīng)的屬性來設(shè)置事務(wù)和安全方針。配置器的另一個(gè)任務(wù)是將應(yīng)用程序與現(xiàn)有的 Enterprise管理軟件結(jié)合起來。
System Administrator系統(tǒng)管理者;
是與配置應(yīng)用有關(guān)的。管理者配置個(gè)管理Enterprise計(jì)算和網(wǎng)絡(luò)服務(wù)的低層,包括EJB服務(wù)和容器。管理員監(jiān)視著應(yīng)用服務(wù)器的運(yùn)行狀況,當(dāng)應(yīng)用服務(wù)器不正常運(yùn)行是就采取相應(yīng)的措施。典型的說,管理員使用Enterprise管理工具來與應(yīng)用程序打交道,通過由容器提供的hooks來配置。
傳統(tǒng)的應(yīng)用程序開發(fā)者現(xiàn)在是Enterprise beans的提供者。也可能是應(yīng)用程序的裝配者。這樣能使他們將主要精力放在應(yīng)用問題或者應(yīng)用邏輯上面。當(dāng)安裝Enterprise beans時(shí),配置器定義了一系列的配置方針。機(jī)制的復(fù)雜性和執(zhí)行配置的方針就交給了專門的代理。雖然分布式的應(yīng)用程序還是比較復(fù)雜,可是,應(yīng)用程序設(shè)計(jì)者的工作卻變的簡(jiǎn)單了,因?yàn)樗袕?fù)雜的工作都交給了EJB服務(wù)器和容器提供者了。
通過大量的設(shè)計(jì)之前的定義和命名約定,EJB達(dá)到了前面提到的目的。這樣的編程體系結(jié)構(gòu)限制了一定的自由,但是,允許EJB服務(wù)器和容器提供者假定應(yīng)用程序的設(shè)計(jì),并以一種行之有效的方式來支持他們。
EJB的設(shè)計(jì)模式和命名約定:
有三種途徑來建立一個(gè)基于對(duì)象的,多層的,分布式的系統(tǒng):無狀態(tài)服務(wù)的途徑,基于會(huì)話的途徑和持續(xù)對(duì)象的途徑。
無狀態(tài)的服務(wù)是通過對(duì)象的操作提供一種功能的函數(shù),但是,不保持會(huì)話的狀態(tài)。當(dāng)一個(gè)客戶使用無狀態(tài)的對(duì)象時(shí),客戶不能夠提供上一次操作的信息。
基于會(huì)話的設(shè)計(jì)產(chǎn)生了一個(gè)中間層的對(duì)象,稱為一個(gè)會(huì)話(Session)。這個(gè)會(huì)話可以看成是這個(gè)客戶的代理。典型的,會(huì)話的生命是由客戶和所在的服務(wù)程序決定的。客戶如果完成了會(huì)話就可以將對(duì)象移走。如果服務(wù)終止了,會(huì)話對(duì)象就會(huì)超時(shí)。會(huì)話對(duì)象就會(huì)變的無效了。
持續(xù)對(duì)象設(shè)計(jì)模式綁定了存在數(shù)據(jù)庫中的一塊數(shù)據(jù)。提供了操作這塊數(shù)據(jù)的一些個(gè)操作。持續(xù)對(duì)象是由多個(gè)客戶共享的。起生命期是由存儲(chǔ)數(shù)據(jù)的庫所決定的。
EJB規(guī)范中將這些分別稱做:stateless Session, stateful Session, Entiry Beans.Session Beans模式就是基于會(huì)話的設(shè)計(jì)模式。Entiry Beans模式就是持續(xù)對(duì)象設(shè)計(jì)模式。每種模式都定義了一些接口和命名約定。
Enterprise JavaBeans infrastruct (EJB的基礎(chǔ)結(jié)構(gòu))
容器和服務(wù)提供者實(shí)現(xiàn)了EJB的基礎(chǔ)構(gòu)造。這些基礎(chǔ)構(gòu)造處理了EJB的分布式方面,事務(wù)管理,安全性方面。EJB規(guī)范定義了基礎(chǔ)構(gòu)造和J ava API的為了適應(yīng)各種情況的要求。而沒有去指定用什么技術(shù),平臺(tái),協(xié)議來實(shí)現(xiàn)他們。
Enterprise beans, container, server說明了EJB基礎(chǔ)結(jié)構(gòu)的要求,EJB基礎(chǔ)結(jié)構(gòu)必須提供客戶和Enterprise beans通信的通道。雖然這不是EJB規(guī)范所定義的。但保證通道的安全也是很重要的。特別是當(dāng)客戶通過internet訪問遠(yuǎn)程的Enterprise beans時(shí)。EJB基礎(chǔ)結(jié)構(gòu)也必須能夠加強(qiáng)Enterprise beans 的訪問控制。
Enterprise beans所有的數(shù)據(jù)的持續(xù)性必須被保證。EJB的低層結(jié)構(gòu)必須提供在企業(yè)級(jí)的計(jì)算環(huán)境中與現(xiàn)存系統(tǒng)的結(jié)合能力。Beans的所有通信都是分布式事務(wù)的一部分,需要由EJB低層結(jié)構(gòu)來管理對(duì)于一個(gè)成功的配置,EJB低層必須提供分布式應(yīng)用管理工具的鉤子(hooks)
Container
容器可能是EJB里面最重要的概念。因?yàn)樗虺绦蜷_發(fā)人員提供了最大程度的方便?;趯?duì)象的中間層軟件平臺(tái)如CORBA或者遠(yuǎn)過程調(diào)用RMI是程序開發(fā)者從網(wǎng)絡(luò)傳輸中解放出來,通過提供對(duì)象定位機(jī)制,數(shù)據(jù)重組機(jī)制等等。容器的概念則走的更遠(yuǎn)一點(diǎn)。通過簡(jiǎn)化分布式應(yīng)用程序的那些復(fù)雜的方面,如:安全性,事務(wù)協(xié)調(diào)性,數(shù)據(jù)持久性。
一旦Enterprise Beans準(zhǔn)備好了可以配置了。就被打包成一個(gè)標(biāo)準(zhǔn)的JAVA文件,ejb-jar文件。一個(gè)ejb-jar文件可以包括一個(gè)或多個(gè)的 Enterprise Beans。對(duì)每一個(gè)Enterprise beans,都由它的接口,類,和配置描述器。
Enterprise Beans Provider提供如下東西給ejb-jar 文件:
Enterprise Beans 的remote 接口,接口說明了Client端能調(diào)用的函數(shù)。
Enterprise Beans 的home 接口,home接口使客戶生成和定位一個(gè)Enterprise Beans的實(shí)例。
Enterprise 類本身,實(shí)現(xiàn)了Enterprise beans 的語義。
Deploy Descripot配置描述器,deployer通過利用配置描述器來提供沒有在代碼中申明的信息。例如方針和屬性。EJB的1.0規(guī)范把配置描述器定義為javax.ejb.deployment. SessionDescriptor類或者javax.ejb.deployment.EntityDescriptor的一個(gè)實(shí)例,但是在1.1版本中不贊成這樣做。而是用XML來定義配置描述器。
配置一個(gè)Enterprise Beans 意味著將一個(gè)Enterprise Bean安裝到容器中去。安裝過程包括了如下幾個(gè)方面:
保證不同的Enterprise beans能夠工作在一起。用名字服務(wù)來注冊(cè)一個(gè)Enterprise Bean。通過EJB服務(wù)的通信系統(tǒng)提供訪問EJB的入口。
執(zhí)行事務(wù)管理和安全方針。在一個(gè)EJB容器中可以又任意多個(gè)Enterprise beans.除了安裝和執(zhí)行以外,容器也提供了配置Enterprise beans的工具。為什么用Inprise的EJB 容器?Inprise EJB容器提供的完全的服務(wù)完全支持EJB1。1規(guī)范。一個(gè)有效的運(yùn)行和管理EJBs的容器。提供命名服務(wù),事務(wù)服務(wù),植入Java RDBMS的內(nèi)部。編程,配置簡(jiǎn)單充分的例子來演示怎樣使用EJBs和EJB容器。對(duì)于Enterprise beans的開發(fā)者來說,EJB 容器是一個(gè)高級(jí)Enterprise類產(chǎn)品。因?yàn)樗腥缦聝?yōu)點(diǎn):完整的,靈活的運(yùn)行時(shí)環(huán)境:EJB容器完全實(shí)現(xiàn)了EJB1。1的規(guī)范,包括了它的所有功能。
每一個(gè)由工具產(chǎn)生的Enterprise bean都同時(shí)是Enterprise bean 對(duì)象和CORBA對(duì)象。
EJB容器能夠進(jìn)行單獨(dú)配置,100%的純JAVA服務(wù),或者作為完全的分布式的配置。這樣的靈活性意味著你能夠根據(jù)你的要求調(diào)整你的應(yīng)用程序。
與其它的EJB服務(wù)不一樣,Inprise 的EJB容器服務(wù)并沒有限制一定要分開。而是任意個(gè)數(shù)的Enterprise beans可以放在任意個(gè)數(shù)的容器中,這些容器也可以放在任意個(gè)數(shù)機(jī)器上。并且支持分布式的事務(wù)協(xié)議,允許Enterprise beans的分別裁定。允許部分的配置你的應(yīng)用,而將你的性能配置成最優(yōu)化。
Inprise 的EJB是建立在Vbroker和RMI—IIOP之上的。
EJB容器是建立在Inprise的Vbbroker之上的。VisBroker是已經(jīng)被證明的在各種條件下都是ORB的領(lǐng)導(dǎo)角色。無論在各大公司的聯(lián)合測(cè)試下,或者在實(shí)際的應(yīng)用環(huán)境中。VisiBroker提供了一個(gè)很好的的運(yùn)行時(shí)的任務(wù)的完成。
為了更好的性能,Vbroker使用了大量的運(yùn)行時(shí)優(yōu)化,高級(jí)的多路鏈接,鏈接池和管理,線程池和管理。
客戶和Enterprise beans,Enterprise benas之間,Enterprise beans 和其它的CORBA對(duì)象之間的通信都是通過用VisiBroker的IIOP方式進(jìn)行的。VisiBroker完全適應(yīng)CORBA2。3規(guī)范,RMI— IIOP通過值傳遞的方式來實(shí)現(xiàn)。這意味著,復(fù)雜的JAVA數(shù)據(jù)類型能夠用新的IDL值類型寫到IIOP里面去。就象在CORBA2。3規(guī)范中一樣。數(shù)據(jù)和服務(wù)之間相互協(xié)調(diào)怎樣傳送復(fù)雜的數(shù)據(jù)類型是很重要的。否則,協(xié)同能力就會(huì)受到危及。EJB容器能夠與其他的所有支持RMI-over-IIOP的進(jìn)行協(xié)同工作。
安全特性是可由VisiBroker所有的。保證信用是從客戶傳象服務(wù)。
事務(wù)上下文也是由visibroker所有的。保證當(dāng)CORBA客戶開始一個(gè)事務(wù)時(shí),并且訪問EJB容器的服務(wù)時(shí)。事務(wù)上下文被傳向服務(wù),當(dāng)服務(wù)需要調(diào)用環(huán)境中的各項(xiàng)資源時(shí),就要使用事務(wù)上下文。
事務(wù)的兩段提交是由Inprise的ITS管理的。如果JDBC支持兩階段提交協(xié)議,EJB就支持兩階段提交協(xié)議。當(dāng)時(shí),如果JDBC不支持兩階段提交,兩階段提交就不能被完成。
Enterprise的EJB容器是一個(gè)CORBA對(duì)象:
Inprise 的java2iiop編譯器和EJB容器一樣,都是與CORBA兼容的。EJB容器能夠理解RMI調(diào)用,但是,它用IDL來存放接口定義。雖然 Java2iiop編譯器從java接口產(chǎn)生了stub 和skeleton.也能夠從java接口中產(chǎn)生IDL。然后在其他語言里面用。對(duì)于一個(gè)CORBA客戶端,EJB容器是一個(gè)CORBA服務(wù),EJB容器工具就是與控制EJB的功能相同的CORBA工具。
EJB容器是建立在JNDI和CosNaming,JTS/OTS基礎(chǔ)山的。他們都是完全支持CORBA的。
容器對(duì)不同的Enterprise beans 的支持:
EJB容器的主要的特征就是它提供對(duì)各種各樣的Enterprise beans的管理和支持。包括:
有狀態(tài)或無狀態(tài)的Session Enterprise beans.
Entiry beans包括container-manager和beans-manager的持續(xù)性。
EJB容器可以包括一個(gè)或多個(gè)的jar文件。每一個(gè)jar文件又能夠包括多個(gè)的Enterprise beans。每個(gè)Enterprise bean都包括一個(gè)配置描述器。一個(gè)EJBhome接口,一個(gè)EJBremote接口,還有Enterprise bean的實(shí)現(xiàn)代碼。
使Inprise 的EJB容器不同的是:它支持許多當(dāng)前的客戶,包括如下兩個(gè)方面:
VisiBroler提供了連接管理,允許一個(gè)服務(wù)同時(shí)支持比TCP連接數(shù)多的客戶連接。用最近最少使用算法來關(guān)閉連接。
對(duì)于客戶來說,容器本身是無狀態(tài)的。意味著容器并沒有為每一個(gè)新的Enterprise bean會(huì)話分配內(nèi)存。這樣,容器就能夠支持任意多的無狀態(tài)的Session Enterprise beans.
配置的支持:
Inprise 容器提供了產(chǎn)生代碼的編譯器。也提供了一個(gè)驗(yàn)證的工具來在配置之前檢查你的Enterprise beans.支持EJB1。1的JNDI命名基于XML的配置描述器。
事務(wù)管理者:
事務(wù)管理者提供了事務(wù)管理的手段。包括分布式的兩段提交的支持。遵從最新的SUN公司JTS規(guī)范。也支持最新的OMG的OTS規(guī)范。在開發(fā)時(shí)盡量少用JTS而在配置時(shí)使用健壯的ITS。
JDBC鏈接池和事務(wù)綜合:
所有JDBC訪問數(shù)據(jù)庫都是通過DataSource對(duì)象的實(shí)現(xiàn)來完成的。DataSource對(duì)象與數(shù)據(jù)庫的池鏈接還有JTS管理的全局的事務(wù)處理和用JDBC管理的數(shù)據(jù)庫事務(wù)處理。
命名服務(wù):
命名服務(wù)提供了分布式的命名管理。服務(wù)遵從JAVA的命名和目錄規(guī)范(JNDS)。也遵從OMG的cosNaming規(guī)范。與事務(wù)服務(wù)類似,在配置的時(shí)候,你可以用JNS,也可以用更健壯的INS。JNDI提供的容器能夠運(yùn)行在其他的JNDI實(shí)現(xiàn)之上。這樣就能夠使用其他的命名服務(wù),例如:LDAP。
安全性的支持:
在CORBA之上的Inprise 的安全服務(wù)是附加的。
JAVA數(shù)據(jù)庫:
Java數(shù)據(jù)庫提供了一個(gè)全關(guān)系型的高性能的數(shù)據(jù)庫來存儲(chǔ)Enterprise beans的狀態(tài)。
JAVA數(shù)據(jù)庫既可以運(yùn)行在同一個(gè)進(jìn)程的容器中,或者,為了提高性能,也可以運(yùn)行在一個(gè)單獨(dú)的進(jìn)程中。實(shí)際上,JAVA 數(shù)據(jù)庫是即插即用的。意味著終端用戶能夠用一個(gè)另外的實(shí)現(xiàn)就取代了所有的JAVA版本。例如,能夠?qū)崿F(xiàn)一個(gè)用別的數(shù)據(jù)庫來存儲(chǔ)會(huì)話狀態(tài)和Entiry Data的后臺(tái)存儲(chǔ)。
容器管理的Entity beans的持久性:
Inprise 提供了一個(gè)CMP(Container-Managed Persistence)引擎來提供透明的對(duì)象關(guān)系映射和在純JDBC上的持續(xù)框架。更進(jìn)一步,第三方的工具可以通過開放的API插進(jìn)來。
EJB與其他組件的結(jié)合:
在配置環(huán)境的真實(shí)世界里,EJB的四個(gè)模式能夠與以下的組件工作在一起:
client鏈接到Enterprise beans對(duì)象。Clients可以由java Enterprise bean接口的EJB對(duì)象,或者IDL接口的CORBA對(duì)象。在Inprise 的EJB容器服務(wù)中,每一個(gè)Enterprise bean都同時(shí)是EJB對(duì)象也是CORBA對(duì)象。CORBA客戶能夠用所有支持CORBA的語言來實(shí)現(xiàn),包括C++,Java,Delphi.
從Enterprise bean的數(shù)據(jù)庫訪問。典型的,Enterprise beans對(duì)象是Entity beans對(duì)象,或者是beans-managed,或者是container-managed.
后端服務(wù):CORBA服務(wù),用C++,Java ,Delphi實(shí)現(xiàn),運(yùn)行在任何兼容CORBA的ORB中。EJB服務(wù),包括所有其他的inprise的服務(wù),或者其他支持IIOP的代理商的服務(wù)。其它原來的服務(wù),包括ERP系統(tǒng),main-frame程序。等等。
以上是“Java如何使用EJB容器”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。