官术网_书友最值得收藏!

1.2 為什么需要Java EE

1.2.1 企業(yè)級(jí)應(yīng)用特征

Java EE是為了滿足企業(yè)級(jí)應(yīng)用開發(fā)而推出的。大部分讀者可能都開發(fā)過(guò)應(yīng)用程序,例如老師布置的作業(yè)或一些小的工具軟件,但是這些應(yīng)用程序與企業(yè)級(jí)應(yīng)用程序有著本質(zhì)的區(qū)別。企業(yè)級(jí)應(yīng)用并不是特指為企業(yè)開發(fā)的應(yīng)用軟件,而是泛指那些為大型組織部門創(chuàng)建的、為大量用戶提供連續(xù)服務(wù)的應(yīng)用程序。如網(wǎng)上電子銀行就是一個(gè)典型的企業(yè)應(yīng)用。與常見(jiàn)的應(yīng)用程序相比,企業(yè)級(jí)應(yīng)用一般具有以下特點(diǎn)。

(1)多用戶。企業(yè)級(jí)應(yīng)用通常需要服務(wù)大量用戶群體,少則是一個(gè)單位或組織內(nèi)的幾十名員工,多則是數(shù)以億計(jì)的社會(huì)人群。

(2)分布式。企業(yè)級(jí)應(yīng)用程序通常不是運(yùn)行在某個(gè)單獨(dú)的PC上,而是通過(guò)局域網(wǎng)運(yùn)行在一個(gè)組織內(nèi)部,或通過(guò)Internet連接分布在世界各地的部門或用戶。

(3)連續(xù)性。企業(yè)級(jí)應(yīng)用通常需要24×7連續(xù)不停的運(yùn)轉(zhuǎn),即使是短暫的服務(wù)中斷也可能是無(wú)法接受的,例如鐵路調(diào)度系統(tǒng)、電子商務(wù)網(wǎng)站等。

(4)多變性。社會(huì)信息瞬息萬(wàn)變,企業(yè)組織必須不斷地改變業(yè)務(wù)規(guī)則來(lái)適應(yīng)社會(huì)信息的高速變化,相應(yīng)地,對(duì)應(yīng)用程序也不斷提出新的需求。企業(yè)級(jí)應(yīng)用程序必須具備能力來(lái)及時(shí)適應(yīng)需求的改變,同時(shí)又盡可能地減少資金的投入。

(5)可擴(kuò)展性。在網(wǎng)絡(luò)環(huán)境內(nèi),應(yīng)用的潛在用戶可能成百上千,企業(yè)級(jí)應(yīng)用除了要考慮能夠更加有效地利用企業(yè)不斷增長(zhǎng)的信息資源外,還要充分考慮用戶群體的膨脹給應(yīng)用帶來(lái)的性能上的擴(kuò)展需求。

(6)安全性。實(shí)現(xiàn)應(yīng)用系統(tǒng)的正常操作和運(yùn)轉(zhuǎn),對(duì)于企業(yè)的成功來(lái)說(shuō)至關(guān)重要。但僅僅做到這一點(diǎn)還不夠,還必須保證企業(yè)信息的安全和系統(tǒng)運(yùn)行的可靠性。

(7)集成化。企業(yè)應(yīng)用除了滿足自身的需求外,還經(jīng)常需要與其他信息系統(tǒng)進(jìn)行交互對(duì)接。例如一個(gè)電子商務(wù)網(wǎng)站通常需要與物流信息系統(tǒng)和電子支付系統(tǒng)進(jìn)行交互。

:Java EE是專為解決企業(yè)級(jí)應(yīng)用開發(fā)提出的,牢記企業(yè)應(yīng)用的上述特性是深入理解和靈活運(yùn)用Java EE開發(fā)技術(shù)的前提和基礎(chǔ)。

1.2.2 企業(yè)級(jí)應(yīng)用架構(gòu)體系

應(yīng)用程序的體系結(jié)構(gòu)是指應(yīng)用程序內(nèi)部各組件間的組織方式。企業(yè)級(jí)應(yīng)用程序的體系結(jié)構(gòu)的設(shè)計(jì)經(jīng)歷了從兩層結(jié)構(gòu)到三層結(jié)構(gòu)、再到多層結(jié)構(gòu)的演變過(guò)程。

1.兩層體系結(jié)構(gòu)應(yīng)用程序

如圖1-1所示,兩層體系結(jié)構(gòu)應(yīng)用程序分為客戶層(Client)和服務(wù)器層(Server),因此又稱為C/S模式。在兩層體系結(jié)構(gòu)中,客戶層的客戶端程序負(fù)責(zé)實(shí)現(xiàn)人機(jī)交互、應(yīng)用邏輯、數(shù)據(jù)訪問(wèn)等職能;服務(wù)器層由數(shù)據(jù)庫(kù)服務(wù)器來(lái)實(shí)現(xiàn),唯一職能是提供數(shù)據(jù)服務(wù)。

圖1-1 兩層體系結(jié)構(gòu)應(yīng)用程序

這種體系結(jié)構(gòu)應(yīng)用程序有以下缺點(diǎn)。

(1)安全性低。客戶端程序與數(shù)據(jù)庫(kù)服務(wù)器直接連接,非法用戶容易通過(guò)客戶端程序侵入數(shù)據(jù)庫(kù),造成數(shù)據(jù)損失。

(2)部署困難。集中在客戶端的應(yīng)用邏輯導(dǎo)致客戶端程序肥大,而且隨著業(yè)務(wù)規(guī)則的不斷變化,需要不斷更新客戶端程序,大大增加了程序部署工作量。

(3)耗費(fèi)系統(tǒng)資源。每個(gè)客戶端程序都要直接連到數(shù)據(jù)庫(kù)服務(wù)器,使服務(wù)器為每個(gè)客戶端建立連接而消耗大量寶貴的服務(wù)器資源,導(dǎo)致系統(tǒng)性能下降。

2.三層體系結(jié)構(gòu)應(yīng)用程序

為了解決兩層體系結(jié)構(gòu)應(yīng)用程序帶來(lái)的問(wèn)題,軟件開發(fā)領(lǐng)域又提出三層體系結(jié)構(gòu)應(yīng)用程序,在兩層體系結(jié)構(gòu)應(yīng)用程序的客戶層與服務(wù)器層之間又添加了一個(gè)第三層——應(yīng)用服務(wù)器層。這樣應(yīng)用程序共分為客戶層、應(yīng)用服務(wù)器層和數(shù)據(jù)服務(wù)器層三個(gè)層次,如圖1-2所示。與兩層體系結(jié)構(gòu)應(yīng)用程序相比,三層體系結(jié)構(gòu)應(yīng)用程序的客戶層功能大大減弱,只用來(lái)實(shí)現(xiàn)人機(jī)交互,原來(lái)由客戶端實(shí)現(xiàn)的應(yīng)用邏輯、數(shù)據(jù)訪問(wèn)職能都遷移到應(yīng)用服務(wù)器層上來(lái)實(shí)現(xiàn),因此客戶層通常被稱做“瘦客戶層”。數(shù)據(jù)服務(wù)層仍舊僅提供數(shù)據(jù)信息服務(wù)。由于客戶層應(yīng)用程序通常是由一個(gè)通用的瀏覽器(Browser)程序來(lái)實(shí)現(xiàn)的,因此這種體系結(jié)構(gòu)又被稱做B/S模式或“瘦客戶機(jī)”模式。應(yīng)用服務(wù)器層是位于客戶層與數(shù)據(jù)服務(wù)器層中間的一層,因此應(yīng)用服務(wù)器被稱做“中間件服務(wù)器”或“中間件”,應(yīng)用服務(wù)器層又被稱做“中間件服務(wù)器層”。

圖1-2 三層體系結(jié)構(gòu)應(yīng)用程序

與兩層體系結(jié)構(gòu)的應(yīng)用程序相比,三層體系結(jié)構(gòu)的應(yīng)用程序具有以下優(yōu)點(diǎn)。

(1)安全性高。中間件服務(wù)器層隔離了客戶端程序?qū)?shù)據(jù)服務(wù)器的直接訪問(wèn),保護(hù)了數(shù)據(jù)信息的安全。

(2)易維護(hù)。由于業(yè)務(wù)邏輯在中間件服務(wù)器上,當(dāng)業(yè)務(wù)規(guī)則變化后,客戶端程序基本不做改動(dòng),只需要升級(jí)應(yīng)用服務(wù)器層的程序即可。

(3)快速響應(yīng)。通過(guò)中間件服務(wù)器層的負(fù)載均衡以及緩存數(shù)據(jù)能力,可以大大提高對(duì)客戶端的響應(yīng)速度。

(4)系統(tǒng)擴(kuò)展靈活。基于三層分布體系的應(yīng)用系統(tǒng),可以通過(guò)在應(yīng)用服務(wù)器部署新的程序組件來(lái)擴(kuò)展系統(tǒng)規(guī)模;當(dāng)系統(tǒng)性能降低時(shí),可以在中間件服務(wù)器層部署更多的應(yīng)用服務(wù)器來(lái)提升系統(tǒng)性能,縮短客戶端的響應(yīng)。

3.多層體系結(jié)構(gòu)應(yīng)用程序

可以將中間件服務(wù)器層按照程序應(yīng)用邏輯進(jìn)一步劃分為若干個(gè)子層,這樣就形成了多層體系結(jié)構(gòu)的應(yīng)用程序。多層體系結(jié)構(gòu)應(yīng)用程序與三層體系結(jié)構(gòu)類似,這里不再贅述。在有些文獻(xiàn)中也將三層以及三層以上體系結(jié)構(gòu)應(yīng)用程序統(tǒng)稱為多層體系結(jié)構(gòu)應(yīng)用程序。

為了滿足開發(fā)多層體系結(jié)構(gòu)的企業(yè)級(jí)應(yīng)用的需求,Sun公司在早期的J2SE基礎(chǔ)上,針對(duì)企業(yè)級(jí)應(yīng)用的各種需求提出了Java EE。

主站蜘蛛池模板: 澄城县| 梅河口市| 新绛县| 胶州市| 金湖县| 班玛县| 金沙县| 台前县| 屯昌县| 漯河市| 新宾| 皋兰县| 嘉禾县| 辽阳县| 青海省| 阳江市| 浦城县| 邛崃市| 孝义市| 大田县| 江安县| 康保县| 独山县| 福清市| 罗源县| 山东省| 洞口县| SHOW| 来安县| 偏关县| 虞城县| 会泽县| 曲靖市| 花垣县| 巴中市| 察雅县| 泾川县| 八宿县| 汕尾市| 武城县| 锡林浩特市|