EJB組件技術(shù)及應(yīng)用
- 期刊名字:微機(jī)發(fā)展
- 文件大小:482kb
- 論文作者:何國(guó)輝
- 作者單位:五邑大學(xué)
- 更新時(shí)間:2020-06-12
- 下載次數(shù):次
15卷第3期微機(jī)發(fā)展Vol. 152005年3月Microcomputer DevelopmentMar.2005EJB組件技術(shù)及應(yīng)用何國(guó)輝(五邑大學(xué)信息學(xué)院,廣東江門529020)摘要:為了開發(fā)出具有良好的可移植性、可擴(kuò)展性、可重用性和可維護(hù)性的軟件系統(tǒng),達(dá)到改善軟件質(zhì)量的目的,最好的方式就是采用組件技術(shù)。文中根據(jù)FB組件結(jié)構(gòu)的特點(diǎn)研究了EJB組件的開發(fā)、部署和應(yīng)用方法,并重點(diǎn)分析了EJB組件間的調(diào)用過程。事實(shí)證明,通過采用EJB組件,能有效保證大型應(yīng)用軟件系統(tǒng)的集成,并滿足具有可移植性、可擴(kuò)展性可重用性和可維護(hù)性的要求。關(guān)鍵詞:EJB組件;2EE;Java命名與目錄接口中圖分類號(hào):TP311.5文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1005-3751(2005)03-0082-03The EJB Component Technology and ApplicationsHE GuO-hui(School of Information, Wuyi University, Jiangmen 529020, China)Abstract: In order to develop software system with better transplantation ability, extensibility, renewable ability and maintainability toreach the purpose of improving software quality, the best method is to utilize groupware technology. In this paper, acoording to the char-acteristics of EJb groupware structure, the development, deployment and application method of EJB groupware is investigated. The transfer process between ejB groupware is analyzed emphatically. The results demonstrate that the integration of large-scale application software system can be assured efficiently by use of ejb groupware technology, and the requirement of transplantation ability, extensibility,newable ability and maintainability can be satisfiedKey words: EJB component; J2EE; JNDI1FJB組件的特點(diǎn)這種結(jié)構(gòu)為應(yīng)用開發(fā)提供了多方面好處,主要體現(xiàn)EJB的全稱是 Enterprise JavaBean,是由SUN公司提在:出的一種基于組件模型的分布式對(duì)象標(biāo)準(zhǔn)構(gòu)架,EJB組件①簡(jiǎn)易性。在這種結(jié)構(gòu)下應(yīng)用開發(fā)者可以僅花少量是基于EB標(biāo)準(zhǔn)構(gòu)架的部件和對(duì)象,通常也稱為企業(yè)的時(shí)間和精力來(lái)開發(fā)和部署企業(yè)應(yīng)用,因?yàn)閷慐B組件Beam。在這種結(jié)構(gòu)中,通過EB容器提供了適合于EB幾乎與寫一個(gè)Java類一樣簡(jiǎn)單其次,在開發(fā)過程中應(yīng)用組件開發(fā)、部署以及運(yùn)行時(shí)管理的環(huán)境。在企業(yè)應(yīng)用中,開發(fā)者不必關(guān)心系統(tǒng)級(jí)事項(xiàng)如安全管理事務(wù)處理、多線ETB組件的作用就是實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)過程,它能將業(yè)務(wù)邏輯程、分布式設(shè)計(jì)連接資源管理等問題。封裝起來(lái),并具有中間件的功能,當(dāng)應(yīng)用運(yùn)行時(shí),EJB組件②可移植性。因?yàn)榛贓JB的應(yīng)用可以部署在任何就駐留在EJB容器中。一個(gè)基于2EE的應(yīng)用就是由一與J2EE兼容的服務(wù)器上,因此只要應(yīng)用服務(wù)器兼容,就個(gè)或多個(gè)這樣的EJB組件構(gòu)成的因此開發(fā)E結(jié)構(gòu)應(yīng)能夠?qū)?yīng)用移植過來(lái)用的最主要問題就是開發(fā)基于EB結(jié)構(gòu)的部件2。③部件可重用性。因?yàn)槊恳粋€(gè)EJB組件都是可重用在J2EE體系結(jié)構(gòu)中,一個(gè)EB組件具有調(diào)用另外的的部件,從而可以實(shí)現(xiàn)一次開發(fā)多次使用。EB組件的特點(diǎn)而且這些EJB組件不僅允許部署在同④便于團(tuán)隊(duì)開發(fā)。當(dāng)明確了各EJB組件的作用和功個(gè)EJB容器中,而且還允許跨FB容器或應(yīng)用服務(wù)器進(jìn)能后就可以分頭開發(fā)各部件。當(dāng)軟件需要維護(hù)或進(jìn)行功行部署。一些大型的應(yīng)用系統(tǒng)結(jié)構(gòu)如圖1所示能擴(kuò)充時(shí),也很方便。盤氣之系能十由干企業(yè)應(yīng)用是由一個(gè)或多收稿日期:2004-06-23個(gè)中國(guó)煤化工具有部件特點(diǎn)因此構(gòu)基金項(xiàng)目:廣東省自然科學(xué)基金資助項(xiàng)目(032356);江門市科技攻關(guān)建CNMHGEJB組件并將它們進(jìn)項(xiàng)目([2002]73號(hào)行疊加組合的過程作者簡(jiǎn)介:何國(guó)輝(1962-),男江西萍鄉(xiāng)人,副教授碩士生導(dǎo)師基于上述優(yōu)點(diǎn)因此對(duì)于一些功能龐大、結(jié)構(gòu)復(fù)雜的究方向?yàn)檐浖_發(fā)技術(shù)、數(shù)據(jù)庫(kù)理論及應(yīng)用技術(shù)等系統(tǒng),采用EJB組件技術(shù)進(jìn)行開發(fā)是理想的選擇。第3期何國(guó)輝:EJB組件技術(shù)及應(yīng)用8客戶1應(yīng)用服務(wù)器1實(shí)現(xiàn)成一個(gè)會(huì)話Ban客戶容器EJB容器EJB容器2每個(gè)EJB組件通常由4個(gè)部企業(yè)Bean顯示部件分組成,即一個(gè)主Java類、2個(gè)接企業(yè)Bean2企業(yè)Bean企業(yè)Bma;:口和一個(gè)部暑描述文件③,4。主Java類又稱為 implementation(實(shí)客戶容器現(xiàn))類或Bean類,而2個(gè)接口則分示部件別是Home與 Remote,部署描述文數(shù)據(jù)庫(kù)服務(wù)器1件是一個(gè)ⅪML格式文件,文件名企業(yè)Bean31其它客戶數(shù)據(jù)庫(kù)1為ejb-rar.xml,是所有EJB在部客戶容器EAppnEJB企業(yè)Bean3n署時(shí)都必須提供的文件,與容器無(wú)示部件數(shù)據(jù)庫(kù)服務(wù)器2關(guān)。它用來(lái)向容器聲明EJB組件將如何部署到容器中去,以及EJBwb容器數(shù)據(jù)庫(kù)2J組件將希望容器為組件提供哪些瀏覽器ServletISP Page服務(wù)。實(shí)體Bean還包含一個(gè)主鍵數(shù)據(jù)庫(kù)3類。其中有:圖1基于EJB組件模型的企業(yè)應(yīng)用結(jié)構(gòu)Home(主)接口:定義一組方法來(lái)創(chuàng)建新的FB對(duì)象,查找定位和清除已有的EJB2EJB組件的結(jié)構(gòu)對(duì)象。在EJB組件部署時(shí)容器也會(huì)自動(dòng)生成相應(yīng)的EJB組件主要包括會(huì)話Bean( Sesson bean)和實(shí)體Home對(duì)象,該對(duì)象負(fù)責(zé)查找和創(chuàng)建EJB對(duì)象,返回FBBean( Entity Bean)兩種類型(新版本中增加了消息驅(qū)動(dòng)對(duì)象的引用給客戶,用戶可以利用該引用調(diào)用EB組件Bean)3l。Bean是一種作為單用戶執(zhí)行的對(duì)象,一些復(fù)雜中的方法得到結(jié)果,最后Home對(duì)象清除EJB對(duì)象??梢缘挠?jì)算和業(yè)務(wù)邏輯就放在這些Bean中。形象地稱Hme接口為EJB對(duì)象的工廠會(huì)話Bean是客戶端應(yīng)用程序的擴(kuò)展,負(fù)責(zé)管理整個(gè)Remote(組件)接口:定義EJB組件中提供的可供執(zhí)行過程或任務(wù),包括與實(shí)體Bean之間的交互。當(dāng)應(yīng)用用戶調(diào)用的方法,也就是通常所說(shuō)的實(shí)現(xiàn)商業(yè)邏輯的函數(shù)運(yùn)行時(shí)EB組件就駐留在EB容器中EB容器會(huì)自動(dòng)或過程以供遠(yuǎn)程客戶端調(diào)用。在EB組件部署到容器生成所需的數(shù)據(jù)訪問邏輯。客戶端通過調(diào)用會(huì)話Bean的的時(shí)候,容器將自動(dòng)生成 Remote接口相應(yīng)的實(shí)例,即EJB功能實(shí)現(xiàn)與E服務(wù)器的通信。會(huì)話Bean在客戶會(huì)話對(duì)象它負(fù)責(zé)代理用戶的調(diào)用請(qǐng)求。期間,通過方法的調(diào)用,來(lái)獲得用戶的信息。implementation類(Bean類)是對(duì)Home和 Remote而實(shí)體Bean則代表業(yè)務(wù)處理對(duì)象,負(fù)責(zé)企業(yè)信息的接口中聲明的方法及必需的生命周期方法(有別于業(yè)務(wù)邏維護(hù)和管理這些對(duì)象通常是數(shù)據(jù)庫(kù)中的一些持久記錄,輯方法)的具體實(shí)現(xiàn)可由多個(gè)Java類構(gòu)成例如:一個(gè)實(shí)體Bean能夠模擬數(shù)據(jù)庫(kù)表中一行相關(guān)的數(shù)主鍵類(僅限于實(shí)體Bean):為了能在數(shù)據(jù)庫(kù)中查據(jù)。實(shí)體Bean根據(jù)管理持久性的方式不同可分為容器管找到相關(guān)數(shù)據(jù)而給每一個(gè)實(shí)體Bean建立的惟一標(biāo)識(shí),通理的Bean(CMP)和由Bean管理的Bean(BMP)。容器管過該標(biāo)識(shí) client就能定位特定的數(shù)據(jù)塊。理的Ba由EJB容器自動(dòng)管理它們的持久性,通過在部當(dāng)EJB組件的各部分開發(fā)完成以后,需要借助專門署文件中的描述,容器知道Bean實(shí)例的字段是怎樣映射的開發(fā)工具將編譯生成的類文件(cass)部署描述文件到數(shù)據(jù)庫(kù)中去的,并自動(dòng)管理插入更新和刪除數(shù)據(jù)庫(kù)中及與容器相關(guān)的部署描述文件(根據(jù)所選容器而定)生成與實(shí)體有關(guān)的數(shù)據(jù);使用Bean管理持久性的Bean需要開個(gè)JAR文件。JAR文件是一個(gè)和ZIP文件格式相同的發(fā)者編寫相應(yīng)代碼來(lái)操作數(shù)據(jù)庫(kù),EJB容器只告訴Bean壓縮文件,只是其中多了一個(gè) manifest文件,用于記錄實(shí)例什么時(shí)候可以在數(shù)據(jù)庫(kù)中安全地插入、更新和刪除數(shù)AR文件中的所有內(nèi)容。對(duì)于不同的容器提供的與容器據(jù)除此之外,它不提供任何別的幫助,Bean實(shí)例需自己相關(guān)的部署描述文件也不相同,以 weblogic為例,它除了完成所有的持久性工作。每個(gè)實(shí)體Bam都具有一個(gè)惟一要求提供q- jar.xml文件以外,還要求提供另外一個(gè)部的對(duì)象標(biāo)識(shí)符稱為主鍵實(shí)體Bemn之間也可以具有關(guān)署描述eih- iar xml-用 Jbuilder開發(fā)EJB系,關(guān)系的實(shí)現(xiàn)也分別由Bean代碼或部署描述項(xiàng)完成,從時(shí),編中國(guó)煤化工AR文件。一個(gè)而保證了數(shù)據(jù)完整性和關(guān)系完整性。JAR文THCNMHG示。根據(jù)上述兩種Bean的作用和各自的特點(diǎn),因此在Bean的開發(fā)過程中通??蓪I(yè)務(wù)實(shí)體實(shí)現(xiàn)成一個(gè)實(shí)體3EJB組件的應(yīng)用Bean或一個(gè)實(shí)體Bean的依賴而將一個(gè)會(huì)話性業(yè)務(wù)過程EJB組件不能獨(dú)立運(yùn)行,它們必須要部署到容器上84微機(jī)發(fā)展第15卷tomer Bean中的 ejbCreate方法完成), Remote接口中定義m11gmd1| Enterprise]I I Home 1 Remote Enterpris I了獲得客戶名稱等可以被外界調(diào)用的所有方法(由Cs接接口Bean類接口按日Bm類 merMan中的代碼實(shí)現(xiàn)有關(guān)功能),因此當(dāng)普通的Jaa程序作為客戶端訪問一個(gè)名為 CustomerEJB的EJB組件bjxm容器相關(guān)ejb-jar.xm容器相關(guān)時(shí)的具體步驟將是:部署文件部署文件(1)首先通過 JNDI API定位Hme對(duì)象會(huì)話bean實(shí)體beanJNDI( Java Name and Directory Interface)是Java命名與目錄接口的英文首字母縮寫,主要用于命名與目錄訪問,在J2EE中查找數(shù)據(jù)源和EJB對(duì)象都離不開JD,因JAR文件提供者此十分重要。其定位Home對(duì)象的代碼為EJB JAR文件Properties props= System get Properties ();Context ctx= new initialContext( props);/獲得命名服務(wù)的圖2JAR文件內(nèi)容上下文環(huán)境,參數(shù) props與容器有關(guān)并只有通過外部程序?qū)JB的業(yè)務(wù)邏輯進(jìn)行調(diào)用時(shí)才會(huì)Object obj=ctx. lookup(“ CustomerHome");/查找Hbme接體現(xiàn)其功能。在 Jbuilder和 weblogic的FB組件集成開發(fā)口環(huán)境中,EJB組件的部署很方便,其主要步驟是:先啟動(dòng)CustomerHome home=(CustomerHome)weblogic服務(wù)器然后在編譯好的EJB模塊名上單擊鼠標(biāo)javax. mi. Portable Remote Object, narrow (obj, CustomerHome右鍵(EJB模塊是在創(chuàng)建工程以后創(chuàng)建的包含一個(gè)或多cs);1定位he對(duì)象個(gè)AR文件—模塊名jr中,在彈出的快捷菜單中選弟(2)由Hme對(duì)象調(diào)用相應(yīng)的cre法生成EB對(duì)個(gè)EJB組成的邏輯組,組內(nèi)的所有EJB都將放置到同擇 Deploy Options for模塊名jar| Deploy選項(xiàng),即可完成通過ND查找到的是Hme對(duì)象,要生成EJB對(duì)象EJB組件的部署。還必須要調(diào)用Home對(duì)象的 create方法,即通過 Customer當(dāng)容器所在服務(wù)器啟動(dòng)時(shí)將會(huì)自動(dòng)加載已經(jīng)部署到 customer=home. create(…)方式來(lái)創(chuàng)建。除無(wú)狀態(tài)會(huì)話容器上的EB組件,并打開監(jiān)聽端口等待外部程序調(diào)用。Bean以外,其它幾類Bean的cree方法中都要傳人參數(shù)。EJB組件的外部程序通常稱作為EJB的客戶。能夠充當(dāng)(3)通過EB對(duì)象調(diào)用FJB組件中的方法EJB客戶的可以是普通的Java程序、其它的EJB組件或在得到了EJB對(duì)象的引用以后,客戶端程序就可以W山組件(JSP或Sele組件)。無(wú)論是上述哪一種作為調(diào)用其中的業(yè)務(wù)方法了。通常會(huì)在Rmoe接口 CustomerEJB客戶,都可按圖3方式進(jìn)行調(diào)用。中定義很多方法,如:獲得客戶代碼、客戶名稱及其它業(yè)務(wù)1:檢素Hone對(duì)象引用邏輯等,這些方法的具體實(shí)現(xiàn)過程在實(shí)現(xiàn)類C命名服務(wù) tomerBean中說(shuō)明,因此就可按如下所示使用2:返回Home對(duì)象引用String cust. ld= customer get customerldO);String cust- Name= customer. getCustomer Nameo)3:創(chuàng)建新的EJEJB組HOME對(duì)象對(duì)于一個(gè)EJB組件作為客戶端訪問另一個(gè)EJB5:返回EB對(duì)象組件的過程和上述步驟基本相似,但不必提供任何JNDI初始化參數(shù),系統(tǒng)僅需獲得默認(rèn)的JNDI初始4:生成EB對(duì)象化上下文環(huán)境。以一個(gè)訂單EB(名為 OrderEJB,實(shí)體Bean)調(diào)用 CustomerEJB為例,在 OrderEJB的實(shí)6:調(diào)用業(yè)務(wù)方法8B對(duì)象[7運(yùn)行實(shí)現(xiàn)類代碼現(xiàn)類中,只要采用如下代碼就可獲得 CustomerEJB的Home接口引用:Context ctx= new InitialContext();/通過調(diào)用無(wú)參數(shù)ETB服務(wù)器的構(gòu)造函數(shù),獲得默認(rèn)的初始化上下文圖3EB客戶調(diào)用過程為了便于理解,以下將通過一個(gè)名為 CustomerEJB的HomEJB組件被調(diào)用過程進(jìn)行說(shuō)明。按照EJB的命名約定,該H中國(guó)煤化 T: omp/env/eortustomer.CNMHgme組件的有關(guān)接口文件可命名如下:Home接口為 Customeriavax. rmi. PortableRemoteObject narrow(obj, CustomerHomeHome, Remote接口為 Customer,實(shí)現(xiàn)類為 Customerbeandasy);/定位Home對(duì)象同時(shí)Home接口中定義了 create方法(具體實(shí)現(xiàn)由Cus(下轉(zhuǎn)第123頁(yè))第3期寧剛等:基于 WITSML的鉆井?dāng)?shù)據(jù)文檔設(shè)計(jì)實(shí)現(xiàn)123
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應(yīng)用工程 2020-06-12
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-06-12
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12
