基于
EJB
的企業級組件的開發
Author
:
yongtree
?
1.
?????
前言
Peter 和Oliver在《基于組件的企業級開發》一書中描繪了一個美好的愿景:未來的企業級系統的構建,應該像去超市買東西那樣去選擇自己合適的組件,構建一個企業級系統就像組裝電腦一樣簡單。這個美好的憧憬的確很誘人。
軟件發展到今天,人們一直在追求面向對象、模塊化、分布式系統、軟件重用,從而解決大規模軟件系統開發復雜性的問題。當今社會,人們的職責更加的明晰,分工更加的精細,人們更加關注自己專注的領域,而無法對其他領域觸類旁通。在軟件系統的構造中,也面臨著這樣一個問題,人們已經不再追求萬金油,取而代之的是人們更加的專注,工作更加的單一,怎樣在軟件開發中,讓不同的人關注其本身而無需關注其他東西便能夠建起復雜的系統,組件化軟件系統開發就是解決這些問題的一種有效途徑。
2.
?????
企業級組件開發的簡單模型
《基于組件的企業級開發》一書中向我們闡述了幾種組件模型,簡化一點可以分為三種組件,從細到粗依次是分布是組件、業務組件、系統組件。組件組成平面圖如下:
分布式組件粒度最細,它封裝了系統內所有的原子級的操作,主要包括基礎工具服務(如代碼生成器,事務管理器等),操作底層實體的基本服務。該類型組件不能獨立完成業務功能,但是能被更多的業務組件調用,實現不同的業務操作。
業務組件由分布式組件群集而成,用于完成一個業務過程。如生成訂單。
系統級組件是一組組裝起來針對某個業務問題提供解決方案的相互協同的業務組件。
多個系統級組件按照一定方式進行組裝、關聯,互操作處理,形成最終的軟件系統。
?
下圖為企業級組件層次關系圖
?
在B/S結構中,系統組件、業務組件、分布式組件在技術實現上應該都具備分布式能力。功能層也可以叫用戶層,直接面向用戶,用戶通過瀏覽器直接操作。功能層運行在web服務器中,通過調用分布式服務來完成相應的功能。功能層和系統組件應該有一個整合平臺,能對系統進行服務調用配置和具備一定的二次開發的能力。
?
3.
?????
基于
Java EE
的分布式軟件系統的模型
?
上圖為Java EE體系下構建分布式應用基本物理架構圖。通常使用apache作為負載均衡器,tomcat作為web容器,與用戶直接溝通的功能層(用戶層),通過tomcat集群處理實現負載均衡。在分布式應用層,上一節介紹的各組件系統運行在此層,因為該層具有分布式的能力,各個組件可以各自運行在自己的JBOSS容器中,共web服務器調用。
分布式應用層是系統中最關鍵的一層,必須具備高安全、高性能、高穩定性的特性,所以對于用戶是黑盒不透明的,用戶不能直接訪問這一層。同樣,對于其他系統,如果需要和該系統集成或交互,分布式應用層對這些系統也應該是隱藏的,其他系統也不能直接訪問該層,需要在該層之外建立具有標準接口的web 服務層,通過web service提供的各種服務,可以和OA、網上藥店等系統進行交互,和信息的傳遞。
在web層,可以采用Struts、JSF、Ext+Struts等多種技術方式進行展現。同時該層需要根據用戶的需求而不斷得變化,一種簡單的、解釋性、能無縫調用java語言的動態語言作為二次開發的原形語言,在Java體系中可以考慮使用Groovy進行構建。在分布式業務層,EJB是唯一的選擇,通過分布式集群的高效的計算能力,處理復雜的業務邏輯。使用JPA的標準可以實現實體操作性的高度可移植和多種數據庫的支持能力。
4.
?????
運用
EJB
進行企業級組件的開發
綜合企業級組件開發模型和Java EE分布式軟件模型,使用EJB構建具有分布式能力的企業級組件的模型如下:
1、?
在垂直方向上,使用本地接口(較多)和遠程接口(較少)構件系統級組件,能獨立的完成一系列的業務功能。系統級組件之間也交叉調用彼此共同的組件。
2、?
在水平方向上,抽取分布式組件、業務組件的共性,對各系統級組件提供公共的分布式服務。
?
?
以上是對企業級組件開發一點淺薄的認識,在以后開發的過程中將更加細致的體會基于EJB的企業級組件開發的模式。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
