新聞中心
EJB分布式對(duì)象基礎(chǔ)篇
作者:落日之心 2009-06-12 11:42:28
后端
分布式 本文向您介紹EJB分布式對(duì)象應(yīng)用程序的服務(wù)器端軟件組件的體系結(jié)構(gòu)。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),大邑縣企業(yè)網(wǎng)站建設(shè),大邑縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,大邑縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,大邑縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
Enterprise JavaBean (EJB)規(guī)范定義了開發(fā)和部署基于事務(wù)性、EJB分布式對(duì)象應(yīng)用程序的服務(wù)器端軟件組件的體系結(jié)構(gòu)。企業(yè)組織可以構(gòu)建它們自己的組件,或從第三方供應(yīng)商購(gòu)買組件。這些服務(wù)器端組件稱作 Enterprise Bean,它們是 Enterprise JavaBean 容器中駐留的EJB分布式對(duì)象,為分布在網(wǎng)絡(luò)中的客戶機(jī)提供遠(yuǎn)程服務(wù)。
兩層和三層環(huán)境
在兩層客戶機(jī)/服務(wù)器環(huán)境中,程序員編寫與供應(yīng)商特定軟件緊密結(jié)合的應(yīng)用程序。通常,兩層應(yīng)用程序直接從客戶機(jī)訪問(wèn)數(shù)據(jù)庫(kù)服務(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ù)庫(kù)之間操作。中間層存儲(chǔ)了系統(tǒng)的商業(yè)邏輯,并協(xié)調(diào)客戶機(jī)上與后端數(shù)據(jù)庫(kù)交互的顯示。
在兩層模型上使用三層體系結(jié)構(gòu)是出于以下兩個(gè)動(dòng)機(jī):
改進(jìn)的可伸縮性、可用性和性能改良的商業(yè)系統(tǒng)靈活性和可擴(kuò)展性由于兩層系統(tǒng)
利用了客戶機(jī)的處理能力,因而它具有良好的性能,但許多客戶機(jī)對(duì)單一后端資源(如數(shù)據(jù)庫(kù))的特性會(huì)產(chǎn)生瓶頸,隨著客戶機(jī)數(shù)量逐漸增大,這會(huì)抑制可伸縮性、可用性和性能。三層系統(tǒng)試圖通過(guò)更有效地管理后端資源來(lái)消除這個(gè)瓶頸。利用資源管理技術(shù),如合用和集群中間層服務(wù)器,可以實(shí)現(xiàn)這個(gè)目標(biāo)。合用允許許多客戶機(jī)共享不充足的資源(如數(shù)據(jù)庫(kù)連接),這樣可以減少后端服務(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ī)請(qǐng)求,因此服務(wù)是看不見的。由于服務(wù)對(duì)于客戶機(jī)不可見,因此對(duì)服務(wù)的更改也不可見。如果正確實(shí)現(xiàn)了三層系統(tǒng),那么中間層上對(duì)商業(yè)邏輯的更改和增強(qiáng)也可對(duì)客戶機(jī)應(yīng)用程序隱藏。
另外,如果客戶機(jī)與中間件組件是以 Java 編程語(yǔ)言實(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)。它們的主要限制是編程模塊越來(lái)越趨向于特定于某個(gè)供應(yīng)商。這意味著公司必須大量購(gòu)買一家供應(yīng)商的型號(hào),而且系統(tǒng)是不可移植的,從而導(dǎo)致了供應(yīng)商鎖定。
隨著面向?qū)ο缶幊谭独找嫫占?,EJB分布式對(duì)象系統(tǒng)已經(jīng)逐漸壯大?,F(xiàn)在已經(jīng)存在一些EJB分布式對(duì)象技術(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(公共對(duì)象請(qǐng)求中介體系結(jié)構(gòu))在解決供應(yīng)商壟斷問(wèn)題方面取得了成功。不幸的是,雖然 CORBA 根本改變了EJB分布式計(jì)算,但經(jīng)驗(yàn)證編程模塊過(guò)于復(fù)雜,而且供應(yīng)商不能一致地遵守規(guī)范。CORBA 有高級(jí)的EJB分布式計(jì)算,但已證明太難而很難實(shí)現(xiàn),并且其可移植性也比預(yù)期差。
Enterprise JavaBean (EJB) 是 Sun Microsystems 對(duì) CORBA 的可移植性和復(fù)雜性的解決方案。EJB 引入了比 CORBA 更簡(jiǎn)單的編程模塊,它可以讓開發(fā)人員創(chuàng)建可移植EJB分布式組件,稱作 Enterprise Bean。EJB 編程模塊可以讓開發(fā)人員創(chuàng)建安全的、事務(wù)性的和持久的商業(yè)對(duì)象 (Enterprise Bean),該對(duì)象使用非常簡(jiǎn)單的編程模塊和聲明屬性。與 CORBA 不同,例如訪問(wèn)控制(授權(quán)安全性)和事務(wù)管理等設(shè)施非常易于編程。CORBA 需要使用復(fù)雜的 API 來(lái)利用這些服務(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è)對(duì)象)之間的契約,因此 EJB 中實(shí)現(xiàn)了可移植性。這些契約或規(guī)則確切規(guī)定容器必須為 Enterprise Bean 提供什么服務(wù),bean 開發(fā)人員需要使用什么 API 和聲明屬性來(lái)創(chuàng)建 Enterprise Bean。由于詳細(xì)指定了 Enterprise Bean 的生命周期,因此供應(yīng)商知道如何在運(yùn)行時(shí)管理 bean,bean 開發(fā)人員確切知道 Enterprise Bean 在其存在期間可以做什么。
Enterprise JavaBean 簡(jiǎn)化了EJB分布式對(duì)象的開發(fā)、部署和訪問(wèn)。EJB分布式對(duì)象(一種 Enterprise Bean)的開發(fā)人員只需依照為 Enterprise JavaBean 建立的契約和協(xié)議實(shí)現(xiàn)對(duì)象。支持 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 和語(yǔ)義以 Java RMI-IIOP 訪問(wèn)EJB分布式對(duì)象。協(xié)議的細(xì)節(jié)對(duì)應(yīng)用程序和 bean 開發(fā)人員隱藏;對(duì)于所有供應(yīng)商來(lái)說(shuō),定位和使用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è)對(duì)象。
網(wǎng)站題目:EJB分布式對(duì)象基礎(chǔ)篇
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/cosisdp.html


咨詢
建站咨詢
