EJB的生態環境
在sun公司提供的EJB規范中,我們一個完整的基於EJB的分布式計算結構由六個角色組成,這六個角色可以由不同的開發商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規范,以保證彼此之間的兼容性。
EJB組件開發者: 開發並銷售 EJB.應用組合者: 將不同的 EJB 搭建成應用。
部署者: 使用相應工具在運行環境下配置 EJB. EJB 服務器提供者: 開發並銷售 EJB 服務器EJB 容器供應商: 開發並銷售 EJB 容器系統管理員: 監視運行時情況
1、EJB組件開發者(Enterprise Bean Provider)
EJB組件開發者負責開發執行商業邏輯規則的EJB組件,開發出的EJB組件打包成ejb-jar文件。EJB組件開發者負責定義EJB的remote和home接口,編寫執行商業邏輯的EJB class,提供部署EJB的部署文件(deployment descriptor)。部署文件包含EJB的名字,EJB用到的資源配置,如JDBC等。EJB組件開發者是典型的商業應用開發領域專家。
EJB組件開發者不需要精通系統級的編程,因此,不需要知道一些系統級的處理細節,如事務、同步、安全、分布式計算等。
2、應用組合者(Application Assembler)
應用組合者負責利用各種EJB組合一個完整的應用系統。應用組合者有時需要提供一些相關的程序,如在一個電子商務系統裡,應用組合者需要提供JSP(Java Server Page)程序。
應用組合者必須掌握所用的EJB的home和remote接口,但不需要知道這些接口的實現。
3、部署者(Deployer)
部署者負責將ejb-jar文件部署到用戶的系統環境中。系統環境包含某種EJB Server和EJB Container.部署者必須保證所有由EJB組件開發者在部署文件中聲明的資源可用,例如,部署者必須配置好EJB所需的數據庫資源。
部署過程分兩步:部署者首先利用EJB Container提供的工具生成一些類和接口,使EJB Container能夠利用這些類和接口在運行狀態管理EJB. 部署者安裝EJB組件和其他在上一步生成的類到EJB Container中。 部署者是某個EJB運行環境的專家。
某些情況下,部署者在部署時還需要了解EJB包含的業務方法,以便在部署完成後,寫一些簡單的程序測試。
4、EJB 服務器提供者(EJB Server Provider)
EJB 服務器提供者是系統領域的專家,精通分布式交易管理,分布式對象管理及其它系統級的服務。EJB 服務器提供者一般由操作系統開發商、中間件開發商或數據庫開發商提供。
在目前的EJB規范中,假定EJB 服務器提供者和EJB 容器提供者來自同一個開發商,所以,沒有定義EJB 服務器提供者和EJB容器提供者之間的接口標准。
5、EJB 容器提供者(EJB Container Provider)
EJB 容器提供者提供以下功能:
提供EJB部署工具為部署好的EJB組件提供運行環境 .EJB容器負責為EJB提供交易管理,安全管理等服務。
EJB 容器提供者必須是系統級的編程專家,還要具備一些應用領域的經驗。EJB 容器提供者的工作主要集中在開發一個可伸縮的,具有交易管理功能的集成在EJB 服務器中的容器。EJB 容器提供者為EJB組件開發者提供了一組標准的、易用的API訪問EJB 容器,使EJB組件開發者不需要了解EJB服務器中的各種技術細節。
EJB容器提供者負責提供系統監測工具用來實時監測EJB容器和運行在容器中的EJB組件狀態。
6、系統管理員(System Administrator)
系統管理員負責為EJB服務器和容器提供一個企業級的計算和網絡環境。
系統管理員負責利用EJB 服務器和容器提供的監測管理工具監測EJB組件的運行情況。
將責任分離的另一個好處是在代碼級上,可以將基於EJBs的系統邏輯的分派給更適合的專家。SUN的EJB規范建議使用幾個獨立的角色,對於確定運作環境的責任鏈是非常重要的。舉例說,EJB提供者是由商業專家和分析人員扮演的角色,他們確定一個組織內的最佳信息流程。但是仍舊有Second Domain Expert,如應用程序匯編人員,他們集成不同的EJB組件並確保它可以確保滿足應用程序的需求。
還有兩種角色歸入到系統級的部分,第一個是配置人員,他們負責實際的安裝和配置基於EJB的系統。這需要有設置目錄服務和集成現有應用程序的經驗。第二個是系統管理員,他們要提供全天的監視和支持,確保應用程序正常運作。盡管系統管理員這個角色不需要是Java編程專家,但是他需要能夠應付以下問題:
設置Java Virtual Machine (JVM)並關聯系統環境參數(如:CLASSPATH)
使用Java Archive (jar)命令保存類文件懂得WEB服務器和Servlet的工作原理。
要能通過監視運行中程序的狀態確定優化方法。
很明顯,有些角色是可以交叉的,比如系統管理員和配置人員。盡管配置人員可能是將類文件復制到服務器而系統管理員需要確定配置人員是否復制到了正確的位置