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