文章詳情頁
用VisualAge for Java開發(fā)企業(yè)級(jí)bean
瀏覽:93日期:2024-06-20 16:14:16
內(nèi)容: 用 VisualAge for Java 開發(fā)企業(yè)級(jí) bean Victor Chan,Jin Li 和 Rob Stevenson IBM 多倫多實(shí)驗(yàn)室 內(nèi)容: 挑戰(zhàn) 迎接挑戰(zhàn) 典型方案 小結(jié) 作者簡(jiǎn)介 本文最初出現(xiàn)在 IBM.d_m@il: Developer Directions 的 6/7 月版中。每期 Developer Directions 的英文和法文版本都有 PDF 格式供您下載;德文版和意大利語版正在籌劃中。 企業(yè)級(jí) bean 是符合 Sun Microsystem 的 Enterprise JavaBeans (EJB) 組件模型的服務(wù)器端非可視化軟件組件。這些企業(yè)級(jí) bean 使應(yīng)用程序編程人員能夠開發(fā)與平臺(tái)無關(guān)的、面向事務(wù)的分布式應(yīng)用程序,這種應(yīng)用程序可在眾多廠商的服務(wù)器上運(yùn)行。 EJB 模型將應(yīng)用程序特定的業(yè)務(wù)邏輯和系統(tǒng)功能明確分離開來。作為負(fù)責(zé)開發(fā)企業(yè)級(jí) bean 的應(yīng)用程序編程人員,您就可以集中精力編寫應(yīng)用程序的業(yè)務(wù)邏輯。您可將對(duì)復(fù)雜系統(tǒng)功能(如事務(wù)管理、持久性、安全性和工作量管理)的處理留給服務(wù)器供應(yīng)商。 盡管企業(yè)級(jí) bean 減輕了應(yīng)用程序編程人員處理系統(tǒng)功能的負(fù)擔(dān),但這些 bean 相當(dāng)復(fù)雜,開發(fā)它們并不是一項(xiàng)簡(jiǎn)單的工作。以下幾個(gè)部分將具體分析企業(yè)級(jí) bean 的開發(fā),并會(huì)指出如何通過利用專用于企業(yè)級(jí) bean 開發(fā)的可視化編程工具將這種復(fù)雜性降到最低。 開發(fā)企業(yè)級(jí) bean 面臨的挑戰(zhàn) 開發(fā)企業(yè)級(jí) bean 面臨的挑戰(zhàn)在某種程度上源于兩種企業(yè)級(jí) bean(會(huì)話 bean 和實(shí)體 bean)背后的復(fù)雜性。 會(huì)話 bean 和實(shí)體 bean 在幾個(gè)方面很相似:它們都必須整合到應(yīng)用程序中,必須部署到符合 EJB 規(guī)范的容器中,并且必須在符合 EJB 規(guī)范的服務(wù)器上運(yùn)行。但是,這通常是會(huì)話 bean 和實(shí)體 bean 僅有的相似之處。 會(huì)話 bean 用來處理業(yè)務(wù)邏輯,它們即可以是有狀態(tài)的,也可以是無狀態(tài)的。有狀態(tài)的會(huì)話 bean 的生存期是單個(gè)客戶機(jī)/服務(wù)器會(huì)話。無狀態(tài)的會(huì)話 bean 由它們的容器集中控制,用來處理多個(gè)客戶機(jī)的多個(gè)請(qǐng)求。 比較而言,實(shí)體 bean 都有個(gè)體身份,通常用于應(yīng)用程序需要處理數(shù)據(jù)持久性和數(shù)據(jù)建模的場(chǎng)合。實(shí)體 bean 即可是容器管理持久性的 (CMP) 實(shí)體 bean,也可是 bean 管理持久性的 (BMP) 實(shí)體 bean。CMP 實(shí)體 bean 的數(shù)據(jù)持久性是由容器管理的。但是,BMP 實(shí)體 bean 的數(shù)據(jù)持久性是由 bean 自己管理的。 開發(fā)企業(yè)級(jí) bean 要完成四項(xiàng)主要的任務(wù): 創(chuàng)建企業(yè)級(jí) bean 部署企業(yè)級(jí) bean 測(cè)試企業(yè)級(jí) bean 包裝企業(yè)級(jí) bean 要?jiǎng)?chuàng)建企業(yè)級(jí) bean,您必須遵循 Sun 的 EJB 規(guī)范所定義的一組接口。例如,除了定義一個(gè)企業(yè)級(jí) bean 類之外,您還必須為每個(gè)企業(yè)級(jí) bean 定義遠(yuǎn)程接口和本地接口。遠(yuǎn)程接口定義了企業(yè) bean 業(yè)務(wù)方法的客戶視圖,而本地接口定義企業(yè)級(jí) bean 對(duì)象生存周期的客戶視圖,生存周期包括諸如企業(yè)級(jí) bean 的創(chuàng)建和刪除這類事件。 您還必須確保在企業(yè)級(jí) bean 的接口和類中定義的方法保持一致。如果創(chuàng)建的是實(shí)體 bean,則您必須定義它的持久性域,并將這些持久性域映射到持久數(shù)據(jù)存儲(chǔ),如關(guān)系數(shù)據(jù)庫。 一旦創(chuàng)建了企業(yè)級(jí) bean,就必須針對(duì)特定的 bean 容器部署它,即生成本地接口和遠(yuǎn)程接口的實(shí)現(xiàn)類。完成部署之后,還需要測(cè)試 bean 的遠(yuǎn)程方法和本地方法。最后,一旦完成測(cè)試,您就可以將 bean 打包,以便將其安裝在生產(chǎn)服務(wù)器上。 關(guān)于部署企業(yè)級(jí) bean 的四項(xiàng)主要任務(wù)的這個(gè)簡(jiǎn)介應(yīng)該使您對(duì)基層復(fù)雜性有所了解。毫無疑問,您一定希望獲得盡可能多的幫助,以快速有效地開發(fā)企業(yè)級(jí) bean。請(qǐng)繼續(xù)閱讀后文! 用 EJB 開發(fā)環(huán)境迎接挑戰(zhàn) 幸運(yùn)的是,有一些專門用來開發(fā)企業(yè)級(jí) bean 的可視化工具,它們可以大大降低開發(fā)的復(fù)雜性。例如,IBM VisualAge for Java EJB Development Environment 就是能夠滿足(甚至可能超出)您的開發(fā)需求的一套工具。 EJB Development Environment 是 VisualAge for Java Version 2.0 Enterprise Update 的一部分,您可從 VisualAge Developer Domain 站點(diǎn)下載這個(gè)更新。 EJB Development Environment 由一套用來簡(jiǎn)化企業(yè)級(jí) bean 的創(chuàng)建、部署、測(cè)試和打包這四項(xiàng)主要任務(wù)的工具組成。這些工具與 VisualAge for Java 集成開發(fā)環(huán)境緊密集成,其中企業(yè)級(jí) bean 是作為一級(jí)對(duì)象管理的。EJB Development Environment 的部分重要特性: 用于創(chuàng)建、引入或?qū)С銎髽I(yè)級(jí) bean 的智能向?qū)?(SmartGuide) 自動(dòng)創(chuàng)建本地接口和遠(yuǎn)程接口 用于添加、定義和映射持久數(shù)據(jù)域的對(duì)話框 用于設(shè)置部署描述符和控制描述符的對(duì)話框 用于生成和測(cè)試實(shí)現(xiàn)類的集成部署工具 允許您為每個(gè)企業(yè)級(jí) bean 創(chuàng)建不同版本的小組支持 為企業(yè)級(jí) bean 的“無代碼單元測(cè)試自動(dòng)生成測(cè)試客戶機(jī),這樣就可以確保對(duì)企業(yè)級(jí) bean 的測(cè)試就像對(duì)本地 Java 程序的測(cè)試那樣簡(jiǎn)單 集成的服務(wù)器運(yùn)行時(shí)環(huán)境,這樣,您就可以首先在符合 EJB 規(guī)范的服務(wù)器上對(duì)企業(yè)級(jí) bean 進(jìn)行測(cè)試,然后再將它們部署到生產(chǎn)服務(wù)器上的目標(biāo)容器中 在 EJB Development Environment 中創(chuàng)建的任何企業(yè)級(jí) bean 都可部署到容器中,并可在實(shí)現(xiàn)了 Sun 的 EJB 規(guī)范的任何服務(wù)器上運(yùn)行。支持該規(guī)范的服務(wù)器都要針對(duì)使用企業(yè)級(jí) bean 的 Web 應(yīng)用程序進(jìn)行優(yōu)化。例如,IBM WebSphere Application Server 為基于 Java 的應(yīng)用程序和其他開放標(biāo)準(zhǔn) -- 如 HTTP、HTML、JSP、JNDI、JDBC、IIOP 和 Java servlet -- 提供了一個(gè)完備的運(yùn)行時(shí)環(huán)境。 如果您打算將企業(yè)級(jí) bean 部署到 WebSphere 服務(wù)器上,您將發(fā)現(xiàn) EJB Development Environment 是您開發(fā)企業(yè)級(jí) bean 的最佳選擇。EJB Development Environment 利用已集成到 VisualAge for Java 集成開發(fā)環(huán)境中的重要 WebSphere 運(yùn)行時(shí)組件。VisualAge for Java 還提供一個(gè) WebSphere 測(cè)試環(huán)境,您可以在其中針對(duì)一種 WebSphere 服務(wù)器實(shí)現(xiàn)運(yùn)行和測(cè)試您的企業(yè)級(jí) bean。當(dāng)然,您也可利用此集成開發(fā)環(huán)境的完備調(diào)試功能調(diào)試您的企業(yè)級(jí) bean。一旦您的 bean 在 EJB Development Environment 中經(jīng)歷了這些步驟,您就可以將它們直接安裝到 WebSphere 生產(chǎn)服務(wù)器環(huán)境中。 EJB 開發(fā)環(huán)境的一個(gè)典型方案 EJB Development Environment 與 VisualAge for Java 的其他開發(fā)環(huán)境使用相同的通用設(shè)計(jì)范例。EJB Development Environment 的所有工具都可在 VisualAge for Java Workbench 中的 EJBs 頁找到. EJBs 頁是 EJB Development Environment 的核心。這是您定義用來容納企業(yè)級(jí) bean 的 EJB 組的地方。這也是您進(jìn)行企業(yè)級(jí) bean 的所有開發(fā)活動(dòng)(如創(chuàng)建、部署、測(cè)試和打包 bean)的地方。 以下步驟展示了當(dāng)使用 EJB Development Environment 開發(fā)企業(yè)級(jí) bean 時(shí)可能遵循的典型開發(fā)方案: 添加一個(gè)或多個(gè) EJB 組來組織您的企業(yè)級(jí) bean。您可使用 SmartGuide 添加 EJB 組,既可從頭開始創(chuàng)建一個(gè)新的 EJB 組,也可從 VisualAge for Java 庫中檢索一個(gè)現(xiàn)有的 EJB 組。 將企業(yè)級(jí) bean 置入您的 EJB 組中。要將企業(yè)級(jí) bean 添加到一個(gè) EJB 組中,您既可以從一個(gè) EJB JAR 文件中導(dǎo)入一個(gè)現(xiàn)有的 bean,也可以使用 SmartGuide(見圖 2)從頭開始創(chuàng)建一個(gè)新的企業(yè)級(jí) bean: 將本地方法和遠(yuǎn)程(業(yè)務(wù))方法添加到 bean 類中,然后將它們提升為本地接口和遠(yuǎn)程接口。在添加企業(yè)級(jí) bean 之后,任何時(shí)候只需選擇菜單即可添加和提升本地方法和遠(yuǎn)程方法。但是,必須在生成部署類之前執(zhí)行提升。 添加、定義和映射所需的任何 CMP 域。如果您處理的是 CMP 實(shí)體 bean,則您可以結(jié)合使用對(duì)話框和菜單選擇,以便快速地添加、定義和映射 CMP 域。通常,您可接以下步驟來處理您的 CMP 域需求: 在企業(yè)級(jí) bean 中添加所需的域 為 CMP 實(shí)體 bean 定義 CMP 域和主鍵域 將 CMP 域映射到現(xiàn)有的數(shù)據(jù)庫表,既可從現(xiàn)有數(shù)據(jù)庫表導(dǎo)入方案,并將 CMP 域映射到此方案,也可創(chuàng)建一個(gè)新方案,然后使用這個(gè)新方案創(chuàng)建一個(gè)新表,最后將 CMP 域映射到這個(gè)新表 設(shè)置部署描述符和控制描述符。在添加企業(yè)級(jí) bean 之后,隨時(shí)都可以使用 Properties 對(duì)話框很容易地設(shè)置或更改部署描述符和控制描述符。但是,這些描述符必須在測(cè)試 bean 之前設(shè)置。 生成 EJB 部署類。一旦創(chuàng)建了企業(yè)級(jí) bean 并添加了應(yīng)用程序特定的邏輯,您就可以生成企業(yè)級(jí) bean 在 VisualAge for Java 中的 WebSphere 服務(wù)器實(shí)現(xiàn)中運(yùn)行所需的部署類。 測(cè)試企業(yè)級(jí) bean。測(cè)試企業(yè)級(jí) bean 實(shí)際上包括許多步驟: 創(chuàng)建服務(wù)器配置(將企業(yè)級(jí) bean 分配給服務(wù)器容器)。 啟動(dòng) DB2 服務(wù)器(如果測(cè)試的是實(shí)體 bean) 創(chuàng)建所需的任何數(shù)據(jù)庫表 啟動(dòng) Name Service 服務(wù)器和 WebSphere 測(cè)試服務(wù)器的一個(gè)實(shí)例 生成測(cè)試客戶機(jī) 運(yùn)行生成的測(cè)試客戶機(jī),然后測(cè)試企業(yè)級(jí) bean 的本地接口和遠(yuǎn)程接口中的每個(gè)方法。 將企業(yè)級(jí) bean 導(dǎo)出到以下的一個(gè)或多個(gè) JAR 文件中: EJB JAR 文件(如果您要將這些 bean 部署到非 WebSphere 容器上) EJS JAR 文件(如果您要將部署后的 bean 安裝到 WebSphere 服務(wù)器上) 客戶端 JAR 文件(如果您希望創(chuàng)建客戶端應(yīng)用程序) 小結(jié) 通過明確地將開發(fā)應(yīng)用程序邏輯的任務(wù)與諸如事務(wù)管理和安全性這類系統(tǒng)功能相關(guān)的任務(wù)分離開來,Enterprise JavaBeans 組件模型使您能夠?qū)⒕ν耆性诰帉憫?yīng)用程序的業(yè)務(wù)邏輯上。這使得 Enterprise JavaBeans 成為一項(xiàng)引人注目的技術(shù),同時(shí)也說明了因特網(wǎng)編程領(lǐng)域最近的若干趨勢(shì),即通過各種方式結(jié)合企業(yè)級(jí) bean 的使用。開發(fā)企業(yè)級(jí) bean 并不是一項(xiàng)簡(jiǎn)單的任務(wù),但可視化的工具(如VisualAge for Java EJB Development Environment 及其 WebSphere 測(cè)試環(huán)境)使您能夠相當(dāng)容易地快速創(chuàng)建、部署、測(cè)試和打包功能強(qiáng)大的企業(yè)級(jí) bean。 作者簡(jiǎn)介 Victor Chan 是 IBM 多倫多實(shí)驗(yàn)室的高級(jí)開發(fā)分析師,現(xiàn)在正在 VisualAge for Java EJB Tooling 項(xiàng)目組工作。他已通過 IBM 的 Solution Architect for VisualAge for Java 認(rèn)證,所關(guān)注的是企業(yè)級(jí)應(yīng)用技術(shù),如 EJB、CORBA 和 RMI。他是 MVS DCE/RPC 支持、各種 AS/400 通信適配器(如 X.21、X.25 和 ISDN)方面的技術(shù)主管。 Jin Li 是 IBM 多倫多實(shí)驗(yàn)室的軟件設(shè)計(jì)師,現(xiàn)在正在 VisualAge for Java and WebSphere 解決方案項(xiàng)目組工作。在加盟 IBM 之前,他是一家軟件公司的技術(shù)主管,該公司的業(yè)務(wù)是用 C++ 開發(fā)網(wǎng)絡(luò)應(yīng)用程序。在 IBM,他從事 C++、Java 和 Web 應(yīng)用開發(fā)工具等方面的工作。他認(rèn)為自己的最大成就是在 VisualAge for Java 易用性方面的貢獻(xiàn)。 Rob Stevenson 是 IBM 多倫多實(shí)驗(yàn)室的的信息開發(fā)者,現(xiàn)在正在 VisualAge for Java 項(xiàng)目組工作。他曾是 IBM 許多項(xiàng)目(包括 SQL/DS、AS/400、DCE、DADT 和 VisualAge 電子商務(wù))的技術(shù)文檔編寫者。目前他是 VisualAge for Java 的眾多組件(包括 EJB 開發(fā)環(huán)境)的技術(shù)文檔編寫者 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽:
Java
相關(guān)文章:
1. 如何用python開發(fā)Zeroc Ice應(yīng)用2. Python中re模塊的常用方法總結(jié)3. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁的方法4. python基于opencv批量生成驗(yàn)證碼的示例5. npm下載慢或下載失敗問題解決的三種方法6. ASP編碼必備的8條原則7. python用pyecharts實(shí)現(xiàn)地圖數(shù)據(jù)可視化8. python+requests+pytest接口自動(dòng)化的實(shí)現(xiàn)示例9. ASP錯(cuò)誤捕獲的幾種常規(guī)處理方式10. python軟件測(cè)試Jmeter性能測(cè)試JDBC Request(結(jié)合數(shù)據(jù)庫)的使用詳解
排行榜
