?? websphere快速入門(4).txt
字號(hào):
作者:easyinfonet
email: easyinfonet@sina.com.cn
日期:2001-2-16 11:22:45
2.3 Web應(yīng)用編程模型
Web應(yīng)用是這樣的應(yīng)用系統(tǒng),它利用Web客戶(如Web瀏覽器)、Web服務(wù)器和標(biāo)準(zhǔn)的Internet協(xié)議。通常,Web應(yīng)用也能利用來(lái)自外部非Web服務(wù)的應(yīng)用系統(tǒng)和數(shù)據(jù)。Web應(yīng)用編程模型定義了Web應(yīng)用拓?fù)浣Y(jié)構(gòu)以及使用框架提供的服務(wù)來(lái)設(shè)計(jì)Web應(yīng)用的模型。
圖2-3:Web應(yīng)用的拓?fù)浣Y(jié)構(gòu)
圖2-3顯示了Web應(yīng)用的拓?fù)浣Y(jié)構(gòu)(包括主要的元素)。值得注意的是,Web應(yīng)用服務(wù)器和外部服務(wù)是不同邏輯層,它們可能運(yùn)行在同一臺(tái)機(jī)器上。另外,Web應(yīng)用服務(wù)器的功能可能分散在多臺(tái)機(jī)器上。通常,一個(gè)Web應(yīng)用中的前端和業(yè)務(wù)邏輯部分運(yùn)行在不同的機(jī)器上。Web應(yīng)用的拓?fù)浣Y(jié)構(gòu)包含的元素有客戶、Web應(yīng)用服務(wù)器、基礎(chǔ)設(shè)施服務(wù)和外部服務(wù)。
1. 客戶
客戶使用Internet技術(shù)標(biāo)準(zhǔn)(如TCP/IP、HTTP、HTML和XML)與Web應(yīng)用服務(wù)器通信來(lái)存取業(yè)務(wù)邏輯和數(shù)據(jù)。客戶端的基本功能是接受并驗(yàn)證用戶輸入,顯示從Web應(yīng)用服務(wù)器到用戶的返回結(jié)果。客戶可以是Internet 、Intranet(內(nèi)部網(wǎng))和Extranet(外部網(wǎng))中的客戶。Web應(yīng)用編程模型的重要準(zhǔn)則之一是Web應(yīng)用的商務(wù)邏輯總是運(yùn)行在服務(wù)端而不是在客戶端。其優(yōu)點(diǎn)如下:
1) 支持更廣泛的客戶端設(shè)備
2) Web應(yīng)用服務(wù)器能集成對(duì)資源(如數(shù)據(jù)庫(kù))的存取,從而簡(jiǎn)化應(yīng)用的設(shè)計(jì),增強(qiáng)可伸縮性,并提供對(duì)資源的更好保護(hù)。
3) 運(yùn)行在服務(wù)端的商務(wù)邏輯容易得到保護(hù)、更新和維護(hù)。
4) 運(yùn)行在服務(wù)端的商務(wù)邏輯使得用戶的應(yīng)用環(huán)境得到集中管理并能在不同的客戶機(jī)上重建。
2. Web應(yīng)用服務(wù)器
Web應(yīng)用服務(wù)器是 Web應(yīng)用拓?fù)浣Y(jié)構(gòu)的核心,它為Web應(yīng)用提供了廣泛的程序設(shè)計(jì)、數(shù)據(jù)存取和應(yīng)用集成等服務(wù)。我們可以把一個(gè)Web應(yīng)用看作一個(gè)客戶與Web站點(diǎn)之間一系列的交互作用。整個(gè)交互過(guò)程從顯示在Web瀏覽器中一個(gè)頁(yè)面開始。用戶單擊該頁(yè)面上的一個(gè)按鈕或鏈接就產(chǎn)生一個(gè)請(qǐng)求,該請(qǐng)求被送到Web應(yīng)用服務(wù)器。Web應(yīng)用服務(wù)器對(duì)這個(gè)請(qǐng)求進(jìn)行處理,產(chǎn)生新的頁(yè)面,并送回到客戶端。在Web瀏覽器中顯示的新頁(yè)面就是這一次請(qǐng)求的結(jié)果,可能也是下一次請(qǐng)求的開始。所以說(shuō),Web應(yīng)用包含了一組交互或處理步驟,每一步必須產(chǎn)生一個(gè)頁(yè)面形式的響應(yīng),這個(gè)頁(yè)面作為后繼交互作用的入口。
圖2-4:Web應(yīng)用的交互模型
深究單個(gè)交互的細(xì)節(jié),不難發(fā)現(xiàn)這里有三個(gè)共用的處理要求,包括業(yè)務(wù)邏輯層、用戶界面層和交互控制器層(參見(jiàn)圖2-4)。具體來(lái)講:
1) 業(yè)務(wù)邏輯層。記錄并處理用戶輸入的部分。比如:對(duì)應(yīng)于在購(gòu)物籃中添加一項(xiàng)商品的數(shù)據(jù)庫(kù)更新操作,或從一個(gè)銀行帳戶到另一個(gè)的資金轉(zhuǎn)帳操作。
2) 用戶界面層。構(gòu)造HTML頁(yè)面的部分。構(gòu)造出來(lái)的頁(yè)面將被送回給用戶,它決定了交互結(jié)果的顯示形式和風(fēng)格。
3) 交互控制器層。控制其它元素的部分。處理HTTP請(qǐng)求,從業(yè)務(wù)邏輯層選擇要運(yùn)行的組件,根據(jù)業(yè)務(wù)邏輯的運(yùn)行結(jié)果從用戶界面層選擇相應(yīng)的組件,以構(gòu)造響應(yīng)頁(yè)面。
這三層正好對(duì)應(yīng)到經(jīng)典的M/V/C(Model/View/Controller,模型/視圖/控制器)范例。這一點(diǎn)很重要,因?yàn)椴煌瑢油ǔP枰煌拈_發(fā)技術(shù)和工具。應(yīng)用框架為各層提供使用各種組件的支持,這些組件之間有一個(gè)良定的接口。
3. 基礎(chǔ)設(shè)施服務(wù)
除了上述程序設(shè)計(jì)機(jī)制, 應(yīng)用開發(fā)者還需要運(yùn)行時(shí)刻的服務(wù)來(lái)支撐Web應(yīng)用。方便地定位應(yīng)用組件、保證它們的可用性以及對(duì)它們安全的存取和執(zhí)行等等都是在Internet、Intranet和Extranet環(huán)境中實(shí)施Web應(yīng)用的關(guān)鍵要素。基礎(chǔ)設(shè)施服務(wù)為支持Web應(yīng)用提供下列設(shè)施:
1) 目錄服務(wù),本框架支持使用JNDI來(lái)存取基于LDAP協(xié)議的安全目錄服務(wù)。
2) 認(rèn)證授權(quán),這個(gè)設(shè)施能產(chǎn)生用來(lái)鑒別用戶和服務(wù)器的證書。公開密鑰技術(shù)已經(jīng)成為電子商務(wù)首選的可信賴的機(jī)制,而認(rèn)證授權(quán)是公開密鑰技術(shù)中的一個(gè)關(guān)鍵部分,它提供了數(shù)據(jù)保密、數(shù)據(jù)完整性、簽名驗(yàn)證和用戶鑒別等特性。
3) 防火墻,它作為可信賴的內(nèi)部網(wǎng)絡(luò)和不可信賴的外部網(wǎng)絡(luò)之間的一個(gè)接口。通常,防火墻使用報(bào)文過(guò)濾器根據(jù)報(bào)文的源地址、宿地址、和服務(wù)類別(即端口號(hào))來(lái)過(guò)濾報(bào)文流。使用防火墻來(lái)控制外部網(wǎng)絡(luò)中的那些(IP級(jí))能允許存取內(nèi)部網(wǎng)絡(luò)、能使用那種類別的應(yīng)用服務(wù);同樣的模式能控制內(nèi)部網(wǎng)絡(luò)對(duì)外部網(wǎng)絡(luò)的存取。
4) 代理服務(wù)器,它起到為多個(gè)瀏覽器檢索Internet上數(shù)據(jù)的作用。作為客戶和Web應(yīng)用服務(wù)器之間的一個(gè)管道,代理服務(wù)器將客戶的請(qǐng)求遞交給有關(guān)的服務(wù)器并把服務(wù)器的響應(yīng)返回給客戶。這種工作方式還可以提供附加功能,如地址安全性和緩沖功能。
4. 外部服務(wù)
在這些外部服務(wù)系統(tǒng)中駐留著企業(yè)已有的應(yīng)用和數(shù)據(jù)、以及商業(yè)伙伴的服務(wù)系統(tǒng),如支付服務(wù)和外部信息服務(wù)。通常,這些應(yīng)用和服務(wù)系統(tǒng)控制著關(guān)鍵的商務(wù)過(guò)程,需要與Web服務(wù)器集成起來(lái)為顧客、業(yè)務(wù)伙伴和員工服務(wù)。
使用電子商務(wù)應(yīng)用框架開發(fā)和部署電子商務(wù)應(yīng)用系統(tǒng)帶來(lái)下列優(yōu)勢(shì):
1) 極大地方便電子商務(wù)應(yīng)用系統(tǒng)的快速開發(fā)和部署。
2) 適應(yīng)任何客戶端設(shè)備。
3) 確保應(yīng)用系統(tǒng)能移植到各種不同的服務(wù)器環(huán)境中。
4) 利用并擴(kuò)展已有的信息技術(shù)資源。
這也是形成這個(gè)電子商務(wù)應(yīng)用框架的重要原則。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -