JAVA語言中關(guān)于EJB技術(shù)概論
JAVA語言中關(guān)于EJB技術(shù)概論,Enterprise JavaBean (EJB) 1.1 規(guī)范定義了開發(fā)和部署基于事務(wù)性、分布式對象應(yīng)用程序的服務(wù)器端軟件組件的體系結(jié)構(gòu)。企業(yè)組織可以構(gòu)建它們自己的組件,或從第三方供應(yīng)商購買組件。這些服務(wù)器端組件稱作 Enterprise Bean,它們是 Enterprise JavaBean 容器中駐留的分布式對象,為分布在網(wǎng)絡(luò)中的客戶機提供遠程服務(wù)。
EJB技術(shù)概論
Enterprise JavaBean (EJB) 1.1 規(guī)范定義了開發(fā)和部署基于事務(wù)性、分布式對象應(yīng)用程序的服務(wù)器端軟件組件的體系結(jié)構(gòu)。企業(yè)組織可以構(gòu)建它們自己的組件,或從第三方供應(yīng)商購買組件。這些服務(wù)器端組件稱作 Enterprise Bean,它們是 Enterprise JavaBean 容器中駐留的分布式對象,為分布在網(wǎng)絡(luò)中的客戶機提供遠程服務(wù)。
兩層和三層環(huán)境
在兩層客戶機/服務(wù)器環(huán)境中,程序員編寫與供應(yīng)商特定軟件緊密結(jié)合的應(yīng)用程序。通常,兩層應(yīng)用程序直接從客戶機訪問數(shù)據(jù)庫服務(wù)或事務(wù)服務(wù)。有時這種應(yīng)用程序稱作胖客戶機,因為應(yīng)用程序邏輯駐留在客戶機上,這使客戶機變得龐大和復(fù)雜。下圖描繪了這一特性:
三層客戶機/服務(wù)器應(yīng)用程序使用一個中間或中間層,應(yīng)用程序服務(wù)器,它在客戶機應(yīng)用程序和后端數(shù)據(jù)庫之間操作。中間層存儲了系統(tǒng)的商業(yè)邏輯,并協(xié)調(diào)客戶機上與后端數(shù)據(jù)庫交互的顯示。
在兩層模型上使用三層體系結(jié)構(gòu)是出于以下兩個動機:
改進的可伸縮性、可用性和性能
改良的商業(yè)系統(tǒng)靈活性和可擴展性
由于兩層系統(tǒng)利用了客戶機的處理能力,因而它具有良好的性能,但許多客戶機對單一后端資源(如數(shù)據(jù)庫)的特性會產(chǎn)生瓶頸,隨著客戶機數(shù)量逐漸增大,這會抑制可伸縮性、可用性和性能。三層系統(tǒng)試圖通過更有效地管理后端資源來消除這個瓶頸。利用資源管理技術(shù),如合用和集群中間層服務(wù)器,可以實現(xiàn)這個目標。
合用允許許多客戶機共享不充足的資源(如數(shù)據(jù)庫連接),這樣可以減少后端服務(wù)器的工作負荷,從而使三層系統(tǒng)更有效。由于多個服務(wù)器和資源可以支持故障恢復(fù)并均衡不斷增加的客戶機數(shù)量的負載,因此集群可以使三層系統(tǒng)變得更具可用性和可伸縮性。
三層系統(tǒng)比相應(yīng)的兩層系統(tǒng)更靈活且更可擴展,這是因為商業(yè)邏輯和服務(wù)(如安全性和事務(wù))都駐留在中間層,并且基本上獨立于客戶機應(yīng)用程序。
如果正確實現(xiàn)了三層系統(tǒng),那么在使用 Enterprise JavaBean 的情況下,服務(wù)會自動應(yīng)用于客戶機請求,因此服務(wù)是看不見的。由于服務(wù)對于客戶機不可見,因此對服務(wù)的更改也不可見。如果正確實現(xiàn)了三層系統(tǒng),那么中間層上對商業(yè)邏輯的更改和增強也可對客戶機應(yīng)用程序隱藏。
另外,如果客戶機與中間件組件是以 Java 編程語言實現(xiàn)的,那么它們極有可能具有可移植性??梢苑浅H菀椎貙崿F(xiàn)客戶機和應(yīng)用程序服務(wù)器的類文件重新安置到當(dāng)前最合適的主機上。
【編輯推薦】