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