1 前言?
隨著計(jì)算機(jī)硬件技術(shù)水平的不斷提高,特別是近年來互聯(lián)網(wǎng)技術(shù)的發(fā)展、電子商務(wù)技術(shù)的普及和應(yīng)用,軟件客戶對基于網(wǎng)絡(luò)的分布式應(yīng)用系統(tǒng)的多用戶響應(yīng)能力、系統(tǒng)構(gòu)建的時(shí)效性、系統(tǒng)運(yùn)行的穩(wěn)定性等方面的需求越來越強(qiáng)烈。因此,軟件組織按照客戶的特殊系統(tǒng)需求,快速地構(gòu)建一個(gè)性能穩(wěn)定、可移植性強(qiáng)的軟件系統(tǒng),不僅對軟件系統(tǒng)的軟、硬件運(yùn)行環(huán)境提出了新的需求,更重要的是需對傳統(tǒng)的應(yīng)用軟件系統(tǒng)構(gòu)建方式進(jìn)行更新。?
由于軟件系統(tǒng)面向的應(yīng)用領(lǐng)域不同,作為軟件系統(tǒng)核心內(nèi)容的封裝了企業(yè)商務(wù)規(guī)則的業(yè)務(wù)處理模塊往往帶有行業(yè)性質(zhì),在研發(fā)過程中需要進(jìn)行大量的客戶交流和系統(tǒng)分析,為此需消耗大量的人力和財(cái)力。因而理想的情況是:這種類型的軟件模塊由專業(yè)化的軟件組織開發(fā)并負(fù)責(zé)維護(hù),應(yīng)用軟件系統(tǒng)集成商在系統(tǒng)組裝和集成過程中,以“軟件組件”的形式從第三方獲得由專業(yè)人員開發(fā)的這些模塊集成到待開發(fā)系統(tǒng)中。?
基于這些需求,以服務(wù)器端軟件組件對象模型為核心的分布式多層應(yīng)用系統(tǒng)體系結(jié)構(gòu)逐漸成為在構(gòu)建基于互聯(lián)網(wǎng)的商業(yè)系統(tǒng)時(shí)的首選實(shí)現(xiàn)模型。?
2 軟件組件對象結(jié)構(gòu)
長期以來,軟件設(shè)計(jì)人員一直追求在程序代碼編寫過程中,能夠象電子元器件一樣將具有公共特征的軟件代碼創(chuàng)建成為軟件組件(Component)。軟件組件通過接口將組件內(nèi)封裝的方法“暴露”給組件的使用者。創(chuàng)建應(yīng)用程序的過程類似于“搭積木”,將具有特定功能的軟件組件組織到一起來構(gòu)成完整的應(yīng)用系統(tǒng)。?
從組件對象的客戶端角度來看:一個(gè)軟件組件對象通常可劃分成如下兩部分:?
●軟件組件的外部接口?
為了使調(diào)用組件商務(wù)方法的客戶能夠獲取組件中實(shí)現(xiàn)方法的類型和參數(shù)格式,在軟件組件中必須定義組件接口對象。軟件組件的客戶通過組件的接口對象訪問組件中定義的方法。因此,可以將接口對象看成是軟件組件與方法調(diào)用客戶之間的協(xié)議對象。?
●軟件組件的實(shí)現(xiàn)?
軟件組件中的實(shí)現(xiàn)代碼作為組件對象的核心,是實(shí)現(xiàn)了特定功能的邏輯單元,其主要內(nèi)容為按照商務(wù)規(guī)則對數(shù)據(jù)進(jìn)行邏輯分析和處理的程序代碼。由于組件實(shí)現(xiàn)代碼是組件的私有部分,因此,必須將實(shí)現(xiàn)代碼與客戶端完全隔離。典型的軟件組件客戶與軟件組件之間的協(xié)作關(guān)系如下圖所示:?
圖1 軟件組件客戶與軟件組件之間的協(xié)作關(guān)系圖?
通過將組件劃分為組件接口對象和實(shí)現(xiàn)代碼兩部分內(nèi)容,使得應(yīng)用組件對象的客戶端可以將組件看成是一個(gè)黑箱(Black Box)。組件開發(fā)人員在組件中編寫完整實(shí)現(xiàn)商務(wù)規(guī)則的代碼并將組件商務(wù)方法的定義以接口形式對組件應(yīng)用對象公開后,組件的客戶就能夠按照接口方法定義的約束條件調(diào)用組件商務(wù)方法來獲取服務(wù)。?
基于軟件的組件對象化技術(shù),獨(dú)立軟件開發(fā)商(ISV)通過集成多個(gè)軟件開發(fā)商的軟件組件產(chǎn)品,能夠以較快地速度開發(fā)出符合客戶需求的應(yīng)用軟件系統(tǒng)產(chǎn)品,縮短了軟件產(chǎn)品從研發(fā)到市場化的周期,降低了軟件客戶投資風(fēng)險(xiǎn)。?
3 應(yīng)用系統(tǒng)構(gòu)建過程中的職責(zé)劃分?
??? 由于研究的技術(shù)領(lǐng)域和發(fā)展方向不同,不同的軟件組織在應(yīng)用系統(tǒng)的開發(fā)過程中分別扮演不同的角色。例如:?
●精通行業(yè)應(yīng)用規(guī)則并且熟練掌握某種程序設(shè)計(jì)語言的軟件組織可以從事軟件組件對象的開發(fā)工作;?
●熟悉服務(wù)器端程序設(shè)計(jì)并且精通系統(tǒng)級的事務(wù)處理、安全性維護(hù)、并發(fā)性控制以及熟練掌握各種類型數(shù)據(jù)庫訪問技術(shù)的軟件組織可以從事軟件組件運(yùn)行環(huán)境的設(shè)計(jì)和開發(fā)工作;?
●熟悉各種類型硬件設(shè)備性能的軟件組織可以從事組件部署和維護(hù)工具的開發(fā)工作。?
為了充分發(fā)揮專業(yè)技術(shù)優(yōu)勢,組件對象的開發(fā)、部署和應(yīng)用的各個(gè)過程都需要不同專業(yè)方向的軟件組織來完成相應(yīng)的職責(zé)。軟件組件對象開發(fā)完成后,組件的應(yīng)用或部署人員須利用部署工具供應(yīng)商提供的部署工具在高端服務(wù)器中為組件對象的運(yùn)行提供合適的運(yùn)行環(huán)境,而運(yùn)行環(huán)境由掌握服務(wù)器端程序設(shè)計(jì)的軟件組織設(shè)計(jì)并開發(fā)。?
由于軟件組織在基于組件對象模型的應(yīng)用系統(tǒng)開發(fā)、部署和維護(hù)等工作中的分工,促進(jìn)了服務(wù)器端軟件組件體系結(jié)構(gòu)規(guī)范的發(fā)展。?
4 服務(wù)器端組件體系結(jié)構(gòu)解決方案
對象管理組織(OMG)、Microsoft和Sun等組織或公司分別針對服務(wù)器端軟件組件模型定義了相應(yīng)的分布式應(yīng)用體系結(jié)構(gòu)規(guī)范:?
●CORBA規(guī)范?
對象管理組織定義的公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,CORBA)規(guī)范定義了分布式應(yīng)用對象間的互操作方式。同時(shí),規(guī)范中基于互聯(lián)網(wǎng)的對象請求代理間互操作協(xié)議(Internet Inter-ORB Protocol,IIOP)定義了分布式對象間的信息交換方式。?
??? 需要注意的是:CORBA規(guī)范只是分布式應(yīng)用對象間交互方式的定義,而不是最終的軟件產(chǎn)品。如果要基于CORBA規(guī)范創(chuàng)建分布式應(yīng)用系統(tǒng),需要采用實(shí)現(xiàn)CORBA規(guī)范的、由Borland、IBM、IONA等公司開發(fā)的如VisiBroker等中間件軟件產(chǎn)品?;谶@些中間件產(chǎn)品,應(yīng)用系統(tǒng)開發(fā)人員可以采用不同的程序設(shè)計(jì)語言開發(fā)分布式應(yīng)用系統(tǒng)的客戶端和服務(wù)實(shí)現(xiàn)對象,并且可以實(shí)現(xiàn)系統(tǒng)的跨平臺應(yīng)用能力。?
??? ●DNA規(guī)范?
Microsoft定義的分布式互聯(lián)網(wǎng)應(yīng)用體系結(jié)構(gòu)(Distributed Internet Architecture,DNA)用于規(guī)范Windows平臺中分布式應(yīng)用對象間的互操作方式。DNA體系結(jié)構(gòu)中包括分布式組件對象模型(DCOM)、微軟事務(wù)服務(wù)(MTS)、微軟消息隊(duì)列(MSMQ)、互聯(lián)網(wǎng)信息服務(wù)器(IIS)、Windwos NT操作系統(tǒng)等應(yīng)用技術(shù)和系統(tǒng)運(yùn)行環(huán)境。基于DCOM模型構(gòu)建的組件化應(yīng)用系統(tǒng)可以在相關(guān)實(shí)現(xiàn)技術(shù)的支持下,動(dòng)態(tài)響應(yīng)客戶端服務(wù)請求。?
??? ●EJB規(guī)范?
Sun公司的Java2平臺企業(yè)版(Java2 Platform Enterprise Edition,J2EE)規(guī)范定義了采用Java語言創(chuàng)建平臺獨(dú)立、具有可移植、能夠響應(yīng)多用戶請求、以服務(wù)器端組件對象模型為核心的應(yīng)用系統(tǒng)構(gòu)建方式。在J2EE規(guī)范中,包括EJB組件對象規(guī)范、JDBC數(shù)據(jù)庫訪問技術(shù)、JSP/Servlet技術(shù)、JavaMail電子郵件處理技術(shù)、JNDI命名和目錄接口技術(shù)、JTA事務(wù)服務(wù)API、JMS消息服務(wù)等。?
??? 以Java虛擬機(jī)(Java Virtual Machine,JVM)環(huán)境為基礎(chǔ),采用J2EE規(guī)范構(gòu)建的應(yīng)用系統(tǒng)不需要考慮軟件系統(tǒng)的運(yùn)行環(huán)境問題。在應(yīng)用系統(tǒng)構(gòu)建過程中,服務(wù)器可以采用高性能的、基于Unix等穩(wěn)定操作系統(tǒng)的高端服務(wù)器,而客戶端可以采用基于Linux和Windows操作系統(tǒng)的低端臺式計(jì)算機(jī)。?
??? 從以上分析可以看出:J2EE規(guī)范作為以Java為程序設(shè)計(jì)語言的應(yīng)用系統(tǒng)構(gòu)建方式解決方案,不僅可以使應(yīng)用系統(tǒng)的構(gòu)成方式更加靈活,而且能夠?qū)υ诓煌\(yùn)行環(huán)境中開發(fā)的遺留(Legacy)系統(tǒng)進(jìn)行良好集成。?
5 EJB組件對象規(guī)范的內(nèi)容?
?? EJB規(guī)范是J2EE分布式應(yīng)用體系結(jié)構(gòu)中的服務(wù)器端應(yīng)用組件對象規(guī)范。?
EJB規(guī)范定義了應(yīng)用系統(tǒng)的服務(wù)器端由EJB組件和組件運(yùn)行的EJB容器構(gòu)成。EJB容器提供組件對象的事務(wù)管理、對象持久化、遠(yuǎn)程訪問控制、服務(wù)器端資源管理和安全性維護(hù)等多種類型的系統(tǒng)服務(wù)。EJB容器軟件由專業(yè)的中間件或者應(yīng)用軟件開發(fā)商開發(fā)。?
按照組件對象模型思想,EJB組件以接口對象的形式向組件對象的客戶提供組件中定義方法的細(xì)節(jié)。組件開發(fā)者依照EJB規(guī)范開發(fā)的EJB組件可以部署在符合EJB規(guī)范的容器中,在運(yùn)行時(shí)通過標(biāo)準(zhǔn)的接口使用EJB容器提供的系統(tǒng)服務(wù)。EJB2.0規(guī)范定義了三種類型的組件對象:?
●會(huì)話類型組件?
會(huì)話(Session Bean)類型組件是不需要被持久化存儲(chǔ)的組件對象,用于實(shí)現(xiàn)數(shù)學(xué)運(yùn)算、邏輯分析等功能。按照組件對象能否在EJB容器中維護(hù)不同組件客戶的狀態(tài)信息,EJB2.0規(guī)范定義了有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種類型的會(huì)話組件。?
●實(shí)體類型組件?
相對會(huì)話類型組件而言,實(shí)體(Entity Bean)類型組件對象是需要進(jìn)行持久化存儲(chǔ)的組件對象。從組件對象構(gòu)成的實(shí)際意義上講,實(shí)體類型組件通常代表系統(tǒng)后臺關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)記錄。按照實(shí)體組件持久性狀態(tài)的維護(hù)對象不同,EJB2.0規(guī)范定義了容器管理持久性(Container-Managed Persistence,CMP)和組件管理持久性(Bean-Managed Persistence,BMP)兩種類型的實(shí)體組件。?
●消息驅(qū)動(dòng)類型組件?
消息驅(qū)動(dòng)(Message-Driven Bean)類型組件是EJB2.0規(guī)范中新定義的服務(wù)器端組件對象類型,用于在EJB服務(wù)器端響應(yīng)基于JMS消息服務(wù)規(guī)范發(fā)送的事件消息。?
按照組件對象的定義思想,EJB組件對象的開發(fā)者不是作為組件對象產(chǎn)品的直接使用者。因此,EJB規(guī)范采用XML部署描述文件的形式將組件對象的類型、構(gòu)成和需求的系統(tǒng)服務(wù)等內(nèi)容通知組件對象的組裝和部署人員以及組件部署的EJB容器。?
6 EJB組件對象模型的技術(shù)優(yōu)勢?
Java平臺根據(jù)軟件組件對象模型,以軟件組件中實(shí)現(xiàn)的商務(wù)功能為基礎(chǔ),定義了企業(yè)應(yīng)用級JavaBean組件(Enterprise JavaBean,EJB)。?
??? EJB組件是部署在EJB容器中的服務(wù)器端可部署(Deployable)類型組件?;贓JB組件對象的可部署能力,組件程序設(shè)計(jì)人員在對商務(wù)對象進(jìn)行系統(tǒng)分析后,根據(jù)特定的商務(wù)規(guī)則創(chuàng)建EJB組件對象后,由組裝和部署人員將EJB組件部署到應(yīng)用服務(wù)器中的EJB容器中。EJB容器(Container)根據(jù)客戶端的服務(wù)請求在EJB容器中動(dòng)態(tài)創(chuàng)建EJB組件對象實(shí)例為客戶提供服務(wù)。?
??? 部署在高性能服務(wù)器中的EJB組件用于進(jìn)行復(fù)雜、大量的數(shù)據(jù)分析和處理,并且依靠應(yīng)用服務(wù)器來提供事務(wù)管理、多用戶訪問的并發(fā)控制及應(yīng)用系統(tǒng)的容錯(cuò)處理等??傮w上講,服務(wù)器端EJB組件對象模型具有如下技術(shù)優(yōu)勢:?
●提高了軟件代碼的可重用性;?
●不同類型的客戶端可以采用多種技術(shù)訪問部署在EJB容器中的組件對象;?
●軟件開發(fā)廠商可以向第三方軟件商購買具有行業(yè)特點(diǎn)或者軟件代碼相對復(fù)雜的EJB組件集成在待開發(fā)系統(tǒng)中,從而節(jié)省了大量的人力和時(shí)間、降低了軟件開發(fā)風(fēng)險(xiǎn);
●將自己不擅長的技術(shù)細(xì)節(jié)封裝成為軟件組件,由其它軟件開發(fā)商開發(fā),從而降低了軟件代碼中發(fā)生錯(cuò)誤的機(jī)會(huì);
??? ●EJB組件用于專門實(shí)現(xiàn)商務(wù)規(guī)則,而由組件部署的EJB容器提供系統(tǒng)級服務(wù),從而降低了組件代碼編寫難度;
??? ●按照J(rèn)2EE規(guī)范對應(yīng)用系統(tǒng)開發(fā)過程中的角色劃分,掌握并熟練應(yīng)用不同技術(shù)的軟件組織能夠發(fā)揮自身的技術(shù)優(yōu)勢,從而構(gòu)建出健壯的應(yīng)用系統(tǒng);?
●在軟件系統(tǒng)維護(hù)過程中,購買的軟件組件可以由作為行業(yè)專家的軟件組件開發(fā)商來維護(hù),提高了應(yīng)用系統(tǒng)維護(hù)效率、降低了維護(hù)成本;
??? ●有效減少應(yīng)用系統(tǒng)開發(fā)過程中的技術(shù)難題,降低了系統(tǒng)構(gòu)建成本。?
7 以EJB組件對象為核心的分布式應(yīng)用系統(tǒng)構(gòu)成方式?
J2EE規(guī)范根據(jù)分布式多層應(yīng)用系統(tǒng)的各個(gè)組成部分在功能上的差別,將整個(gè)應(yīng)用系統(tǒng)劃分成配置在不同類型應(yīng)用服務(wù)器中的邏輯層。常規(guī)意義上的分布式三層/多層體系結(jié)構(gòu)由客戶層、中間層和企業(yè)信息系統(tǒng)層構(gòu)成,其中中間層可細(xì)分為WEB層和業(yè)務(wù)層。在對應(yīng)用系統(tǒng)的組件對象進(jìn)行組裝和部署過程中,需根據(jù)J2EE規(guī)范將不同性質(zhì)和用途的組件對象部署到不同的應(yīng)用系統(tǒng)邏輯層中,如下圖所示:?
圖2 基于J2EE規(guī)范劃分的企業(yè)應(yīng)用系統(tǒng)邏輯層?
●客戶層?
客戶層用于與應(yīng)用系統(tǒng)的用戶進(jìn)行交互以及顯示系統(tǒng)的運(yùn)行結(jié)果??蛻舳说膶?shí)現(xiàn)形式可以是支持HTML、DHTML或者JavaScript的瀏覽器,也可以是不基于瀏覽器的獨(dú)立(Stand Alone)應(yīng)用程序。?
基于瀏覽器的分布式應(yīng)用系統(tǒng)客戶端啟動(dòng)后,從WEB服務(wù)器中下載靜態(tài)或由JSP/Servlet動(dòng)態(tài)生成的HTML頁面。由于瀏覽器可以運(yùn)行在任何應(yīng)用環(huán)境中,應(yīng)用目前成熟的瀏覽器頁面構(gòu)造技術(shù)和WEB容器中的JSP/Servlet組件技術(shù),完全能夠構(gòu)建出符合用戶需求的用戶界面。因此,這種類型的分布式應(yīng)用系統(tǒng)客戶端實(shí)現(xiàn)形式被大多數(shù)J2EE應(yīng)用系統(tǒng)所采用。?
獨(dú)立應(yīng)用程序類型的客戶端是利用Java語言集成化開發(fā)工具(IDE)編寫的、基于JVM運(yùn)行的、具有用戶界面的應(yīng)用程序,在應(yīng)用程序中包含與中間層進(jìn)行數(shù)據(jù)交換的程序代碼。這種類型的客戶端與中間層WEB組件之間的數(shù)據(jù)交換可以采用基于HTTP協(xié)議的XML技術(shù),也可以采用解析JSP組件生成HTML代碼的方式。因此,這種類型的客戶端可以運(yùn)行在手持設(shè)備或汽車電話等移動(dòng)設(shè)備中,其技術(shù)優(yōu)勢在于可以基于RMI/IIOP協(xié)議與其它類型的組件對象或者是遺留系統(tǒng)進(jìn)行集成。
●中間層?
中間層由響應(yīng)客戶端請求的JSP/Servlet組件和進(jìn)行業(yè)務(wù)數(shù)據(jù)處理的EJB組件對象構(gòu)成。通常,將JSP/Servlet組件和其運(yùn)行的WEB容器稱為WEB層、將EJB組件和其運(yùn)行的EJB容器稱為業(yè)務(wù)層。?
J2EE規(guī)范定義的WEB層由JSP組件或者由動(dòng)態(tài)生成HTML頁面的Servlet構(gòu)成。WEB層中的JSP組件能夠動(dòng)態(tài)生成用于構(gòu)造客戶端顯示邏輯的HTML代碼,而Servlet能夠以”請求/響應(yīng)”的方式接收客戶端提出的服務(wù)請求并在接收業(yè)務(wù)層的計(jì)算結(jié)果后動(dòng)態(tài)創(chuàng)建客戶端的顯示邏輯代碼。這些元素在組裝過程中通過打包的方式創(chuàng)建WEB組件。?
業(yè)務(wù)層由實(shí)現(xiàn)特定商務(wù)規(guī)則的EJB組件和為EJB組件提供系統(tǒng)服務(wù)的EJB容器構(gòu)成。EJB組件響應(yīng)客戶端服務(wù)請求并按照商務(wù)規(guī)則對數(shù)據(jù)進(jìn)行處理后,可將處理結(jié)果發(fā)送到企業(yè)信息系統(tǒng)層進(jìn)行存儲(chǔ)并將數(shù)據(jù)處理結(jié)果返回提出服務(wù)請求的客戶端。部署在業(yè)務(wù)層中的EJB組件依賴于EJB容器來提供諸如事務(wù)、生命期、狀態(tài)轉(zhuǎn)換、多線程及資源存儲(chǔ)等系統(tǒng)服務(wù)。?
企業(yè)信息系統(tǒng)層通常由企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)系統(tǒng)、大型機(jī)事務(wù)處理(Mainframe Transaction Processing)系統(tǒng)、關(guān)系數(shù)據(jù)庫系統(tǒng)(RDMS)及其它在創(chuàng)建J2EE分布式應(yīng)用系統(tǒng)之前已有的企業(yè)信息管理軟件系統(tǒng)構(gòu)成,基于J2EE規(guī)范的分布式應(yīng)用系統(tǒng)利用這些軟件系統(tǒng)存儲(chǔ)數(shù)據(jù)資源。由于數(shù)據(jù)存儲(chǔ)對象類型的差異,J2EE規(guī)范定義了JDBC、JNDI、JMS以及JavaIDL等技術(shù),使得應(yīng)用系統(tǒng)的中間層可以從企業(yè)信息系統(tǒng)中獲取數(shù)據(jù)資源以及將應(yīng)用系統(tǒng)產(chǎn)生的數(shù)據(jù)存儲(chǔ)到信息系統(tǒng)中。?
8 結(jié)論?
在早期的如Vax、Cray等類型的大型機(jī)應(yīng)用軟件系統(tǒng)中,多個(gè)客戶端與服務(wù)器直接連接,并發(fā)地向服務(wù)器發(fā)出作業(yè)請求,服務(wù)器按照商務(wù)規(guī)則對客戶端的服務(wù)請求進(jìn)行處理并將結(jié)果保存在本地?cái)?shù)據(jù)庫中。
隨著小型計(jì)算機(jī)性能的提高、軟件行業(yè)分工的細(xì)化,應(yīng)用系統(tǒng)的構(gòu)建方式逐漸以提高服務(wù)器的數(shù)據(jù)分析和處理能力,客戶端在側(cè)重于提供與客戶進(jìn)行交互的圖形用戶界面基礎(chǔ)上,只進(jìn)行簡單的用戶輸入數(shù)據(jù)合法性驗(yàn)證,而獨(dú)立的數(shù)據(jù)庫服務(wù)器用于進(jìn)行穩(wěn)定、高數(shù)據(jù)吞吐效率的數(shù)據(jù)資源管理和服務(wù)。由于這些應(yīng)用系統(tǒng)組成部分的邏輯功能不同,需要不同性能的計(jì)算機(jī)來完成相應(yīng)功能,從而使得軟件系統(tǒng)構(gòu)成實(shí)際意義上的分布式三層/多層應(yīng)用體系結(jié)構(gòu)。
正是根據(jù)增強(qiáng)軟件系統(tǒng)的可移植性、提高應(yīng)用系統(tǒng)對各種訪問模式的兼容性、縮短應(yīng)用系統(tǒng)的開發(fā)周期、最大程度地保護(hù)軟件客戶已有投資等方面的需求,推動(dòng)了作為分布式三層/多層應(yīng)用體系結(jié)構(gòu)核心內(nèi)容的服務(wù)器端組件對象體系結(jié)構(gòu)模型的應(yīng)用和發(fā)展。?
J2EE分布式體系結(jié)構(gòu)規(guī)范以EJB組件對象模型為核心,著力于創(chuàng)建以互聯(lián)網(wǎng)應(yīng)用技術(shù)為基礎(chǔ)的“瘦”客戶端類型的分布式多層軟件系統(tǒng)。EJB組件對象部署在高性能的應(yīng)用服務(wù)器中,依賴于EJB容器提供系統(tǒng)服務(wù),向前響應(yīng)客戶端的服務(wù)請求,向后存儲(chǔ)系統(tǒng)數(shù)據(jù)資源??梢哉f:EJB軟件組件對象模型的定義,促進(jìn)了分布式應(yīng)用技術(shù)的普及和發(fā)展,推動(dòng)了Java語言在網(wǎng)絡(luò)環(huán)境中的應(yīng)用。?
參考文獻(xiàn)?
1 Sun Microsystems Inc. Guide to the Java2 Platform Enterprise Edition. 2001?
2 Ed Roman. Mastering Enterprise JavaBeans(Second Edition). Amazon Press. 2002?
3 Perrone P. J2EE構(gòu)建企業(yè)系統(tǒng)專家級解決方案. 北京:清華大學(xué)出版社,2001?
4 艾拉瑪. J2EE編程指南. 北京:電子工業(yè)出版社,2002?
5 蘇洋. Java程序設(shè)計(jì)實(shí)例教程. 北京:希望電子出版社,2003?