- 相關(guān)推薦
PowerBuilder的分布式計(jì)算技術(shù)及其應(yīng)用
PowerBuilder的分布式計(jì)算技術(shù)及其應(yīng)用 浙江大學(xué)計(jì)算機(jī)系 梁榮華 浙江大學(xué)計(jì)算機(jī)系 史濟(jì)建 杭州電子工業(yè)學(xué)院計(jì)算機(jī)系 周其力摘要: 本文分析了客戶機(jī)/服務(wù)器的二級(jí)體系結(jié)構(gòu)缺點(diǎn)與不足,介紹了客戶機(jī)/服務(wù)器的分布式計(jì)算體系結(jié)構(gòu)的優(yōu)點(diǎn),重點(diǎn)論述了分布式計(jì)算體系結(jié)構(gòu)在PowerBuider6中的實(shí)現(xiàn),并給出了具體的應(yīng)用實(shí)例,最后給出了結(jié)論。
關(guān)鍵詞:客戶機(jī)/服務(wù)器 分布式計(jì)算 二級(jí)體系結(jié)構(gòu) 三級(jí)體系結(jié)構(gòu) 客戶應(yīng)用程序 服務(wù)器應(yīng)用程序
引言
90年代,人們開(kāi)發(fā)MIS系統(tǒng)大都采用客戶機(jī)/服務(wù)器結(jié)構(gòu),客戶機(jī)/服務(wù)器結(jié)構(gòu)既是硬件結(jié)構(gòu)又是軟件結(jié)構(gòu)。即數(shù)據(jù)放在服務(wù)器上,程序在客戶機(jī)上。進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),由客戶機(jī)提出請(qǐng)求(一般是SQL語(yǔ)句),服務(wù)器執(zhí)行并給出結(jié)果?蛻魴C(jī)/服務(wù)器對(duì)于優(yōu)化了網(wǎng)絡(luò),提高了系統(tǒng)的利用率。客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的發(fā)展經(jīng)歷了從二級(jí)體系結(jié)構(gòu)模式到三級(jí)體系結(jié)構(gòu)模式。
1 二級(jí)體系結(jié)構(gòu)模式
傳統(tǒng)的客戶機(jī)/服務(wù)器的模式是二級(jí)體系結(jié)構(gòu)(Two-tier model)模式。結(jié)構(gòu)圖如圖1
用戶界面與邏輯事務(wù)駐留在客戶計(jì)算機(jī)上,將大部分的數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作如查詢、修改等由客戶機(jī)提出請(qǐng)求,數(shù)據(jù)庫(kù)服務(wù)器完成并返回給客戶機(jī)結(jié)果,這種體系結(jié)構(gòu)雖然可以系統(tǒng)的性能,但它們具有明顯的缺點(diǎn):
缺乏安全性
在客戶機(jī)上存取敏感性數(shù)據(jù)時(shí),由于邏輯事務(wù)放在服務(wù)器中,所以用戶可以訪問(wèn)邏輯事務(wù)的核心部分,這使得未授權(quán)用戶容易侵入系統(tǒng),有安全漏洞。
重的客戶機(jī)負(fù)荷
隨著客戶機(jī)要求處理的事務(wù)的數(shù)目增多,系統(tǒng)的任務(wù)日益繁重,導(dǎo)致系統(tǒng)的吞吐量下降,使得客戶機(jī)不能滿足系統(tǒng)的要求,當(dāng)然可以買(mǎi)一臺(tái)更大的機(jī)器來(lái)替代舊的客戶機(jī)器,但在經(jīng)濟(jì)方面不如買(mǎi)一臺(tái)機(jī)器來(lái)分擔(dān)客戶機(jī)的某些任務(wù)。
鑒于此,人們提出了三級(jí)體系結(jié)構(gòu)模式(見(jiàn)圖2)。
2分布式計(jì)算體系結(jié)構(gòu)
在該模式中,用戶界面保存在客戶端,事務(wù)邏輯保存在應(yīng)用服務(wù)器中,數(shù)據(jù)保存在數(shù)據(jù)庫(kù)服務(wù)器中。客戶機(jī)只負(fù)責(zé)提供用戶界面,當(dāng)需要進(jìn)行數(shù)據(jù)訪問(wèn)時(shí)或復(fù)雜計(jì)算時(shí),客戶機(jī)向應(yīng)用服務(wù)器發(fā)出請(qǐng)求,應(yīng)用服務(wù)器響應(yīng)客戶機(jī)的請(qǐng)求,完成復(fù)雜的計(jì)算或者向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送SQL語(yǔ)句由數(shù)據(jù)庫(kù)服務(wù)器完成相應(yīng)的數(shù)據(jù)操作,最后由應(yīng)用服務(wù)器將結(jié)果返回給客戶機(jī)。該模式也稱三級(jí)體系結(jié)構(gòu)模式,PowerBuilder對(duì)于該模式是支持的。需要說(shuō)明的是,三級(jí)體系結(jié)構(gòu)模式的三級(jí)是指邏輯上的三級(jí)(即用戶界面、事務(wù)邏輯、數(shù)據(jù))而不是物理的三級(jí)。(具體見(jiàn)圖二)
對(duì)于二級(jí)模式,分布式計(jì)算體系結(jié)構(gòu)提供了解決方式,分布式計(jì)算技術(shù)通過(guò)將用戶界面與事務(wù)邏輯分開(kāi),這使得未授權(quán)用戶很難侵入系統(tǒng),保證了系統(tǒng)的安全性;同時(shí)由于客戶機(jī)只處理用戶界面,大量的事務(wù)處理在服務(wù)器應(yīng)用程序?qū)崿F(xiàn),大大減輕了客戶機(jī)的負(fù)荷,使瘦客戶成為可能。
二、分布式應(yīng)用的體系結(jié)構(gòu)在PowerBuidler中的實(shí)現(xiàn)
分布式PowerBuilder 應(yīng)用程序典型使用兩個(gè)應(yīng)用程序,即服務(wù)器應(yīng)用程序和客戶應(yīng)用程序,分別在兩臺(tái)機(jī)器上實(shí)現(xiàn)。
服務(wù)器與客戶應(yīng)用程序一起實(shí)現(xiàn)事務(wù)應(yīng)用,客戶應(yīng)用程序處理用戶界面,與用戶交互,服務(wù)器應(yīng)用程序提供給客戶應(yīng)用程序提供必要的數(shù)據(jù)包,應(yīng)用程序?qū)蛻魬?yīng)用程序透明。結(jié)構(gòu)圖見(jiàn)圖3。
盡管服務(wù)應(yīng)用通常提供數(shù)據(jù)包給客戶應(yīng)用程序,但服務(wù)器應(yīng)用程序本身也可以作客戶應(yīng)用程序功能,換言之,服務(wù)器應(yīng)用程序能作為客戶應(yīng)用程序與另一服務(wù)器應(yīng)用程序連結(jié),這時(shí),這個(gè)服務(wù)應(yīng)用程序作為客戶應(yīng)用程序與另一應(yīng)用程序的中介等。
2.1服務(wù)器應(yīng)用程序
服務(wù)器應(yīng)用程序提供了兩個(gè)主要的組件:傳送對(duì)象(Transport object)、遠(yuǎn)程對(duì)象(Remote object)。
傳送對(duì)象使之能為服務(wù)器應(yīng)用程序收到客戶連接并處理客戶請(qǐng)求。
在分布式應(yīng)用中,客戶能調(diào)用服務(wù)器提供的服務(wù),通過(guò)遠(yuǎn)程對(duì)象提供,一般地,一個(gè)遠(yuǎn)程對(duì)象是一個(gè)NVO(nonvisual user object)-----不可視用戶對(duì)象,包含在遠(yuǎn)程服務(wù)器上,一個(gè)客戶能調(diào)用遠(yuǎn)程對(duì)象提供的功能,就好象他們被定義在本地的對(duì)象一樣,也就是說(shuō),客戶應(yīng)用程序能調(diào)用遠(yuǎn)程的對(duì)象,與同一臺(tái)計(jì)算機(jī)或另一臺(tái)網(wǎng)絡(luò)上的計(jì)算機(jī)各自執(zhí)行程序完成某項(xiàng)功能,PowerBuiler對(duì)遠(yuǎn)程對(duì)象的調(diào)用有同步與異步調(diào)用。當(dāng)同步調(diào)用時(shí),客戶等待直到服務(wù)器處理完成,當(dāng)異步調(diào)用時(shí),服務(wù)器只在自己的隊(duì)列中增加一個(gè)請(qǐng)求隊(duì)列,以后處理之,同時(shí),客戶機(jī)去做其他的事情,直到服務(wù)器處理該請(qǐng)求。
2.2客戶端應(yīng)用程序
客戶端應(yīng)用程序有三個(gè)組件
用戶界面(user interface)
連接對(duì)象(Connection object)
遠(yuǎn)程對(duì)象的類(lèi)定義(remote object class definitions)
結(jié)構(gòu)圖見(jiàn)圖5
用戶界面
客戶應(yīng)用程序包含與用戶的交互,除此之外,客戶包含執(zhí)行腳本,對(duì)于客戶采取的反應(yīng)。例如,這些腳本能規(guī)定當(dāng)用戶點(diǎn)了按紐會(huì)發(fā)生什么事件等。
連接對(duì)象
該對(duì)象提供了客戶應(yīng)用程序連接到服務(wù)器應(yīng)用程序,并要求服務(wù).
遠(yuǎn)程對(duì)象的類(lèi)定義
每個(gè)服務(wù)器應(yīng)用程序的遠(yuǎn)程對(duì)象在客戶應(yīng)在程序中有相關(guān)的類(lèi)定義。遠(yuǎn)程對(duì)象定義的本地的拷貝與服務(wù)器應(yīng)在程序的定義有一個(gè)相同的名字,執(zhí)行期間,本地定義的對(duì)象允許客戶訪問(wèn),就如遠(yuǎn)程對(duì)象實(shí)例就象在本地一樣。
類(lèi)定義在客戶應(yīng)在程序中包含了遠(yuǎn)程對(duì)象的完全或部分功能,Proxy(代理) 對(duì)象提供了遠(yuǎn)程對(duì)象界面的表示,對(duì)分布式處理,只有Proxy對(duì)象在客戶應(yīng)在程序是必須的。在客戶應(yīng)在程序中,對(duì)象透明,當(dāng)你在客戶應(yīng)在程序利用遠(yuǎn)程對(duì)象類(lèi)定義,客戶端的定義與服務(wù)器端的定義一致。考慮到這兩個(gè)定義有相同的名字,PowerBuiler提供了這種透明技術(shù)。用這個(gè)類(lèi)定義的變量能保持本地對(duì)實(shí)例的引用。執(zhí)行時(shí),你能初始化本地的對(duì)象或遠(yuǎn)程對(duì)象,這依賴你的應(yīng)用要求。
2.3通訊方式
PowerBuiler的分布式技術(shù)中支持以下幾個(gè)通訊協(xié)議
Winsock
在支持TCP/IP的網(wǎng)絡(luò)中,利用WINDOWS SOCKETS工具通訊。只要支持TCP/IP的網(wǎng)絡(luò)都可以用該方式。
Names pipes, 通過(guò)命名的管道進(jìn)行通訊。
local, 指在分布式應(yīng)用程序可在本地運(yùn)行。
不同的運(yùn)行平臺(tái)支持不同的通訊方式.
三、 應(yīng)用程序舉例(PowerBuiler的實(shí)例)
在客戶機(jī)/服務(wù)器中,一個(gè)比較典型的例子是實(shí)現(xiàn)服務(wù)器推拉(Sever Push),客戶機(jī)請(qǐng)求服務(wù)器稱為
【PowerBuilder的分布式計(jì)算技術(shù)及其應(yīng)用】相關(guān)文章:
分布式對(duì)象技術(shù)及其在Web上的應(yīng)用03-18
利用PowerBuilder開(kāi)發(fā)WEB應(yīng)用03-19
分布式網(wǎng)絡(luò)化研究中心及其在靈敏制造中的應(yīng)用03-22
分布式發(fā)電系統(tǒng)的應(yīng)用及前景03-18
云計(jì)算技術(shù)在交通管理的應(yīng)用論文06-30
關(guān)于分布式發(fā)電系統(tǒng)的應(yīng)用及前景11-23
矩陣的分解及其應(yīng)用03-07
EDA技術(shù)及其應(yīng)用03-19