国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java EJB技術研究

2019-11-18 14:16:55
字體:
來源:轉載
供稿:網友

  作者:王少鋒 王克宏

[摘 要] java的EJB技術代表的是一種前沿技術,它使得復雜的多層結構應用系統的開發變得輕易,本文分析了EJB構件模型的體系結構、技術特點及應用前景,以及和其它相關技術的比較。
[要害詞] Java,EJB,可重用構件

一、EJB{EnterPRise JavaBeans}技術

  98年3月在San Francisco召開的JavaOne98開發者大會上,Sun公司正式 發布了業界期待已久的EJB1.0版規范說明,在眾多的大公司和開發人員中引起了巨大的反應,這標志著用Java開發企業級應用系統將變得簡單。這次Ja- vaOne大會也被稱之為"EJB展覽會",許多公司紛紛表示要推出有關EJB的 產品,已經推出或正預備推出EJB產品的公司有:Sun、IBM、Inprise、BEA、 Gemstone、Informix、NCR、Netscape、Novell、Oracle、Persistence Progress、Secant、Sybase、Symantec等。目前,EJB已成為Java企業計算平臺的核心技術,今年5月10日Sun公司發布了EJB1.1版本規范說明草案,對1.0版本中的一些特征作補充說明和改進。
  Java平臺包含許多用于開發企業級的、多層體系結構的、分布式應用系統的要害技術,如Java RMI JDBC、JNDI、Java治理API(JMAPI)、Java消息服務(JMS)、Java事務服務(JTS)、EJB等,每種技術都有各自不同的特點,本文主要討論在企業級應用系統中極為重要的EJB技術。
  Sun公司發布的EJB規范說明中對EJB的定義是:EJB是用于開發和部署多層結構的、分布式的、面向對象的Java應用系統的跨平臺的構件體系結構。采用EJB可以使得開發商業應用系統變得、輕易,應用系統可以在一個支持EJB的環境中開發,開發完之后部署在其它的環境中,隨著需求的改變,應用系統可以不加修改地遷移到其它功能更強、更復雜的服務器上。
  在分布式應用系統的開發中,采用多層體系結構的方法有很多優點,如增加了應用系統的可伸縮性、可靠性、靈活性等。因為服務器端構件可以根據應用需求迅速地加以修改,且構件在網絡中的位置和 應用無關,因此系統治理員可以很輕易重新配置系統的負載。多層體系結構非常適合于大數據量的商業事務系統,非凡是在基于Web的應用中,需要多層體系結構支持瘦客戶機及瀏覽器的快速applet下載。
  通常一個多層體系結構的企業級應用系統的開發非常復雜,因為涉及到很多事務處理,姿態治理,多線程,資源調度,安全性操作以及其它許多底層的細節。EJB簡化了多層體系結構應用系統的開發過程,使企業計算的開發人員專注于應用系統的解決方案,而不需將過多的精力放在底層的計算細節,而且開發的組件能夠運行于所有支持四B的環境之中,具有可復用性。
  一個開發商可以開發一個新的支持EJB的執行系統,但通常的做法是供給商對已有的系統進行政進以支持EJB,可以進行改進以支持EJB的系統包括:
  ? 數據庫數理系統,如Oracle,Sybase,DB2等;
  ? web應用服務器,如Java Web Server, Netscape enterprise Server,Oracle application Server等;
  ? CORBA平臺,如Iona Orbix/OTM,Borland VisiBroker/IT3等;
  ? 事務處理監控器,如IBM TXSeries(CICS and Encina),BEA公司的Tuxedo等;
  ? 構件事務服務器,如Sybase Jaguar CTS 或 Microsoft Transaction Server等。

二、軟構件模型

  軟構件模型的思想是創建可重用的構件并將其組合到容器中以得到新的應用系統,軟構件模型定義了構件的基本體系結構、構件界面的結構、和其他構件及容器相互作用的機制等。利用軟構件模型規范說明,構件開發人員開發那些實現了應用系統邏輯的構件,而應用系統開發人員把這些預先開發好的構件組合成應用系統。軟構件模型思想已經在軟件開發界迅速流行,因為它可以達到以下這些目的:復用、高層開發、簡化開發過程,降低開發費用,提高所開發產品的質量等。
  有兩種類型的軟構件模型一一客戶端構件模型和服務器端構件模型??蛻舳藰嫾P腿鏙avaBeans是專門用于處理程序的表示(presentation)及用戶界面問題的;服務器端構件模型如EJB則向面向事務的中間件提供基礎設施。
  服務器端構件模型把構件模型的開發和中間件聯系在一起。企業級應用系統的中間件以其復雜性著稱,它不僅涉及到應用邏輯、并發性和伸縮性問題,也涉及到如何把不兼容的系統組合在一起的問題。服務器端構件模型解決了中間件開發的復雜性問題,它使得中間件開發人員集中于應用系統的邏輯部分,而不用處理同步、可伸縮性、事務集成、網絡、分布式對象框架等一些分布式應用系統中存在的復雜的細節問題。EJB構件模型如圖1所示:

 

  EJB Server負責與操作系統有關的底層細節,諸如和其它組件或系統的通訊協議、多線程、負載平衡等,EJB Container提供EJB的生存環境和各種服務(如Transaction Server),EJB Container和Server共同組成了EJB運行環境。
  通過使用RMI(Remote Method Invocation),,EJB支持遠程的客戶端存取。RMI產生一個對象,這個對象被安裝在客戶機系統中,作為存取服務器對象的代理對象,它使得服務器的位置對于客戶機來說是透明的,EJB開發人員為每一個可存取的接口定義一個Java遠程接口。
  通過使用IIOP協議(Interne InterORB Protocol ),EJB也可以和其他的非Java客戶機進行通訊,IIOP答應EJB系統和CORBA的集成,EJB可以存取CORBA服務器,CORBA客戶機也可以存取EJB服務器。 EJB構件模型給開發者提供的支持包括以下一些特征:
  ? 可重用的構件
  ? 可伸縮性
  ? 資源治理
  ? 事務支持
  ? 并發性治理
  ? 安全性治理
  EJB構件與Container之間有統一的界面,每一個EJB構件都可以運行在所有的運行環境中。在EJB構件模中有兩種類型的EJB��session bean和entity bean,這兩種類型的EJB代表了兩種不同類型的事務邏輯的抽象。Session bean是短暫的對象,運行在服務器端,并執行一些應用邏輯處理,它由客戶端應用程序建立,并僅被該應用程序所使用,其數據需要自己來治理,當系統停機后,session bean 不會再被恢復。Entity bean 是持久的對象,可以被其他對象調用,entity bean必須在建立時確定一個唯一的標識,并提供相應的機制答應客戶應用程序根據entity bean標識來定位bean實例,多個用戶可以并發訪問entity bean,當系統停機時,entity bean可以被恢復。Entity bean在EJB1.0規范中可選的特征,但EJB技術發展非??欤贓JB規范說明1.I版本的草案中,已經規定entity bean是必須實現的特征,而不再是可選的特征。
  需要注重的是,對于不同的EJB服務器來說,其對客戶機的格式的要求是不同的,例如,客戶機和服務器建立連接的方式隨服務器的不同而不同,但客戶機的這些差異并不影響EJB的跨平臺性。

三、EJB構件模型的特點

  在EJB1.O規范說明中,列出了設計EJB構件模型的目標,其中的一些如下:
  ? EJB將成為用Java語言開發分布式的、面向對象的企業級應用系統的標準構件體系結構,EJB使得通過組合構件得到分布式應用系統成為可能。
  ? EJB使得應用系統開發變得輕易,應用系統開發人員不需要理解底層的事務處理細節、狀態治理、多線程、資源共享治理、以及其它復雜的底層API細節。
  ? EJB遵循Java的"write once,run anywhere"的思想,一旦一個EJB開發完成之后,就可以部署在任何支持EJB的平臺上,而不需要重新編譯或對源代碼進行修改。
  ? EJB定義了一個協議,使得用不同供給商提供的工具開發和部署的構件能在運行時互操作。
  ? EJB體系結構和已有的服務器平臺、其它的Java APL、CORBA等兼容。
  ? EJB將支持enterprise Beans和其它的非Java應用系統的互操作性。
  采用EJB開發應用系統有很多優點,如:(1)標準的Java技術便利應用系統可以在許多不同的服務器平臺上運行;(2)修改應用系統變得輕易,對單個構件進行增加、修改、刪除等操作不會對應用系統體系結構產生很大影響;(3)應用系統經過劃分之后,使得構件之間相互拙立,又可以相互協作,提供給用戶的是該用戶所需要的構件:(4)應用系統的開發變得輕易,基本上是即插即用的方式;(5)應用系統從本質上說是可伸縮的,可以運行在多線程、多處理機的環境中;(6)UB可以在新的應用系統中得到重用,減少了新系統的開發時間。
  當然,和其它的新技術一樣,EJB也存在一些缺點,主要有:(1)EJB的數量可能非常多,以致在軟件開發庫中很難對這些EJB進行跟蹤和治理;(2)假如應用開發人員不能正確地使用EJB,可能導致不恰當的應用系統設計,結果使得應用系統的總體性能下降;(3)除非WM及編譯器的性能得到提高,否則EJB應用系統的性能仍將是個問題;(4)由于EJB技術出現時間不長,目前可用的EJB還不多,要想得到大量的商業性EJB還需要一段時間。
  
  四、EJB和其它技術的比較

  4.1 EJB和JavaBeans的比較

  很多人往往把JavaBeans和EJB混淆起來,JavaBeans提供了基于構件的開發機制,JavaBeans可以在多個應用系統中重用,開發者可以通過屬性表或通過定制的方法來定制JavaBean。多個JavaBean可以組合在一起構成Java applet或Java應用程序,或建立新的JavaBean,JavaBean容器可以根據JavaBean的屬性、方法、事件的定義在設計時或運行時對JavaBean進行操作。
  在JavaBean構件模型中,重點是答應開發人員可以在開發工具中可視化地操作構件,為此,JavaBean具體地描述了API的細節,以及構件之間事件注冊和發送,屬性的識別和利用,定制,永久性等細節。
  EJB是一種非可視化的構件,完全位于服務器端,規范說明具體說明了EJB容器需要滿足的需求以及如何和EJB構件相互協作。EJB可以和遠程的客戶端程序通訊,并提供一定的功能,根據規范說明,EJB是client/Server系統的一部分,假如不和客戶端程序交互,EJB一般不執行具體的功能,EJB和JavaBean的一個重要區別是EJB必須在網絡計算環境下使用才有意義。
  EJB的重點是給出服務框架模型,以保證Java構件可以進行可移植性的部署,因此,在EJB規格說明中,并沒有提到事件,因為典型的EJB構件不發送和接收事件,EJB規范說明中也沒有提到屬性。和一般的JavaBean一樣,EJB是高度可定制的,對EJB進行定制不需要存取源代碼,但對EJB可以進行定制不是在開發階段,而是在部署階段用部署描述符進行定制。
  需要說明的是,JavaBean不僅可用于客戶端應用程序的開發,也可以用于服務器端應用程序的開發,但和EJB的區別是,假如用JavaBean創建服務器端應用程序,還必須同時實現服務框架,在多層結構分布式應用系統中,服務框架的實現是非常繁瑣的,對于EJB來說,服務框架已經提供,因此大大簡化了系統的開發過程。

  4.2 EJB和CORBA

  CORBA是目前分布式對象處理的事實工業標準,大部分廠商都公布支持CORBA標準,同樣,在EJB規范中,也考慮到對CORBA的支持。規范主要規定如下:
  ? 一個CORBA客戶機(用CORBA支持的語言寫的程序)可以存取基于CORBA的EJB服務器上的構件。
  ? 一個客戶機在一個事務過程中可以同時調用CORBA和EJB對象。
  ? 一個事務可以同時利用多個由不同開發商提供的,基于CORBA的EJB服務器。
  為了保證多個開發商之間的基于CORBA的EJB產品之間的互操作性,規范說明定義了EJB到CORBA的映射,分為四個部分:
  1、分布映射--定義了EJB和COR-BA對象之間的關系,以及EJB規范說明中定義的Java RMI到OMG IDL的映射。
  2、命名映射--說明了如何利用COS命名服務來確定EJBHome對象。
  3、事務映射--定義了EJB的事務支持到OMG Object Transaction Service(OTS)v1.1的映射。
  4、安全性映射��定義了EJB中的安全性特征到CORBA安全性的映射。
  映射確保了不管哪一種類型的客戶機,通過生成相同的字節流,可以和基于CORBA的EJB服務器進行互操作。
  從以上的論述中可以知道,對于EJB服務器來說,有兩種類型的客戶機可以使用EJB:
  1.EJB/CORBA客戶機��一個使用EJB API的Java客戶機??蛻魴C利用JNDI定位對象,利用HOP協議上的JavaRMI來調用遠程方法,其中CORBA IDL的使用是隱含的,也就是說,開發人員只使用Java代碼,開發客戶機程序時可以不必了解CORBA及IDL知識。
  2.純CORBA客戶機��用CORBA IDL支持的任何語言寫的客戶機??蛻魴C用COS命名服務來定位對象,用CORBA IDL來調用遠程方法,用對象事務服務OTS來執行事務,其中開發人員要創建一個IDL文件,即CORBA IDL的使用是顯式的。

  4.3 EJB和網絡計算

  由Beans構造的應用系統可以根據用戶的需求分解成不同的構件,根據用戶當前所需要的功能提供相關的構件,并隨著用戶新的需求隨時下載新的構件,而用戶沒有用到其功能的構件可以駐留在服務器上,這就是網絡計算所倡導的概念。
  很多人并沒有完全理解Java的概念,他們認為為了在一個客戶端上運行Java程序,需要把一個龐大的、可能達幾兆字節的Java應用程序一次性通過網絡傳輸到客戶端,事實上,這也是一些開發人員計劃用Java開發應用系統時易犯的錯誤。
  把Java應用于服務器端的應用系統可以真正體現Java的威力,EJB是Java的服務器端構件模型,該模型保證開發出來的構件可以被部署在任何支持EJB規范說明的系統中,即使該系統是由不同的開發商提供的。在網絡計算環境中利用Java的最好途徑是由EJB提供服務器端的構件,而由JavaBean提供客戶端的構件,兩者結合在一起,將向"網絡就是計算機"之路邁出一大步。

  五、總結

  對象技術、構件技術、快速應用開發等是計算機界的熱門話題,Java的EJB技術的主要思想就是讓"恰當的專家做恰當的事情",應用領域的開發人員將開發精力放在應用邏輯方面,而不用考慮底層的計算技術;而計算機專業開發人員去處理底層的計算技術細節,而不用考慮應用領域的專業知識。
  EJB計算技術代表的是一種前沿技術,它使得復雜的多層結構應用系統開發變得輕易。EJB技術建立在已取得極大成功的Java語言之上,采用EJB技術能有效地進行軟件復用,提高開發人員的效率,降低軟件的開發和維護成本,提高軟件的質量,控制所構建系統的復雜性。EJB技術將使得Java在企業計算中的地位得到加強,為基于Java的應用系統提供了一個框架,和目前的許多系統和模型相比,EJB具有許多優越性,種種跡象表明,EJB有可能成為多層結構分布式應用系統的服務器端構件模型的首要選擇。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦东新区| 大宁县| 连州市| 同德县| 万盛区| 绥江县| 岳阳县| 堆龙德庆县| 灵寿县| 阿克苏市| 成都市| 迭部县| 金塔县| 绩溪县| 万源市| 拜城县| 门源| 张掖市| 清远市| 虹口区| 栾城县| 泸西县| 启东市| 四子王旗| 景宁| 南通市| 上思县| 金湖县| 杭州市| 平南县| 宜良县| 阿拉善左旗| 琼中| 扎兰屯市| 灵丘县| 紫云| 五寨县| 娄底市| 措勤县| 肃南| 唐山市|