?? 第三部分:布署和使用 enterprise javabeans 組件(二)(轉).txt
字號:
作者:zergman
email: zergman@chinaasp.com
日期:2001-6-15 13:43:16
[b]使用 EJB 組件[/b]
因為 EJB 體系結構被設計為高度靈活的,并支持使用任意復雜的方式連接企業級 bean,所以可構建許多不同的方案,來說明應用程序可怎樣使用企業級 bean。一個有用的方案提出將 EJB 組件表示為三層信息系統的關鍵組件,該系統將企業數據、事務和應用程序資源連接到 Web 上。
基于 EJB 的三層編程模型視 Web 瀏覽器為第一層,視支持應用程序的 Web 服務器為第二層,視企業信息資源為第三層。在此編程模型中,除了 EJB 技術外,還實現了 Java servlet 技術、JavaBeans 技術和 Java Server Page (JSP) 技術。下圖顯示了各層的排列情況:
[b][/b]
[img]http://www.cn.ibm.com/developerWorks/java/what-are-ejbs/part3/ejb2.gif[/img]
第一層是瘦客戶機 -- 通常是 Web 瀏覽器,它可以處理普通 Web 數據類型,如 HTML 和 GIF,并支持 HTTP 通信。第二層是 Web 應用程序服務器,它是用代碼擴充的 Web 服務器,用來對能夠通過 Web 服務器調用的應用程序提供運行時支持。現有的 Web 應用程序都沿用 CGI-BIN 編程模型,但預計第二層應用程序開發將轉向 Java servlet 編程模型,后者提供大幅改善的性能和可移植性。除支持 Java servlet 外,Web 應用程序服務器還將添加 EJB 服務器功能,以支持使用 EJB 組件的應用程序。第三層代表企業級信息資源,可以包括關系數據庫和面向對象的數據庫、事務監視器和定制的應用程序。EJB 技術在這一設計中扮演著關鍵角色,因為,它使駐留在第二層上的應用程序組件,與組成第三層的企業資源之間的接口,得以標準化。
Java servlet、Java beans 和 Java server page 不是 EJB 應用程序方案的必需元素,但它們可與 EJB 組件一起工作,以提供基于 Java 的內聚性的應用程序環境。此處描繪的環境將以下職責指定給參與工作的 Java 組件:[UL][LI]給 Java servlet 指定了應用程序“控制器”的角色 [LI]JSP 頁面處理數據表示和用戶界面的任務 [LI]Java bean 充當“數據封裝器”,存儲中間結果的數據 [LI]EJB 組件提供訪問企業信息資源的機制[/LI][/UL]
客戶可以使用一個假定的、基于 EJB 的 Web 應用程序更新現有的庫存,并用容器管理式持久性和容器管理式事務,將訪問庫存數據庫的位置封裝在實體 EJB 組件的內部。庫存票據可通過 Web 瀏覽器輸入,瀏覽器提供一個 HTML 表單來捕獲產品編號、供應商,等等,并在提交時調用一個 servlet。servlet 代碼充當應用程序控制器角色,確定哪些企業數據庫需要更新,需要用戶追加什樣的信息。servlet 可通過代表它的實體 bean 訪問主庫存數據庫,并調用 JNDI 接口獲取對此 bean 的本地對象的引用,然后使用 finder 方法定位所請求產品編號的遠程對象。此時,通過調用遠程對象的方法,servlet 可更新庫存計數,接著容器將此方法委托給 EJB 組件。因為容器根據數據庫更新,以對 bean 透明的方式劃分一個事務,而且以對 bean 透明的方式將數據寫入數據庫來保證數據持久性,所以也就保持了數據的完整性。
從 EJB 組件返回到 servlet 的任何結果信息,都可以使用 setter 方法存儲在一個(非企業的) Java bean 的屬性中。此時 servlet 可將控制權轉讓給一個適當的 JSP 頁面,以便將這些結果組合到表示格式中,并將結果返回給用戶。JSP 頁面很可能主要由靜態文本和有關單個事務的可變信息占位符組成。在向瀏覽器發送表示數據之前,JSP 頁面使用 getter 方法從 Java bean 的屬性中獲得可變數據元素。
基于 EJB 的三層設計提供了幾個好處,包括:[UL][LI]訪問企業數據的業務邏輯可封裝在可重用、可移植的企業級 bean 中。 [LI]現有的企業系統只需很少修改或者根本不需要修改,就可以集成為企業級 bean。 [LI]企業應用程序所需的運行時服務,如事務和持久性,可以從 bean 中分解出來,并指定給此 bean 的容器。 [LI]無須更改 EJB 組件,即可修改控制應用程序流程的 Servlet。 [LI]Servlet 代碼可將注意力集中在應用程序控制邏輯上,而無須考慮數據表示。 [LI]JSP 頁面可將靜態和動態內容混合在一起,生成表示信息。 [LI]用 Java 語言編寫的系統組件,對于具有 JVM 的任何平臺都是可移植的。[/LI][/UL]
[b]結論[/b]
在開發能夠支持關鍵任務的企業級信息系統的過程中,EJB 規范代表了 Java 技術的下一個發展階段。EJB 組件將隨 JavaBeans 規范引入的 Java 組件模型,擴展到服務器領域,從而使業務邏輯組件的開發可以跨企業應用程序重用,并且可以跨支持 Java 的平臺移植。由于包含了基于 RMI 技術的對象分布,所以支持跨多層的可執行組件的分立,從而允許最大的實現靈活性和高度可伸縮性。如果將常規的企業應用程序運行時服務重新定義為可指定給容器抽象的對象服務,則允許 EJB 組件的開發人員將精力集中在業務邏輯上,從而減小了通常與運行時服務相關的復雜性和平臺相關性。
增強 Java 運行環境,以包括命名和目錄服務的標準接口、關系數據庫訪問、事務服務和遠程對象訪問,使 Java 開發人員能夠編寫強健的企業應用程序,而不必離開 Java 編程環境。將其它 Java 技術 -- 如 Java servlet 和 JavaServer Pages 技術 -- 與 EJB 組件一起使用,可創建一個對于大型企業系統來說足夠強健的緊湊編程模型,但由于使用了巧妙的接口,從而簡化了開發工作。而且,因為 EJB 體系結構是 JavaBeans 組件模型的邏輯擴展,所以作為 EJB 組件開發的業務邏輯可跨多個企業應用程序重用。
企業級 bean 體系結構的另一個好處是,提供了現有企業信息系統的直接集成通道,此通道可能與 Java 編程語言或 bean 編程模型毫無共同之處。因為現有的企業信息資源 -- 如關系數據庫、事務監視器和業務應用程序的定制新品種 -- 可通過將它們封裝在 EJB 組件中連接到 Web 前端,而無須替換應用程序或重寫主要代碼段,所以,客戶可保護其現有的 IT 投資。
考慮到 EJB 技術的巨大前景,IT 業界以相當大的興趣歡迎 EJB 規范,就不是什么令人驚訝的事了。[I]EJB 體系結構提供的一個最大好處可能是,把業務邏輯編程與將業務邏輯和企業級服務器端運行環境的復雜集成分離開來[/I]。如果部署了 EJB 組件的容器承擔了管理運行時服務(如持久性、事務和并發數據庫訪問)的職責,則 bean 的開發人員就可以自由地將精力集中在開發封裝業務邏輯的軟件組件上。JavaSoft 副總裁表述了 EJB 技術的重要性(引自 Sun Microsystems 網站):
[BLOCKQUOTE]“‘Enterprise JavaBeans API 將為企業開發人員和解決方案提供商提供一種新的戰略武器,供他們建立下一代行業領先的、基于關鍵業務的應用程序,’Sun Microsystems 的 JavaSoft 軟件產品部副總裁,Jon Kannegaard 說:‘因為用 Enterprise JavaBeans API 設計的應用程序將與現有的企業系統一起工作,所以企業利用 Java 平臺會獲得新的競爭優勢,同時還保留他們對現有技術的投資,’Kannegaard 繼續說。 [/BLOCKQUOTE]
[BLOCKQUOTE]“使用 Enterprise JavaBeans API,開發人員將能夠消除應用程序開發過程中的復雜性。這是可能的,因為每個 Enterprise JavaBeans 組件都封裝了一個基本的業務功能。目前開發人員必須懂得如何編寫業務邏輯和專門的系統級程序,以控制諸如安全性功能部件和處理多個事務的能力 -- 一項既枯燥又復雜的任務。Enterprise JavaBeans API 使全體開發人員能夠將精力集中在編寫解決業務問題的邏輯上,而不是將精力集中在編寫用以簡化不同技術間交互作用的代碼上。”([I]新聞稿:Sun Releases Draft Enterprise JavaBeans Specification for Public Review[/I])[/BLOCKQUOTE]
[b]參考資料[/b]
[UL][LI]通過 [url href=http://java.sun.com/products/ejb/]Sun 網站[/url]的 [url href=http://java.sun.com/products/ejb/faq.html]associated FAQs[/url] 深入了解 Java 技術和 EJB 體系結構。 [LI]查閱 [url href=ftp://ftp.javasoft.com/docs/ejb/ejb.10.pdf]Enterprise JavaBeans Specification 1.0[/url]。 [LI]請參閱 Enterprise JavaBeans 規范的完整[url href=http://www.javasoft.com/pr/1997/dec/pr971210-01.html]新聞稿[/url]。 [LI]請參閱 [url href=http://www.cn.ibm.com/developerWorks/java/what-are-ejbs/part3/appendix.html]IBM WebSphere Application Server 如何使用 EJB 技術[/url]。 [/LI][/UL]
[b]作者簡介[/b]
Ken Nordby 是 IBM 軟件開發實驗室的軟件工程師,該實驗室位于北卡羅來納州 Research Triangle Park。作為 SWG Product Affinity Services 業務小組的成員,Ken 與為 IBM WebSphere Application Server (Enterprise JavaBeans 技術的 IBM 實現)進行開發和咨詢的 IBM 人一起工作。可以通過 [email]nordby@us.ibm.com[/email] 與 Ken 聯系
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -