- Java高手真經(jīng)(高級編程卷):Java Web高級開發(fā)技術
- 劉中兵Java研究室編著
- 582字
- 2018-12-29 18:58:43
第3課 EJB快速入門
EJB(Enterprise JavaBean)是Java EE的一部分,它是Java EE分布式開發(fā)中的框架技術。它定義了Java服務器端服務框架的規(guī)范,用以描述一些必需的服務,如事務、安全和名字服務等。因此,EJB提供了分布式企業(yè)開發(fā)的基礎框架,在這個框架中,開發(fā)人員可以進行各種業(yè)務的開發(fā)、部署和訪問。
本課作為EJB企業(yè)開發(fā)技術的第一課,我們首先需要了解EJB,并構建起EJB 3運行服務器環(huán)境和開發(fā)環(huán)境,并在該環(huán)境下開發(fā)第一個HelloWorld應用實例。主要內(nèi)容如下。
● 開始了解EJB:了解EJB的基本概念、特性、體系結構、組件類型、發(fā)展歷史等,對EJB有一個全面整體的了解,為后文的分塊講解做好準備。
● 配置EJB運行環(huán)境——JBoss服務器:選擇JBoss作為EJB運行的服務器,并下載和安裝JBoss,測試該環(huán)境的可用性,為EJB程序的部署做好準備。
● 配置EJB集成開發(fā)環(huán)境——Eclipse+JBoss Tools插件:在Eclipse中安裝JBoss Tools插件,并在該集成環(huán)境下新建JBoss服務器,啟動和測試可用性。
● EJB快速上手——HelloWorld入門實例:在Eclipse中開發(fā)一個Session Bean組件,實現(xiàn)返回歡迎信息的功能,并自動發(fā)布部署到JBoss服務器中,然后編寫Java類或JSP頁面實現(xiàn)對EJB服務的訪問。
本課的內(nèi)容如圖3-1所示,左側方框內(nèi)構建的是Eclipse+JBoss+JBoss Tools的運行環(huán)境和集成開發(fā)環(huán)境,左側上方是基于該環(huán)境開發(fā)并部署的HelloWorld服務端,它通過JNDI暴露服務的地址,可以被Java、JSP和Servlet等客戶端程序所訪問。

圖3-1 內(nèi)容結構圖
通過本節(jié)課的學習,你將能夠搭建起EJB運行和開發(fā)的環(huán)境,并能夠熟練掌握EJB程序的開發(fā)、部署和訪問的全過程。
3.1 開始了解EJB
首先我們從以下幾個方面來了解EJB。
● EJB基本概念:EJB、EJB容器和EJB服務器。
● EJB基本特性。
● EJB體系結構。
● EJB組件的3種類型:會話Bean、實體Bean、消息驅動Bean。
● EJB發(fā)展歷史:EJB 1.0、EJB 1.1、EJB 2.0、EJB 2.1、EJB 3.0。
● EJB 3.0新特性。
3.1.1 EJB基本概念
EJB(Enterprise JavaBean)是Java EE的一部分,定義了一個用于開發(fā)基于組件的企業(yè)多重應用程序的標準。其特點包括網(wǎng)絡服務支持和核心開發(fā)工具(SDK)。從技術上來說,EJB不是一種產(chǎn)品,而是Sun在Java EE中指定的一套規(guī)范,該規(guī)范規(guī)定了一系列的API,用來實現(xiàn)把EJB概念轉換成EJB產(chǎn)品。
在開始研究EJB之前,我們先來了解EJB中的幾個基本概念: EJB、EJB容器及EJB服務器。
1.EJB
在Java EE里,Enterprise JavaBean稱為企業(yè)JavaBean,即它是企業(yè)級的JavaBean組件。Enterprise JavaBean和JavaBean都是Java的組件模型,但是Enterprise JavaBean組件模型和JavaBean組件模型有本質的不同:
● JavaBean規(guī)范定義了事件和屬性等特征,其重點是允許開發(fā)者在開發(fā)工具中可視化地操縱組件。JavaBean規(guī)范詳細地解釋了組件間事件登記、傳遞、識別和屬性使用、定制和持久化的應用編程接口和語意。
● Enterprise JavaBean規(guī)范詳細地定義了一個可以移植性地部署Java組件的服務框架模型。其中并沒提及事件,因為Enterprise JavaBean通常不發(fā)送和接受事件。同樣它也沒有提及屬性——屬性定制并不是在開發(fā)時進行的,而是在運行時(實際上是在部署時)通過一個部署描述符來描述的。
它們二者都是組件模型規(guī)范,但是前者說明了開發(fā)工具中應用程序組裝的問題,而后者則側重于部署組件的服務框架的細節(jié)。區(qū)別是當你使用JavaBean創(chuàng)建服務器應用時,你還得設計整個的服務框架,而Enterprise JavaBean框架則是現(xiàn)成的,你只需遵守它的API即可。對于復雜的服務器端應用程序,顯然使用Enterprise JavaBean比重新開發(fā)更簡單。
注意
不要錯誤地認為JavaBean用于客戶端的開發(fā),Enterprise JavaBean用于服務器端的開發(fā)。
2.EJB容器
EJB類的對象駐留在EJB容器內(nèi),EJB容器是向開發(fā)者提供各類服務的環(huán)境。容器根據(jù)具體的配置可以負責處理安全、事務和實例管理。由于開發(fā)人員無須再親自完成這些任務,因此大大節(jié)約了開發(fā)時間。
J2EE服務器和EJB容器這兩個概念之間存在顯著差別,EJB容器可能屬于J2EE服務器的一部分,但卻并不一定是必需的組成部分。在作為J2EE服務器組成部分的情況下,EJB客戶程序通常會采取Servlet或者JSP的形式。不過,由于取消了對J2EE Web層的依附性,標準的EJB容器服務可以接受多種類型的客戶程序、用Java或其他各種語言編寫的應用程序所發(fā)出的請求。同EJB容器的通信才是客戶操作的先決條件。
3.EJB服務器
EJB容器是管理一個或多個EJB類/實例的抽象,它通過規(guī)范中定義的接口使EJB類訪問所需的服務。容器由EJB服務器來提供,一旦接口標準化了,廠商就可能提供可以在任何兼容的EJB服務器上運行的容器。
EJB服務器是管理EJB容器的高端進程或應用程序,并提供對系統(tǒng)服務的訪問。EJB服務器也可以提供廠商自己的特性,如優(yōu)化的數(shù)據(jù)庫訪問接口,對其他服務(如CORBA服務)的訪問,對SSL 3.0的支持等。一個EJB服務器必須提供對可訪問JNDI的名字服務和事務服務的支持。一些可能的EJB服務器的例子如下:
● 數(shù)據(jù)庫服務器。
● 應用服務器。
● 中間件服務器。
容器廠商也可以在容器或服務器中提供額外服務的接口。
3.1.2 EJB基本特性
EJB是專門為服務器端組件市場制定的規(guī)范。EJB是一種讓開發(fā)者快速開發(fā)大規(guī)模企業(yè)應用的組件體系結構,它讓應用開發(fā)者在不花費任何代價的前提下,為中間件提供復雜的企業(yè)級特性。通過應用EJB,你可以全身心地投入到解決實際問題的應用軟件的開發(fā)中,而不用花費精力處理分布式服務器端系統(tǒng)所帶來的底層問題。你可以放心地將EJB認為是大多數(shù)企業(yè)級應用所需的通用功能組件。EJB模型可以讓你避免這些底層功能的重復開發(fā),從而提高效率。
EJB是Sun的服務器端組件模型,最大的用處是部署分布式應用程序。它具有以下特性:
● EJB增加了與其他系統(tǒng)相兼容的靈活性。對于現(xiàn)有的應用系統(tǒng),不需要從頭開發(fā)企業(yè)級的應用系統(tǒng),在不廢棄現(xiàn)有的企業(yè)級應用系統(tǒng)的前提下,將系統(tǒng)升級到EJB模式。
● EJB還支持“即插即用”的企業(yè)級特性。EJB這個中間件構造了可擴展的多層體系結構,應用服務器潛在地為運行在其中的組件提供事務處理、連續(xù)性、安全、組件生存期管理、線程等服務。
● EJB是跨平臺和跨廠商的。這就出現(xiàn)了一個可以綜合所有廠家產(chǎn)品的通用分布式組件體系結構標準,EJB市場競爭的激烈可以使開發(fā)商將注意力集中在最好的應用的開發(fā)上。
3.1.3 EJB體系結構
EJB分布式應用程序是基于對象組件模型的,底層的事務服務用了API技術。EJB技術簡化了用Java語言編寫的企業(yè)應用系統(tǒng)的開發(fā)和配置。EJB技術定義了一組可重用的組件:Enterprise JavaBean。你可以利用這些組件,像搭積木一樣地建立你的分布式應用程序。當你把代碼寫好之后,這些組件就會被組合到特定的文件中去。每個文件有一個或多個Enterprise JavaBean,再加上一些配置參數(shù),最后,這些Enterprise JavaBean被配置到一個裝了EJB容器的平臺上。客戶能夠通過這些Bean的home接口,定位到某個Bean,并產(chǎn)生這個Bean的一個實例。這樣,客戶就能夠調(diào)用Bean的應用方法和遠程接口了。
(1)EJB服務器作為容器和底層平臺的橋梁管理著EJB容器和函數(shù)。它向EJB容器提供了訪問系統(tǒng)服務的能力。例如數(shù)據(jù)庫的管理和事務的管理,或者對于其他的Enterprise的應用服務器。所有的EJB實例都運行在EJB容器中。
(2)EJB容器提供了系統(tǒng)級的服務,控制了EJB的生命周期。EJB中有一些易于使用的管理工具,內(nèi)容如下。
● 安全(Security):配置描述器定義了客戶能夠訪問的不同的應用函數(shù)。容器通過只允許授權的客戶訪問這些函數(shù)來達到這個效果。
● 遠程鏈接(Remote Connectivity):容器為遠程鏈接管理著底層的通信issues,而且對Enterprise JavaBean的開發(fā)者和客戶都隱藏了通信細節(jié)。EJB的開發(fā)者在編寫應用方法的時候,就像是在調(diào)用本地的平臺一樣。客戶也不清楚他們調(diào)用的方法可能是在遠程被處理的。
● 生命周期管理(Life Cycle Management):客戶簡單地創(chuàng)建一個Enterprise JavaBean的實例,并通常取消一個實例。而容器管理著Enterprise JavaBean的實例,使Enterprise JavaBean實現(xiàn)最大的效能和內(nèi)存利用率。容器能夠這樣來激活和使Enterprise JavaBean失效,保持眾多客戶共享的實例池。
● 事務管理(Transaction Management):配置描述器定義了Enterprise JavaBean的事務處理的需求。容器管理著那些管理分布式事務處理的復雜的issues,這些事務可能要在不同的平臺之間更新數(shù)據(jù)庫。容器使這些事務之間互相獨立,互不干擾,并保證所有的更新數(shù)據(jù)庫都是成功發(fā)生的,否則就回滾到事務處理之前的狀態(tài)。
(3)EJB組件是基于分布式事務處理的企業(yè)級應用程序的組件。所有的EJB都有如下的特點:
● EJB包含了處理企業(yè)數(shù)據(jù)的應用邏輯。
● 定義了EJB的客戶界面。這樣的界面不受容器和服務器的影響。于是,當一個EJB被集合到一個應用程序中去時,不用更改代碼和重新編譯。
EJB能夠被定制為各種系統(tǒng)級的服務,例如安全和事務處理的特性,都不是屬于EJB類的,而是由配置和組裝應用程序的工具來實現(xiàn)的。
3.1.4 EJB組件的3種類型
EJB組件對象分為3種類型:Session Bean、Entity Bean、Message Driven Bean。根據(jù)所需要的Bean行為,決定所采用的Bean類型。下面來看各種類型的作用和使用場景。
1.Session Bean——會話Bean
Session Bean用于實現(xiàn)業(yè)務邏輯,它可以是有狀態(tài)的,也可以是無狀態(tài)的。每當客戶端請求時,容器就會選擇一個Session Bean來為客戶端服務。Session Bean可以直接訪問數(shù)據(jù)庫,但更多時候,它會通過Entity Bean來實現(xiàn)數(shù)據(jù)訪問。
會話Bean還可以進一步細分為無狀態(tài)會話Bean和有狀態(tài)會話Bean。
1)無狀態(tài)會話Bean
無狀態(tài)會話Bean并不知道客戶或者涉及請求的上下文,從而使其成為單一請求/回應應用的理想工具。比如,一個用戶在Google中搜索關鍵字“Java”,客戶應用程序聯(lián)系一個無狀態(tài)會話Bean并給其傳遞搜索參數(shù),然后這個Bean訪問數(shù)據(jù)庫,選擇匹配檢索條件的條目,并把記錄傳回客戶程序。通信完成之后,Bean不保留交互信息。因此,多個客戶程序可以同時訪問無狀態(tài)會話Bean卻不會相互影響。
2)有狀態(tài)會話Bean
相反,有狀態(tài)會話Bean會把請求同特定的客戶聯(lián)系起來,在客戶和Bean之間建立一種一對一的關系。購物車Bean就是一個特殊的實例:用戶往購物車里加入商品,輸入地址信息然后下定單,購物車Bean維持狀態(tài),因而它知道所有這些變量都關聯(lián)某一特定客戶。
2.Entity Bean——實體Bean
實體Bean表示會話終止之后持久存在的業(yè)務對象或者數(shù)據(jù)。它們通常作為數(shù)據(jù)庫中的單一記錄存在,當然,其存儲形式也可能采用其他媒介,比如文件等。一個對象就表示一個用戶,有名字、聯(lián)系方式等,這些參數(shù)代表了實體Bean的用途。作為持久性最本質的內(nèi)涵之一,實體Bean的唯一標識或者主鍵起到了識別和檢索正確對象信息的作用。實體Bean需要主鍵作為“輔助類”封裝對象的唯一標識符。
Entity Bean是域模型對象,用于實現(xiàn)O/R映射,負責將數(shù)據(jù)庫中的表記錄映射為內(nèi)存中的Entity對象。事實上,創(chuàng)建一個Entity Bean對象相當于新建一條記錄,刪除一個Entity Bean會同時從數(shù)據(jù)庫中刪除對應記錄,當修改一個Entity Bean時,容器會自動將Entity Bean的狀態(tài)和數(shù)據(jù)庫同步。
注意
實體Bean是EJB 1.x和EJB 2.x中的組件,在EJB 3.x中,已經(jīng)被JPA所代替。
3.Message-Driven Bean——消息驅動Bean
以上的兩種Bean類型以同步方式為EJB客戶提供服務。客戶發(fā)出請求然后等待Bean發(fā)回結果。消息驅動Bean避免了這一可能的瓶頸問題。采用Java消息服務JMS(Java Messaging Service),客戶程序可以產(chǎn)生一個消息并把消息發(fā)布給消息隊列。消息驅動Bean隨之采用或者檢索消息執(zhí)行其內(nèi)容。這種事件或者數(shù)據(jù)的通信就成為異步形式;客戶或者Bean都無須依賴對方的直接響應了。
比如,北京的某一個銀行使用一種應用程序發(fā)布最新的匯率消息。這時,部署在上海的一個外部交易Bean從消息隊列中獲取這一消息,然后更新數(shù)據(jù)庫中的有關記錄。在理想的情況下,消息驅動Bean會把信息傳遞給處理數(shù)據(jù)庫事務的實體Bean。這樣,每一種Bean把它不能處理的任務轉發(fā)從而創(chuàng)建出一種真正的分布式組件結構。
3.1.5 EJB發(fā)展歷史
1997年4月12日,Sun發(fā)布了一項為企業(yè)環(huán)境開發(fā)Java平臺的創(chuàng)新成果。使用開放式的Java Community Process,Sun促進了一組標準的Java擴展的開發(fā),稱為Enterprise Java API。這些應用程序編程接口(API)為各種各樣的中間件的實現(xiàn)提供了不依賴供應商的編程接口。Enterprise Java API的要點是Enterprise JavaBean API,后者為Java應用程序服務器定義了一個服務器端組件模型,以及一個不依賴供應商的編程接口。
Java EE為Enterprise JavaBean技術提供了工作環(huán)境。事實上,Sun把若干項軟件技術都設想為這樣的構件塊,它們將使大型企業(yè)能夠把以任務為關鍵的業(yè)務系統(tǒng)移植到Java環(huán)境中,而Enterprise JavaBean技術不過是這些技術之一。EJB組件是按它們自己的規(guī)范定義的,但EJB技術并不是一項獨立的技術。它建立在其他的Java技術之上,這些技術由Sun和其他IT公司聯(lián)合規(guī)定,它們一起提供了這個框架的內(nèi)容,該框架就稱為Java 2 Platform,Enterprise Edition。
Java EE中包括以下技術。
● EJB(Enterprise JavaBeans):Java EE中間層,完成商業(yè)邏輯。
● JMS(Java Message Service):Java EE的異步消息隊列。
● JNDI(Java Naming and Directory Interface):Java EE的名字查找API,獨立于目錄服務器。
● JCA(Java Connector Architecture):Java EE用于連接異種數(shù)據(jù)源的API。
● JTS(Java Transaction Service):Java EE用于處理交易的API。
● JTA(Java Transaction API):Java事務API。
● RMI/IIOP(Java Remote Method Invocation):Java EE的分布式對象的通信API,提供了和CORBA交互的能力。
● JPA(Java Persistence API):Java持久化API。
● JDBC(Java Database Connection):Java EE數(shù)據(jù)庫訪問。
● IDL(Java Interface Definition Language):Java接口定義語言。
以上Java EE框架中的技術,并不是每項技術都依賴于其他技術。單獨的規(guī)范文檔指出每項技術的相關性。例如,Enterprise JavaBean規(guī)范1.0發(fā)行版就指明了在定位各個組件時與JNDI的相關性,以及在編程中啟動和停止事務處理時與JTA的相關性。
EJB規(guī)范的第一版以初稿形式于1997年12月公布,并于1998年3月作為1.0版發(fā)行。到現(xiàn)在為止,EJB已經(jīng)成功地發(fā)布到了EJB 3.0版本了。每一次發(fā)布都會具有不同的特性。下面我們簡單回顧一下EJB的發(fā)展歷史。
1)EJB 1.0
最初的版本1.0開始支持有狀態(tài)和無狀態(tài)的服務器對象(稱為會話Bean),以及可選支持持久化域對象(稱為實體Bean)。在可移植性方面,EJB通過提供可移植性和遠程特性的專門遠程接口達到訪問的目的,但是受到了遠程基礎結構和按值傳遞的語義的開銷的影響。
2)EJB 1.1
其后的版本1.1要求廠商支持實體Bean,并且引入XML部署描述文件來替換存儲在專門的串行化類文件中的數(shù)據(jù)。
3)EJB 2.0
EJB 2.0通過引入本地接口彌補遠程接口造成的開銷和按值傳遞的缺陷。只有運行在Java EE容器內(nèi)的客戶才能通過其本地接口訪問EJB,但是按引用傳遞的方法調(diào)用允許組件之間更加有效地進行交換操作。EJB 2.0還引入了新型的EJB消息驅動Bean(Message-Drive Bean,MDB),能夠參與異步消息系統(tǒng)。實體Bean得到了容器管理的關系的支持,允許Bean的開發(fā)者聲明式地指定由EJB容器管理的實體Bean之間的持久化關系。另外還引入了EJB查詢語言EJB QL,它使開發(fā)者具有了使用類似于SQL那樣的語言來查詢實體Bean實例的功能。
4)EJB 2.1
EJB 2.1添加了Web服務的支持,允許會話Bean暴露端點接口,添加了允許按照指定的時間或者時間間隔調(diào)用EJB的計時器服務。EJB 2.1還提供了擴展EJB QL的功能,并且引入XML Schema來替換定義了ejb-jar.xml部署描述文件的DTD。
5)EJB 3.0
EJB 3.0最重要的改動是實體Bean被替換為POJO,現(xiàn)在被稱為實體,可以運行在EJB容器的外部,因此在實體類本身中不需要專門的接口或者EJB專有的代碼。會話Bean不再需要主接口或者EJB專有的組件接口。在邏輯上它們?nèi)匀恢С诌h程和非遠程接口。這兩個改動和很多其他改動都符合EJB 3.0以簡化的開發(fā)模型為中心的新的設計理念。
從以上的5個版本的發(fā)布可以看出,各個版本分別為EJB注入了不同的功能。
● EJB 1.0:會話Bean(有狀態(tài)和無狀態(tài))、實體Bean。
● EJB 1.1:XML部署描述符。
● EJB 2.0:消息驅動Bean(支持JMS)、EJB查詢語言EJB QL。
● EJB 2.1:支持Web服務、計時器服務。
● EJB 3.0:簡化開發(fā)模型。
以上的各個關鍵字涵蓋了EJB的主體功能和技術特性,本書將以最新的EJB 3.0為主進行講解,后面的章節(jié)也將循序漸進地講解各種技術的開發(fā)應用過程。
3.1.6 EJB 3.0新特性
EJB技術是服務器端企業(yè)開發(fā)的標準。與Java本身一樣,EJB改變了開發(fā)的方式并且激發(fā)了很多創(chuàng)新。EJB 3.0作為最新的版本,更具有下面顯而易見的特性。
1)簡單易用
EJB 3.0可能是最簡單的服務器端開發(fā)平臺。最值得注意的是POJO程序設計、使用注解而少用冗長的XML、大量使用有意義的默認值,以及JPA。雖然EJB服務的數(shù)量眾多,但是會發(fā)現(xiàn)它們非常直觀。在很大程度上,EJB 3.0具有實用的外觀并且不要求開發(fā)人員了解錯綜復雜的理論。實際上,大多數(shù)EJB服務的目的都是使開發(fā)人員脫離這種思維模式,以便集中精力完成工作。
2)方便集成
EJB 3.0提供服務器解決方案的各種集成方案,包括持久化、消息、輕量型計劃、遠程處理、Web服務、依賴注入(Dependency Injection,DI)和攔截器。因此,開發(fā)人員不必花費很多時間尋找第三方工具并將其集成到應用程序中。此外,EJB 3.0提供與其他Java EE技術的無縫集成,比如JDBC、JavaMail、Java事務API(Java Transaction API,JTA)、Java消息服務(Java Messaging Service,JMS)、Java驗證和授權服務(Java Authentication and Authorization Service,JAAS)、Java命名和目錄接口(Java Naming and Directory Interface,JNDI)、Java遠程方法調(diào)用(Java Remote Method Invocation,RMI)等。EJB也保證與表現(xiàn)層技術的無縫集成,比如Java Server Page(JSP)、Servlet、Java Server Face(JSF)和Swing。
3)開放的Java EE標準
EJB是Java EE標準的關鍵部分。EJB 3.0有開放的、公共的API規(guī)范,組織機構鼓勵使用它創(chuàng)建容器或持久化提供器實現(xiàn)。EJB 3.0標準是Java Community Process(JCP)開發(fā)的,開放標準使更多的廠商支持EJB 3.0,這就意味著不必依賴專有的解決方案。
4)廣泛的廠商支持
EJB被數(shù)量眾多的各種各樣的獨立機構支持,包括技術領域中最大、最受尊重的和財力最雄厚的大公司,比如Oracle和IBM,以及充滿熱情和活力的開源組織,比如JBoss和Geronimo。
廣泛的廠商支持帶來3大重要優(yōu)勢。首先,我們不會受到個別公司或組織的興衰的影響。其次,大量人員的長期投入使這種技術盡可能保持競爭力。從本質上講,在這個充滿競爭的時代,可以充分利用Java和Java以外的各種技術的優(yōu)勢。另外,廠商在過去的相互競爭中提供了具有附加值的非標準特性。所有這些因素讓EJB繼續(xù)健康向前發(fā)展。
5)穩(wěn)定的系統(tǒng)基礎
雖然EJB 3.0是開創(chuàng)性的一步,但是大多數(shù)應用程序服務器實現(xiàn)仍然受益于相對穩(wěn)定的代碼基礎。長期以來,這些代碼基礎經(jīng)受了一些要求最為苛刻的企業(yè)環(huán)境的考驗。大多數(shù)持久化解決方案(比如JDO、Hibernate和TopLink)也是穩(wěn)定的產(chǎn)品,在很多任務關鍵型的產(chǎn)品型環(huán)境中使用過。這就是說,雖然EJB 3.0非常新,但是我們可以期望較快地得到穩(wěn)定的實現(xiàn)。此外,由于基于標準的開發(fā)的本質,廠商一般會重視EJB 3.0容器實現(xiàn)的質量。在某種意義上,它有利于保證內(nèi)在的實現(xiàn)質量。
6)易于集群、負載平衡和故障轉移
大多數(shù)應用程序服務器廠商增加的特性對集群、負載平衡和故障轉移提供了有力的支持。歷史證明,EJB應用程序服務器支持一些最大型的支持高性能計算(High-Performance Computing,HPC)的服務器集群環(huán)境。更重要的是,不必修改代碼,不需要集成第三方工具,通過相對簡單的配置(在創(chuàng)建硬件集群的固有工作之外),我們就可以利用這樣的支持。這就是說,如果有需要,我們可以依靠硬件集群使用EJB3.0擴展我們的應用程序。
- 基于粒計算模型的圖像處理
- 精通軟件性能測試與LoadRunner實戰(zhàn)(第2版)
- Access 2010數(shù)據(jù)庫基礎與應用項目式教程(第3版)
- Visual Basic程序設計習題解答與上機指導
- 青少年學Python(第1冊)
- Scala程序員面試算法寶典
- Android系統(tǒng)原理及開發(fā)要點詳解
- PySpark Cookbook
- Python算法詳解
- Java程序員面試筆試寶典(第2版)
- Python 3.7從入門到精通(視頻教學版)
- Java并發(fā)編程之美
- Hadoop大數(shù)據(jù)分析技術
- C++從入門到精通(第6版)
- OpenCV Android開發(fā)實戰(zhàn)