您好,登錄后才能下訂單哦!
小編今天帶大家了解EJB分布式對象的基礎(chǔ)知識有哪些,文中知識點(diǎn)介紹的非常詳細(xì)。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內(nèi)容,希望能夠幫助更多想解決這個(gè)問題的朋友找到問題的答案,下面跟著小編一起深入學(xué)習(xí)“EJB分布式對象的基礎(chǔ)知識有哪些”的知識吧。
Enterprise JavaBean (EJB)規(guī)范定義了開發(fā)和部署基于事務(wù)性、EJB分布式對象應(yīng)用程序的服務(wù)器端軟件組件的體系結(jié)構(gòu)。企業(yè)組織可以構(gòu)建它們自己的組件,或從第三方供應(yīng)商購買組件。這些服務(wù)器端組件稱作 Enterprise Bean,它們是 Enterprise JavaBean 容器中駐留的EJB分布式對象,為分布在網(wǎng)絡(luò)中的客戶機(jī)提供遠(yuǎn)程服務(wù)。
兩層和三層環(huán)境
在兩層客戶機(jī)/服務(wù)器環(huán)境中,程序員編寫與供應(yīng)商特定軟件緊密結(jié)合的應(yīng)用程序。通常,兩層應(yīng)用程序直接從客戶機(jī)訪問數(shù)據(jù)庫服務(wù)或事務(wù)服務(wù)。有時(shí)這種應(yīng)用程序稱作胖客戶機(jī),因?yàn)閼?yīng)用程序邏輯駐留在客戶機(jī)上,這使客戶機(jī)變得龐大和復(fù)雜。
三層客戶機(jī)/服務(wù)器應(yīng)用程序使用一個(gè)中間或中間層,應(yīng)用程序服務(wù)器,它在客戶機(jī)應(yīng)用程序和后端數(shù)據(jù)庫之間操作。中間層存儲(chǔ)了系統(tǒng)的商業(yè)邏輯,并協(xié)調(diào)客戶機(jī)上與后端數(shù)據(jù)庫交互的顯示。
在兩層模型上使用三層體系結(jié)構(gòu)是出于以下兩個(gè)動(dòng)機(jī):
改進(jìn)的可伸縮性、可用性和性能改良的商業(yè)系統(tǒng)靈活性和可擴(kuò)展性由于兩層系統(tǒng)
利用了客戶機(jī)的處理能力,因而它具有良好的性能,但許多客戶機(jī)對單一后端資源(如數(shù)據(jù)庫)的特性會(huì)產(chǎn)生瓶頸,隨著客戶機(jī)數(shù)量逐漸增大,這會(huì)抑制可伸縮性、可用性和性能。三層系統(tǒng)試圖通過更有效地管理后端資源來消除這個(gè)瓶頸。利用資源管理技術(shù),如合用和集群中間層服務(wù)器,可以實(shí)現(xiàn)這個(gè)目標(biāo)。合用允許許多客戶機(jī)共享不充足的資源(如數(shù)據(jù)庫連接),這樣可以減少后端服務(wù)器的工作負(fù)荷,從而使三層系統(tǒng)更有效。由于多個(gè)服務(wù)器和資源可以支持故障恢復(fù)并均衡不斷增加的客戶機(jī)數(shù)量的負(fù)載,因此集群可以使三層系統(tǒng)變得更具可用性和可伸縮性。
三層系統(tǒng)比相應(yīng)的兩層系統(tǒng)更靈活且更可擴(kuò)展,這是因?yàn)樯虡I(yè)邏輯和服務(wù)(如安全性和事務(wù))都駐留在中間層,并且基本上獨(dú)立于客戶機(jī)應(yīng)用程序。如果正確實(shí)現(xiàn)了三層系統(tǒng),那么在使用 Enterprise JavaBean 的情況下,服務(wù)會(huì)自動(dòng)應(yīng)用于客戶機(jī)請求,因此服務(wù)是看不見的。由于服務(wù)對于客戶機(jī)不可見,因此對服務(wù)的更改也不可見。如果正確實(shí)現(xiàn)了三層系統(tǒng),那么中間層上對商業(yè)邏輯的更改和增強(qiáng)也可對客戶機(jī)應(yīng)用程序隱藏。
另外,如果客戶機(jī)與中間件組件是以 Java 編程語言實(shí)現(xiàn)的,那么它們極有可能具有可移植性??梢苑浅H菀椎貙?shí)現(xiàn)客戶機(jī)和應(yīng)用程序服務(wù)器的類文件重新安置到當(dāng)前最合適的主機(jī)上。
在最近二、三年中,一些供應(yīng)商發(fā)布了基于 Java 的三層應(yīng)用程序服務(wù)器,這些服務(wù)器全都可以與后端服務(wù)器操作交互,并管理這些操作。盡管這些中間件產(chǎn)品支持EJB分布式體系結(jié)構(gòu),這些體系結(jié)構(gòu)在兩層設(shè)計(jì)上(以及 Java 之前的應(yīng)用程序服務(wù)器)做了非常重大的改進(jìn)。它們的主要限制是編程模塊越來越趨向于特定于某個(gè)供應(yīng)商。這意味著公司必須大量購買一家供應(yīng)商的型號,而且系統(tǒng)是不可移植的,從而導(dǎo)致了供應(yīng)商鎖定。
隨著面向?qū)ο缶幊谭独找嫫占?,EJB分布式對象系統(tǒng)已經(jīng)逐漸壯大?,F(xiàn)在已經(jīng)存在一些EJB分布式對象技術(shù)。***的是由 Object Management Group 創(chuàng)建的 CORBA、Sun Microsystems 的 Java RMI (JRMP) 和 Microsoft 的 DCOM 和 MTS(又名 COM+)。每種都有其自身的優(yōu)缺點(diǎn)。Sun Microsystems 的 Enterprise JavaBean 是***加入這個(gè)圈子的技術(shù)。在某些方面,它既是這些技術(shù)的竟?fàn)幷?,同時(shí)也是合作者。
由于在三層計(jì)算中使用了其它開放標(biāo)準(zhǔn)(如 LDAP),CORBA(公共對象請求中介體系結(jié)構(gòu))在解決供應(yīng)商壟斷問題方面取得了成功。不幸的是,雖然 CORBA 根本改變了EJB分布式計(jì)算,但經(jīng)驗(yàn)證編程模塊過于復(fù)雜,而且供應(yīng)商不能一致地遵守規(guī)范。CORBA 有高級的EJB分布式計(jì)算,但已證明太難而很難實(shí)現(xiàn),并且其可移植性也比預(yù)期差。
Enterprise JavaBean (EJB) 是 Sun Microsystems 對 CORBA 的可移植性和復(fù)雜性的解決方案。EJB 引入了比 CORBA 更簡單的編程模塊,它可以讓開發(fā)人員創(chuàng)建可移植EJB分布式組件,稱作 Enterprise Bean。EJB 編程模塊可以讓開發(fā)人員創(chuàng)建安全的、事務(wù)性的和持久的商業(yè)對象 (Enterprise Bean),該對象使用非常簡單的編程模塊和聲明屬性。與 CORBA 不同,例如訪問控制(授權(quán)安全性)和事務(wù)管理等設(shè)施非常易于編程。CORBA 需要使用復(fù)雜的 API 來利用這些服務(wù),而 EJB 則根據(jù)一種稱作“部署描述信息”的特性文件中的聲明將這些服務(wù)自動(dòng)應(yīng)用到 Enterprise Bean。這個(gè)模型確保了 bean 開發(fā)人員可以集中精力編寫商業(yè)邏輯,而容器會(huì)自動(dòng)管理更復(fù)雜但又必要的操作。
由于 EJB 規(guī)范頒布了一組明確的 EJB 容器(供應(yīng)商服務(wù)器)和 EJB 組件(商業(yè)對象)之間的契約,因此 EJB 中實(shí)現(xiàn)了可移植性。這些契約或規(guī)則確切規(guī)定容器必須為 Enterprise Bean 提供什么服務(wù),bean 開發(fā)人員需要使用什么 API 和聲明屬性來創(chuàng)建 Enterprise Bean。由于詳細(xì)指定了 Enterprise Bean 的生命周期,因此供應(yīng)商知道如何在運(yùn)行時(shí)管理 bean,bean 開發(fā)人員確切知道 Enterprise Bean 在其存在期間可以做什么。
Enterprise JavaBean 簡化了EJB分布式對象的開發(fā)、部署和訪問。EJB分布式對象(一種 Enterprise Bean)的開發(fā)人員只需依照為 Enterprise JavaBean 建立的契約和協(xié)議實(shí)現(xiàn)對象。支持 EJB 的應(yīng)用程序服務(wù)器可以,也確實(shí),使用任何分布式網(wǎng)絡(luò)協(xié)議,包括本地 Java RMI 協(xié)議 (JRMP)、專有協(xié)議或 CORBA 的網(wǎng)絡(luò)協(xié)議 (IIOP)。不管在某個(gè)特定產(chǎn)品中使用的基本網(wǎng)絡(luò)協(xié)議是什么,EJB 使用相同的編程 API 和語義以 Java RMI-IIOP 訪問EJB分布式對象。協(xié)議的細(xì)節(jié)對應(yīng)用程序和 bean 開發(fā)人員隱藏;對于所有供應(yīng)商來說,定位和使用EJB分布式 bean 的方法是相同的。
注:Enterprise Bean 與 JavaBean 不同。JavaBean 是使用 java.beans 包開發(fā)的,它是 Java 2 標(biāo)準(zhǔn)版的一部分。JavaBean 是一臺(tái)機(jī)器上同一個(gè)地址空間中運(yùn)行的組件。JavaBean 是進(jìn)程內(nèi)組件。Enterprise Bean 是使用 javax.ejb 包開發(fā)的,它是標(biāo)準(zhǔn) JDK 的擴(kuò)展,是 Java 2 Enterprise Edition 的一部分。Enterprise Bean 是在多臺(tái)機(jī)器上跨幾個(gè)地址空間運(yùn)行的組件。因此 Enterprise Bean 是進(jìn)程間組件。JavaBean 通常用作 GUI 窗口小部件,而 Enterprise Bean 則用作EJB分布式商業(yè)對象。
感謝大家的閱讀,以上就是“EJB分布式對象的基礎(chǔ)知識有哪些”的全部內(nèi)容了,學(xué)會(huì)的朋友趕緊操作起來吧。相信億速云小編一定會(huì)給大家?guī)砀鼉?yōu)質(zhì)的文章。謝謝大家對億速云網(wǎng)站的支持!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。